Long-anticipated EIP-1559 is up and running, but I am disappointed.
During discussion of EIP-1559 proposal, it was looking like great way to simplify end user interactions with network (besides a lot of other cool effects).
We have some number, provided by network, which determines “normal gas price at the moment”, i.e. BASE_FEE and everyone can use it: developers to rely on fast and efficient trasnsactions, end-users has predictable network fees, miners… oh well, miners didn’t like this EIP anyway
So we’ve got this:
But hey, why it looks like a chainsaw? Why gas price can change by 20% within a minutes? Of course, the problem are empty (more or less) blocks, but it doesn’t help to the fact, that we can not blindly take BASE_FEE from network and use it as a gas target.
User wants to send some ETH, wallet takes BASE_FEE and renders “your transfer will incur 10$ fee”. User is OK with that, checks transfer details for 30 seconds and boom, now it is 12$. And in 30 seconds it is 10$ again, how can we call this “predictable”?
In theory, we were aiming to “50% filled blocks”. In reality, there are almost no blocks filled for 40-60%. Here is the sample of gas used limit for 50 blocks starting from 12967650 (it is a typical distribution).
<5% | ++++++++++ | 20% |
5-25% | +++++++++ | 18% |
25-75% | ++++++++++++++++++++ | 40% |
75-95% | ++ | 4% |
95%+ | ++++++++++++++ | 28% |
Base fee on blocks 12967650 and 12967700 is equal to 42 GWEI, but it was changing from 37 to 51 (almost 20% difference from “correct” value) during this 10 minutes, just because of the way how it is calculated and the way how miners fill blocks.
I would like to discuss with community, if you see the problem with current unconsistency of BASE_FEE value as well? If it is a problem - we can discuss various solutions (it looks like they should be quite easy to implement), if it is by design or doesn’t matter - well, it still works and helps to estimate current network usage, if you have average BASE_FEE for last N blocks, but maybe it will be better if BASE_FEE calculated by network would be more stable?