base fee would even leak downwards due to small residual fee block space (<21k)
Does this already occur?
I think this adds natural variability to the basefee: since basefee and gas available per block are coupled, the next block will allow for the transaction to be included but at a higher price? (Edited)
EIP-1559 Time-Based Base Fee Adjustments
Motivation
current EIP-1559 base fee adjustment: based on block gas usage
in effect, control loop that targets stable throughput per block
not ideal under PoW under two aspects:
block time variability:
block gas usage tries to measure demand at current base fee level, but gas usage is proportional to block time, introducing noise to the used signal
block time variability => "incorrect" demand signals => "incorrect" base fee adjustments => increased base fee volatility
reduced throughput during consensus issues:
if chain forks, block times go up for a while, before difficulty is adjusted
gas limit elasticity would give us the capability to compensate for this throughput reduction to some extent
also not ideal under PoS:
missed slots:
while general block times become regular, occasionally slots are missed, doubling the block time for the next block (or more, if that slot is also missed)
missed slots still send incorrect signal (demand looks 2x as high as it is), leading to base fee spikes after missed slots
incentive to attack network via block proposer DOS, as each missed slot directly reduces network throughput
consensus issues:
worse than under PoW, as longer time for self-healing (several weeks for inactivity leaks as opposed to several hours for difficulty adjustments)
gas limit elasticity would again give us the capability to compensate for this throughput reduction to some extent
Proposal
include block time in base fee adjustment: make "block gas target" proportional to block time
results in control loop that targets stable throughput per time
addresses problems listed above:
reduces / removes base fee volatility inroduced by PoW block time variability
reduces / removes base fee volatility inroduced by PoS missed slots
reduces incentive to DOS block proposers
reduces / removes impact of chain forks on throughput
drawback: during demand spikes under PoS, missed slots can delay base fee increase
Current EIP-1559 Update Rule
, where:
: base fee at block : maximum base fee change rate : gas used by block : gas target for block
Block Time Based Update Rule
, where:
: block time for block , i.e. block.timestamp - parent.timestamp : block time target
Capped Block Time Based Update Rule
In practice it is sensible to introduce an upper limit to the block time used by the update rule:
during chain forks, block gas targets above 50% reduce the ability to pick up on demand increases
in the extreme, with 50%+ of proposers offline, the base fee could not increase at all
fee market would revert to a first-price auction on top of the current base fee level
base fee would even leak downwards due to small residual fee block space (<21k)
alternative: bound block gas target to below elasticity limit
, where:
: maximum block time to consider (e.g. 23s or 24s for PoS)
Specification
The relevant part of the pseudocode specification of EIP-1559 is: