Verifiable Randomness Documentation

Verifiable Randomness Systems

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

Randomness Without Blockchain State

How to build verifiable randomness systems without smart contracts, on-chain storage, or gas fees.

A common assumption in provably fair systems is that blockchain state is required to make randomness trustworthy.

This leads developers toward smart contracts, on-chain VRFs, and persistent blockchain storage.

In reality, verifiable randomness does not require on-chain state at all.

This document explains how randomness can be:

without smart contracts or blockchain execution.

Why Developers Reach for Blockchain State

Blockchains offer three properties developers want for randomness:

  1. Public visibility – everyone sees the same data
  2. Immutability – results cannot be altered after the fact
  3. Time ordering – events occur in a fixed sequence

Smart contracts seem like the natural place to anchor randomness because they inherit all three.

But they also introduce:

The key question is:
Which of these properties actually require on-chain execution?

What Randomness Systems Actually Need

For a random outcome to be verifiable, the system must guarantee:

  1. Inputs are fixed before the outcome is known
  2. Entropy is unpredictable at commit time
  3. The derivation function is deterministic
  4. Anyone can recompute the result independently

None of these require:

They require cryptography, not consensus.

Commit–Reveal Works Off-Chain

Commit–reveal protocols are purely cryptographic:

Commit = hash(secret) Reveal = secret Verification = hash(reveal) == commit

This mechanism does not depend on where it runs.

As long as:

The protocol remains sound whether executed:

Public Entropy Does Not Require Contracts

Public entropy is often conflated with “blockchain randomness.”

In practice, what matters is:

Examples include:

The entropy itself can be referenced by ID, round number, or timestamp — no contract required.

Deterministic Math Replaces On-Chain Logic

Once inputs are fixed, outcome derivation is deterministic math:

If the algorithm is public and deterministic:

Smart contracts do not add security here — they merely execute math publicly, which is unnecessary if the math is reproducible.

Verification Is Stronger Without State

Stateless verification has a key advantage:
It can be performed by anyone, anywhere, at any time.

No need to:

A verifier only needs:

  1. The final seed
  2. The protocol specification
  3. The public entropy reference

This enables:

When Blockchain State Is Needed

There are cases where on-chain state is appropriate:

But randomness generation itself is not one of them.

Randomness answers the question:
“Was this outcome generated fairly?”

Settlement answers a different question:
“What happens after the outcome?”

Conflating the two leads to over-engineered systems.

Separation of Concerns

A clean architecture separates:

  1. Randomness generation (cryptographic, deterministic, verifiable)
  2. Game logic (rules, probabilities, outcomes)
  3. Settlement (payments, rewards, enforcement)

Randomness can be:

While settlement can remain:

Takeaway

Blockchain state is optional, not fundamental, for verifiable randomness.

In BlockRand, we use drand public entropy with 3 second granularity.

What matters is:

Once these are satisfied, the randomness protocol stands on its own —
independent of chains, contracts, or gas.