Pump the Gas (Limit) - The Daily Gwei #12
If you’d like to support my on-going work to bring you a fresh Ethereum-packed newsletter every week day, feel free to make a donation on Gitcoin here (during the current matching round a 1 DAI donation is currently being matched on my grant by 21 DAI)!
It’s a relatively unknown fact that in Ethereum, miners have the ability to “vote up” or “vote down” the block gas limit. This is effectively the same thing as increasing the “block size” and shares similar consequences that come from doing that. It’s also worth noting that while something like a block size increase requires a hard fork in Bitcoin, raising the gas limit up on Ethereum does not.
Last week, miners started voting up the block gas limit again with a maximum target of 12.5 million (though at time of writing the limit is hovering around 12 million). This means that the effective throughput of the Ethereum blockchain is now 20% greater as the block gas limit was 10 million just a few days ago.
First, a little lesson on how gas works in Ethereum. As I mentioned above, the block gas limit is sort of like a “block size” for Ethereum blocks. The reason that blocks in Ethereum have this concept of “gas” is because of the Ethereum Virtual Machine (EVM) which is able to execute arbitrary code (aka run smart contracts). Each “transaction” or “operation” that the EVM has to execute comes with a cost. For example, sending just ETH from one externally owned account (aka a normal Ethereum wallet) to another externally owned account costs just 21,000 gas. Whereas a more complex operation/transaction such as trading on a decentralized exchange or minting an NFT would cost much more gas. This is why its a lot cheaper to send a simple ETH transaction than it is to interact with apps on Ethereum.
So, what are the consequences of raising the block gas limit? Well from my understanding the three things that people are worried about the most are an increase in uncle rate (because increasing the block size increases the time it takes for blocks to propagate through the network), increased denial of service (DoS) attack risk, and increased size of the Ethereum blockchain (increasing the limit to 12.5 million adds ~5gb extra a day to an archive node). At time of writing, the uncle rate has not seen an increase from the gas limit being raised - the red section of the chart below shows the uncle block count per day since the gas limit was raised (the reason it hasn’t increased can be attributed to client optimizations made over the last few months).
You can learn more about uncle blocks in Ethereum here.
This ability that miners have tends to split core developers down the middle. On one hand, you have the Nethermind team who believes that this ability basically splits the governance between miners and core developers by putting more pressure on the network which in turn pushes the core developers to further optimize the clients. On the other hand, you have Péter (lead maintainer of the Geth client) saying that raising the gas limit like this is destructive and not good for the long-term health of the network.
I agree with both of these takes. I think the ability that miners have to vote up or down the gas limit is interesting from a game theory point of view and I agree with Péter in that doing it so hastily is dangerous. Though, in saying that, Kain brings up an interesting point that the “DoS attack” is already here in the form of high fees which has been pushing users to stop using the platform altogether.
Alexey Akhunov (lead developer of Turbo-geth) also had a few thoughts on this topic where he is mostly concerned with the same things Péter is and dives a bit deeper into the philosophical discussion of what do people want Ethereum to be. Do we want it to be a system that only a few can run the infrastructure for or do we want it dominated by large entities? This is giving me Bitcoin vs Bitcoin Cash vibes at this point!
Finally, John Adler had some thoughts around repricing storage-accessing opcodes (short for operation codes). In plain English, this would entail increasing the gas cost of putting data on-chain. Though, doing this would break some existing smart contracts on Ethereum and make some a lot more expensive to use. In saying that, repricing of opcodes is not something new to Ethereum - its been done in previous network upgrades (hard forks) and has actually broken some contracts for popular apps like Kyber, Synthetix and Aragon.
So where do we go from here? Well, like I mentioned above, the current gas limit is sitting at 12 million and I personally don’t see that limit being decreased anytime soon. Fees are still high and the demand to use the Ethereum network grows every single day. Though, I’d rather not see the gas limit increase much further and would like for teams to work with all of the layer 2 tech that has been coming online lately for their scaling needs.
Alright, that’s it for today. This stuff is quite technical so any errors above are my own and I encourage anyone who spots an error to reach out to me on Twitter (@sassal0x) and I’ll get it fixed :)
Have a great day everyone!
All information presented above is for educational purposes only and should not be taken as investment advice.