Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Prospective complexity assessment of EIP-7807 at the sealed Hegota snapshot, limited to its execution-layer effects: SSZ execution-block and header representation, block-hash computation, retained nested encodings, execution interfaces, JSON-RPC, devp2p, and the BLOCKHASH opcode. Consensus-layer-only behavior is excluded except where the EIP defines an execution-layer boundary.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 6 criteria affected
- Plausible range
- 32–39 (High)
- Snapshot
- 2026-08-25 · EIP revision
ac450a4ab2(2026-08-25)
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: The Draft fixes the core SSZ payload and hash rule but does not normatively define transition-tool representation, Engine API endpoint/version/framing changes, devp2p wire and invalid-input handling, context-specific bounds for progressive lists, or historical and activation-boundary hash behavior. These are recorded as distinct gaps and are not used to inflate unrelated anchors.
Plausible total
32–39
recorded score 34 · plausible tiers High
Unresolved questions at the cutoff (5)
- What exact transition-tool fields or encoding carry the new payload, header summary, receipts, and resulting block hash?
- Which Engine API methods and versions use binary ForkDigest-context encoding, how are messages framed, and is block_hash removal normative?
- How are SSZ blocks negotiated, encoded, and rejected in devp2p synchronization across the activation boundary?
- What execution-layer bounds apply to each ProgressiveList and ProgressiveByteList before allocation, decoding, and Merkleization?
- How must BLOCKHASH and external block-hash lookups treat pre-activation blocks when executed or queried after activation?
Notable ambiguities noted by the assessor (3)
- The statement that the Engine API can drop block_hash and adopt binary encoding is rationale, not a normative endpoint specification; score 1 reflects one identified field modification while keeping confidence low.
- The execution payload includes block_access_list and slot_number, but the package does not allocate their semantic origin among EIP-7807 and its fork/dependency context; the block/header-field anchor scores the explicit resulting definition.
- Transactions and receipts retain EIP-2718 envelopes while withdrawals and the block access list retain RLP, so SSZ validation must preserve and commit to nested bytes without treating those inner objects as migrated SSZ values.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Cross-EIP interactionsExceptional | 4 | The block format has strong coordinated dependencies on three required EIPs and embeds EIP-2718 envelopes, EIP-7843 slot data, and EIP-7928 block access lists, so cross-EIP vectors must cover container/list roots, fork composition, and preserved or produced field bytes. Six identified interactions produce base score 3 plus the rubric's first +1 for three interacting EIPs beyond the first three. Exceptional score: Six identified EIPs each contribute a coordinated test axis: the score-3 strong interdependency anchor plus the mandatory +1 for three additional EIPs beyond the first three yields 4. |
Confidence: High Uncertainty: Several package-grounded structures have no EIP number in the sealed evidence and are recorded separately rather than guessed. Interacting EIPs: EIP-2718, EIP-7495, EIP-7773, EIP-7916, EIP-7843, EIP-7928 |
| Modified opcodes | 3 | The observable result of the pre-existing BLOCKHASH opcode changes from the prior block-hash computation, meeting the rubric's binary score-3 condition. |
Confidence: High Uncertainty: Historical and fork-boundary BLOCKHASH cases are not explicitly resolved. |
| New block / header fields | 3 | The proposal introduces a new block/header field representation and explicitly includes fields in the new execution block, satisfying the binary score-3 anchor. |
Confidence: High Uncertainty: The package does not distinguish which individual field semantics originate in dependencies versus this migration; the new SSZ block/header definition is explicit regardless. |
| Encoding changes (RLP/SSZ) | 3 | A block-level RLP-to-SSZ encoding migration directly satisfies the rubric's binary score-3 condition. |
Confidence: High Uncertainty: The exact Engine API wire specification is absent, but the normative execution-block encoding change alone determines this score. |
| Patterns affecting pre-existing tests | 3 | Existing block, header, receipt-root, block-hash, RPC, opcode, and synchronization expectations span diverse test categories and must be reworked for the new representation and hash, meeting the major-subset anchor. |
Confidence: High Uncertainty: Exact test inventories are unavailable by package policy, but the specification explicitly changes all listed execution-block contexts. |
| New test-framework primitivesUnder-specified | 3 | Generic construction, serialization, summary, and hash-tree-root support for the new permanent block format and its reusable progressive SSZ types is a framework-level primitive, not merely EIP-specific test code. |
Confidence: Medium Uncertainty: The package excludes the actual test framework, so the amount of pre-existing SSZ support cannot be observed. |
| Security risks | 3 | Incorrect encoding, Merkleization, or hash-context handling can split consensus across block validation and cross-layer references and can expose inconsistent results through critical opcode, networking, and API surfaces, requiring broad review and fuzzing. |
Confidence: High Uncertainty: The EIP dismisses significant cross-algorithm collision risk, but implementation-consistency risk across the listed critical components remains. |
| Performance risks | 3 | Whole-block serialization, parsing, Merkleization, networking, and hash lookup behavior interact with existing block-processing paths and cannot be fully benchmark-isolated; the proposal itself makes substantial performance claims. |
Confidence: High Uncertainty: No context-specific maximum list sizes or benchmark parameters are supplied. |
| Edge/boundary conditionsUnder-specified | 3 | Empty and non-empty lists, recursive subtree growth thresholds, variable-offset serialization, active-field roots, summary-versus-payload equivalence, and mixed nested encodings create multiple boundaries; progressive-tree thresholds require an elevated vector set. |
Confidence: High Uncertainty: Context-specific size bounds for unbounded progressive lists are not supplied by EIP-7807. |
| Block syncing changesUnder-specified | 2 | Replacing the block-level RLP/header validation path with SSZ and a new hash is a single complex synchronization-validation migration. |
Confidence: Medium Uncertainty: The devp2p message encoding, validation sequence, fork negotiation, and invalid-block rules are not specified, preventing a supported score for multiple mechanisms. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Constructible fork-boundary, historical BLOCKHASH, synchronization, and interface cases need localized cross-client agreement before vectors can be baselined; the gaps are material but do not establish the anchor-3 condition of newly observable previously unspecified execution behavior. |
Confidence: Medium Uncertainty: Implementations, devnets, discussions, and post-snapshot clarifications are prohibited, so only the Draft text's visible gaps are assessed. |
| Engine API changesUnder-specified | 1 | The package identifies one Engine API field modification (removing block_hash) and a transport-encoding change, but no new endpoint or set of new fields; the closest supported interface-impact anchor is 1. |
Confidence: Low Uncertainty: This behavior is stated in rationale rather than a normative endpoint/version specification, so the exact Engine API change is materially under-specified. |
| Cryptography | 1 | A well-known hash mechanism is newly used for execution block identity, fitting the single well-known cryptographic-mechanism anchor. |
Confidence: High Uncertainty: The package asserts no significant collision risk but does not remove the need for cross-context hash-vector testing. |
Show 15 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added. |
Uncertainty: None material within the package scope. |
| Added precompiles | 0 | No precompile is added. |
Uncertainty: None material within the package scope. |
| Modified precompiles | 0 | No precompile is modified. |
Uncertainty: None material within the package scope. |
| Added system contracts | 0 | No system contract or system action is added. |
Uncertainty: None material within the package scope. |
| Modified system contracts | 0 | Consumer incompatibility does not directly or indirectly modify a pre-existing system contract. |
Uncertainty: No particular system contract is identified in the package. |
| EVM Gas rule changes | 0 | The proposal changes representation of gas amounts and fees, not EVM gas accounting. |
Uncertainty: No gas-charging rule is specified anywhere in the proposal. |
| State-access ordering within opcode execution | 0 | No opcode state-access path or relative gas-charge position changes. |
Uncertainty: None material within the package scope. |
| Blob gas accounting changes | 0 | Encoding blob-related values does not introduce or update blob gas accounting. |
Uncertainty: None material within the package scope. |
| State gas accounting changes | 0 | No state gas accounting mechanism or charging site is introduced. |
Uncertainty: None material within the package scope. |
| New EVM gas refund | 0 | No EVM gas-refund mechanism is introduced or changed. |
Uncertainty: None material within the package scope. |
| New transaction types | 0 | The block container changes, but no new transaction type is introduced. |
Uncertainty: None material within the package scope. |
| New or modified transaction validity mechanisms | 0 | No transaction validity rule or intrinsic gas calculation changes. |
Uncertainty: None material within the package scope. |
| New fork activation mechanism | 0 | A format transition alone does not meet this anchor's state/internal-variable modification condition. |
Uncertainty: The activation point and handling of pre-fork history are not specified, but no activation-block mutation can be inferred. |
| Transition-tool interface changesUnder-specified | 0 | No transition-tool interface modification can be assigned from the sealed proposal text. |
Uncertainty: A transition tool may need representation support, but its required fields and mechanism are materially unspecified and cannot be inferred. |
| New invariant on pre-existing tests | 0 | The proposal changes existing expected values and encodings rather than adding a separate assertion to otherwise unchanged tests. |
Uncertainty: Test-suite assertion structure is not present in the package; this score distinguishes changed expectations from the anchor's additional-invariant requirement. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-7807.md committed 2026-08-25 · information cutoff 2026-08-25T11:56:58Z- 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/08-hegota-prospective-complexity-assessment/outputs/assessments/hegota-pfi-2026-08-26/eip-7807.yaml· sha25644920c361615 - Supporting documents in the sealed package
supporting/eip-2718.md,supporting/eip-7495.md,supporting/eip-7773.md,supporting/eip-7916.md