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

State, transaction and receipt tries

In plain words

Ethereum keeps every balance and contract's data in a tree of fingerprints, sealed by one root fingerprint in each block.

The idea: Ethereum's whole state is arranged as a tree of hashes: each account's data is hashed, those hashes are grouped and hashed again, up to one root in each block header. To prove your balance to someone who only trusts the header, you hand over the hashes along the path from your account to the root. Faking a different balance would take a Keccak collision.

Why it matters: Lets light clients and bridges prove facts about Ethereum with short proofs.

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. Ethereum's trie branches 16 ways instead of 2, but proofs work the same way.

The details

On the map: Merkle-Patricia tries over Keccak-256

Ethereum's execution state (every account balance, nonce and storage slot), each block's transactions and its receipts are stored in Merkle-Patricia tries hashed with Keccak-256[1]. Their root hashes go in the block header.

A short proof shows that a value is in the state, which is what light clients, bridges and optimistic-rollup fault proofs rely on. Security needs Keccak's collision resistance. The planned binary state tree would replace these tries[2].

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

References

  1. Gavin Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper, 2014. ethereum.github.io/yellowpaper/paper.pdf
  2. Vitalik Buterin, Guillaume Ballet, Dankrad Feist et al. EIP-7864: Ethereum state using a unified binary tree. Ethereum Improvement Proposals (Draft), 2025. eips.ethereum.org/EIPS/eip-7864