Ethereum Wallets and the Problem of the Default Gas Price
The diversity and progress in Ethereum wallets is impressive, but a quick survey shows shows that all the top wallets suffer from a common problem: their default gas price is too high. Despite the fact that ETH miners have done their part over recent months to allow gas prices to fall in response to a rising ETH/Fiat price (i.e. lowering minimum gas prices accepted / raising gas limit), the median gas price used on the network remains stuck at about 20 gwei. What we see today is a fragmented gas market: about 25% of transactions are made with gas prices below 5 gwei (which is generally perfectly adequate), whereas the other 75% are typically made at >20 gwei, despite the fact that in many cases there is little advantage of paying this much. These inefficiencies have the negative consequence of making users believe it is much more expensive to use ETH than is in fact the case, creating an impression that, in general, cannot be good for adoption. I suggest that changing the status quo needs more support from ETH wallets.
Let’s review what I think is happening: It appears that both geth and parity use an algorithm for setting the default gas price that relies on the average or median gas price used in transactions over the last x blocks. This algorithm certainly provides safety and a high degree of certainty that a user transaction will be mined, but you don’t need to be Vlad Zamfir to figure out that this algorithm can lead to problems especially if all the major wallets copy this approach. Essentially, the problem is that unless the average user figures out that he or she doesn’t need to pay what everyone else is paying and therefore lowers the gas price manually (which is itself hard to do, especially on Parity), the average (or median) gas price could stay the same indefinitely. As only about 25% of users seem to be aware (or care) that low gas prices (e.g. 4 gwei) work just fine right now and the rest follow the wallet default, the median gas price used doesn’t change, wallet defaults stay the same, and the network is stuck with the 20 gwei average gas price.
Right now a 20 gwei gas price is accepted by about 94% of the hashpower and results in an expected confirmation time of about 40 seconds (for an average transaction). A 4 gwei gas price is accepted by 65% of the hashpower and gets you an expected confirmation in 90 seconds. You could argue that the user experience benefits from the faster confirmation time, but it seems doubtful that for most current use cases on Ethereum that people would pay 5x the fee to save this amount of time given adequate information.
What can be done? I suggest that wallets need to rethink how they set the default gas price. Looking at average (median) gas price used in recent blocks is easy to do but leads to a static, self-reinforcing gas price as the average user does not know enough to change it manually even when that gas price is a bad deal for them. I think a better way to set the default is the following: the median of the lowest gas price accepted calculated over the group of miners who mined a block within the last x block interval . Targeting the default gas price to the minimum accepted by at least 50% of the network hashpower will still preserve a good user experience but can allow the gas price to fall when most miners decide they can accept lower gas prices. More sophisticated models are also possible that make use of analyzing the current state of the txpool. Such an approach may require ‘oracles’ to provide real-time data to wallet providers which could lead to new problems. But something needs to give- the miners have done their part, we can’t blame the users, and therefore I submit that it is the wallet providers that need to figure out how to to facilitate a more efficient and dynamic gas market.