Computational cryptography › Live on mainnet today › Pairing curves
RANDOMNESSPrimitive

RANDAO

In plain words

Ethereum's built-in randomness for picking who proposes each block, mixed together from validators' signatures.

The idea: Each proposer contributes a value nobody can predict in advance but everyone can verify afterwards: their BLS signature on the epoch number, which is unique for their key. Its hash is mixed into a running total, so the final randomness depends on many proposers. A proposer's only freedom is to skip their block, which gives the last one of an epoch a small say in the outcome.

Why it matters: Fair randomness stops attackers from choosing their own turns.

The details

On the map: SHA-256 mix of BLS reveals. The last proposer can bias 1 bit

Ethereum's randomness for choosing block proposers and committees. Each proposer reveals a BLS signature over the current epoch, and the beacon chain mixes its SHA-256 hash into an accumulated value[1].

The last proposer of an epoch can choose to reveal or skip, so they control one bit of the outcome, a small, well-studied bias. Breaking BLS would let an attacker forge reveals and control the randomness. Verifiable delay functions (VDFs)[2] were proposed to remove the bias and remain a long-term idea.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Everything that falls with it (3 boxes)

References

  1. Ethereum consensus-specs authors. Phase 0: The Beacon Chain (consensus-specs). ethereum/consensus-specs, 2020. github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md
  2. Dan Boneh, Joseph Bonneau, Benedikt Bünz and Ben Fisch. Verifiable Delay Functions. Advances in Cryptology – CRYPTO 2018. doi:10.1007/978-3-319-96884-1_25