Verifiable Randomness Documentation

Verifiable Randomness Systems

View the Project on GitHub blockrand-api/blockrand-js

Why Future Public Entropy Matters: Timing, Bias, and Trust in Randomness Systems

Randomness systems fail not because the math is weak, but because the timing is wrong.

This document explains why future public entropy is critical for fairness, and why many “secure” randomness systems are still manipulable in practice.

The Core Problem: Who Knows the Randomness First

In any system that generates random outcomes, one question dominates all others:

Who knew the random value first?

If the answer is:

Then the system is not fair, regardless of cryptography.

Why Strong Randomness Is Not Enough

Developers often rely on:

These are mathematically strong, but socially weak.

Why?

Because someone knows the output before the user commits to an action. That knowledge creates leverage.

The Timing Attack Most People Miss

Consider this flow:

  1. Server generates a random value
  2. Server asks the player to act
  3. Server applies the random outcome

Even if the random value is cryptographically perfect, the server can:

None of this breaks cryptography. All of it breaks fairness.

Why Commit-Reveal Alone Is Not Sufficient

Commit-reveal helps, but only partially.

If both sides commit to secrets that already exist, then:

The missing ingredient is unpredictability at commit time.

What Future Entropy Solves

Future entropy means:

This changes the power balance completely. Both sides commit blind.

Public vs Private Future Entropy

Private future entropy:

Public future entropy:

Only public future entropy removes trust from the equation.

Why Blockchains Were Used (And Their Limits)

Blockchains introduced a powerful idea: Future block hashes are unknowable at commit time.

This was a major step forward.

However, blockchains have drawbacks:

They are fair, but not always practical.

Why Drand Is a Better Fit for Games

Drand provides:

Most importantly:

This makes drand ideal for interactive systems.

Why “Latest Randomness” Is Not Safe

Some systems use: “The most recent randomness available”

This is dangerous.

If randomness already exists:

Only future rounds provide real fairness.

The Correct Fairness Timeline

A fair system looks like this:

  1. Player commits (hash only)
  2. Server commits (hash only)
  3. Future public entropy is selected
  4. Entropy becomes available
  5. Secrets are revealed
  6. Final randomness is computed using the secrets already committed.

At no point does anyone know the outcome early. This is how BlockRand generates all its Random Numbers.

Why Delay Is a Feature, Not a Bug

Waiting is uncomfortable, but necessary.

The delay:

Systems that promise “instant fairness” usually hide a shortcut.

How to Avoid Waiting Without Cheating

Advanced systems solve this by:

This preserves fairness while keeping UX smooth.

Key Takeaway

Fair randomness is not about stronger math. It is about weaker assumptions.

If nobody can know the result early, nobody can cheat.

Future public entropy enforces that rule mechanically.

That is why it matters.