Evaluated on: · Spec revision: 2024-04-03 · fd4ec86e3b
Scope at the cutoff. At this revision, EIP-7623 changes how a transaction's gas used is calculated. It counts calldata "tokens" as zero bytes plus 4 × nonzero bytes. A transaction is then charged the larger of two amounts: the standard cost (4 gas per token, plus EVM gas used, plus any contract-creation cost) or a floor of 12 gas per token. In both cases the 21000 base cost is added. The goal is to make data-heavy transactions with little execution pay up to 48 gas per nonzero byte, which cuts the maximum block size. It adds no new transaction types, header fields, opcodes, precompiles or Engine API changes.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 5 criteria affected
- Plausible range
- 11–18 (Low–Medium)
- Assessment cutoff
- 2024-04-11 · EIP revision
fd4ec86e3b(2024-04-03)
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
- Patterns affecting pre-existing tests2
- Cross-EIP interactions2
- Unspecified behavior requiring cross-client consensus2
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 revision gives only a gas-used formula. It does not say whether a gas_limit below the floor is invalid or capped, how refunds are ordered relative to the floor, whether access-list gas is included, or which transaction types are covered.
Plausible total
11–18
recorded score 14 · plausible tiers Low, Medium
Unresolved questions at the cutoff (4)
- Must a transaction's gas_limit be at least 21000 + floor? If not, what happens when the floor exceeds gas_limit?
- Is evm_gas_used in the max() measured before or after the refund counter is applied?
- Do access-list intrinsic costs count toward the standard side, the floor, or neither?
- Does the floor apply to all transaction types, including blob and contract-creation transactions?
Notable ambiguities noted by the assessor (3)
- The formula leaves out the access-list intrinsic gas that is present in the baseline intrinsic cost.
- The pseudo-code has an unbalanced brace, and 'tx.gasused' vs 'tx.gasUsed' is spelled inconsistently.
- The Rationale's '48 gas' per nonzero byte equals 12 × 4 tokens, but the threshold of 'gas spent on EVM operations' is only implied by the max().
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| EVM Gas rule changesUnder-specified | 3 | The proposal adds a new settlement rule: a floor applied with max() after execution. It also changes the expected gas used for existing calldata-heavy, low-execution transactions. That meets level 3: a new mechanism that also changes the gas results of baseline operations. |
Confidence: Medium Uncertainty: One could read this as a reprice of an existing rule (level 1). However, the max-with-floor settlement is structurally new. Its interaction with refunds and access-list costs is not specified. |
| Patterns affecting pre-existing testsUnder-specified | 2 | Baseline tests that send nonzero calldata with little execution need new expected gas, balances, receipt cumulative gas and block gas_used. These cases appear in several families: intrinsic-gas/calldata, value transfers with data, and precompile calls direct from a transaction with large inputs. But they are localized cases rather than a common rewrite of ordinary cases. |
Confidence: Medium Uncertainty: How broad the impact is depends on how often baseline vectors use calldata-heavy, low-execution transactions. Without a supplied suite, this cannot be measured. |
| Cross-EIP interactions | 2 | EIP-1559 fee settlement needs coordinated cases: refunds, priority-fee payment and base-fee evolution when the floor applies. EIP-2028 and EIP-4844 need only local compatibility checks. |
Confidence: Medium Uncertainty: The interactions with EIP-2930 access lists and EIP-3860 initcode costs are unclear from the formula. Interacting EIPs: EIP-1559, EIP-2028, EIP-4844 |
| Unspecified behavior requiring cross-client consensus | 2 | Several localized outcomes are open to competing interpretations, each of which can be constructed and observed in gas used. Examples: refund ordering relative to the floor; a gas_limit below the floor (invalid vs capped); whether access-list gas counts toward the standard side. Clients and the spec must agree before expected values can be fixed. |
Confidence: Medium |
| New or modified transaction validity mechanismsUnder-specified | 1 | Best-supported reading: the change affects gas-used accounting, which feeds block gas-limit inclusion. No new validation rule is stated. An implied gas_limit ≥ floor bound would be a local bound change. So the score is level 1. |
Confidence: Low Uncertainty: If an intrinsic-gas floor validity rule is intended, this rises to 2. If nothing about eligibility changes, it falls to 0. |
| New test-framework primitives | 1 | The framework's existing intrinsic-gas / expected-gas-used helper needs a local extension to compute the floor and the max. No new abstraction is needed. |
Confidence: Medium |
| Security risksUnder-specified | 1 | There is one local invariant to check: gas used never exceeds gas_limit or the prepaid balance under the floor. It can be checked locally within transaction processing. |
Confidence: Medium Uncertainty: Depends on how the unspecified gas_limit-vs-floor rule is resolved. |
| Performance risks | 1 | The resource bound (maximum calldata per block) shrinks. Re-benchmarking the worst-case calldata block at component level is enough, and baseline end-to-end assumptions do not become stricter. |
Confidence: Low Uncertainty: Arguably 0, because the change only reduces load. |
| Edge/boundary conditionsUnder-specified | 1 | There is one boundary-sensitive mechanism: the floor-vs-standard threshold. Its dimensions are zero/nonzero byte mix, execution gas and creation. A second boundary (gas_limit vs floor) may exist but is not specified. |
Confidence: Medium Uncertainty: If gas_limit must cover the floor, that would be a second boundary rule (level 2). |
Show 19 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. |
|
| State-access ordering within opcode execution | 0 | No opcode's state-access or gas-charge ordering changes. |
|
| Blob gas accounting changes | 0 | Blob-gas pricing and limits are unchanged. |
|
| State gas accounting changes | 0 | No state gas accounting changes. |
|
| New EVM gas refund | 0 | No new refund mechanism. How the floor interacts with existing refunds is left unspecified (see UNSP), but that does not add a refund. |
Uncertainty: It is unclear whether evm_gas_used is measured before or after refunds. |
| New transaction types | 0 | None. |
|
| New block / header fields | 0 | None. |
|
| Encoding changes (RLP/SSZ) | 0 | None. |
|
| Block syncing changes | 0 | Block gas_used changes only through execution rules, which this criterion excludes. |
|
| New fork activation mechanism | 0 | No activation-specific state transition is required. |
|
| Engine API changes | 0 | None. |
|
| Transition-tool interface changes | 0 | The existing gasUsed outputs carry the changed values. The interface does not change. |
|
| New invariant on pre-existing tests | 0 | Only existing values change. No new output needs an assertion. |
|
| Cryptography | 0 | No cryptographic changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@fd4ec86e3bEIPS/eip-7623.md committed 2024-04-03 · information cutoff 2024-04-11- 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-7623.yaml· sha256d55b95f5693a - Supporting documents supplied with the EIP
supporting/eip-1559.md,supporting/eip-4844.md