This is a proposal to implement a greatly simplified transaction fee reform mechanic that is intended to have similar (though slightly less optimal) effects to EIP 1559 but at ~1/5 the implementation complexity.

Parameters

ADJUSTMENT_COEFFICIENT : 8

Protocol changes

We interpret a particular storage slot in the state (eg. as storage key 0 of address 0x0100) as the BASEFEE . "Set BASEFEE " means to SSTORE to that storage slot, and when using BASEFEE in equations we mean to SLOAD from that storage slot to read the value.

. "Set " means to SSTORE to that storage slot, and when using in equations we mean to from that storage slot to read the value. At the start of processing block FORK_BLKNUM , set BASEFEE to 1

, set to 1 Let diff = block.gas_used - block.gas_limit // 2 . At the end of processing a block: After applying block rewards and fees, reduce the miner’s balance by BASEFEE * block.gas_used . If the resulting balance would be below zero, the block is invalid. If diff > 0 , set BASEFEE += max(1, BASEFEE * diff // block.gas_limit // ADJUSTMENT_COEFFICIENT) If diff < 0 and BASEFEE > 1 , set BASEFEE -= max(1, BASEFEE * abs(diff) // block.gas_limit // ADJUSTMENT_COEFFICIENT)

. At the end of processing a block:

Rationale

Currently, miners generally have some internal mingasprice , and accept any transactions with tx.gasprice >= mingasprice , accepting the highest-fee transactions if there are more than enough transactions available to fill the block. The mingasprice reflects the miner’s cost in processing the transaction and the marginal increment that the transaction adds to the risk that the block will not propagate quickly enough to join the main chain.

The “rational” mingasprice has been calculated to be about 0.8 gwei (uncle blocks lose ~0.33 ETH = 330m gwei, 10 million gas blocks add ~0.025 to the uncle rate over empty blocks, so expected cost of 1 gas = 330m / 10m * 0.025 = 0.825 gwei) and miners do actually set about this value (see table at the bottom of the ethgasstation page).