Following the implementation of EIP-7623, this EIP proposes a further adjustment to calldata pricing by raising the floor cost from 10/40 to 15/60 gas per zero/non-zero byte. This change aims to provide additional reduction in maximum block size and variance while maintaining compatibility with regular user transactions that involve significant EVM computation.
While EIP-7623 successfully reduced the maximum possible block size by introducing a floor cost of 10/40 gas per byte for data-heavy transactions, continued increases in gas limit demands further optimization. The current floor cost still permits relatively large data-heavy payloads that contribute to block size variance.
By increasing the floor cost to 15/60 gas per byte, this proposal aims to:
Parameter | Value |
---|---|
STANDARD_TOKEN_COST |
4 |
TOTAL_COST_FLOOR_PER_TOKEN |
15 |
Let tokens_in_calldata = zero_bytes_in_calldata + nonzero_bytes_in_calldata * 4
.
Let isContractCreation
be a boolean indicating the respective event.
Let execution_gas_used
be the gas used for EVM execution with the gas refund subtracted.
Let INITCODE_WORD_COST
be 2 as defined in EIP-3860.
The formula for determining the gas used per transaction changes from EIP-7623's implementation to:
tx.gasUsed = (
21000
+
max(
STANDARD_TOKEN_COST * tokens_in_calldata
+ execution_gas_used
+ isContractCreation * (32000 + INITCODE_WORD_COST * words(calldata)),
TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata
)
)
Any transaction with a gas limit below 21000 + TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata
or below its intrinsic gas cost (take the maximum of these two calculations) is considered invalid. This limitation exists because transactions must cover the floor price of their calldata without relying on the execution of the transaction. There are valid cases where gasUsed
will be below this floor price, but the floor price needs to be reserved in the transaction gas limit.
With EIP-7623's implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 0.72 MB (30_000_000/40
). This EIP further reduces this to approximately 0.47 MB (30_000_000/60
) for zero bytes and maintains proportional costs for non-zero bytes.
By increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:
The floor cost mechanism ensures that transactions involving significant EVM computation continue to pay the standard 4/16 gas per byte for calldata, preserving the user experience for regular Ethereum operations.
This is a backwards incompatible gas repricing that requires a scheduled network upgrade.
Wallet developers and node operators MUST update gas estimation handling to accommodate the new calldata cost rules. Specifically:
Wallets: Wallets using eth_estimateGas
MUST be updated to ensure that they correctly account for the updated TOTAL_COST_FLOOR_PER_TOKEN
parameter of 15. Failure to do so could result in underestimating gas, leading to failed transactions.
Node Software: RPC methods such as eth_estimateGas
MUST incorporate the updated formula for gas calculation with the new floor cost values.
Users can maintain their usual workflows without modification, as wallet and RPC updates will handle these changes.
Testing for this EIP should verify the correct application of the new calldata cost floor of 15/60 gas per zero/non-zero byte:
eth_estimateGas
correctly accounts for the new TOTAL_COST_FLOOR_PER_TOKEN
valueAs the maximum possible block size is further reduced compared to EIP-7623, no additional security concerns are introduced beyond those already addressed in the original proposal.
The same transaction bundling considerations from EIP-7623 apply:
The increased floor cost strengthens the incentive structure for appropriate data availability method selection without introducing new attack vectors.
Copyright and related rights waived via CC0.