Evaluated on: · Spec revision: 2025-01-15 · da129d4262
Scope at the cutoff. This revision of EIP-7840 is an Informational EIP. It adds a `blobSchedule` object to execution-client configuration files that gives a `target` and `max` blob count per block for each named fork. Its example lists Cancun as 3/6 and Prague as 6/9. If the current fork has no entry, clients use the last specified fork's values; if no fork has an entry, both values are zero. The stated motivation is to make the blob parameters adjustable while avoiding an Engine API handshake. The rationale gives eth_feeHistory's blobGasUsedRatio as an example of EL use and says the core protocol does not specifically need the max.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 7 criteria affected
- Plausible range
- 2–10 (Low)
- Assessment cutoff
- 2025-01-15 · EIP revision
da129d4262(2025-01-15)
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
- Transition-tool interface changes1
- New test-framework primitives1
- Cross-EIP interactions1
- Unspecified behavior requiring cross-client consensus1
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 specifies a configuration format and a fallback rule. It does not say whether execution clients must use the configured target/max for consensus computations (excess blob gas, blob-count validity) or only for RPC. It also leaves unstated how the 'current fork' is determined, and what happens when configured values conflict with protocol constants or with the CL.
Plausible total
2–10
recorded score 4 · plausible tiers Low
Unresolved questions at the cutoff (5)
- Must EL consensus (excess blob gas calculation, max blob validation) read target/max from blobSchedule, or only RPC methods?
- How is the 'current fork' keyed: by fork name, or by an activation timestamp from elsewhere in the config?
- Is the zero fallback before Cancun consensus-relevant, and how should it interact with pre-Cancun blocks?
- Must the transition tool or test fixtures carry blobSchedule, or can they derive it from the fork?
- What should a client do if the configured values disagree with hardcoded fork constants or with the CL's values?
Notable ambiguities noted by the assessor (3)
- The EIP is Informational and specifies only a configuration format. Its effect on consensus depends on how clients consume the values, which is not stated.
- The Prague values (6/9) in the example come from an unsupplied EIP. Any capacity change is attributed to that EIP, not to EIP-7840.
- No base fee update fraction or other blob-pricing parameter appears in the schedule, so it is unclear whether target/max alone are enough for every EL use.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Transition-tool interface changesUnder-specified | 1 | If clients read target/max from configuration, the state-transition tool's chain-configuration input may need one new semantic field (the blob schedule) so that execution matches the fixture. No new exchange mechanism is needed. This is scored at level 1, but it is not certain. |
Confidence: Low Uncertainty: The EIP does not mention the transition tool. The tool might instead derive the values from the fork name, which would mean level 0. No tool evidence is supplied. |
| New test-framework primitivesUnder-specified | 1 | Fixture and genesis-config generation needs a local extension to produce blobSchedule for each fork, including fallback cases. This extends an existing kind of primitive (chain config) and does not add a new abstraction. |
Confidence: Low Uncertainty: How much is needed depends on whether test clients require the object. If they derive the values from fork rules, nothing may be needed. |
| Cross-EIP interactions | 1 | Only local compatibility checks are needed: the configured values per fork must agree with the blob-gas parameters defined elsewhere, and RPC outputs must use the correct max. No coordinated multi-EIP scenarios are established. |
Confidence: Low Uncertainty: The interacting EIPs (the blob-transaction mechanism and the Prague blob-count increase) are not named or supplied. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | It is left out whether the configured target/max feed consensus computations or only RPC outputs such as blobGasUsedRatio. With values that match the protocol, the surrounding text supports a single intended outcome, so this is a localized omission rather than competing consensus outcomes. |
Confidence: Low Uncertainty: If clients disagree on whether consensus uses the config (for example, under the zero fallback or a non-matching config), the issue could rise to level 2. How the 'current fork' is identified (by name or timestamp) is also unstated. |
Show 24 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | None. |
|
| Modified opcodes | 0 | None. |
|
| Added precompiles | 0 | None. |
|
| Modified precompiles | 0 | None. |
|
| Added system contracts | 0 | None. |
|
| Modified system contracts | 0 | None. |
|
| EVM Gas rule changes | 0 | No execution-gas charging, metering or settlement rule is introduced or changed. |
|
| State-access ordering within opcode execution | 0 | No instruction ordering changes. |
|
| Blob gas accounting changesUnder-specified | 0 | The EIP sets out a configuration format. It does not change blob-gas pricing, excess-blob-gas computation or limits. The Prague 6/9 example values would come from a separate parameter-change proposal, which is not supplied here. |
Uncertainty: The text does not say whether clients must take the consensus target/max (used for excess blob gas and block blob limits) from this config. If they do, configured values could change accounting. Prague values that differ from Cancun belong to an unsupplied EIP. |
| State gas accounting changes | 0 | No state-gas accounting rule changes. |
|
| New EVM gas refund | 0 | No new refund mechanism. |
|
| New transaction types | 0 | None. |
|
| New or modified transaction validity mechanismsUnder-specified | 0 | No transaction-validity rule changes are specified. Values that match the protocol leave blob-count validity unchanged. |
Uncertainty: If the configured max drives the per-block or per-transaction blob limit, the configuration becomes a parameter source for an existing check (at most level 1). |
| New block / header fields | 0 | None. |
|
| Encoding changes (RLP/SSZ) | 0 | Client configuration files are not a listed protocol serialization interface. |
|
| Block syncing changes | 0 | No RLP decoding or structural validation changes. |
|
| New fork activation mechanism | 0 | Choosing parameters by fork is excluded from this criterion. No state migration is required. |
|
| Engine API changes | 0 | Engine API changes are explicitly avoided. |
|
| Patterns affecting pre-existing tests | 0 | With configured values that match the protocol parameters, baseline test inputs and expected results are unchanged. Any test configuration or genesis plumbing falls under framework or interface criteria. |
Uncertainty: If baseline fixtures' genesis configs must include blobSchedule for clients to run, that configuration plumbing might be counted as rework. |
| New invariant on pre-existing tests | 0 | No new output needs asserting in baseline tests. |
|
| Security risksUnder-specified | 0 | No protocol validation boundary changes. A misconfiguration or EL/CL mismatch is an operational concern and is not established as a protocol invariant by the text. |
Uncertainty: If ELs use configured values for consensus, a config that differs from the CL could split the chain. Validating consistency would be a local check (level 1). |
| Performance risks | 0 | Any capacity changes (for example, Prague 6/9) would belong to the EIP that sets those values, not to the configuration format. |
|
| Edge/boundary conditionsUnder-specified | 0 | The fallback rule decides how configuration is resolved when entries are missing. It is not a consensus rule with boundary-sensitive protocol outcomes. If the configured values match the protocol constants, no new protocol boundary is established. |
Uncertainty: If the fallback values feed consensus checks (for example, zero max before Cancun, or an inherited max for a fork with no entry), testing the fallback resolution becomes one boundary-sensitive mechanism (level 1). |
| Cryptography | 0 | No cryptographic changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@da129d4262EIPS/eip-7840.md committed 2025-01-15 · information cutoff 2025-01-15T16:25:43Z- 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-7840.yaml· sha256d7add1d91b7e