Verifiable Randomness Documentation

Verifiable Randomness Systems

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

What “Provably Fair” Actually Means

The Most Misused Term in Randomness

“Provably fair” is one of the most abused phrases in gaming, gambling, and Web3 systems.

Many platforms claim to be provably fair because they:

None of these, by themselves, make a system provably fair.

Provable fairness is not a technology choice.
It is a verifiability property.

The Core Definition

A system is provably fair if:

If verification requires trust, explanations, screenshots, or “internal logs” — the system is not provably fair.

What Provably Fair Is NOT

Let’s eliminate common misconceptions.

“We Use a Secure RNG”

Irrelevant.
A secure RNG can still be:

Security does not imply fairness.

“We Publish the Result Hash”

A hash alone proves nothing unless:

A hash without context is just a checksum.

“It’s On the Blockchain”

Blockchains provide immutability, not correctness.
If bad randomness is committed on-chain:

Provable fairness must exist before immutability.

“Trust Us, We’re Audited”

Audits are snapshots.
Provable fairness is continuous.
If fairness cannot be verified after every outcome, the system still relies on trust.

The Minimum Requirements of a Provably Fair System

A provably fair system must satisfy all of the following:

1. Determinism

Given the same inputs, the system must always produce the same output.

2. Public Inputs

All inputs that influence the outcome must be:

If an input is secret forever, it cannot be verified.

3. Defined Algorithm

The exact algorithm must be specified:

“Industry standard” is not a specification.

4. Replayability

Anyone must be able to:

If two independent implementations disagree, fairness is broken.

5. No Operator Discretion After Commitment

Once inputs are committed:

Any post-commit choice is a manipulation vector.

Trust-Based vs Provably Fair

Trust-Based System

Operator runs RNG → User sees result → Operator claims fairness

Verification requires belief.

Provably Fair System

Inputs are committed → Outcome is derived deterministically → User verifies independently

Trust is replaced by math.

Why “After-the-Fact Proof” Matters

Fairness is often challenged after an unfavorable outcome.
A provably fair system allows users to ask:

“Given what was known at the time, could this result have been different?”

If the answer is “no”, the system is provably fair.
If the answer is “maybe”, it isn’t.

The Commit–Reveal Foundation

Almost all provably fair systems rely on some form of:

This prevents:

But commit–reveal alone is not enough without deterministic mapping.

What Provable Fairness Does NOT Guarantee

Important clarity: Provably fair does not mean:

It only guarantees: The outcome was not manipulated.

A fair loss is still a loss.

Why This Matters in Practice

Provable fairness:

In adversarial environments, this is not optional infrastructure.

A Simple Litmus Test

Ask this question:

Can a skeptical third party, with no special access, reproduce the outcome exactly?

There is no middle ground.

Key Takeaway

“Provably fair” is not a marketing term.
It is a strict technical property that requires:

Anything less is trust wrapped in cryptography, not fairness.