The Safe Low Gas Price
What will it take to end the rule of the 20 gwei gas price?
Currently, the following is happening:
- Users are annoyed that gas prices are getting more expensive in fiat terms.
- Some miners have responded by lowering the minimum gas price they accept.
- Even so, very few users(<1%) send a transaction with a gas price lower than 20 gwei.
Why is this happening? There are a couple of possibilities.
- The gas prices are still not that expensive for many users (about 3–4 US cents to make a transaction) especially if you only make a couple transactions per month. But, still, let’s assume, all things being equal, users would prefer to have lower transaction fees.
- Users actually value the higher confirmation speed that comes with the 20 gwei gas price (about 50 seconds to confirm vs. 3 minutes with a 2 gwei gas price). Maybe sometimes, but how many account transfers are really this time sensitive? Most of the time, I suspect, getting a confirmation in 1 minute vs. 3–4 minutes doesn’t really matter much for the user.
- It is too difficult to change the gas price and users don’t know how to do it- but about 25% of transactions are made with gas prices higher than 20 gwei. User interface is a problem and explains a lot of the problem, but its not the whole story.
- And the one that I favor: People are afraid to lower the gas price. They worry their transaction will never be mined. They worry they are breaking the network rules. They worry (mistakenly) that they might lose money if it doesn’t get confirmed. They worry they will have to bother the nice people at myetherwallet or metamask to ask for customer support.
And what can be done about this?
Some people suggest lowering the “default” gas price on the wallets. This is not a bad idea and I support it, but it has the following risk: miners may not go along with the change. Currently, transaction fees are about 0.015 ETH per block compared to 5 ETH coinbase award. Since, in POW mining, the cost of mining transactions is denominated partly in ETH, miners might decide to give up mining transactions all together and simply work for the coinbase award. Therefore, a change in defaults may result in higher numbers of empty blocks.
Furthermore, changing client defaults is an ad hoc solution, and Ethereum prefers fundamental solutions- we need a solution that will last and adjust over time.
A durable solution to the current situation requires a functioning gas market where participants make simple but informed choices and miners are competing to win the transaction fees. What can be done to encourage such a market?
There are currently some tactical barriers to consumer empowerment: Lowering gas prices is unnecessarily confusing and difficult on most wallets:
- Users cannot manipulate or read numbers with 9 zeros on the end. Wallets should not report gas price in ETH. I suggest standardizing units to gwei, so that people start to develop a reference point for what they are spending (as they do for real gas). (confusingly, this unit is also known as Shannon, but I suggest sticking with Gwei since it is shorter)
- Hiding the gas price under ‘advanced options’ and then showing a histogram of what users have done in the recent past encourages neglect and herd mentality (yes, Parity — I am looking at you)- What user wants to be on the low end of the bell curve? Maybe the transaction took 5 days to confirm? Mist provides a reassuring message when you pull the slider all the way to “cheapest”, but I don’t think the slider will ultimately work here (especially if it is a 9-digit number changing in single units). I think a choice from 3 options (e.g. fastest, average, cheap) is more accessible. The mainstream user needs more guidance: fewer choices, more reassurance, dare I say ‘a trusted third party’, before they will be comfortable sending transactions below the 20 gwei gas price.
The ‘Safe Low’ Gas Price:
For someone who wants to provide gas price recommendations to users, it is easy to figure out the average gas price people are using and even the ‘fastest’ gas price that can maximize confirmation time. But it is harder to make a recommendation on the ‘cheapest’ price. Yes, you can see the lowest gas price accepted over a recent time interval, but what if using that price resulted in sending a transaction that would take several hours to confirm, or even worse, never confirm at all? People would quickly go back to the 20 gwei default.
So, at ethgasstaion, I have used the following criteria to come up with what I call the ‘Safe Low’ price. It is a price that I believe users should feel confident in using when they don’t care if the transaction takes a couple of minutes to confirm:
- A price that at least 5% of the network hashpower will accept. (I don’t want to wait for hours for a confirmation)
- A price that was mined within a reasonable time (< 50 blocks) the last time it was posted to the network as a pending transaction. (i.e. protect against scenario where miners were previously accepting low gas prices but have now changed their policies, and the transactions are no longer confirming )
This “Safe Low” price is currently 2 gwei. To stay up to date on changes, you have to actively monitor the network or rely on an oracle to do it for you. For now, you can find this price, updated every 100 blocks, posted here in json format. Maybe some wallet providers will use these recommendations. Hopefully some others optimize these criteria, and publish their own recommendations. There is nothing magic in these criteria, but they hopefully will give users more confidence to send low gas price transactions.
There are the early signs of a gas market in Ethereum, and the community should help this market grow. Miners have a diversity of prices they accept, and in general, if you pay more, you can get your transaction confirmed more quickly (up to a point). Optimally, the more people use lower gas price transactions, the more miners are incentivized to find ways to mine them profitably.
Growing this market place is probably more important for ETH than the short-term gas price and hopefully we will eventually get us to a gas price that approximates the marginal fiat cost of storing and transmitting 200 bytes of data. Proof-of-Stake should bring big reductions in gas prices. Until then — don’t wait for the devs to update the clients, save some of your hard-earned ETH, and send your next non-urgent transaction with the safe low gas price.