Verifiable Randomness Documentation

Verifiable Randomness Systems

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

How “Provably Fair” Systems Fail in Practice: Real-World Patterns and Exploits

Most fairness failures are not bugs.
They are design choices that seemed reasonable at the time.
This document walks through the most common ways “provably fair” systems break in the real world — and why the failures are logical outcomes of incomplete models.


FAILURE MODE 1: SERVER-FIRST RANDOMNESS

Pattern:

Why it fails:

This is not cryptographic failure. It is informational asymmetry.


FAILURE MODE 2: COMMIT WITHOUT FUTURE ENTROPY

Pattern:

Why it fails:

Commit-reveal without future entropy only proves honesty after the fact.


FAILURE MODE 3: MODULO BIAS HAND-WAVING

Pattern:

Why it fails:

If bias exists, it will be exploited eventually.


FAILURE MODE 4: IMPLICIT RNG STATE

Pattern:

Why it fails:

Hidden state is the enemy of auditability.


FAILURE MODE 5: REORDERABLE RANDOM CALLS

Pattern:

Why it fails:

If order is not fixed, outcomes are not fixed.


FAILURE MODE 6: SHUFFLES DONE “IN ONE GO”

Pattern:

Why it fails:

Shuffles are sequences, not scalars.


FAILURE MODE 7: “LATEST RANDOMNESS” SHORTCUTS

Pattern:

Why it fails:

Freshness matters more than convenience.


FAILURE MODE 8: NON-CANONICAL UPGRADES

Pattern:

Why it fails:

Fairness systems must be versioned, not replaced.


WHY THESE FAILURES KEEP HAPPENING

Because most systems optimize for:

Fairness is treated as a feature, not a constraint.


THE CORRECT DESIGN PHILOSOPHY

A fair randomness system must:

If a shortcut exists, it will be abused.


WHAT ACTUALLY WORKS

Systems that hold up over time:


THE MOST IMPORTANT TEST

Ask one question:

“Can the operator change behavior after seeing partial information?”

If the answer is yes, the system is not fair.


KEY TAKEAWAY

Most “provably fair” systems fail because they prove the wrong thing.
They prove that a result was computed honestly
not that it could not have been influenced.

True fairness removes influence, not just lies.