Evaluated on: · Spec revision: 2024-11-07 · fd89c8f734
Scope at the cutoff. At the selected historical revision, EIP-7610 extends the contract-creation collision rule so that creation transactions, CREATE, CREATE2, and any other creation path must fail when the destination has non-empty storage, in addition to the existing nonzero-nonce and nonzero-code conditions. It amends EIP-684 to protect legacy accounts whose zero nonce and zero-length code could coexist with storage before EIP-161, and specifies the same invalid-init-code failure behavior for all creation paths. The EIP expects existing non-empty-storage deployment tests to provide coverage after their expected results are refilled.
- Evaluator
- LLMChecklist v2
- Confidence
- High
- Under-specified at assessment cutoff
- No
- Plausible range
- 9–9 (Low)
- Assessment cutoff
- 2025-09-24 · EIP revision
fd89c8f734(2024-11-07)
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
Under-specified at assessment cutoff: No
The EIP text available at the assessment cutoff left material behavior unresolved. The affected criteria and the plausible total range record that uncertainty.
The assessor found no material behavior left unresolved by the EIP text at the cutoff.
Notable ambiguities noted by the assessor (1)
- The EIP does not quantify what share of the existing test corpora is meant by "quite a number," so the boundary between scores one and two for affected pre-existing tests is judgmental.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | At least two pre-existing opcodes have a non-gas behavioral result changed; the rubric's binary modified-opcode anchor therefore requires score three. |
Confidence: High |
| Security risks | 2 | A mistake could leave a creation path able to violate the intended code- immutability protection. The change is limited to creation collision and destination state but spans several existing entry paths, supporting the targeted-review score-two anchor rather than a fully isolated score one. |
Confidence: High |
| Cross-EIP interactions | 2 | The proposal directly modifies EIP-684 and must account for the EIP-161 historical boundary. Coordinated testing is therefore required across two identified EIPs, but the interaction is confined to creation collision and legacy account state, matching score two. |
Confidence: High Interacting EIPs: EIP-161, EIP-684 |
| Patterns affecting pre-existing tests | 1 | Existing expected outcomes must be updated, but only for the narrow and contrived category of creation into non-empty storage. This is best matched by the minor-subset score-one anchor. |
Confidence: Medium Uncertainty: The EIP calls the affected tests "quite a number" but does not quantify their share of either test corpus. |
| Edge/boundary conditions | 1 | The EIP introduces one edge-case-prone mechanism: distinguishing empty from non-empty destination storage when the other collision fields are zero. Multiple entry paths are cases of that single mechanism, matching score one. |
Confidence: High |
Show 23 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added. |
|
| Added precompiles | 0 | No precompile is added. |
|
| Modified precompiles | 0 | No pre-existing precompile is modified. |
|
| Added system contracts | 0 | No system contract is added. |
|
| Modified system contracts | 0 | No direct or package-identified indirect system-contract modification is introduced, so the zero anchor applies. |
|
| EVM Gas rule changes | 0 | The proposal changes the result of a creation collision, not EVM gas accounting, so it matches the zero anchor. |
|
| State-access ordering within opcode execution | 0 | The added condition changes the collision result but does not specify a new ordering point or move an existing state access inside an opcode, matching the zero anchor. |
Uncertainty: The proposal does not discuss whether an implementation treats determining storage emptiness as a separate observable access, but it places the condition in the already existing collision check. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified. |
|
| State gas accounting changes | 0 | A state-dependent validity condition is not a state gas accounting change, so the zero anchor applies. |
|
| New EVM gas refund | 0 | No new gas-refund mechanism is introduced. |
|
| New transaction types | 0 | No new transaction type is introduced. |
|
| New or modified transaction validity mechanisms | 0 | The change is to execution outcome after a creation is attempted, not to transaction validity or intrinsic-gas calculation, so the zero anchor applies. |
|
| New block / header fields | 0 | No block or block-header field is added. |
|
| Encoding changes (RLP/SSZ) | 0 | No RLP, SSZ, or other covered encoding change is introduced. |
|
| Block syncing changes | 0 | No block RLP validation mechanism is introduced. |
|
| New fork activation mechanism | 0 | Activating an execution rule in a hard fork is not itself the special activation-block modification covered by this anchor, so the score is zero. |
|
| Engine API changes | 0 | The Engine API is unchanged, matching the zero anchor. |
|
| Transition-tool interface changes | 0 | No transition-tool interface modification is required by the proposal, so the zero anchor applies. |
|
| New invariant on pre-existing tests | 0 | The affected tests change their expected result; pre-existing unrelated tests gain no additional invariant to assert, matching the zero anchor. |
|
| New test-framework primitives | 0 | Reusing and refilling existing tests indicates that existing framework primitives suffice, matching the zero anchor. |
|
| Performance risks | 0 | The historical text presents no mechanism whose test complexity requires performance benchmarking, so the zero anchor is the best-supported score. |
Uncertainty: The EIP does not discuss the runtime cost of determining storage emptiness; no package evidence establishes a material performance risk. |
| Cryptography | 0 | No cryptography mechanism is introduced or changed. |
|
| Unspecified behavior requiring cross-client consensus | 0 | For constructible empty-versus-non-empty-storage collision cases, the proposal supplies a single result and inherited failure semantics. The reported prior disagreement is the behavior the rule resolves, not an open choice left for cross-client agreement. |
Uncertainty: "Non-empty storage" is not separately formalized in the EIP, but its intended state predicate is sufficiently direct that no alternative outcome is supported by the package. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@fd89c8f734EIPS/eip-7610.md committed 2024-11-07 · information cutoff 2025-09-24T14:40:52Z- 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/05-retrospective-complexity-assignment/outputs/fork-eips/amsterdam/eip-7610.yaml· sha25601edd717bb9c - Supporting documents in the sealed package
supporting/eip-161.md,supporting/eip-684.md