A Nethermind project
EF 2026 · Scale + Harden L1

What breaks when
Ethereum state hits 10×?

Mainnet is 381M accounts, 1.56B storage slots, 221 GB of trie. We pick up an existing ~3.5× Bloatnet and a Go controller drives it all the way to 10× (2.22 TB) — benchmarking proof sizes, trie structure, and snap sync (Nethermind and Geth so far; the full five-client battery and block execution next) to turn the gas-limit debate into a data problem.

1x baseline10x target1x
measured1× mainnet
Accounts
381M
Storage slots
1.6B
Contract code
13.4 GB

As the state grows, every account touch traverses a deeper trie and emits a fatter witness. We benchmark the entire pipeline — execution, proof size, snap-sync — at each milestone so the protocol roadmap is grounded in evidence, not extrapolation.

Why this matters

Two protocol-level decisions ride on these numbers.

The 2026 forks ask validators to absorb more state and more witnesses than ever. Every gas-limit bump and every step toward statelessness needs a load-bearing answer to: what is the actual cost?

Glamsterdam · gas limit toward 100M+

Bigger blocks mean more state mutations per second. If client throughput collapses non-linearly above 3×–5× mainnet, the gas debate is moot. We measure where the cliffs are before the chain finds them.

Hegotá · the statelessness baseline

Verkle wins are usually argued in the abstract. By instrumenting eth_getProof across the full multiplier ladder, we produce the MPT witness curve that any post-Verkle comparison has to beat.
Goals

Three deliverables, written in the language of the protocol.

① Bloated states, reproducibly

Starting from the inherited ~3.5× Bloatnet, a Go controller grew the state through 5×, 7×, and the headline 10× target. Every run emits a portable payloads.rlp stream + manifest, so any client can replay the exact state and verify the final root.

② Cross-client measurement

The same workload is replayed on Nethermind, Geth, Besu, Reth, and Erigon. Bit-exact cross-client replay was validated 2026-04-29 against a known state root; from there every metric is collected the same way on every client.

③ Open report

All scripts, data, and analyses live in the NethermindEth/state-benchmarks repo. The point is not a paper; it is a substrate other researchers can extend without re-doing the plumbing.
State growth

The curve we climbed.

All five milestones are measured exactly — mainnet (1×, our reference), the inherited 3.5× Bloatnet state, and the 5× / 7× / 10× states we grew it to (2.22 TB at 10×). The headline target is reached. No projected numbers.

The shape of the problem

A 10× state is not a 10× cost.