Verifiable Randomness Systems
Even with commit–reveal and double-blind designs, one question keeps coming up:
“What if both sides collude, or one side controls everything?”
Public entropy sources exist to answer that by adding external, uncontrollable randomness into the system.
But not all “public randomness” is actually trustworthy.
Some sources strengthen fairness.
Others only appear to.
For an entropy source to be meaningful, it must be:
If any one of these is missing, the source is cosmetic — not protective.
Examples:
Why they work:
These are strong sources when combined correctly.
Block hashes can be used — but only under strict rules.
They work only if:
Used improperly, block hashes become manipulable.
VDFs introduce time as a security feature.
Properties:
They are excellent for:
If the server controls it, it’s not public.
Examples:
/random/seed/entropyThese are just trust wrapped in JSON.
Examples:
These are:
Time is metadata — not entropy.
Examples:
Problems:
If it can’t be replayed, it can’t be verified.
Even third-party providers fail if they:
“External” does not automatically mean “trustless”.
Public entropy should never replace commit–reveal.
It should:
Typical combination:
final_seed = SHA256( server_seed || user_seed || public_entropy )
Each component adds protection against a different failure mode.
Adding public entropy does not fix:
Entropy strengthens fairness — it does not create it.
Ask:
“Could any single party have influenced this value after seeing partial information?”
If yes — it’s not a valid public entropy source.
Public entropy sources:
Used correctly, they turn provably fair systems from promises into structures.