Block witnesses
A block witness is a self-contained slice of state that ships with a block and verifies against the state root. It lets a node do its job — validate, sync, serve, prove — without holding the full state. That one idea has followed me from Ethereum Foundation research in 2019 to production ZK rollups today. This page is the whole thread, in order.
The definition, and my position §
A witness must be complete (any mainnet block replays from it), compact (it travels with every block), and commitment-aware (its proofs bind it to the state root). My position since 2020: the format should separate state data from commitment proofs — data is what you deliver and defend; proofs are what the root defends. Formats that interleave the two weld the parser to one commitment scheme and give up the most useful property: swapping the proof side without touching the data pipeline.
The thread, in order §
- Stateless Ethereum: Binary Tries Experiment Jan 2020 — how commitment shape drives witness size: binary tries roughly halve witnesses on real mainnet blocks. Data.
- Semi-Stateless Initial Sync Feb 2020 — witnesses pre-building cache tries during sync. The corrected historical sample averages 0.037598 MiB per recorded witness entry with a million-node cache; it excludes contract code and does not cover every block.
- Block Witness Formal Specification Mar 2020 — the first-generation, opcode-based spec. I wrote it as part of the Stateless Ethereum effort.
- KV-Witness Jul 2020 — the second-generation proposal: body/proofs split, measured over mainnet blocks 5,000,000–8,000,000. Data.
- Stateful vs stateless ZK proving Jan 2024 implementation — where the thread ended up: cdk-erigon generates witnesses, the prover consumes them, and I carried the spec across myself. The retrospective was written in August 2026; its commit links document the January 2024 implementation.
Where it goes next §
Stateless Ethereum never shipped on L1; its mechanism ships daily inside ZK rollups. The open direction I care about now: witnesses as a policy instrument — nodes that hold only the state they are entitled to, and can verify it. That work is in progress; ask me about it.