Wanted to shine some light on a Hegotá non-headliner worth paying attention to in the run-up to zkAttesting:
EIP-7709 ('Read BLOCKHASH from storage and update cost'), to be proposed for inclusion at this Thursday's ACDE
Tl;dr a forward-looking, minimally invasive EIP that simplifies stateless execution and removes a protocol special case
Background: BLOCKHASH as an EVM opcode lets contracts read a recent block's hash (up to 256 back), which is used for example in the context of commit-reveal schemes.
Today it's priced at 20 gas, i.e. very cheap and close to free in practice, because for a stateful node holding recent blocks locally, that's roughly what it costs.
Meanwhile, EIP-2935 (live since Pectra) has been quietly writing those hashes into a system contract's storage every block. The data is already in state. BLOCKHASH just does not acknowledge it. The opcode still behaves as a bespoke in-memory lookup rather than a regular state read.
This duplication is fine for stateful clients, which already hold the data locally. But the stateless execution path – what provers target and zkAttesters verify – has to carry an extra path just for this one opcode, on top of the standard state-proof handling already used for everything else.
EIP-7709 removes this special case. It treats in-range BLOCKHASH as the storage read it already is, with regular SLOAD pricing.
No behavior change for users or contracts. By routing it through the same witness machinery as every other state read, the execution witness becomes more standardised and provers stop paying for a workaround.
Honest tradeoff: contracts that rely on cheap BLOCKHASH will pay more gas. A benchmarking analysis on user impact is underway.
Zooming out, every special case the protocol carries today, zkAttesting inherits tomorrow.
Optional zkEVM proofs (EIP-8025) are on the horizon, and cleaning this up now thus appears worth considering.