Evaluated on: · Spec revision: 2023-10-12 · 46d979f902
Scope at the cutoff. At the information cutoff, EIP-6110 appended an ordered list of validator deposit operations to each post-fork execution block and added a header trie root committing to that list; the list was required to equal deposits parsed from deposit-contract logs produced by the block. It also extended the consensus ExecutionPayload and BeaconState, processed the new receipts while winding down the former Eth1Data deposit path, and made validator indices branch-dependent. The packaged fork document specified an irregular consensus-state upgrade, while several activation and interface details remained work in progress.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 6 criteria affected
- Plausible range
- 32–40 (High)
- Assessment cutoff
- 2024-01-18 · EIP revision
46d979f902(2023-10-12)
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
- New fork activation mechanism3
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 gaps remain in the exact decoding and failure behavior for deposit event data, indexed-trie construction details in the illustrative helper, transition-tool and Engine API surface shape, and final fork configuration. The supporting consensus and fork documents also identify themselves as active-development or work-in-progress material.
Plausible total
32–40
recorded score 36 · plausible tiers High
Unresolved questions at the cutoff (4)
- What exact byte-layout checks and failure result apply when parsing a log from DEPOSIT_CONTRACT_ADDRESS into the five deposit fields?
- What exact key/object encoding does compute_trie_root_from_indexed_data use at all list sizes and boundary indices?
- Which transition-tool and Engine API endpoints expose deposit_receipts and deposits_root, and in what encoded form?
- What final timestamp/epoch coordination activates the execution and consensus changes together?
Notable ambiguities noted by the assessor (3)
- The EIP calls the execution-block items deposits while the consensus documents call them deposit receipts and commit to them with an SSZ payload-header root; the cross-layer mapping is clear in intent but not specified as an Engine API schema.
- The rubric classification of the pre-existing deposit contract as a system contract materially affects the modified-system-contracts row.
- One added ExecutionPayload member may traverse multiple Engine endpoints, but the package documents the field rather than endpoint-specific changes.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| New block / header fields | 3 | The presence of a new block-body and header field triggers the binary anchor-3 definition. |
Confidence: High |
| Encoding changes (RLP/SSZ) | 3 | A block-level RLP encoding change is explicit, so the binary anchor mandates score 3; the corresponding SSZ container extensions reinforce the interface impact. |
Confidence: High |
| Block syncing changesUnder-specified | 3 | Syncing clients face multiple new RLP/block validation mechanisms, including the complex requirement to execute the block and reproduce an ordered list from receipts. That satisfies anchor 3. |
Confidence: High |
| New fork activation mechanism | 3 | The consensus fork explicitly modifies state and internal variables at activation, which is the anchor-3 condition. |
Confidence: High Uncertainty: The concrete fork timestamp and epoch were TBD, but the specified activation state transition is unambiguous. |
| Patterns affecting pre-existing tests | 3 | Existing post-fork block tests across transaction, execution, static, invalid-block, and sync categories must be reworked for the extended block and derived validity rules. That is the diverse, major impact described by anchor 3. |
Confidence: High |
| Security risks | 3 | The change couples critical execution validation, consensus validator-registry updates, reorganization handling, optimistic sync, and weak-subjectivity assumptions. That multi-component security impact requires extensive review and fuzzing and matches anchor 3. |
Confidence: High |
| Performance risks | 3 | Performance cannot be assessed solely in isolation because receipt extraction affects execution validation while signature processing affects consensus and optimistic sync, with behavior coupled to gas limits and payload size. These substantial cross-component interactions satisfy anchor 3. |
Confidence: High |
| Edge/boundary conditionsUnder-specified | 3 | Fork boundaries, empty and first-receipt cases, transition-index crossings, log ordering, reorganizations, and high-volume limits form multiple boundary mechanisms, with the transition and volume dimensions requiring an elevated case matrix. This matches anchor 3. |
Confidence: High |
| Modified system contracts | 2 | Although contract code and state are untouched, the EIP gives the existing deposit contract a major indirect effect on execution-block validity and cross-layer processing. This fits anchor 2's major-indirect-effect case. |
Confidence: Medium Uncertainty: The rubric does not define whether the pre-existing deposit contract is classified as a system contract for this row. |
| Transition-tool interface changesUnder-specified | 2 | Representing the new list and root, together with their derived-output relationship, requires multiple interface values or a new result mechanism, fitting anchor 2. |
Confidence: Medium Uncertainty: The package does not define a transition-tool API, so the exact number and direction of interface fields are not fixed. |
| New invariant on pre-existing tests | 2 | A broad category of post-fork tests gains mechanically applicable root and list assertions, which fits anchor 2. The EIP does not require pre-fork vectors to acquire the post-fork fields, so anchor 3 is not supported. |
Confidence: High |
| Cross-EIP interactions | 2 | EIP-6110 changes the role of EIP-4881 and requires coordinated transition tests with the prior deposit path and inherited fork payload, but the interactions remain concentrated in deposit processing. This fits anchor 2. |
Confidence: Medium Uncertainty: Only EIP-4881 is numbered in the package; the EIP numbers, if any, associated with the named Deneb baseline and former deposit mechanism are not supplied. Interacting EIPs: EIP-4881 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Exact malformed-event decoding, trie construction at unusual cases, and cross-layer interface behavior require agreement before complete invalid-case vectors can be baselined, but the gaps are localized around the new deposit path. This fits anchor 2 rather than the broad re-baselining case in anchor 3. |
Confidence: Medium Uncertainty: Existing deposit-contract behavior may make some malformed-event cases unreachable on the intended network, but the package does not specify that reachability as a validity precondition. |
| Engine API changesUnder-specified | 1 | The package clearly adds one ExecutionPayload communication field, supporting the single-field anchor 1. |
Confidence: Medium Uncertainty: Engine method versions, JSON encoding, and whether the field appears in more than one endpoint are not specified in the package. |
| New test-framework primitivesUnder-specified | 1 | Existing block-test primitives need minor helper or expectation extensions for deposits and their commitment, fitting anchor 1; the text does not establish a permanent cross-EIP framework primitive. |
Confidence: Medium Uncertainty: No test-framework design is packaged, so whether these are helpers or new reusable expectation primitives is unresolved. |
Show 13 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is introduced, matching anchor 0. |
|
| Modified opcodes | 0 | No pre-existing opcode behavior is modified, matching anchor 0. |
|
| Added precompiles | 0 | No precompile is introduced, matching anchor 0. |
|
| Modified precompiles | 0 | No existing precompile is modified, matching anchor 0. |
|
| Added system contracts | 0 | No system contract is introduced, matching anchor 0. |
|
| EVM Gas rule changes | 0 | No EVM gas-accounting rule is introduced or updated, matching anchor 0. |
|
| State-access ordering within opcode execution | 0 | No opcode execution ordering changes, so the anchor-0 definition applies. |
|
| Blob gas accounting changes | 0 | The proposal adds no blob-gas rule or mechanism, matching anchor 0. |
|
| State gas accounting changes | 0 | No state-gas cost, charging site, budget, reservoir, or spill rule changes, so anchor 0 applies. |
|
| New EVM gas refund | 0 | No new refund mechanism is introduced, matching anchor 0. |
|
| New transaction types | 0 | The proposal introduces no transaction type, matching anchor 0. |
|
| New or modified transaction validity mechanisms | 0 | This is a block-validity change, not a transaction-validity or intrinsic-gas change, so anchor 0 applies. |
|
| Cryptography | 0 | The path invokes existing deposit signature validation and introduces no new cryptographic mechanism, matching anchor 0. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@46d979f902EIPS/eip-6110.md committed 2023-10-12 · 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-6110.yaml· sha256219ce3720527 - Supporting documents in the sealed package
supporting/eip-4881.md,supporting/ethereum-consensus-specs--specs-_features-eip6110-beacon-chain.md,supporting/ethereum-consensus-specs--specs-_features-eip6110-validator.md,supporting/ethereum-consensus-specs--specs-_features-eip6110-fork.md