Evaluated on: · Spec revision: 2024-01-31 · faccff3ac9
Scope at the cutoff. At the cutoff, this draft proposed raising MAX_EFFECTIVE_BALANCE to 2048 ETH while retaining a 32 ETH activation minimum, with variable-balance validators and compounding withdrawal credentials. Its consensus-layer sketch also proposed validator consolidation, configurable partial-withdrawal ceilings, balance-weighted deposit and exit churn, pending balance deposits, weight-aware aggregator selection, and related withdrawal changes; removal of the initial slashing penalty remained under discussion. It stated that EIP-7251 itself required no execution-layer changes, while depending on EIP-7002 for execution-triggered partial withdrawals.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 10 criteria affected
- Plausible range
- 15–25 (Medium–High)
- Assessment cutoff
- 2024-03-21 · EIP revision
faccff3ac9(2024-01-31)
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 consensus behavior is unresolved: the document is a change sketch without complete data types or transition rules for consolidation, custom withdrawal ceilings, pending deposits, balance-weighted churn, and activation. The proposed slashing change remains in discussion, and the packaged EIP-7002 revision specifies execution-triggered exits rather than the partial withdrawals EIP-7251 assigns to it.
Plausible total
15–25
recorded score 19 · plausible tiers Medium, High
Affected criteria (10)
- Encoding changes (RLP/SSZ) (3)
- New fork activation mechanism (0)
- Patterns affecting pre-existing tests (3)
- New invariant on pre-existing tests (0)
- New test-framework primitives (0)
- Security risks (3)
- Performance risks (3)
- Edge/boundary conditions (3)
- Cross-EIP interactions (2)
- Unspecified behavior requiring cross-client consensus (2)
Unresolved questions at the cutoff (7)
- What exact messages, authorization rules, state transitions, and queue rules perform validator consolidation?
- How is a validator's custom effective-balance or partial-withdrawal ceiling represented, authorized, updated, and bounded?
- What are the complete PendingDeposit and BeaconState field definitions, and what are the ordering and failure semantics of pending-deposit processing?
- How are balance-based activation and exit churn computed at boundaries and when deposits, withdrawals, exits, and consolidations compete?
- What activation-time initialization or migration applies to new fields and existing validators?
- Is the initial slashing penalty removed, and if so what replacement rule applies?
- How does EIP-7002 carry and validate a partial-withdrawal amount when its packaged revision only defines full exit requests?
Notable ambiguities noted by the assessor (4)
- EIP-7251 says it makes no execution-layer changes yet makes execution-triggered partial withdrawals a defining feature supplied by EIP-7002; direct execution changes were scored zero and the dependency was scored under cross-EIP interactions.
- The packaged EIP-7002 revision specifies execution-triggered exits, not the partial-withdrawal amount and validation semantics that EIP-7251 expects.
- Removal of the initial slashing penalty is listed as a defining feature but marked still in discussion, so it was treated as unresolved scope rather than a settled rule.
- The rubric's encoding anchor was applied to the added PendingDeposit container and BeaconState fields as a consensus-layer SSZ schema change, although the draft omits their exact definitions.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Encoding changes (RLP/SSZ)Under-specified | 3 | Adding a consensus container and BeaconState fields changes the consensus-layer SSZ schema, which is an encoding change and therefore triggers the rubric's binary score-3 anchor. |
Confidence: Medium Uncertainty: The revision does not define the container fields or enumerate the exact BeaconState additions. |
| Patterns affecting pre-existing testsUnder-specified | 3 | The changes span diverse existing consensus-test categories rather than a contrived subset, so a major body of pre-existing tests would need reworking under the score-3 anchor. |
Confidence: Medium Uncertainty: The document is only a change sketch, so the exact affected-test count cannot be derived. |
| Security risksUnder-specified | 3 | If implemented incorrectly, the mechanisms touch multiple critical consensus and validator-fund components—committee selection, aggregation, churn, withdrawals, and slashing—so they require broad security review and meet score 3 despite the proposal's intended preservation of security. |
Confidence: Medium Uncertainty: The slashing change remained unsettled, and the security section asserts limited impact without fully specifying the mechanisms. |
| Performance risksUnder-specified | 3 | Network, aggregation, state-memory, proposer-selection, and queue behavior interact with existing validator workloads and cannot be validated fully in isolation; the breadth and interaction with existing benchmarks meet score 3. |
Confidence: Medium Uncertainty: The text gives expected directions but no benchmark design or quantitative performance bounds. |
| Edge/boundary conditionsUnder-specified | 3 | Multiple interacting threshold, queue, credential, consolidation, and withdrawal mechanisms create a multiplicative set of boundary cases, including exact balance limits and competing validator lifecycle states; this meets score 3. |
Confidence: High Uncertainty: The precise boundary semantics are not fully specified, which is scored separately as under-specification. |
| Cross-EIP interactionsUnder-specified | 2 | The direct EIP-7002 dependency requires coordinated execution/consensus testing and interface agreement, but only one identified interaction is in scope, fitting score 2 rather than the multiple-EIP score-3 anchor. |
Confidence: High Uncertainty: The sealed EIP-7002 revision does not yet contain the partial-withdrawal behavior attributed to it by EIP-7251. Interacting EIPs: EIP-7002 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Multiple consensus answers must be agreed before deterministic vectors can be written, but the package does not establish the score-3 condition of a previously unobservable behavior newly becoming consensus-critical; score 2 is therefore the closest anchor. |
Confidence: High Uncertainty: The omissions are broad rather than cleanly localized, while the rubric's score-3 trigger is not clearly demonstrated. |
Show 21 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added, satisfying score 0. |
|
| Modified opcodes | 0 | No pre-existing opcode behavior is changed or deprecated, satisfying score 0. |
|
| Added precompiles | 0 | The assigned EIP adds no precompile of its own; attributing the dependency's precompile here would double-count the cross-EIP interaction, so score 0 applies. |
|
| Modified precompiles | 0 | No existing precompile logic or gas schedule is modified by EIP-7251, matching score 0. |
|
| Added system contracts | 0 | EIP-7251 directly adds no system contract, so score 0 applies; the separate EIP-7002 mechanism is captured under cross-EIP interactions. |
|
| Modified system contracts | 0 | No pre-existing system-contract code, state, or behavior is directly or indirectly modified by the assigned EIP, matching score 0. |
Uncertainty: The interaction with EIP-7002 is scored separately and is not described as modification of a pre-existing deployed system contract. |
| EVM Gas rule changes | 0 | No EVM gas accounting rule is introduced or updated, satisfying the zero anchor. |
|
| State-access ordering within opcode execution | 0 | With no opcode or execution-layer change, it does not alter state-access or gas-charge ordering inside any opcode, matching score 0. |
|
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is described, so the zero anchor applies. |
|
| State gas accounting changes | 0 | Consensus validator balances and churn are not the rubric's state-gas mechanism, and no state-gas cost, rate, budget, or spill rule is changed. |
|
| New EVM gas refund | 0 | No EVM refund mechanism is introduced, matching score 0. |
|
| New transaction types | 0 | No transaction type is introduced, so score 0 applies. |
|
| New or modified transaction validity mechanisms | 0 | It does not change transaction validity or intrinsic gas calculation, matching score 0. |
|
| New block / header fields | 0 | No new EIP-7251 block or header field is specified, so the binary zero anchor applies. |
Uncertainty: The EIP-7002 dependency has its own block fields, which are accounted for as an interaction rather than a direct EIP-7251 field. |
| Block syncing changes | 0 | It introduces no execution block RLP-validation mechanism requiring client syncing, so score 0 applies. |
Uncertainty: EIP-7002 has separate block-structure changes; those are treated as a cross-EIP dependency rather than direct EIP-7251 scope. |
| New fork activation mechanismUnder-specified | 0 | Requiring fork activation is not itself the rubric trigger; absent a specified one-time modification of existing state or variables at activation, score 0 is best supported. |
Uncertainty: The revision does not explain initialization or migration of the new BeaconState fields or treatment of existing validators at activation. |
| Engine API changes | 0 | No Engine API field, endpoint, or communication mechanism is specified, matching score 0. |
Uncertainty: Any interface work belonging to the EIP-7002 dependency is not a direct EIP-7251 change. |
| Transition-tool interface changes | 0 | No field or mechanism for the execution state-transition tool interface is introduced, matching score 0. |
|
| New invariant on pre-existing testsUnder-specified | 0 | The stated effects rework tests of the changed mechanisms; they do not establish a new assertion that pre-existing tests retain their old logic and must additionally check, so score 0 is best supported. |
Uncertainty: The unspecified BeaconState fields might eventually have implied mechanically added assertions, but this revision does not define them. |
| New test-framework primitivesUnder-specified | 0 | The historical text does not establish a need beyond ordinary protocol test construction, so the existing-primitives score-0 anchor is the best-supported assessment. |
Uncertainty: Detailed operations for consolidation and custom ceilings are absent, so their eventual test-harness needs cannot be determined. |
| Cryptography | 0 | Changing the weight used by an existing selection lottery does not introduce or modify a cryptographic mechanism itself, so score 0 applies. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@faccff3ac9EIPS/eip-7251.md committed 2024-01-31 · information cutoff 2024-03-21- 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-7251.yaml· sha2563a590fe2c294 - Supporting documents in the sealed package
supporting/eip-7002.md