Evaluated on: · Spec revision: 2026-10-07 · 6dac5e7491 · EIP-8081 list: CFI
Scope at the cutoff. EIP-8279 adds two per-transaction counters, `bal_data_bytes` and `floor_gas_used`, to EIP-7928 Block Access List (BAL) processing. Before an opcode inserts an entry into the BAL, it calls `meter_bal_data` with a fixed byte count for cold account or storage accesses, storage-value changes, value transfers, CREATE nonce and balance entries, and deployed code. That count, at 64 gas per byte, is added to the EIP-8131 static transaction floor. If the floor would exceed `tx.gas`, the operation raises OutOfGasError. The static floor seed also gains a fixed 51 BAL bytes per EIP-7702 authorization, which changes the transaction validity threshold. A storage slot returned to its pre-transaction value gets its 32 value bytes back. Final charging stays `tx.gasUsed = max(execution_gas_used, floor_gas_used)`. System calls and withdrawals are excluded from the meter.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 4 criteria affected
- Plausible range
- 20–27 (Medium–High)
- Snapshot
- 2026-10-07 · EIP revision
6dac5e7491(2026-10-07)
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
- EVM Gas rule changes3
- State-access ordering within opcode execution3
- Edge/boundary conditions3
- Cross-EIP interactions3
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 pseudocode adds to `bal_data_bytes` before the OutOfGasError check and never rolls it back. The refund path recomputes `floor_gas_used` without a `tx.gas` check, so the floor could exceed `tx.gas`. Revert handling of per-slot value-charge tracking conflicts with the 'at most once per slot' wording. The meter's position relative to EIP-7928 pre-state and post-state gas validation is not given. It is also unclear whether resolving an EIP-7702 delegated target counts as a metered cold access.
Plausible total
20–27
recorded score 24 · plausible tiers Medium, High
Unresolved questions at the cutoff (5)
- After a floor OutOfGasError, are the bytes already added to `bal_data_bytes` kept for later meter calls and refund recomputation?
- Can the refund recompute set `floor_gas_used` above `tx.gas`, and if so, what gasUsed is charged?
- Is per-slot value-charge tracking reverted with the frame? Does a committed O→Y write after a reverted O→X write meter 32 value bytes again?
- Is `meter_bal_data` called before or after the EIP-7928 pre-state gas validation for each opcode?
- Is resolving an EIP-7702 delegated target metered as a 20-byte cold account access?
Notable ambiguities noted by the assessor (6)
- After a failed `meter_bal_data`, are the bytes that were added to `bal_data_bytes` kept? Can a later refund recompute push `floor_gas_used` above `tx.gas`?
- An O→X write happens in a reverted frame, then a committed O→Y write follows. Are the 32 value bytes charged again, and is the per-slot charged flag reverted?
- Is the floor check before or after EIP-7928 pre-state gas validation? This matters when the frame then OOGs and the floor binds.
- Does resolving an EIP-7702 delegated target during CALL* meter 20 bytes as a cold account access?
- The balance change of the CALL sender and accesses to warm-but-unrecorded addresses (precompiles) are not listed as metered triggers. This may break the claimed upper bound.
- The specification refers to an `auth_bytes` term, but the defined name is `auth_bal_bytes`.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| EVM Gas rule changes | 3 | This adds a new accounting mechanism: a runtime floor accumulator with its own out-of-gas trigger. It also changes existing settlement results: any floor-bound transaction that touches state, and type-4 transactions whose floor dominates, now get a different gasUsed. That meets level 3. |
Confidence: High |
| State-access ordering within opcode executionUnder-specified | 3 | A common new ordering step (the floor check before BAL insertion) is added for every account-accessing and storage-accessing opcode class. It changes which accesses get recorded: an access that passes EIP-7928 pre-state validation can still be left out of the BAL if the floor check fails. Baseline BAL expectations for floor-bound transactions must be revised. This meets level 3. |
Confidence: Medium Uncertainty: The order of the floor check relative to EIP-7928 pre-state gas validation is not specified. Baseline revisions are limited to floor-bound transactions, so level 2 is plausible. |
| Edge/boundary conditions | 3 | Several boundary-sensitive mechanisms are involved: the runtime floor-vs-`tx.gas` check, the static validity threshold with auths, the execution/floor crossover in the final `max`, and SSTORE value charge and refund. The SSTORE mechanism has an elevated matrix of original/current/new value × cold/warm × frame revert × whether the floor binds. The runtime check interacts with opcode type and the static seed. That meets level 3. |
Confidence: Medium |
| Cross-EIP interactions | 3 | The target couples EIP-8131 static floors, EIP-7928 BAL recording rules, EIP-7702 authorization and delegation handling, and EIP-3529 SSTORE refunds. Coordinated scenarios are needed that check BAL contents and floor gas together. That meets level 3. |
Confidence: High Interacting EIPs: EIP-7928, EIP-8131, EIP-7702, EIP-3529, EIP-7623, EIP-7976, EIP-7981, EIP-4844, EIP-2935, EIP-4788, EIP-7002, EIP-7251 |
| New EVM gas refundUnder-specified | 2 | The floor-byte refund depends on history (original vs current value, earlier charge state, revert behaviour), so it counts as complex under the rubric. Existing EIP-3529 refund rules and baseline refund expectations are unchanged. That is level 2. |
Confidence: Medium Uncertainty: It is debatable whether a reduction of the floor accumulator counts as an 'EVM gas refund'. If it does not, the score would be 0. |
| Patterns affecting pre-existing tests | 2 | Rework is localized to several families: floor-bound calldata or access-list tests from EIP-8131/7623 that touch state, type-4 floor and validity boundary tests, and BAL tests built on floor-bound transactions. No common rewrite is needed across ordinary tests, because the floor rarely binds. That is level 2. |
Confidence: Medium Uncertainty: No test suite was supplied. The breadth is estimated from the specification. |
| New test-framework primitives | 2 | Tests need a new expectation helper. It must compute the runtime BAL-byte floor from an execution trace (cold accesses, value transfers, SSTORE original/current tracking, deployed code length) and combine it with the static floor. Fork floor calculators also need the per-auth term. This is a new expectation abstraction within the target's suite, which is level 2. |
Confidence: Medium Uncertainty: Framework capabilities are not evidenced. |
| Security risks | 2 | The change couples transaction settlement to how the BAL builder records entries. The meter must stay an upper bound on EIP-7928 contents. Possible gaps include warm-but-unrecorded addresses, CALL-sender balance changes and delegation resolution. The meter must also never fire outside the EVM exception handler. This bounded interaction needs targeted differential fuzzing of the meter against actual BAL contents. That is level 2. |
Confidence: Medium |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Several localized outcomes are left open, and each changes gasUsed when the floor binds: the state after a failed meter, refund recompute bounds, revert handling of slot-charge tracking, ordering against EIP-7928 gas checks, and whether resolving an EIP-7702 delegated target meters 20 bytes. Clients must agree on these before expected values can be fixed. That is level 2. |
Confidence: Medium Uncertainty: Some of these outcomes may be intended to follow the pseudocode literally. |
| New or modified transaction validity mechanisms | 1 | Only a local bound changes in the existing floor validity condition (the per-auth term). The runtime check is an execution-time OOG, not a validity rule. |
Confidence: Medium |
| Performance risks | 1 | Component benchmarks of metering overhead are enough, together with checks that adversarial calldata+SLOAD blocks are capped. The change tightens a bound rather than adding resource coupling. |
Confidence: Medium Uncertainty: Validating the reduced worst-case block size could need integrated block-building measurements (level 2). |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new instructions. |
|
| Modified opcodesUnder-specified | 0 | The only change at instruction level is an additional out-of-gas halt that comes from gas accounting. Under the rubric, gas-only and ordering-only changes do not count. |
Uncertainty: The floor OutOfGasError is a new exceptional-halt condition that does not depend on the frame's gas. If treated as a semantic change, the score would be 3. |
| Added precompiles | 0 | None. |
|
| Modified precompiles | 0 | None. |
|
| Added system contracts | 0 | No new system contracts. |
|
| Modified system contracts | 0 | Contract rules and surrounding protocol behavior are unchanged. The exclusion leaves baseline behavior intact. |
|
| Blob gas accounting changes | 0 | No blob-gas charging, pricing or limits change. |
|
| State gas accounting changes | 0 | The rubric places BAL data-size charges under GAS. No state-gas mechanism changes. |
|
| New transaction types | 0 | None. |
|
| New block / header fields | 0 | None. |
|
| Encoding changes (RLP/SSZ) | 0 | No serialized schema changes. |
|
| Block syncing changes | 0 | Only execution and gas rules change. Block decoding and structural validation are unchanged. |
|
| New fork activation mechanism | 0 | No activation-specific state transition. |
|
| Engine API changes | 0 | None. |
|
| Transition-tool interface changes | 0 | No input or output fields need to change. gasUsed is already reported. |
Uncertainty: Tooling might choose to expose `floor_gas_used` for debugging, but the specification does not require it. |
| New invariant on pre-existing tests | 0 | No new header, receipt or log output is added. Effects show up only in existing gasUsed values. |
|
| Cryptography | 0 | No cryptographic changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@6dac5e7491EIPS/eip-8279.md committed 2026-10-07 · information cutoff 2026-10-07T22:23:55Z- 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/prospective/outputs/assessments/hegota-2026-10-08/eip-8279.yaml· sha2567b8f0c0bd763 - Supporting documents supplied with the EIP
supporting/eip-2935.md,supporting/eip-3529.md,supporting/eip-4788.md,supporting/eip-4844.md,supporting/eip-7002.md,supporting/eip-7251.md,supporting/eip-7623.md,supporting/eip-7702.md,supporting/eip-7928.md,supporting/eip-7976.md,supporting/eip-7981.md,supporting/eip-8131.md