Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Execution-layer-only assessment of the draft EIP-8146 snapshot. The scored surface separates the EIP-7928 RLP-encoded block access list from payload delivery, adds early BAL delivery and block-hash pairing through the Engine API, and enables EL prefetching or optional post-state-root computation. CL sidecar gossip, PTC voting, fork choice, and SSZ-container work are boundary context and are not scored as execution-layer complexity.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 4 criteria affected
- Plausible range
- 17–22 (Medium)
- 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 new asynchronous Engine API protocol is materially under-specified. Its happy path and required notify-before-newPayload order are clear, but its response and error schemas, malformed input handling, duplicate or conflicting notifications, blockHash cache lifetime and eviction, and orphan/reorg behavior are not. These are one connected API-lifecycle gap and are not separately multiplied across unrelated EVM anchors.
Plausible total
17–22
recorded score 20 · plausible tiers Medium
Unresolved questions at the cutoff (4)
- What result and error objects does engine_notifyBlockAccessListV1 return for success, malformed RLP, an unknown blockHash, or resource-limit failure?
- How must the EL handle duplicate or conflicting BAL notifications for the same blockHash, including a notification after payload processing?
- What cache bounds, retention, eviction, and reorg/orphan rules apply to BALs received for payloads that arrive late or never arrive?
- What is the exact engine_getPayloadV6 response container after blockAccessList is removed from the ExecutionPayload, and how is that shape versioned?
Notable ambiguities noted by the assessor (3)
- The claimed protocol-enforced one-second useful-work window does not align cleanly with the specified envelope-first case, which says the eventual EL head start is zero; this affects performance expectations but not the existence of the performance-testing burden.
- EIP-7928 describes engine_newPayloadV5 as accepting an ExecutionPayloadV4 that contains blockAccessList, whereas EIP-8146 says engine_newPayloadV5 is unchanged yet does not carry the BAL. The intended replacement flow is evident, but the precise versioned interface definition is not provided.
- CL validation hashes opaque BAL bytes and the EL begins work immediately, but the point at which malformed RLP is rejected before or during speculative EL work is not stated.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Engine API changes | 3 | Multiple Engine API fields are introduced or relocated across the get and notify paths, and a new endpoint is added, satisfying the score-3 anchor. |
Confidence: High Uncertainty: The exact JSON response and error schemas are omitted, but the endpoint and its multiple parameters plus the getPayload field are explicit. |
| Performance risks | 3 | The mechanism deliberately changes performance on the payload-validation critical path and couples network arrival, Engine API scheduling, state-cache behavior, execution, and optional parallel root computation. It cannot be validated fully in isolation and substantially affects existing performance benchmarks, meeting score 3. |
Confidence: High Uncertainty: The package supplies size claims and sequencing but no benchmarks, and it leaves the optional precomputation strategy implementation-defined. |
| Cross-EIP interactions | 3 | The proposal strongly composes EIP-7732's separated payload delivery with EIP-7928's BAL commitment and validation, requiring coordinated vectors for both, while also creating an explicit but more limited EIP-7805 interaction. Three interacting EIPs and two deep interdependencies justify score 3; no uncapped increment applies because there are not more than three. |
Confidence: High Uncertainty: The EIP-7805 benefit is motivational rather than a normative dependency, but it still calls for interaction testing where both mechanisms are enabled. Interacting EIPs: EIP-7732, EIP-7805, EIP-7928 |
| Patterns affecting pre-existing tests | 2 | Existing Engine API tests for the EIP-7928 BAL path require considerable but category-local reworking to remove BAL delivery from newPayload, issue the notification first, and pair both calls by block hash. |
Confidence: Medium Uncertainty: The package seals no implementation or test inventory, so the affected test count is inferred only from the specified replacement of the BAL API flow. |
| New invariant on pre-existing tests | 2 | The broad class of post-fork Engine API payload tests gains a mechanical ordering-and-pairing invariant even when the test's subject is not sidecar propagation; this is broader than a contrived case but not every EL test. |
Confidence: Medium Uncertainty: The package does not define which test families exercise CL-to-EL delivery, so the precise breadth below all fork tests is uncertain. |
| Security risksUnder-specified | 2 | Early action on builder-committed but not yet execution-validated BAL data touches the Engine cache, state I/O, and later payload validation, slightly altering resource-exhaustion and correct-pairing assumptions and warranting targeted review and fuzzing. |
Confidence: Medium Uncertainty: Notify-call input validation, cache bounds, eviction, duplicates, and errors are unspecified, preventing a firmer assessment of the risk envelope. |
| Edge/boundary conditionsUnder-specified | 2 | Multiple boundary-prone cases require testing: BAL/payload hash pairing, separate arrival timing, missing or mismatched notifications, and minimum or maximum BAL payloads. The EIP constrains the valid call order, limiting the combinatorial burden below the highest anchor. |
Confidence: Medium Uncertainty: Duplicate, conflicting, late, and orphaned notifications are not specified, so the final number of execution-client boundary cases is uncertain. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Multiple test-constructable details require client agreement before Engine API tests can be baselined. The gaps are material but localized to the new asynchronous delivery and cache protocol, matching score 2 rather than a protocol-wide re-baselining. |
Confidence: High Uncertainty: The EIP is Draft and the sealed package contains no permitted implementation, devnet, discussion-thread, or test evidence with which to resolve these gaps. |
| New test-framework primitivesUnder-specified | 1 | An Engine API test harness needs a minor extension to issue the new method and express the required before-newPayload sequence, while ordinary call/result assertions should otherwise suffice. |
Confidence: Low Uncertainty: The sealed package contains no test-framework description, so whether this is merely a helper addition or a reusable new expectation primitive is unresolved. |
Show 19 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added. |
Uncertainty: No opcode-table or EVM-instruction change appears in the package. |
| Modified opcodes | 0 | No existing opcode result or non-gas behavior is modified. |
Uncertainty: Inherited EIP-7928 observability rules are not changed by sidecar transport. |
| Added precompiles | 0 | No precompile is added. |
Uncertainty: The package specifies no precompile address or call behavior. |
| Modified precompiles | 0 | No precompile logic or gas schedule is modified. |
Uncertainty: Precompiles may be represented in a BAL under EIP-7928, but EIP-8146 does not change their behavior. |
| Added system contracts | 0 | No system contract is introduced. |
Uncertainty: System-contract accesses recorded by the inherited BAL are not contracts added by EIP-8146. |
| Modified system contracts | 0 | No existing system-contract code, state, or behavior is modified. |
Uncertainty: Prefetching entries that may include system-contract state has no specified behavioral effect on those contracts. |
| EVM Gas rule changes | 0 | No EVM gas schedule or gas-accounting mechanism is added or modified on the execution layer. |
Uncertainty: The package specifies no gas-rule change; performance motivation for future gas-limit increases is not itself a gas-accounting change. |
| State-access ordering within opcode execution | 0 | EIP-8146 does not change inherited within-opcode access or gas-charge ordering; it only transports the resulting BAL separately. |
Uncertainty: No EIP-8146 text reopens or overrides the inherited opcode-ordering rules. |
| Blob gas accounting changes | 0 | No blob-gas accounting mechanism or value is changed. |
Uncertainty: Consensus-side blob availability is mentioned only to distinguish it from BAL availability and is outside the scored EL surface. |
| State gas accounting changes | 0 | No state-gas charging site, rate, reservoir, budget, or spill interaction is introduced or modified. |
Uncertainty: Prefetching state is a performance operation, not a state-gas charge. |
| New EVM gas refund | 0 | No new EVM refund mechanism is introduced. |
Uncertainty: The package contains no refund-rule amendment attributable to EIP-8146. |
| New transaction types | 0 | No transaction type is introduced. |
Uncertainty: FOCIL transaction filtering is a stated benefit, not a transaction-type change. |
| New or modified transaction validity mechanisms | 0 | EIP-8146 introduces no transaction validity or intrinsic-gas rule; it changes when auxiliary BAL data reaches the EL. |
Uncertainty: Its stated benefit to FOCIL builders filtering invalidated transactions does not impose a new EIP-8146 transaction-validity rule. |
| New block / header fields | 0 | No new execution block or execution header field is introduced. |
Uncertainty: The new field in the CL ExecutionPayloadBid is outside the execution-layer scoring boundary. |
| Encoding changes (RLP/SSZ) | 0 | The execution-layer interface relocates an existing RLP byte sequence but does not switch or alter its encoding. |
Uncertainty: New and modified SSZ containers are consensus-layer work and are excluded by the execution-only assessment boundary. |
| Block syncing changes | 0 | No new execution-block RLP validation mechanism requiring client block-sync testing is introduced. |
Uncertainty: CL sidecar req/resp and retention requirements are not scored as EL block syncing under this anchor. |
| New fork activation mechanism | 0 | No execution state, pre-existing internal variable, or irregular transition is modified at fork activation. |
Uncertainty: Activation of a new RPC capability is not a state or internal-variable mutation under this anchor. |
| Transition-tool interface changes | 0 | The EIP does not require a new transition-tool field or mechanism because its scored change is asynchronous Engine API delivery, not a state-transition input or output change. |
Uncertainty: No transition-tool section is provided, but no changed transition semantics establish a need to extend that interface. |
| Cryptography | 0 | Existing Keccak-256 commitment verification is reused; no new cryptographic mechanism is added on the execution layer. |
Uncertainty: A new CL dependency on an existing Keccak implementation is not new cryptography and is outside the scored EL surface. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-8146.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-8146.yaml· sha256b4458238454c - Supporting documents in the sealed package
supporting/eip-7732.md,supporting/eip-7805.md,supporting/eip-7928.md