Verifiable Randomness Systems
A common assumption in games, casinos, raffles, and applications is:
“If the server uses a cryptographically secure random number generator, the result is fair.”
This assumption is false.
Even when a server uses a high-quality CSPRNG, single-party control over randomness makes fairness impossible to verify. The issue is not randomness quality — it is who controls when and which random output is used.
This document explains why server-only RNGs fail structurally, not accidentally.
There is an important distinction that is often missed:
Randomness quality answers:
“Is this number statistically random?”
Fairness answers:
“Can any party influence or select outcomes without detection?”
A server can generate perfectly random numbers and still cheat — silently and undetectably.
In a server-only RNG system:
The user or player:
This asymmetry alone is enough to break fairness.
Consider a server generating a random number for a payout:
From the outside:
This is not a bug. This is unavoidable in single-party RNG systems.
Even if a server claims it generates randomness “once per request”:
Without precommitment, nothing binds the server to a specific random input before the result exists.
Server logs do not solve the problem because:
An audit that depends on trust is not a cryptographic audit.
Cryptographically secure RNGs guarantee unpredictability — not fairness.
A CSPRNG ensures:
A CSPRNG does not ensure:
Security does not imply impartiality.
Even in honest organizations, insider threats exist:
Single-party RNGs assume permanent honesty across all internal actors — an unrealistic model.
The most critical issue is this: A single-party RNG can cheat without leaving cryptographic evidence.
If cheating cannot be detected:
This is unacceptable in adversarial or value-bearing systems.
This is not solved by:
The failure exists because one party controls randomness generation and disclosure.
As long as that remains true, fairness cannot be proven.
To achieve verifiable fairness, a system must ensure:
These ideas lead directly to:
These are explored starting in the next document.
Single-party RNG systems fail not because they are insecure, but because they are unverifiable.
Fairness requires removing unilateral control — not improving random number generators.
This is how BlockRand achieves this.