Evaluated on: · Spec revision: 2022-02-03 · d38a4add0c
Scope at the cutoff. At this revision, EIP-3860 sets MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152 bytes. It also adds initcode_cost = 2 * ceil(len(initcode)/32) gas. A create transaction whose initcode is larger than the limit is invalid, and initcode_cost is added to the create transaction's intrinsic gas. For CREATE and CREATE2, initcode larger than the limit pushes 0 on the stack, and initcode_cost is charged before address calculation and initcode execution. For CREATE2 this charge comes on top of the EIP-1014 hashcost.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 3 criteria affected
- Plausible range
- 18–22 (Medium)
- Assessment cutoff
- 2022-02-04 · EIP revision
d38a4add0c(2022-02-03)
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
- Modified opcodes3
- EVM Gas rule changes3
- State-access ordering within opcode execution2
- New or modified transaction validity mechanisms2
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 rules conflict on whether an oversized create transaction is invalid (rule 1) or includable with an exceptional abort (Backwards Compatibility). The failure path for oversized CREATE/CREATE2 initcode does not say how gas is charged, what happens to the nonce, or how the check is ordered.
Plausible total
18–22
recorded score 21 · plausible tiers Medium
Unresolved questions at the cutoff (5)
- Is an oversized create transaction invalid, or includable but aborting?
- For oversized CREATE/CREATE2 initcode, are initcode_cost and memory expansion charged before the check pushes 0?
- Is the sender nonce incremented, or the target address warmed, when the size check fails?
- How is the size check ordered against the balance, call-depth and gas checks?
- Is the gas passed to the child frame consumed when the size check fails?
Notable ambiguities noted by the assessor (3)
- Backwards Compatibility contradicts Rule 1 on how oversized create transactions are handled.
- The Rationale contains a TODO: the maximum initcode size seen on mainnet is not stated.
- It is unclear whether 'push 0' for oversized initcode also consumes gas or clears return data.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | A new size-limit failure in CREATE and CREATE2 changes their semantics beyond gas. |
Confidence: High |
| EVM Gas rule changes | 3 | The EIP adds a new per-word initcode charge at two sites: intrinsic gas and the CREATE/CREATE2 opcodes. This changes the expected gas of baseline operations: every create transaction and every CREATE/CREATE2 with non-empty initcode. A new mechanism that also changes baseline gas results meets level 3. |
Confidence: Medium Uncertainty: Because the charge reuses the existing per-word scheme used by CREATE2's hashcost, it could be read as only a parameter change (level 1). |
| State-access ordering within opcode executionUnder-specified | 2 | Both CREATE and CREATE2 need an ordering rule for the new size check and the new charge relative to the state they touch (sender nonce, created-address warming, endowment). Ordering changes for multiple opcodes meet level 2. |
Confidence: Low Uncertainty: The charge may just join the existing upfront charges without changing any state-access ordering, which would make this 0. Where the limit check sits is unspecified. |
| New or modified transaction validity mechanismsUnder-specified | 2 | There is a new size-based validity rule and a changed intrinsic gas rule for create transactions. Both need dedicated cases across existing transaction types, but the existing validation sequence stays usable. |
Confidence: Medium Uncertainty: The Backwards Compatibility text says oversized transactions are still includable but abort, which contradicts rule 1. The outcome depends on which text is followed. |
| Patterns affecting pre-existing tests | 2 | Baseline tests for create-transaction intrinsic gas, CREATE gas and CREATE2 gas need new expected gas and balances, and large-initcode cases need new outcomes. This rework covers ordinary cases throughout the contract-creation families. |
Confidence: Medium Uncertainty: Any test that deploys via a create transaction sees changed gas and balances, so the impact could be broad enough for level 3. |
| Edge/boundary conditionsUnder-specified | 2 | There are several boundary-sensitive mechanisms: the transaction size limit, the opcode size limit, the per-word ceiling and the intrinsic-gas sufficiency threshold. None is shown to have an elevated matrix, so this is level 2. |
Confidence: Medium Uncertainty: The spec does not settle how oversized initcode combines with gas sufficiency in CREATE/CREATE2. Does the size check or the OOG/initcode charge come first? If that ordering changes outcomes, the matrix could be elevated. |
| Cross-EIP interactions | 2 | CREATE2 tests need coordinated cases where the EIP-1014 hashcost and the new initcode cost are combined at gas and size boundaries. The EIP-170 interaction needs only compatibility checks. |
Confidence: Medium Uncertainty: EIP-3670 is only referenced as future work and is not in the baseline. Interacting EIPs: EIP-1014, EIP-170 |
| Unspecified behavior requiring cross-client consensus | 2 | Rules conflict on whether oversized create transactions are invalid or includable-but-aborting. The CREATE/CREATE2 failure path also leaves localized outcomes (gas, nonce, ordering) open. Clients must agree before expected results can be fixed. |
Confidence: Medium Uncertainty: Rule 1 is normative and probably prevails over the Backwards Compatibility text. |
| New test-framework primitives | 1 | The intrinsic-gas calculation needs a local extension. No new abstraction is required. |
Confidence: Medium |
| Security risks | 1 | The new limit and charge can be checked locally in the create paths. |
Confidence: Medium |
| Performance risks | 1 | Validating the per-word cost against the bounded worst case needs component benchmarks of jumpdest analysis. Baseline end-to-end assumptions are unchanged. |
Confidence: Medium |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new instruction is added. |
|
| Added precompiles | 0 | None. |
|
| Modified precompiles | 0 | None. |
|
| Added system contracts | 0 | None. |
|
| Modified system contracts | 0 | None. |
|
| Blob gas accounting changes | 0 | Blob-gas accounting does not change. |
|
| State gas accounting changes | 0 | The new charge covers jumpdest analysis, not state writes. State-gas accounting does not change. |
|
| New EVM gas refund | 0 | There is no refund mechanism. |
|
| New transaction types | 0 | No new transaction envelope is introduced. |
|
| New block / header fields | 0 | None. |
|
| Encoding changes (RLP/SSZ) | 0 | There are no codec changes. |
|
| Block syncing changes | 0 | Block decoding and structural validation are unchanged. |
|
| New fork activation mechanism | 0 | Selecting new rules at activation is not an activation-specific transition. |
|
| Engine API changes | 0 | There are no Engine API changes. |
|
| Transition-tool interface changes | 0 | Fork-aware rule selection needs no interface change. |
|
| New invariant on pre-existing tests | 0 | The changes are to gas and limits, which count as rework, not new assertions. |
|
| Cryptography | 0 | No cryptographic rule changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@d38a4add0cEIPS/eip-3860.md committed 2022-02-03 · information cutoff 2022-02-04- 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/shanghai/eip-3860.yaml· sha25620bc2d9f06ce - Supporting documents supplied with the EIP
supporting/eip-170.md,supporting/eip-1014.md