Evaluated on: · Spec revision: 2024-04-18 · e2a66831fc
Scope at the cutoff. At the information cutoff, this draft defined a generic container for execution-layer requests intended for consensus-layer processing. It appended an ordered list of typed opaque requests to the RLP block body and added a 32-byte header commitment computed as an indexed Merkle-Patricia trie root. Concrete request provenance and validity, intra-type ordering, and consensus-layer type extensions were left to request-specific proposals.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 12 criteria affected
- Plausible range
- 22–37 (Medium–High)
- Assessment cutoff
- 2024-04-25 · EIP revision
e2a66831fc(2024-04-18)
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
- Transition-tool interface changes3
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 draft deliberately defers normative request provenance and validity, intra-type ordering, and consensus-layer type extensions to request-specific proposals. It also leaves Engine API transport, malformed or unknown request handling, size and rate limits, activation semantics, tests, and security analysis unstated, preventing a complete generic cross-client baseline.
Plausible total
22–37
recorded score 34 · plausible tiers Medium, High
Affected criteria (12)
- Block syncing changes (3)
- New fork activation mechanism (0)
- Engine API changes (2)
- Transition-tool interface changes (3)
- Patterns affecting pre-existing tests (3)
- New invariant on pre-existing tests (2)
- New test-framework primitives (1)
- Security risks (3)
- Performance risks (3)
- Edge/boundary conditions (3)
- Cross-EIP interactions (2)
- Unspecified behavior requiring cross-client consensus (3)
Unresolved questions at the cutoff (6)
- What exact request sources are consensus-valid, and how is completeness of the body request list validated against execution?
- What is the width and valid range of request_type, and how are empty, malformed, duplicate-type, or unknown-type request items handled?
- What intra-type ordering is required for each request type, and which proposal owns that rule?
- Which Engine API fields or endpoints transport requests and their commitment, and which consensus-layer types carry them?
- What request count, byte-size, or rate limits apply, and how do those limits interact with block validity and performance?
- What activation, empty-list, and pre-fork compatibility rules govern the new body and header fields?
Notable ambiguities noted by the assessor (4)
- The request_type representation is not given an explicit width or registry, even though examples use single-byte values and cross-type ordering is normative.
- The text says requests_root commits to the body list but does not separately spell out malformed-list, unknown-type, mismatch, or empty-list validation.
- The EL-to-CL exposure is an objective of the proposal, while its Engine API and beacon-chain representation are not specified.
- The proposal is Draft, its test cases are TODO, and its security considerations state that discussion is needed at the cutoff.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| New block / header fields | 3 | At least one new block or header field is explicitly introduced, triggering the rubric's binary score-3 anchor. |
Confidence: High |
| Encoding changes (RLP/SSZ) | 3 | The proposal explicitly changes encoding at the block body and header levels, triggering the rubric's binary score-3 anchor. |
Confidence: High |
| Block syncing changesUnder-specified | 3 | Sync/import validation gains multiple RLP changes, including the complex variable body-list and header-commitment relationship, satisfying score 3. |
Confidence: High Uncertainty: Exact malformed-input rules are not supplied, but the mandatory body and header validation surfaces are explicit. |
| Transition-tool interface changesUnder-specified | 3 | A transition tool must represent multiple new block values and support the new request-production and commitment mechanism, which is the score-3 combination of multiple fields and a new mechanism. |
Confidence: Medium Uncertainty: The EIP does not define a transition-tool schema or say whether the body list and derived root are separate tool outputs. |
| Patterns affecting pre-existing testsUnder-specified | 3 | Mandatory body and header changes plus ordering and commitment validation require a major, diverse subset of existing post-activation block-construction, serialization, import, and invalid-block tests to be reworked, meeting the score-3 anchor. |
Confidence: Medium Uncertainty: The sealed package contains no test inventory; the breadth is inferred from both additions being mandatory for every block governed by the proposal. |
| Security risksUnder-specified | 3 | The mechanism connects contract execution, block commitments, EL validation, and consensus-layer actions, all security-critical components, while altering their trust and validation boundaries. This supports score 3 and extensive security review and fuzzing. |
Confidence: Medium Uncertainty: Concrete actions and their validation are deferred, preventing a complete threat model at this revision. |
| Performance risksUnder-specified | 3 | The variable data path spans execution-derived collection, block construction, trie computation, validation, propagation, and CL consumption. Its integrated impact and interactions with existing block processing cannot be fully benchmarked in isolation, meeting score 3. |
Confidence: Medium Uncertainty: No size, count, or rate limit is defined, and concrete request types are absent, so workload magnitude is unresolved. |
| Edge/boundary conditionsUnder-specified | 3 | Empty and non-empty lists, opaque-data lengths, repeated and multiple types, ordering permutations, and correct or incorrect roots create multiple boundary mechanisms with an elevated combination count, meeting score 3. |
Confidence: Medium Uncertainty: Type width, malformed and unknown-type handling, size limits, and empty-list semantics are not fully stated, so exact boundary vectors cannot be baselined. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 3 | Request production and validation behavior that was not previously part of a block commitment becomes consensus-visible through requests_root, yet the draft leaves multiple constructible cases unresolved. Clients and request-specific proposals must agree before vectors can be baselined, meeting score 3. |
Confidence: High Uncertainty: It is unclear which gaps are intentionally outside the generic framework and which were expected to become normative within this EIP, but either reading requires cross-client coordination before end-to-end testing. |
| Engine API changesUnder-specified | 2 | Communicating the new body list and header commitment across the EL/CL boundary entails multiple request-related interface fields, aligning with score 2. |
Confidence: Low Uncertainty: The EIP never names Engine API endpoints, versions, field placement, or whether both values are transported independently. |
| New invariant on pre-existing testsUnder-specified | 2 | A broad category of existing block tests must mechanically assert request-list ordering and body-to-header commitment consistency, meeting score 2. The text does not establish the score-3 requirement that pre-fork vectors be re-derived. |
Confidence: Medium Uncertainty: Activation and treatment of existing multi-fork vectors are not specified. |
| Cross-EIP interactionsUnder-specified | 2 | The framework depends on request-specific proposals for production, ordering, validation, and CL representation, so coordinated testing is required, but the generic interaction surface is limited enough for score 2. The package names no interacting EIP, so no number is inferred. |
Confidence: Medium Uncertainty: The number and identity of request-type proposals present at the cutoff are not stated, preventing assessment of stronger multi-EIP interdependency or the uncapped surcharge. |
| New test-framework primitivesUnder-specified | 1 | Existing block expectation structures need minor extension for the two new values, meeting score 1; the draft does not establish a reusable new expectation or modifier primitive needed for score 2. |
Confidence: Low Uncertainty: Concrete request generation and validation are deferred, so the eventual need for request-specific framework primitives cannot be determined from this EIP. |
Show 15 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new opcode is introduced, matching the score-0 anchor. |
|
| Modified opcodes | 0 | No existing opcode is modified or deprecated, matching the score-0 anchor. |
|
| Added precompiles | 0 | No new precompile is introduced, matching the score-0 anchor. |
|
| Modified precompiles | 0 | No pre-existing precompile is modified, matching the score-0 anchor. |
|
| Added system contracts | 0 | The proposal itself introduces no system contract, matching the score-0 anchor; possible contracts belong to future request-source designs. |
|
| Modified system contracts | 0 | No existing system-contract code, state, or behavior is modified directly or indirectly by the specified framework, matching score 0. |
|
| EVM Gas rule changes | 0 | No EVM gas rule or accounting mechanism is introduced, matching the score-0 anchor. |
|
| State-access ordering within opcode execution | 0 | The proposal changes neither an opcode's state-access position nor gas-charge ordering relative to state access, matching the score-0 anchor. |
|
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified, matching the score-0 anchor. |
|
| State gas accounting changes | 0 | No state gas cost, charging site, budget, reservoir, or spill mechanism is changed, matching the score-0 anchor. |
|
| New EVM gas refund | 0 | No new EVM gas-refund mechanism is introduced, matching the score-0 anchor. |
|
| New transaction types | 0 | No new transaction type is introduced, matching the score-0 anchor. |
|
| New or modified transaction validity mechanisms | 0 | Existing transaction validity and intrinsic-gas rules are not changed, matching the score-0 anchor. |
Uncertainty: Request validity is materially underspecified, but it is distinct from the rubric's transaction-validity criterion. |
| New fork activation mechanismUnder-specified | 0 | No special fork-activation state or internal-variable modification is specified, matching score 0. |
Uncertainty: Activation semantics are omitted, but omission does not establish the special activation-block mutation required by the score-3 anchor. |
| Cryptography | 0 | Reusing the existing transaction-trie commitment pattern does not introduce a new cryptographic mechanism, matching the score-0 anchor. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@e2a66831fcEIPS/eip-7685.md committed 2024-04-18 · information cutoff 2024-04-25- 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-7685.yaml· sha2566557e9d12cb9