-
Notifications
You must be signed in to change notification settings - Fork 45
Add minimum base fee design doc #295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
||
Priority fee auctions occur when blocks are near the gas limit or when the base fee is significantly below the market-clearing fee. Other than full blocks, the most common cause of priority fee auctions today is [batcher sequencer throttling](https://docs.optimism.io/operators/chain-operators/configuration/batcher#batcher-sequencer-throttling), which intentionally processes fewer transactions to avoid a backlog of batches that need to be posted to L1. Similarly, if the sequencer runs out of time to execute transactions for a block, the transactions that get included will be the ones with the highest priority fees. | ||
|
||
It can also be argued that **scaled** rollups will run well below their gas target in typical conditions. Ethereum's fees are _congestion_ fees, and scaled rollups should rarely be congested: their maximum capacity should be much higher than typical usage. A minimum base fee would be charged in the vast majority of cases, and higher fees would only be charged when the rollup needs to discourage transactions near its capacity. In this scenario, we would need to think of congestion often starting from base fees that are the lowest the chain will allow. Today, that's 1 wei, which takes far too long to adjust to the market prices that are needed to prevent first-price auctions using priority fees. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would reframe gas target
as congestion threshold
, as it cannot truly be an effective target when either minimum fees or exogenous costs (L1 DA, operator fees) influence the market
|
||
| Name | Type | Default | Meaning | | ||
|------------------|---------|---------|---------| | ||
| `minBaseFeeLog2` | `uint8` | `0` | The log2 of the minimum base fee that can be charged for a transaction | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This technically changes the minimum base fee from 0 to 1 wei, although maybe that is an impossible condition in the OP stack as all blocks must contain the attributes transaction.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no explicit minimum in EIP 1559, but I think the minimum ends up being BASE_FEE_MAX_CHANGE_DENOMINATOR - 1
, so 7 wei on mainnet and 49 wei on Base. Below that, parent_base_fee_per_gas // BASE_FEE_MAX_CHANGE_DENOMINATOR
will be zero, so blocks below target end up having no further effect on the fee. (I think the blob base fee can actually go to 1 wei though.)
This document proposes establishing a configurable minimum base fee for OP Stack chains to shorten the length of priority fee auctions.