Evaluated on: · Spec revision: 2024-12-18 · 1da6c75495
Scope at the cutoff. At this revision, EIP-7691 raises the blob target from 3 to 6 blobs per block and the maximum from 6 to 9 when Prague activates. On the execution layer it only swaps parameters: MAX_BLOB_GAS_PER_BLOCK becomes 1179648, TARGET_BLOB_GAS_PER_BLOCK becomes 786432 and BLOB_BASE_FEE_UPDATE_FRACTION_ELECTRA is 5007716. These values replace the EIP-4844 values at the fork timestamp. It adds no new transaction type, header field, opcode, precompile, Engine API change or activation migration. The consensus-layer constants MAX_BLOBS_PER_BLOCK_ELECTRA (9) and TARGET_BLOBS_PER_BLOCK_ELECTRA (6) are consumed by consensus clients.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 5 criteria affected
- Plausible range
- 13–19 (Medium)
- Assessment cutoff
- 2024-12-18 · EIP revision
1da6c75495(2024-12-18)
Score bands · Checklist revision 3
- 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
- Block syncing changes2
- Patterns affecting pre-existing tests2
- Edge/boundary conditions2
- Cross-EIP interactions2
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 EIP is a parameter swap, but it does not explicitly specify the fork-transition behavior: which target is used when computing the first Prague block's excess_blob_gas from a Cancun parent. Its activation wording ('PECTRA_FORK_EPOCH timestamp') mixes epoch and timestamp, and the Prague values reuse the names of the Cancun constants.
Plausible total
13–19
recorded score 14 · plausible tiers Medium
Unresolved questions at the cutoff (3)
- Is the first Prague block's excess_blob_gas computed with the new target 786432 or the Cancun target 393216?
- Is the EL activation tied to the Prague block timestamp, as implied, rather than an epoch?
- Is there any EL-side mechanism, such as an Engine API or configuration, that keeps the CL blob-count constants consistent with the EL blob-gas limits?
Notable ambiguities noted by the assessor (4)
- The Parameters section says 'starting at PECTRA_FORK_EPOCH timestamp', which mixes epoch and timestamp semantics for EL activation.
- Backwards Compatibility reuses the names MAX_BLOB_GAS_PER_BLOCK and TARGET_BLOB_GAS_PER_BLOCK for both the Cancun and Prague values.
- The Motivation mentions a possible flag for the maximum blobs in locally built blocks, but it is non-normative and not specified.
- The transition-block excess_blob_gas computation is not stated explicitly.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Block syncing changesUnder-specified | 2 | The parent-dependent excess_blob_gas header validation (a complex rule) changes its expected values through the new target, and must be tested through block import, including across the fork boundary. The blob_gas_used limit is arguably an ordinary execution rule. This gives exactly one complex rule changed, which is level 2. |
Confidence: Low Uncertainty: A parameter-only change to an existing check could be seen as an ordinary execution-rule change (level 0–1). Counting the max-blob-gas check as well would give level 3. |
| Patterns affecting pre-existing testsUnder-specified | 2 | Baseline blob tests run against Prague need new expected results in several families: maximum blob count per block (now 9 valid and 10 invalid), excess_blob_gas computation (new target), blob base fee and price-dependent transaction validity (new fraction), and parent excess-gas setup. Most of the rework is at parameter-dependent cases, but the excess-gas calculation changes for ordinary cases too. This is level 2, not a common rewrite across unrelated families. |
Confidence: Medium Uncertainty: Could be argued as level 3 because every blob-carrying block's excess_blob_gas and blob fee changes. However, all affected families are blob-related and the change is purely a parameter change. |
| Edge/boundary conditionsUnder-specified | 2 | Several boundary-sensitive mechanisms change: the block blob-gas limit (9 versus 10 blobs), the excess-gas target and its zero clamp (6 blobs), and the base-fee thresholds through the new fraction. The fork-transition block, whose parent was produced under Cancun values, is an added boundary. No elevated matrix is clearly established, so this is level 2. |
Confidence: Medium Uncertainty: The fork transition may combine parent usage, parent excess and fork timestamp into an interacting matrix. Its rule is not explicitly specified. |
| Cross-EIP interactions | 2 | Coordinated cases with EIP-4844 are needed: excess-gas and fee computation under the new parameters, the Cancun-to-Prague transition with carried-over excess gas, block limits at 9 and 10 blobs, and blob transactions near the fee threshold. EIP-7623 and EIP-7594 are cited only as motivation, with no EL behavioral interaction specified. This is level 2. |
Confidence: Medium Interacting EIPs: EIP-4844 |
| Blob gas accounting changes | 1 | The existing EIP-4844 blob-gas parameters change, but no new accounting mechanism is introduced. This is level 1. |
Confidence: High |
| New or modified transaction validity mechanisms | 1 | Only existing bounds and parameters behind blob-transaction eligibility change: the base-fee threshold and the maximum blobs that fit in a block. No new validation dependency is added. This is level 1. |
Confidence: High |
| New test-framework primitives | 1 | The framework's fork definitions need local, fork-dependent blob parameters (max blobs, target and update fraction) so that excess gas and fees can be computed for Prague. This extends an existing kind of primitive without adding a new abstraction. |
Confidence: Medium Uncertainty: If the framework already parametrises blob constants per fork, this could be 0. There is no supplied framework evidence either way. |
| Security risks | 1 | The changed blob limit and fee-response boundaries can be checked locally in EL validation. The bandwidth risk lies mostly outside the EL. |
Confidence: Medium |
| Performance risks | 1 | Raising the maximum from 6 to 9 blobs per block increases EL workloads for the blob mempool, sidecar KZG verification and payload blob bundles. Component benchmarking of those paths at the new bound is enough. The main propagation risk is at the network or consensus layer. |
Confidence: Medium Uncertainty: The EIP gives no EL-specific performance analysis. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | Transition details are omitted: which target applies to the excess computation at the fork block, and whether the fork is a timestamp or an epoch for the EL. The surrounding text, which says values are replaced from the fork timestamp, supports one intended outcome: Prague blocks use the new values. This is level 1. |
Confidence: Medium Uncertainty: Clients could disagree on the transition block's excess computation, which would make this level 2. |
Show 18 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | None introduced. |
|
| Modified opcodes | 0 | No instruction semantics change. BLOBHASH and BLOBBASEFEE-style values only see different inputs. |
|
| Added precompiles | 0 | None introduced. |
|
| Modified precompiles | 0 | No precompile changes. |
|
| Added system contracts | 0 | None introduced. |
|
| Modified system contracts | 0 | No system contract changes. |
|
| EVM Gas rule changes | 0 | The EIP does not change how execution gas is charged, metered, limited or settled. |
|
| State-access ordering within opcode execution | 0 | No instruction's state-access or gas-charge ordering changes. |
|
| State gas accounting changes | 0 | State-gas accounting does not change. |
|
| New EVM gas refund | 0 | No new refund mechanism is introduced. |
|
| New transaction types | 0 | None introduced. |
|
| New block / header fields | 0 | Only the values of existing fields change. |
|
| Encoding changes (RLP/SSZ) | 0 | Only values within unchanged schemas change. |
|
| New fork activation mechanism | 0 | This is selecting constants by fork, which the rubric excludes. |
|
| Engine API changes | 0 | The EIP specifies no Engine API change. |
Uncertainty: The EL/CL contract on the maximum number of blobs per payload is implicit and not addressed. |
| Transition-tool interface changesUnder-specified | 0 | Selecting constants by fork does not require new transition-tool inputs or outputs under this specification. |
Uncertainty: If tools have to receive the blob parameters as configuration rather than deriving them from the fork, one field could change. The supplied text does not say this. |
| New invariant on pre-existing tests | 0 | No new output needs to be asserted. |
|
| Cryptography | 0 | No cryptographic mechanism changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@1da6c75495EIPS/eip-7691.md committed 2024-12-18 · information cutoff 2024-12-18T19:48:12Z- Rubric
- Checklist revision 3 ·
ethspecs/pm@fe2f793b03 - Evaluator
- Opus 5.5 (
claude-opus-5-5) at high effort, one tool-less call per EIP · isolationbubblewrap_claude_p_no_tools_v1 - Source record
- Frozen research record
research/tasks/10-opus-v3-reassessment/retrospective/outputs/assessments/prague/eip-7691.yaml· sha25602c228a3ecb2 - Supporting documents supplied with the EIP
supporting/eip-4844.md,supporting/eip-7594.md,supporting/eip-7623.md