Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Execution-layer assessment of the draft EIP-7709 snapshot. The proposal changes the existing BLOCKHASH opcode so that in-window lookups have the gas, warming, and state-access-recording effects of an SLOAD from the EIP-2935 history contract's ring-buffer slot, while preserving the existing return-value window.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 4 criteria affected
- Plausible range
- 18–21 (Medium)
- Snapshot
- 2026-08-25 · EIP revision
ac450a4ab2(2026-08-25)
Score bands · Checklist revision 2
- Low <12
- Medium 12–22
- High ≥23
28 criteria scored 0–3 (4 in exceptional cases; cross-EIP interactions is uncapped); nominal maximum 84.
Complexity profile
Each segment is one criterion's contribution to the LLM total. Hover or focus a segment for its score and rationale.
Top complexity drivers
- Modified opcodes3
- Edge/boundary conditions3
- Unspecified behavior requiring cross-client consensus3
- Security risks2
Under-specified at assessment cutoff: Yes
The EIP text available at the assessment cutoff left material behavior unresolved. The affected criteria and the plausible total range record that uncertainty.
Why: The draft fixes the result, slot, and required SLOAD-like effects, but does not explicitly specify their ordering relative to the original BLOCKHASH charge at insufficient-gas boundaries. It also leaves the fork timestamp and concrete satisfaction of the EIP-2935 history-age prerequisite unresolved.
Plausible total
18–21
recorded score 20 · plausible tiers Medium
Unresolved questions at the cutoff (3)
- In what exact order are the base BLOCKHASH charge, cold/warm determination, SLOAD charge, state-access recording, and slot warming applied when available gas ends between steps?
- What FORK_TIMESTAMP will be used, and how is the requirement for at least 256 prior EIP-2935 blocks (or genesis activation) guaranteed for each activated network?
- If that activation-age assumption is violated, is the value read from the unfilled history slot authoritative, or must clients apply another behavior?
Notable ambiguities noted by the assessor (3)
- “Entire semantics and effects of SLOAD” is clear about the required effect set but not about its placement relative to the pre-existing BLOCKHASH charge.
- Three resolution strategies are allowed, so clients must demonstrate identical gas, warming, and access-recording behavior without a single prescribed execution path.
- The activation section states prerequisites as assumptions and does not normatively define behavior for a deployment that violates them.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | Although its returned value is preserved, at least one pre-existing opcode's observable behavior beyond gas is modified, invoking the rubric's binary score of 3. |
Confidence: High Uncertainty: The precise ordering of those effects is unresolved but their introduction is explicit. |
| Edge/boundary conditionsUnder-specified | 3 | Multiple boundary-prone mechanisms interact, and the in/out-of-window boundary requires an elevated matrix across gas sufficiency, cold/warm status, repeated access, access recording, and activation history. |
Confidence: High Uncertainty: The package specifies representative cases but not the complete cross-product or the handling of an incorrectly spaced activation. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 3 | A previously non-state-accessing opcode gains consensus-observable access records and warming. The unspecified charge/access sequence can produce different observable results at gas boundaries and therefore requires cross-client agreement and re-baselining. |
Confidence: Medium Uncertainty: Referring to the entire active-fork SLOAD semantics may settle part of the sequence, but the placement of the existing BLOCKHASH charge relative to that sequence is not explicit. |
| Security risks | 2 | The mechanism touches a limited set of existing consensus-critical components and slightly alters resource and access-state assumptions, warranting targeted review and fuzzing. |
Confidence: Medium Uncertainty: The snapshot gives no EIP-7709-specific threat analysis beyond inheriting EIP-2935 considerations. |
| Performance risks | 2 | The cost can be microbenchmarked, but end-to-end effects depend on state/cache and access-recording behavior; impact is limited to in-window BLOCKHASH execution. |
Confidence: Medium Uncertainty: The permitted implementation choices leave concrete performance costs client-dependent. |
| Cross-EIP interactionsUnder-specified | 2 | Coordinated testing is required with EIP-2935 and its EIP-2929 cold/warm behavior, plus whatever active-fork access-recording rule applies; the dependency is strong but localized. |
Confidence: High Uncertainty: The active-fork state-access-recording dependency is not identified by EIP number in the package. Interacting EIPs: EIP-2935, EIP-2929 |
| Modified system contracts | 1 | The pre-existing history contract has a minor indirect gas-context effect: a prior BLOCKHASH can warm its storage slot for later access, without code or state modification. |
Confidence: Medium Uncertainty: Clients may avoid executing the contract, but must reproduce the same warming effect. |
| EVM Gas rule changes | 1 | The gas accounting of an existing opcode is updated by composing it with the existing SLOAD schedule; no separate new gas-accounting mechanism is defined. |
Confidence: High Uncertainty: The amounts are inherited from the active fork, while their exact ordering is handled separately under state-access ordering and under-specification. |
| State-access ordering within opcode executionUnder-specified | 1 | The state-access and gas-charge path changes for the one BLOCKHASH opcode, which matches the single-opcode anchor. |
Confidence: Medium Uncertainty: The text does not explicitly order the original BLOCKHASH charge, the SLOAD charge, access recording, and warming at every insufficient-gas boundary. |
| Patterns affecting pre-existing tests | 1 | A minor, opcode-specific subset of existing tests must be updated for gas and access effects; the change does not rework diverse transaction or block categories. |
Confidence: Medium Uncertainty: The package does not enumerate the pre-existing test corpus. |
| New invariant on pre-existing tests | 1 | A narrow category of otherwise pre-existing BLOCKHASH tests gains additional access-state assertions, rather than every test in the fork gaining an invariant. |
Confidence: Medium Uncertainty: Which test formats expose active-fork access records is not specified. |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added. |
Uncertainty: None. |
| Added precompiles | 0 | No precompile is added. |
Uncertainty: None. |
| Modified precompiles | 0 | No pre-existing precompile is modified. |
Uncertainty: None. |
| Added system contracts | 0 | No new system contract is added by this proposal. |
Uncertainty: Dependency on an existing system contract is scored under cross-EIP interactions. |
| Blob gas accounting changes | 0 | No blob gas accounting changes are introduced. |
Uncertainty: The package contains no blob-gas surface. |
| State gas accounting changes | 0 | No state-writing gas rate, charging site, budget, reservoir, or spill rule changes. |
Uncertainty: Slot warming is an access effect and is not a state-gas write charge. |
| New EVM gas refund | 0 | No EVM gas-refund mechanism is added or changed. |
Uncertainty: No refund behavior appears in the sealed proposal. |
| New transaction types | 0 | No new transaction type is introduced. |
Uncertainty: None. |
| New or modified transaction validity mechanisms | 0 | The change affects runtime opcode execution only, not transaction validity mechanisms. |
Uncertainty: Runtime out-of-gas behavior is distinct from intrinsic validity under this anchor. |
| New block / header fields | 0 | No new block or header field is introduced. |
Uncertainty: None. |
| Encoding changes (RLP/SSZ) | 0 | No RLP, SSZ, or other transaction/block/interface encoding change is introduced. |
Uncertainty: The modulo slot mapping is not an interface encoding change. |
| Block syncing changes | 0 | No block-RLP validation or sync mechanism is introduced. |
Uncertainty: The proposal's history prerequisite does not itself modify block encoding validation. |
| New fork activation mechanism | 0 | This is an ordinary rule switch, not a fork-block state mutation mechanism. |
Uncertainty: The timestamp and deployment spacing remain TBD, but the EIP prescribes no activation-block mutation. |
| Engine API changes | 0 | The proposal has no Engine API surface. |
Uncertainty: None within the sealed package. |
| Transition-tool interface changes | 0 | No transition-tool interface modification is required by the text. |
Uncertainty: FORK_TIMESTAMP is TBD, but that is a parameter gap rather than a new interface field. |
| New test-framework primitives | 0 | Existing EVM gas, storage-access, and fork test primitives appear sufficient. |
Uncertainty: No test-framework inventory is part of the package, so this rests on the specified case shapes. |
| Cryptography | 0 | No new or modified cryptography mechanism is specified. |
Uncertainty: Block hashes are data being retrieved, not a new cryptographic mechanism here. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-7709.md committed 2026-08-25 · information cutoff 2026-08-25T11:56:58Z- Rubric
- Checklist revision 2 ·
ethspecs/pm@3d8c0128c5 - Evaluator
- gpt-5.6-sol at xhigh reasoning effort · isolation
bubblewrap_one_eip_capsule_v1 - Source record
- Frozen research record
research/tasks/08-hegota-prospective-complexity-assessment/outputs/assessments/hegota-pfi-2026-08-26/eip-7709.yaml· sha256a0e76be8f159 - Supporting documents in the sealed package
supporting/eip-2935.md