Why we should prioritize repricings in Glamsterdam


Thanks to Ansgar Dietrichs, Caspar Schwarz-Schilling and Maria Inês Silva for reviewing

Glamsterdam is in the process of being scoped at the moment. The two headliner features have been locked in: EPBS and BAL, now the real work begins in deciding on adding non-headliner features that will complement the headliners. Non-headliners should in my opinion be judged on three dimensions: Impact, Readiness and Ease of Implementation.

EIPs that excel in only of these categories are, in my opinion, not great candidates for non-headliner features. In this post, I want to argue, why the repricing EIPs are the most important upgrades we can make to Ethereum at this point in time.

Impact

Repricings have a big impact on scalability. They let us redjust the cost of different resources. This way we can utilize the existing resources of the network better and we are not forced to increase the requirements for node operators when we increase the throughput of Ethereum.

Geth benchmarks

As you can see in the picture, the throughput of different operations varies widely. While some operations are executable at ~50 Megagas/s, others could be executed at more than 3 Gigagas/s. With the repricing we are trying to harmonize the different operations in order to safely increase the gas limit.

If you want to learn more, Ansgar and Caspar made a pretty good case for the impact of repricings here.

Readiness

This is the weakest point of the repricing proposals at the moment in my opinion. We have a very clear view of which operations and areas we want to reprice, but the numbers are not reliable yet.

We started a significant effort at the Ethereum Foundation in collaboration with Nethermind in order to produce benchmarks that show which operations are over or underpriced and I am very confident that within the next few weeks, we will start to have better numbers and be able to finalize them by the beginning of next year.

Ease of Implementation

Most of the repricing EIPs are very easy to implement for client teams as they are only changing a few constants in the code. The bulk of the work is in proposing the numbers and verifying that all Execution Layer Clients are able to execute with the expected speed.

I am anticipating that the repricing efforts will result in client devs finding a lot of improvements in their code during the implementation and benchmarking process, which will make clients even faster than today!

Repricing EIPs

Now to the actual EIPs and my personal ranking of them. The Glamsterdam meta EIP currently contains 44 EIPs that are proposed of inclusion. 10+ of them are related to gas repricings. I would like to categorize them in three different categories: crucial, important and nice to have.

My grouping is based on Maria’s document, but I differ on a few EIPs, especially in the latter categories.

Crucial

The crucial category contains EIPs that I think are very crucial to the goal of repricings. Without them, the repricing efforts are not worth it in my opinion.

These EIPs are trying to harmonize the costs between the three key resources Ethereum has: Compute, Data and State. They are trying to address the worst case blocks that attackers could create. Removing these bottlenecks will allow us to significantly increase the gas limit without the fear of attacks.

Important

Nice-to-Have

-EIP-8011: Multidimensional Gas Metering lets us meter different resource independently which allows for better control of the key resources.

Argue against

I would argue against the following EIPs:

Conclusion

In conclusion, I think repricings are the most important feature to include in Glamsterdam as it will allow us to significantly improve the throughput of Ethereum. The EIPs are very easy to implement and while the numbers are not ready yet, we have invested a lot in the testing and benchmarking infrastructure to get them quickly and reliably.

So contact your local core developer and ask them to support repricings for Glamsterdam! :P