Evaluated on: · Spec revision: 2024-11-07 · fd89c8f734
Scope at the cutoff. EIP-7610 extends the EIP-684 address-collision rule for contract creation. Creation by a creation transaction, CREATE, CREATE2 or any other route MUST throw, as if the first init-code byte were an invalid opcode, when the destination has a nonzero nonce, nonzero code length or non-empty storage. Non-empty storage is the new condition. The rule MUST apply retroactively to all existing blocks, although the Backwards Compatibility section also says a hard fork is required. The EIP says coverage will come from refilling existing tests that deploy to addresses with storage.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 2 criteria affected
- Plausible range
- 9–11 (Low)
- Assessment cutoff
- 2025-09-24 · EIP revision
fd89c8f734(2024-11-07)
Score bands · Checklist revision 3
- 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: 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 normative text requires retroactive application, while the Backwards Compatibility section says a hard fork is required. This leaves expected behavior for pre-Amsterdam fixtures slightly unclear, though the normative MUST favors retroactive application. The target also does not say how a storage-only account with zero balance (empty under EIP-161) is treated after a failed creation, i.e. whether it is touched and deleted.
Plausible total
9–11
recorded score 10 · plausible tiers Low
Unresolved questions at the cutoff (3)
- Does the rule apply retroactively in pre-Amsterdam test forks, or only from the Amsterdam hard fork?
- Is a storage-only account with zero balance touched by a failed creation attempt, and so deleted as empty under EIP-161 at the end of the transaction?
- Does 'non-empty storage' refer to committed storage (storage root) or to current in-transaction storage?
Notable ambiguities noted by the assessor (3)
- Retroactive application (Specification) versus 'requires a hard fork' (Backwards Compatibility).
- The EIP-161 definition of an empty account ignores storage, so storage-only collision targets with zero balance may interact with state clearing.
- The EIP says to refill existing tests but gives no new explicit test vectors.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | The semantics of CREATE and CREATE2 change: they fail, return zero on the stack and leave no deployment, for destinations that have storage but zero nonce and no code. This goes beyond a gas-only change. |
Confidence: High |
| Patterns affecting pre-existing testsUnder-specified | 2 | Ordinary cases throughout the creation-collision family need new expected results: post-state, gas consumed and the success flag returned by CREATE/CREATE2. The affected paths are creation transactions, CREATE and CREATE2 at storage-only destinations, which share one rule rather than requiring a common rewrite across distinct families. The retroactive rule extends the rework to earlier-fork fixtures within that family. |
Confidence: Medium Uncertainty: No test suite was supplied, so the number of tests and how they spread across families is estimated. If storage-only pre-states appear in many unrelated families, the score could approach 3. |
| Cross-EIP interactions | 2 | Coordinated cases are needed for the combined EIP-684 + EIP-7610 collision predicate: nonce × code × storage across all creation routes. EIP-161 empty-account semantics also need coordinated cases for storage-only accounts with zero balance used as collision targets. These cases go beyond local checks but do not restructure shared vectors across many EIPs. |
Confidence: Medium Uncertainty: How the EIP-161 touch/delete rule applies to storage-only accounts after a failed creation is not resolved in the supplied text. Interacting EIPs: EIP-684, EIP-161 |
| Security risks | 1 | The new condition is a local collision check that can be validated within the creation logic. It does not change other components' trust assumptions. |
Confidence: Medium |
| Edge/boundary conditions | 1 | Exactly one boundary-sensitive mechanism changes: the collision predicate, now including storage emptiness. Combinations of nonce, code and storage, across creation transactions, CREATE and CREATE2, form a matrix, but it belongs to a single mechanism. |
Confidence: High |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | The activation scope of the rule is a localized point of conflict. The normative MUST supports one intended outcome, retroactive application, which matches the plan to refill existing tests. The touch/delete behavior of storage-only empty accounts after a failed creation is not addressed in the target. It may be defined by baseline rules that were not supplied. |
Confidence: Medium Uncertainty: Expected results for storage-only accounts with zero balance after a collision (touched and deleted under EIP-161, or left intact) may be specified in baseline rules not supplied. If not, the score would be 2. |
Show 22 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | None. |
|
| Added precompiles | 0 | None. |
|
| Modified precompiles | 0 | None. |
|
| Added system contracts | 0 | None. |
|
| Modified system contracts | 0 | None. |
|
| EVM Gas rule changes | 0 | No execution-gas charging, metering or settlement rule changes. Gas results change only because an existing halt rule now applies to more cases, and that is counted under PAT. |
|
| State-access ordering within opcode execution | 0 | The check is an extra predicate on an account that the EIP-684 collision check already inspects. No instruction's access or gas-charge ordering is changed or newly specified. |
Uncertainty: One could argue that the storage-emptiness check is a new kind of state access. The text gives it no ordering or access-recording rule. |
| Blob gas accounting changes | 0 | No blob-gas rule changes. |
|
| State gas accounting changes | 0 | No state-gas accounting change. |
|
| New EVM gas refund | 0 | No new refund. |
|
| New transaction types | 0 | None. |
|
| New or modified transaction validity mechanisms | 0 | The outcome is an execution failure, not a transaction-validity rule. Intrinsic gas and inclusion rules are unchanged. |
|
| New block / header fields | 0 | None. |
|
| Encoding changes (RLP/SSZ) | 0 | None. |
|
| Block syncing changes | 0 | Only an execution rule changes. |
|
| New fork activation mechanism | 0 | No one-time state transition is required at activation; the change selects a rule only. |
Uncertainty: Whether the rule activates at a fork or retroactively is ambiguous, but neither reading needs a state transition. |
| Engine API changes | 0 | None. |
|
| Transition-tool interface changes | 0 | Existing allocation inputs can already express storage-only accounts, so no transition-tool interface change is needed. |
|
| New invariant on pre-existing tests | 0 | Existing tests need no new kind of assertion; only existing expected values change. |
|
| New test-framework primitives | 0 | Testing needs pre-state accounts with storage but zero nonce and no code, plus existing creation primitives. No new abstraction is required. |
|
| Performance risks | 0 | The supplied evidence establishes no changed resource bound or workload needing benchmarks. A storage-emptiness lookup per creation is bounded. |
Uncertainty: On some client storage layouts, a storage-emptiness check may cost more than reading the nonce or code. The supplied text does not address this. |
| Cryptography | 0 | No cryptographic change. |
|
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 3 ·
ethspecs/pm@fe2f793b03 - Evaluator
- Opus 5.5 (
claude-opus-5-5) at high effort, one tool-less call per EIP · isolationbubblewrap_claude_p_no_tools_v1 - Source record
- Frozen research record
research/tasks/10-opus-v3-reassessment/retrospective/outputs/assessments/amsterdam/eip-7610.yaml· sha25630797d821deb - Supporting documents supplied with the EIP
supporting/eip-161.md,supporting/eip-684.md