Use actual gas usage to compute base fee in EIP-1559

Gas wars help allocate a scarce resource (i.e., being first in the block) to whoever values it the most. At the same time, they create a negative externality on all other users because they can quickly fill up block space and hence increase the base fee in the following period.

The critical observation is that gas wars involve several transactions with a large “gas limit.” But typically, all but the first of these transactions will fail. Hence, gas wars do not necessarily generate significant gas usage.

My idea is, therefore, to use the realized gas usage of the previous block to compute the base fee. More precisely:

  • The maximum block size is unchanged at 25M gas.
  • The target is specified in terms of gas used rather than the block size. A sensible amount would be 80% of the current target (approx 10M gas).
  • The base fee is computed in each period by looking at the difference between the gas used in the previous and the target (with the same formula currently in use).

The expected outcome is that gas wars do not affect the base fee and other users if the maximum block size is not hit. Of course, if the maximum block size is hit, we have the same issue discussed earlier, and gas wars generate a negative externality on other users.

The proposal, therefore, should greatly diminish (but perhaps not entirely eliminate) the negative externality generated by gas wars.