Partial Statefulness — Rethinking state in a post-ZKEVM world
"If verification is free, why pay for state?"
Cryptographic certainty, not trust. A full Merkle path from any tracked storage slot to the state root.
BALs (EIP-7928) record all state changes per block — consensus-enforced completeness. Security: signing committee signature verification (pre-ZKEVM), SNARK proofs (post-ZKEVM). Landing in Glamsterdam 2026.
"In-protocol state expiry adds huge complexity. Out-of-protocol approaches are less problematic, but PS offers a complementary path."
A provider pressured to stop serving state for targeted addresses → users can't build txs → includers never see them → invisible censorship without touching the protocol.
Note: Today ILs need account data. With Frame Transactions (EIP-8141), includers will also need bounded contract state — witness-carrying txs bridge this gap.
PS keeps snap sync viable by distributing serving load across a large mesh. State markets incentivize collective coverage — popular contracts replicated by thousands, the long tail by fewer specialized nodes. No central coordinator needed — the market naturally converges toward a covering partition through economic incentives.
Validity-Only Partial Statelessness — the minimum to stay useful post-ZKEVM.
Statelessness wants minimal state for validation. AA wants programmable validation with arbitrary state access. These pull in opposite directions.
"The more state validation requires — and the more arbitrary it can be — the harder it becomes for nodes to keep the mempool healthy."
The AA scheme that makes validation NOT depend on state is the best for statelessness. Schemed Transactions (EIP-8202) are fully PS-compatible. Frame Transactions (EIP-8141) need witness-carrying (~12-20 KB per tx).
A fair critique: DeFi state is deeply interconnected. Serve USDC → need DEX pools → need routers → the closure is "most of DeFi."
"PS nodes don't serve everything. They serve one piece. Proofs batch across nodes sharing the same state root."
go-ethereum PR #33764 — only geth for now. Opportunity for other clients.
CPerezz
github.com/ethereum/go-ethereum/pull/33764