Igor Mandrigin

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 §

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.