// ETHEREUM RESEARCH

Who Holds
Ethereum's State?


Partial Statefulness — Rethinking state in a post-ZKEVM world

CPerezz · EthCC 2026
// TODAY

The Status Quo


13,900
Nodes
1M+
Validator keys
280 GB
State per node
// THE SHIFT

ZKEVMs Change Everything


"If verification is free, why pay for state?"

State distribution collapse: ~13,900 full nodes to a handful of operators
// ACT II

A Different Path

// PARTIAL STATEFULNESS

Hold Only What You Care About


> Full Account Trie
Every account's balance, nonce, codeHash + all intermediate MPT nodes
> Selective Storage
Choose which contracts to track — USDC, DAI, Uniswap. Full storage tries for those.
> No Re-execution
Follow chain tip via Block Access Lists (BALs). Apply state diffs directly.
59 GB
Accounts + USDC + DAI
79%
Reduction vs full state
Source: go-ethereum PR #33764 (mainnet)
Partial stateful node architecture: account trie + tracked storage + untracked roots
// ARCHITECTURE

Prove What You Hold


storage slot → storage trie
  → storage root → account leaf
    → account trie → state root

Cryptographic certainty, not trust. A full Merkle path from any tracked storage slot to the state root.

MPT proof path from storage slot to state root
// SYNC

Sync, Don't Execute


1
Snap sync account trie — download all accounts + intermediate MPT nodes (~50 GB)
2
Snap sync tracked storage — download full storage tries for selected contracts
3
Heal state via BALs — process Block Access Lists from pivot to HEAD — no re-execution
4
Follow the tip — apply BAL diffs per block. Serve proofs for tracked state.

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.

Source: EIP-7928 — eips.ethereum.org/EIPS/eip-7928
// IN-PROTOCOL ALTERNATIVE

In-Protocol State Expiry Falls Short


> UX Nightmare
Accounts "expire" after 6 months of inactivity. Users discover their funds are inaccessible.
> Protocol Complexity
Address space extension, resurrection mechanics. Protocol complexity skyrockets.
> Doesn't Solve It
Wallets still need expired state from the same centralized providers to bundle revival + tx.

"In-protocol state expiry adds huge complexity. Out-of-protocol approaches are less problematic, but PS offers a complementary path."

// ACT III

What PS Enables

// CENSORSHIP RESISTANCE

Inclusion Lists Need Account Data


[ALERT] CENSORSHIP VECTOR

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.

Source: EIP-7805 — eips.ethereum.org/EIPS/eip-7805
IL validation pipeline: account state, gas economics, signature, format checks filter txs into inclusion list
FOCIL inclusion flow: mempool → PS node → inclusion list → block builder → attesters
// ECONOMICS

State Markets

// ECONOMICS

An Emergent Economy


  • Hot / Cold pricing — hot state = cheap (many holders), cold state = premium (few holders)
  • Domain specialization — DeFi nodes, NFT nodes, protocol-specific. Agents, wallets, indexers as consumers.
  • Attestation analogy — one query ≈ nothing. Millions/year ≈ real revenue. Economics work at scale.
  • vs Portal Network — PS nodes have natural revenue: serving RPC queries and proofs for tracked contracts. The economic incentive is built into the use case.
State market flywheel: lower cost → more operators → geo distribution → more queries → more revenue
// CONSUMERS

Who Buys State?


> Protocols & DAOs
Uniswap DAO running PS nodes for Uniswap contracts isn't charity — it's infrastructure ROI. State availability directly affects tx success.
> Cross-chain Bridges
ZK bridges need L1 state proofs. PS nodes serve cryptographic proofs — trustless cross-chain without full L1 nodes.
> Wallets & Agents
Wallets need proof-carrying responses for trustless balance queries. Autonomous agents managing funds need verifiable state — proofs, not promises.
> Restaking (AVS)
State serving as an Actively Validated Service. Operators earn through restaking economics — no new payment infra needed.
// THE VALUE

Natural Redundancy


Today ~13,900 full nodes hold state (mandated by re-execution)
Post-ZKEVM State held by few operators. Snap sync hammers a handful of servers — fragile, rate-limited.
With PS Thousands of PS nodes serve snap sync ranges for tracked state. More peers, large distributed mesh.

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.

Redundancy gradient: USDC replicated by thousands, cold state by few
// VOPS

The Validator Floor


8.4 GB

Validity-Only Partial Statelessness — the minimum to stay useful post-ZKEVM.

Source: ethresear.ch — VOPS post (241M accounts × ~40 bytes)
// OPEN QUESTIONS

The Design Space

// OPEN QUESTION

Account Abstraction vs Statelessness


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).

Validation spectrum: Schemed Tx (stateless, PS compatible) to Frame Tx (stateful, needs witnesses)
// HONEST CRITIQUE

The Inseparable Graph


A fair critique: DeFi state is deeply interconnected. Serve USDC → need DEX pools → need routers → the closure is "most of DeFi."

> When valid
  • Large aggregators (CoW Swap, 1inch)
  • MEV searchers needing complete state
  • Complex multi-hop routing
> When NOT valid
  • VOPS nodes (account data only)
  • ENS, privacy protocols
  • Simple balance queries with proofs
  • Specialized nodes serving one piece

"PS nodes don't serve everything. They serve one piece. Proofs batch across nodes sharing the same state root."

// ALREADY REAL

Already Shipping


# Run a partial stateful node geth --partial-state \ --partial-state.contracts 0xA0b8...USDC,0x6B17...DAI \ --partial-state.chain-retention 1024
59 GB
Mainnet (USDC + DAI)
79%
vs full state
Glamsterdam '26
BALs land — PS becomes possible
Hegota '26
AA decision impacts PS compatibility
Next forks
ZKEVMs — PS becomes essential

go-ethereum PR #33764 — only geth for now. Opportunity for other clients.

Source: github.com/ethereum/go-ethereum/pull/33764
Try it. Break it. Tell us.

CPerezz

github.com/ethereum/go-ethereum/pull/33764