Evaluated on: · Spec revision: 2025-09-17 · 28578c7ba0
Scope at the cutoff. At the information cutoff, the proposal added three execution-layer opcodes at 0xe6 through 0xe8 for immediate-encoded deep duplication, deep swapping, and pairwise exchange of stack items. Each opcode carries a one-byte immediate and charges a fixed 3 gas, while selected immediate values are forbidden so that existing JUMPDEST and PUSH interpretation remains unchanged. The stated scope is opcode semantics, encoding and decoding, assembly/disassembly, and execution; it does not introduce transaction, block, state, precompile, or external-interface changes.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 2 criteria affected
- Plausible range
- 12–14 (Medium)
- Assessment cutoff
- 2025-10-29 · EIP revision
28578c7ba0(2025-09-17)
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: 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: Material but localized under-specification is present. The formal algorithms read code[pc + 1] without explicitly defining a missing immediate at end-of-code, and stack-fault behavior is left to implicit base-EVM conventions. This chiefly affects boundary baselining rather than the proposal's overall design.
Plausible total
12–14
recorded score 13 · plausible tiers Medium
Affected criteria (2)
Unresolved questions at the cutoff (2)
- What exact execution result and program-counter treatment applies when DUPN, SWAPN, or EXCHANGE is the final byte of code and code[pc + 1] is unavailable?
- Are stack underflow and overflow for every decoded depth intended to inherit existing EVM exceptional-halt behavior without additional wording?
Notable ambiguities noted by the assessor (3)
- The final-byte immediate case is not explicitly defined even though every formal opcode algorithm reads code[pc + 1].
- The phrase "revert, consuming all gas" appears to specify an exceptional halt, but it does not use a precise named base-EVM exception.
- The gas anchor can be read narrowly as only a new fixed opcode cost; this assessment treats the three isolated cost rules as a new accounting rule without effects on existing schedules.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 3 | The EIP introduces multiple opcodes and each has a data portion plus nontrivial decoded stack indexing; EXCHANGE also decodes two operands. At least one is complex under the anchor, so multiple additions warrant score 3. |
Confidence: High |
| Edge/boundary conditionsUnder-specified | 3 | Multiple independent boundary families require coverage: allowed versus forbidden immediate ranges, both decode branches, pair constraints, program-counter and instruction-boundary behavior, and stack underflow/overflow at decoded depths. The combinatorial encoding and JUMPDEST/PUSH compatibility surface calls for an elevated number of cases, matching score 3. |
Confidence: High Uncertainty: The terminal-byte immediate case is not explicitly specified and is recorded under under-specification. |
| EVM Gas rule changes | 2 | The proposal creates gas rules for new operations but leaves existing opcode gas schedules and accounting mechanisms unchanged. This matches the score-2 anchor for a new, isolated gas-accounting rule that does not alter existing mechanisms. |
Confidence: High |
| Security risks | 2 | The stack operations are localized, but their unusual immediate-validity rules interact with instruction decoding, static analysis, and consensus-critical jump destinations. Preserving the stated backwards-compatibility invariant warrants targeted review and fuzzing across this limited set of components, matching score 2. |
Confidence: Medium Uncertainty: The proposal asserts that no additional risks are known, so the score reflects review burden from the documented decoding interaction rather than a known vulnerability. |
| Patterns affecting pre-existing tests | 1 | Existing tests that deliberately execute the formerly undefined opcode bytes or test nearby instruction boundaries need limited expectation updates. The explicit compatibility design prevents this from extending beyond a minor, specialized subset, matching score 1. |
Confidence: Medium Uncertainty: The sealed package contains no pre-existing test inventory, so the affected subset size is inferred from the proposal's compatibility guarantee. |
| Performance risks | 1 | The new deep-index decode and stack operations merit isolated validation of the fixed gas-cost assumption, but are self-contained and are not expected to disturb existing performance behavior. This matches score 1. |
Confidence: Medium Uncertainty: No benchmark evidence is packaged; the validation scope is inferred from the proposal's gas-cost rationale. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | A few constructible boundary cases rely on an implicit base-EVM reading, most notably an opcode at the final byte with no immediate available. The intended use of established code-fetch and stack-fault conventions is apparent and localized, so this fits score 1 rather than requiring broad design agreement. |
Confidence: Medium Uncertainty: It is unclear from the sealed text alone whether end-of-code reads and all stack fault paths are intended to inherit existing EVM conventions without an explicit rule. |
Show 21 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 0 | Adding behavior at formerly undefined opcode values is scored as added opcodes, not modification or deprecation of an existing opcode. |
|
| Added precompiles | 0 | No precompile is introduced. |
|
| Modified precompiles | 0 | No existing precompile logic or gas accounting is modified. |
|
| Added system contracts | 0 | No system contract is added. |
|
| Modified system contracts | 0 | No existing system-contract code or state is directly or indirectly modified. |
|
| State-access ordering within opcode execution | 0 | No opcode performs a state access, so neither state-access placement nor gas-charge ordering relative to a state access changes. |
|
| Blob gas accounting changes | 0 | No blob gas accounting is introduced or modified. |
|
| State gas accounting changes | 0 | No state-writing charge, state-gas rate, budget, reservoir, or spill rule changes. |
|
| New EVM gas refund | 0 | The proposal introduces no gas-refund mechanism. |
|
| New transaction types | 0 | No transaction type is added. |
|
| New or modified transaction validity mechanisms | 0 | No transaction validity rule or intrinsic-gas calculation changes. |
|
| New block / header fields | 0 | No block or block-header field is introduced. |
|
| Encoding changes (RLP/SSZ) | 0 | Bytecode instruction encoding is outside this anchor's transaction, block, and interface RLP/SSZ scope. |
|
| Block syncing changes | 0 | No block RLP field or validation mechanism is introduced. |
|
| New fork activation mechanism | 0 | The EIP requires no fork-block state or internal-variable modification. |
|
| Engine API changes | 0 | No Engine API communication field or mechanism changes. |
|
| Transition-tool interface changes | 0 | Opcode execution can be exercised through existing transition inputs, with no new transition-tool interface field. |
|
| New invariant on pre-existing tests | 0 | Some old invalid-opcode expectations may be reworked, but unrelated tests do not gain an additional EIP-produced value or invariant to assert. |
|
| New test-framework primitives | 0 | Raw bytecode, stack-result, success, and exceptional-halt cases can be represented with ordinary EVM test capabilities; the proposal does not require a new reusable expectation or modifier primitive. |
Uncertainty: The package does not describe the test framework, but none of the proposed assertions requires a novel result type. |
| Cryptography | 0 | No cryptographic mechanism is introduced or modified. |
|
| Cross-EIP interactions | 0 | The proposal is self-contained at the EIP level and identifies no coordinated cross-EIP testing requirement. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@28578c7ba0EIPS/eip-8024.md committed 2025-09-17 · information cutoff 2025-10-29T02:00:31Z- 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-8024.yaml· sha2565f3bb2571aae