Evaluated on: · Spec revision: 2023-06-29 · 28cbb0162f
Scope at the cutoff. At the selected revision, EIP-7002 proposed a new stateful, value-accepting precompile through which an execution-layer withdrawal credential could queue a validator exit. The execution layer would maintain a persistent FIFO queue and an EIP-1559-style dynamic exit fee, append up to 16 queued exits and an exits-root commitment to each block, and update the queue and fee state after block execution. The consensus-layer portion was only a sketch: exits would be carried in the ExecutionPayload and processed with voluntary-exit-like rules whose validation failures would not invalidate the block.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 10 criteria affected
- Plausible range
- 33–44 (High)
- Assessment cutoff
- 2024-01-18 · EIP revision
28cbb0162f(2023-06-29)
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
- New block / header fields3
- Encoding changes (RLP/SSZ)3
- Block syncing changes3
- Patterns affecting pre-existing tests3
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 consensus behavior is unresolved: core constants and gas charging are TBD; the refund-call signature and recipient are inconsistent; queue insertion and validation use contradictory layouts; malformed input, call-mode, rollback, and re-entry outcomes are not fully defined; concrete Engine API/tool interfaces are absent; and the consensus-layer rules are only a sketch. These gaps directly drive the unspecified-behavior score and lower confidence in several interface, gas, framework, precompile, and performance scores without being counted as separate primary complexity in every affected row.
Plausible total
33–44
recorded score 38 · plausible tiers High
Affected criteria (10)
- Added precompiles (1)
- EVM Gas rule changes (2)
- State-access ordering within opcode execution (2)
- Engine API changes (1)
- Transition-tool interface changes (2)
- New test-framework primitives (2)
- Security risks (3)
- Performance risks (2)
- Cross-EIP interactions (1)
- Unspecified behavior requiring cross-client consensus (3)
Unresolved questions at the cutoff (6)
- What is the precompile address, gas schedule, and exact behavior for malformed input and non-CALL call modes?
- Which address receives excess payment, and do nested-call failure or re-entry revert every preceding queue and counter write atomically?
- What is the canonical three-slot queue decoding algorithm, including integer bounds, cleared entries, and pointer behavior under long-lived backlog?
- What exact consensus-layer eligibility, withdrawal-credential authorization, duplicate/already-exited handling, and state-transition rules apply?
- Which ExecutionPayload and Engine API fields and versions carry exits, and which transition-tool inputs or outputs represent them?
- Does the final precompile gas rule remain fixed despite state-dependent fake-exponential work, or become dynamic?
Notable ambiguities noted by the assessor (4)
- The sealed historical EIP header calls the feature "Execution layer triggerable exits," while the package/template provenance title says "Execution layer triggerable withdrawals"; the assessment preserves the populated package title and evaluates the sealed exit mechanism.
- The exit-fee rationale calls one parameter the maximum downward rate of the "blob gas price," although every surrounding formula and variable concerns exits.
- The historical EIP simultaneously specifies three storage slots per queued exit during insertion and two-slot stepping with repeated slot reads during validation.
- EIP-4788 is linked and discussed, but only as a dependency of an explicitly unselected alternative; it is therefore not listed as an interacting EIP.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| New block / header fields | 3 | The explicit new header field triggers the rubric's binary score-3 anchor. |
Confidence: High |
| Encoding changes (RLP/SSZ) | 3 | Explicit RLP changes at the block level and an SSZ interface/payload addition trigger the rubric's binary score-3 encoding anchor. |
Confidence: High Uncertainty: The consensus-layer SSZ container details are only sketched, but the block-level RLP change independently fixes the score at 3. |
| Block syncing changes | 3 | The proposal adds multiple block-RLP/schema validations, including the complex state- and ordering-dependent queue equivalence rule, so the score-3 syncing anchor applies. |
Confidence: High Uncertainty: The illustrative queue-extraction pseudocode is internally inconsistent, but the normative requirement for the complex validation is clear. |
| Patterns affecting pre-existing tests | 3 | Existing post-fork block, state-transition, malformed-block, and syncing tests must be reworked across diverse categories to construct or validate the new body, header, queue-derived operations, and end-of-block transition. This is the major, diverse impact described by score 3. |
Confidence: High Uncertainty: Exact test-suite breadth is not enumerated in the proposal, but the mandatory per-block schema and validity changes make the broad impact direct. |
| Security risksUnder-specified | 3 | The feature crosses authorization of validator funds, consensus exit processing, execution-layer value transfer, persistent queue state, block validity, and an anti-griefing fee market. These multiple critical-component interactions require extensive security review and fuzzing, meeting score 3. |
Confidence: High Uncertainty: The incomplete consensus validation and CALL/revert semantics make the precise vulnerability surface uncertain, but not the breadth of security impact. |
| Edge/boundary conditions | 3 | Multiple independent mechanisms have boundary-rich state spaces, and the combination of value transfer/revert behavior, persistent FIFO transitions, capped per-block output, exponential integer math, and fork ordering requires an elevated case count. This meets score 3. |
Confidence: High Uncertainty: Several boundary outcomes are themselves under-specified, increasing test-design uncertainty without changing the primary score. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 3 | Previously nonexistent stateful-precompile, queue, refund, and cross-layer exit behaviors become consensus-visible, yet several constructible cases and even the block queue-decoding algorithm lack a single answer. Cross-client agreement and repeated test re-baselining would be required, meeting score 3. |
Confidence: High Uncertainty: The historical text is too incomplete to enumerate every unresolved call mode, malformed input, rollback, queue, and consensus-validation outcome. |
| Added system contracts | 2 | A single protocol-reserved contract-like address is both stateful and the source of a new cross-layer system action. That is exactly the score-2 single-system- contract anchor. |
Confidence: High Uncertainty: The proposal calls the mechanism a precompile rather than a system contract, but it explicitly assigns protocol-owned code semantics and persistent state to one address. |
| EVM Gas rule changesUnder-specified | 2 | This is a new gas-charged EVM execution mechanism, but it is confined to calls to a previously unused precompile address and therefore does not, as written, alter existing gas-accounting mechanisms or their tests. That matches score 2; the actual amount and final fixed-versus-dynamic rule are not yet specified. |
Confidence: Medium Uncertainty: The precompile gas cost is explicitly TBD, so a finalized dynamic schedule or interaction with existing CALL charging could move this score. |
| State-access ordering within opcode executionUnder-specified | 2 | The proposal adds a new state-accessing operation behind CALL, and the positions of its state accesses, failure points, gas charging, and nested CALL must be settled and tested. It does not rewrite ordering for an existing class of opcodes, so score 2 is the applicable anchor rather than score 3. |
Confidence: Medium Uncertainty: The gas charge point and revert behavior around the state writes and excess payment are not fully specified. |
| Transition-tool interface changesUnder-specified | 2 | Representing queue-derived block outputs plus a new end-of-block processing phase requires a new transition-tool mechanism and associated fields, matching score 2. The historical text does not define the concrete tool interface. |
Confidence: Medium Uncertainty: No transition-tool API is specified, so the exact number and direction of fields depend on how the block-building and block-validation modes expose exits. |
| New invariant on pre-existing tests | 2 | A broad category of otherwise unrelated post-fork tests gains mechanical exits-root and queue-equivalence assertions. The text does not require pre-fork vectors to be re-derived, so score 2 fits better than the score-3 anchor. |
Confidence: High |
| New test-framework primitivesUnder-specified | 2 | The new queue/body equivalence expectation and end-of-block modifier are reusable primitives needed throughout this EIP's suite, beyond merely writing isolated precompile calls. The package does not establish reuse by other EIPs, so score 2 rather than score 3 is appropriate. |
Confidence: Medium Uncertainty: Existing framework capabilities are not described; sufficiently generic block and storage expectations could reduce the needed extension to score 1. |
| Performance risksUnder-specified | 2 | Persistent backlog growth, stateful native execution, and mandatory per-block queue processing require integrated performance validation, but the emitted list and dequeue work are explicitly capped. This is a limited-impact, not fully isolated mechanism matching score 2. |
Confidence: Medium Uncertainty: The gas cost and behavior under very large fee/queue state are unresolved, so the actual computation and storage-growth impact could be greater. |
| Added precompilesUnder-specified | 1 | The defined shape is one precompile with constant input length and an intended fixed gas charge, matching score 1. Its statefulness and system action are scored separately under added system contracts. |
Confidence: Medium Uncertainty: Because the gas schedule is TBD and the exponential calculation has variable work, a finalized dynamic gas cost would make this a score-2 complex precompile. |
| Engine API changesUnder-specified | 1 | The historical design implies one new payload field carrying the exits list across the execution/consensus interface. With no endpoint or additional API fields specified, the conservative score-1 anchor is best supported. |
Confidence: Low Uncertainty: The Engine API is not named and endpoint coverage is absent; carrying the payload field through multiple directives could raise this to score 2. |
| Cross-EIP interactionsUnder-specified | 1 | The selected design has a limited, non-critical interaction with EIP-1559 by adapting its fee-adjustment pattern, and can test its exit-fee state independently. EIP-4788 is an explicitly rejected alternative rather than a dependency. This supports score 1. |
Confidence: Medium Uncertainty: The consensus sketch also names existing voluntary-exit and deposit processing without identifying corresponding EIP numbers or defining the exact coupling. Interacting EIPs: EIP-1559 |
Show 11 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added by the selected proposal. |
|
| Modified opcodes | 0 | Adding a precompile reachable through CALL is scored under added precompiles; it does not constitute a modification of the CALL opcode itself under this anchor. |
|
| Modified precompiles | 0 | No pre-existing precompile is modified. |
|
| Modified system contracts | 0 | All specified contract-like behavior belongs to the newly added precompile, so no pre-existing system contract is directly or indirectly modified. |
Uncertainty: The address is TBD, but the proposal consistently describes the precompile as new. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or changed. The isolated use of the phrase "blob gas price" in the parameter discussion does not change the formulas, variables, or surrounding specification from exit-fee accounting. |
Uncertainty: Line 359 says "blob gas price," but in context this appears to be an unresolved drafting error rather than a specified blob-gas change. |
| State gas accounting changes | 0 | Persistent writes are introduced, but the rubric scores a distinct state-gas accounting regime rather than the mere fact of writing state. None is specified. |
Uncertainty: The ordinary EVM/precompile gas cost is TBD, but no text suggests a separate state-gas mechanism. |
| New EVM gas refund | 0 | Returning excess fee payment in ETH is a value transfer, not a new EVM gas-refund mechanism, so the gas-refund anchor is not triggered. |
|
| New transaction types | 0 | The proposal adds a call target and a block operation, not a transaction type. |
|
| New or modified transaction validity mechanisms | 0 | Exit-fee validation is execution behavior inside a call, not a transaction validity rule, and no existing transaction type is otherwise modified. |
|
| New fork activation mechanism | 0 | Recognizing a new precompile and initializing its new zero-valued variables does not meet this anchor's requirement for a special modification of state or an internal variable at activation. |
Uncertainty: The precompile address is TBD and collision handling is absent, but no activation migration is specified in the historical text. |
| Cryptography | 0 | The proposal uses existing encoding and trie commitment machinery and introduces no cryptographic mechanism to implement or test. |
Uncertainty: The consensus-layer validation rules are incomplete, but the selected text does not specify any cryptographic verification. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@28cbb0162fEIPS/eip-7002.md committed 2023-06-29 · information cutoff 2024-01-18- 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/prague/eip-7002.yaml· sha2567b9aac068cf4 - Supporting documents in the sealed package
supporting/eip-1559.md,supporting/eip-4788.md