Show HN: Double blind entropy using Drand for verifiably fair randomness
Source: Hacker News
Overview
The only way to obtain a trust‑less random value is to have it distributed and time‑locked across three parties: the player, the server, and a future entropy source.
How It Works
-
Commit Phase
- The player commits to a secret by sending the hash of that secret (the player‑hash) to the server.
- The server responds with the hash of its own secret (the server‑hash) and the round number of a future drand randomness beacon that will be used. In the demo, the future round occurs 10 seconds later.
-
Reveal Phase (after the specified drand round)
- Both the player and the server reveal their original secrets.
- The final random number is generated from the concatenation:
player‑seed : server‑seed : drand‑signaturewhere the drand‑signature is the beacon output for the chosen round.
Verification
All verification is purely mathematical, making the process truly trust‑less:
- The player‑seed must match the previously committed player‑hash.
- The server‑seed must match the previously committed server‑hash.
- The drand‑signature is not available at commit time (time‑locked) and becomes publicly accessible only at reveal time.
- The generated random number is deterministic after the reveal but remains unknown and unpredictable beforehand.
- No party can influence the final outcome, eliminating any “last‑look” advantage.
Potential Applications
This scheme can be applied to any system that requires provably fair randomness, such as:
- Online games
- Lottery and gambling platforms
- Any other service that wants fairness by design rather than by trust
References
- Discussion on Hacker News: (6 points, 6 comments)