Computational cryptography › Live on mainnet today › Hashes and symmetric crypto
COMMITMENTPrimitive

SSZ Merkleization

In plain words

The consensus layer's way of fingerprinting its data so any single piece can be proven.

The idea: The consensus layer's version of the same trick: every field of the beacon state sits at a fixed position in a tree of SHA-256 hashes, so a light client holding the root can check any single field, such as a validator's balance, with a short branch of hashes.

Why it matters: Light clients and bridges rely on it.

A tree of fingerprints
12345678######rootdata itemspublished
Every box is the hash of the two boxes below it. To prove that item 3 is in the tree, hand over just the three orange hashes. The verifier hashes item 3 with them, climbing the blue path, and checks that the result equals the published root. Changing any item would change the root, unless someone could find a hash collision.

The details

On the map: beacon state roots, deposit tree (SHA-256)

The consensus layer serializes everything with SSZ and computes Merkle roots with SHA-256[1], so any field of the beacon state can be proven with a short branch. The deposit contract keeps its own SHA-256 Merkle tree of all validator deposits[2].

Light clients and many bridges verify beacon-chain data through these roots. Security needs SHA-256's collision resistance.

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 (4 boxes)

References

  1. Ethereum consensus-specs authors. SimpleSerialize (SSZ) (consensus-specs v1.5.0). ethereum/consensus-specs, 2020. github.com/ethereum/consensus-specs/blob/v1.5.0/ssz/simple-serialize.md
  2. 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