Coin Brief ENDE

EIP-8253 lists the 28 Mainnet accounts a fork would bump to retire an old edge case

An update to EIP-8253, merged into the EIPs repository on 12 October, adds the Mainnet prestate values the proposal needs and genesis and devnet allocations, so client teams can test it against Mainnet's real state.

What EIP-8253 does. The draft, by Jochem Brouwer, would set the nonce to 1 at the start of a designated fork block for a configured list of accounts that have empty code, zero nonce and non-empty storage. Before EIP-161 (Spurious Dragon), CREATE did not increment the nonce before running init code, so a constructor that wrote storage and returned no code left exactly this shape behind. It is the only case where "zero nonce and empty code" does not imply "empty storage" — and a later contract creation landing on such an address would inherit that storage.

Why a nonce bump. EIP-684 already forbids CREATE and CREATE2 to an address with non-zero nonce. Bumping these accounts to nonce 1 makes them fail that existing check. The alternative — checking for empty storage at the destination of every contract creation — would add a runtime check, and for some clients an extra disk read, paid forever to guard a set of addresses that has not grown since Spurious Dragon. The EIP says the targeted Mainnet addresses are unreachable; the aim is to retire the shape and the analysis and test burden it imposes on later proposals.

EIP-8253 lists the 28 Mainnet accounts a fork would bump to retire an old edge case
EIP-8253 lists the 28 Mainnet accounts a fork would bump to retire an old edge case — Coin Brief

What the update adds. The Mainnet list is published as targeted-accounts.json with 28 entries. The storage values are taken from block 26178891, which the author notes is finalized. The PR describes how to verify them: check each storage root against eth_getProof, and for completeness confirm that the list contains every account with empty code, nonce 0, non-empty storage and non-zero balance — since a zero-value account would count as empty under EIP-161 and be deleted when touched. Balance increases do not matter, the author adds, because the fix only bumps the nonce.

Status. EIP-8253 remains a Draft; inclusion in a fork is not decided by this merge. The specification also says the list of one chain must not be reused on another without re-deriving it against that chain's state.

Source: ethereum/EIPs, pull request 12495 "Update EIP-8253: Add Mainnet prestate values + genesis/devnet alloc" — https://github.com/ethereum/EIPs/pull/12495