TL;DR - Setting the block size in the protocol (BTC) or by miners (ETH) isn’t working out well. We suggest the use of an on-chain coordination token which allows the ETH ecosystem to signal its collaborative desire, under the guidance of the core devs, and incentivizes pools to follow it.
In fact, Sparkpool literally just called for this on April 21, 2021.
The Ethereum community has been hyper focused lately on how to lower transaction fees. The problem is simple: more transactions want to be included in the block then available space. This causes fees to spike as users outbid each other to get their transactions inside the block. Different chains have taken different approaches to block space governance.
Bitcoin gave control over the block size to the protocol developers*. On the face of it, this makes a lot of sense. Those building the clients that run the system should have some technical decision making power. However, philosophical disagreements on what is the right block size led to internal fights among developers and a chain split: large block advocates left to form BCH and small blockers stayed with BTC.
Ethereum attempted a different paradigm—what if we gave control of the block size to miners? In Ethereum, each miner is allowed to change the subsequent block size up or down by 0.1%. Thus, over time, a majority of miners must mine blocks in a certain direction to achieve a new block size level. This solution sought to change a philosophical topic to an economic one—miners ought to act in their financial interest, or so it was posed, and the rationale was that their investment in mining equipment was a long-term commitment to the value of ETH.
Where we are today
This solution worked for a while, but the block size debate has resurfaced. Unfortunately, this time the community is arguing over long twitter threads on what the “right” answer is, while those with the actual power (miners) are notably absent from the conversation.
Instead, miners coordinate to increase the gas limit when they so choose. You can see from this chart of the historical gas limit that instead of miners independently voting on the optimal block size over time for Ethereum, they instead act like a cartel, agreeing in private on the optimal size and then all voting it into existence (shown below as jumps in gas limit). There have been no changes since July 2020 (the recent SparkPool announcement aside; it should be noted that it looks like again all the other miners have followed this decision acting in a coordinated effort).
See: etherscan. io/chart/gaslimit
Why haven’t the miners “listened to the community?” For one thing, it’s unclear what the community consensus is. Some Core Developers argue to reduce the gas limit, while others believe it should remain constant, while most fee-paying users believe it should be increased. Moreover, those with the loudest voice do not necessarily reflect the majority.
Another reason is miners are averse to increasing the gas limit because they may lose revenues in the short term. This is because miners may be at a local maximum where blocks are full and fees are high. However, if miners increase the block size, fees may come down in the short term but pent up demand that was initially priced out may start to flow in, increasing profits over the long term. EGL provides a buffer to unstick miners from this position.
Blocks are full today, and even though it seems intuitive increasing the gas limit may yield more value (more transactions at lower fees coupled with a higher ETH price), the economics are complex—and with ETH2.0 on the horizon, to most miners the answer is simply: why rock the boat? Sure, users are hurting and getting priced out of the chain, but this block size mechanism doesn’t take into account utility to users.
It’s time for another iteration in this experiment; I’d like to advocate for a third way.
Vitalik has written about the role coordination plays in building an effective social system. He writes “building an effective social system is, in large part, determining the structure of coordination: which groups of people and in what configurations can come together to further their group goals, and which groups cannot?”
It is clear core devs should have a say, but they shouldn’t have the only voice. This is why people are excited about Proof of Stake—moving some of the power to those most invested in the protocol. The power should also probably not sit only with miners whose economic incentives may not align perfectly with the community. Our proposed solution is about creating a mechanism for anyone in the community to participate and influence the block size, using economic incentives (skin in the game and markets) to induce good behavior.
What if there was a way to financially incentivize miners to listen to the community? A third way that aligned incentives and allowed the market to determine which level is optimal?
We propose $EGL: a coordination token to allow holders to vote on what their individual desired Ethereum Gas Limit is, and reward miners for listening to the community and user preferences.
The design is simple: $EGL is a coordination token whereby holders vote on their designed adjustment to the existing gas limit. The collaborative choice is adjusted weekly based on a weighted-average tally, and when miners mine a block that follows the desired gas limit they can claim free EGLs.
2. EGL Model High Level
- EGL holders lock their EGLs (1-8 weeks) to vote on their desired gas limit, which must be within 4M gas from the chain’s actual gas limit.
- Votes are tallied and weight-averaged weekly, based on EGL amount and lockup duration.
- The desired gas limit is set to the weighted average, but no more than 1M gas above/below the chain’s current gas limit.
- Miner Rewards
- Mining pools can include a transaction which sweeps “free” EGLs whenever they mine a block. Their reward depends on how closely the block’s gas limit matches the desired gas limit.
- Ethereum Community Launch
- Pools will not be incentivized by a worthless token, so EGLs must be bootstrapped with value.
- Anyone with ETH can participate in the EGL Launch by locking up ETH to be matched with EGLs and deployed to an ETH-EGL pool. Participants will also receive additional EGLs to be used for voting. In this way, launch participants are both long ETH & EGL and users (voters) of the protocol.
- Resulting Pool Tokens and EGLs are released between 10 to 52 weeks based on time of participation (earlier participants release first)
- EGLs are to be distributed in the future to support further development, security audits, etc. Allocation of these funds is decided upon by the EGL voters as part of the voting process.
- Core Devs
- While PoS usually refers to capital stake, it is obvious that the core devs are among the most important stakeholders (regardless of their capital). Furthermore, the Ethereum ecosystem would greatly benefit from the guidance of the Core Devs, and from insight into their individual preferences for the gas limit.
- Each and every Core Dev is entitled to receive EGLs, locked for a period of a year, to vote on the gas limit and guide the community.
Scammers and traders will just vote the gas limit to the moon! Isn’t that unsafe?
In short, no.
First, the EGL protocol only allows for a slow and gradual change in the gas limit. Specifically, it can only adjust the gas limit by up to 1 million gas each week. That means it would take many weeks to drastically change the gas limit.
Second (and more importantly), EGL is designed to empower long-term actors over short-term opportunists, and incentivizes key stakeholders to participate. Have Coinbase, Pantera, Polychain, Consensys, a16z, USV, et al, each with billions of dollars at stake on Ethereum,take the time and effort to study the gas limit at depth, considering the different aspects, implications and opinions to help solve this issue? It’s unlikely.
And why would they?
It’s not something they can affect, and “it’s technical” somewhere between the Core Devs and miners. However, if the gas limit becomes something that anyone with ETH can vote on, you bet they would invite Core Devs to explain the different issues around it, they’ll reach out to the different client developers for their different perspectives, they’ll consult their internal engineers and experts, and eventually vote towards what they believe is best for ETH to succeed. In fact - many have already expressed their interest. The invested interests of these large actors are orders of magnitude larger than traders and scammers.
Decentralization (limiting state growth) matters, but it is something that must be balanced with user preferences and affordable access to the blockchain. Right now user preferences have no entry in the calculus at all. Users should have some say, after all Ethereum should answer the needs of a diverse collection of stakeholders, not only decentralization maximalists. In addition, all long term actors (be they the unorganized masses or large actors) who are betting on ETH’s long term success can easily increase their vote’s weight by locking up their EGLs for longer - a step which is almost unimaginable for short-term opportunists.
Third, pools would not follow the EGL vote if it leads them to substantially higher uncle-rate. Pools are not rewarded with EGLs for mining uncle-blocks. Thus, any gas level that increases their probability of mining an uncle block also decreases their utility function and is thus not profit maximizing.
For those math inclined, a miner’s utility function can be thought of as:
Where R represents the block reward, represents the gas limit, fee() represents fees earned as a function of , ETH() represents the value of ETH as a function of and its effect on the chain’s security, and EGL(,) where represents the collaborative desired gas limit, and EGL(,) represents the EGL reward pools capture as a function of and .
EGL thus allows users and core devs to express their collaborative desired gas limit and to affect the pools’ decision making, without compromising the pools’ incentive to maintain the network’s security and health.
Doesn’t EIP-1559 make EGL irrelevant by solving the whole fees thing?
In fact, EIP-1559 (which we support) increases the need for EGL.
As most people know, EIP-1559 doesn’t solve this whole “fees are high” thing. It does make fees more predictable and works better than the first price auction (FPA). However, when many people try to send their Tx and the capacity is limited, the most valuable Tx will outbid the less valuable (i.e. pay a higher fee). EGL the ecosystem helps to collectively signal what capacity (gas limit) they think is right.
More importantly, EIP-1559 completely removes the incentive for pools to increase the gas limit, even if everyone agrees it is completely safe. Why should they? Producing larger blocks would only increase their risk of uncle blocks, but would hardly increase their revenues (since fees are burned). EGL actually provides a missing piece to EIP-1559 - an incentive for pools to adjust the gas limit as long as it’s safe.
We also realized that $EGL might be the perfect bridge to smooth the transition to EIP-1559. EGL aims to reward pools substantially, potentially similarly to their expected revenues from fees, thus it might allow for pools to maintain their expected revenues while benefitting users with EIP-1559 superior monetary policy and fee predictability. This is possible since the value created by EGL should suffice to compensate pools, alleviating the argument whether the value from fees should compensate pools or be burned.
What about ETH2.0 and The Merge? What then?
EGL is fully compatible with ETH 2.0 (well, to the extent we know what next phases look like), but more importantly aims to improve the functionality of ETH1.x in the immediate term, regardless whether it is merged into the beacon chain or not. The move from PoW to PoS does nothing to eliminate the need for the ecosystem to reach a collaborative decision on the right gas limit (block size), whether systematically or per-shard.
The gas limit should be decided by core devs, and them alone. Stupid rich people shouldn’t have a say.
The importance of the Core Devs cannot be overrated, but:
- Not all core devs have the same opinion.
- I don’t think we want ETH to follow the footsteps of BTC, especially since the need for its own chain originally started with the concern that BTC core devs are going to shrink op-return even further.
- Those most familiar with the code don’t necessarily have the quickest grasp of the value of new use cases (see BTC above). On the other hand, some of the largest actors are managed by very bright people, who hire even brighter people, and their different perspectives are actually critical.
A mechanism which gives some influence to core devs, and also showcases their different opinions to the entire ecosystem, benefits from the best of both worlds (technocracy & PoS).
OK, this might be a good idea, but why use a token? Why not just use ETH?
We spent a lot of time trying to remove the token from the design, to no avail. It boils down to bundling (include the functionality in ETH) vs unbundling (a separate token).
If you bundle the functionality into ETH, participants invest time, money and effort, while the benefits are shared with all ETH holders and users equally. That’s both, a drop in a bucket and a classic Tragedy of the Commons, eroding the incentive to participate.
By unbundling the functionality, most of the benefit of finding the optimal safe gas limit is still being shared by all ETH holders and users, but some is accrued directly to the token holders. Specifically, those wishing to hold EGLs to ensure the gas limit continues in the “right direction” (whatever that direction is) create a demand for the token, increasing the value of EGL, and benefitting participants.
What happens to EGL when everyone’s happy with the current gas limit? What’s the incentive to participate? Would everyone just sell?
EGL has a built-in mechanism to begin rolling backwards if there’s not enough voting participation. That means that even if the gas limit reaches the level everyone is happy with, without continuous participation it will roll backwards. While the ETH community includes many different perspectives on the optimal gas limit at any given time, most members of the community support either maintaining the current gas limit, or increasing it, while those supporting reducing the current gas limit are a minority. As such, reducing the gas limit (which would increase the gas bidding competition among transactions) is a dissatisfying outcome for most ETH users and actors.
Leveraging this preference, EGL’s default outcome when failing to reach a vote is to reduce the gas limit, not keep it unchanged. This unconventional design choice means that lax actors would likely be dissatisfied with the outcome and are better off participating. For example, large actors and their customers are likely to be negatively affected if and when a large portion of them decide not to vote.
Can EGL be used to make other decisions?
While EGL is initially designed to affect the gas limit, its use as a coordination tool can be extended to other on-chain aspects. For example, mitigating MEV, delegation of voting rights, discourage selfish mining, mining decentralization, or transparency of node diversity.
4. What now?
This post serves to start a conversation about EGL. In the coming weeks we will launch our Discord and Forum. In the meantime, to stay up to date, follow our Twitter handle @ETH_EGL or sign up at egl (dot) vote to our mailing list.