Uri Klarman, EGL
Following EGL’s launch, and especially following the EGL’s first vote on the desired gas limit, many ETH core devs raised their concerns on the effect of EGL (not everyone — quite a few, including the Erigon team, had been very supportive).
The concerns raised were:
- EGL can be used (maliciously or inadvertently) to increase the gas limit to dangerous levels, opening the door for DDoS attacks or for unsustainable state growth.
- EGL is flawed, since it “bribes” pools to affect the gas limit, corrupting the existing incentive mechanisms
- EGL had been designed by bloXroute, which had always been in favor of increasing the gas limit. Therefore, EGL is a toxic attack meant to find a sneaky way to increase the gas limit.
- EGL is just a money grab, because even if it is valuable, the creators kept a creator reward, and it tries to bribe core devs to support it by giving them EGLs.
These concerns had even brought some core devs to try and accelerate the work on an (already existing) proposal to include the gas limit in-protocol, in order to prevent the supposedly easily-bribed-pools from affecting the gas limit.
Below we try to address the core devs’ concerns directly and honestly — no BS, no fluff.
We also discuss the solutions core devs mentioned in ACD#122 call.
1. Core devs’ reaction is a good thing!
It is completely within the power of the ETH core devs to include the gas limit in-protocol. period.
That means that if EGL is ever being (ab)used to increase the gas limit to dangerous levels, core devs can put a stop to it. Game over. Do not pass Go.
That’s reassuring and good for ETH, but if it’s such a good solution, why didn’t core devs do so already? The answer can be found if in the discussion in the All Core Devs (ACD) call following EGL’s launch.
- There‘s a healthy disagreement among core devs what should be the gas limit. Some core devs think the current 30M limit is too high, while others think it should be increased.
- Some core devs argue that using an EIP to adjust the gas limit makes adjusting it a 6 months process, as well as needing core devs needs to agree upon a contentious point.
- Some core devs are strongly against including the gas limit in-protocol, such as the Erigon team, but as they aptly stated “we won’t die on this hill”.
To conclude — while including the gas limit in-protocol has its issues, the ability and willingness of the core devs to do so if deemed necessary will counter any abuse of EGL, effectively reducing EGL’s functionality to a pure signaling mechanism.
2. Is anyone actually in favor of EGL?
We think the reason EGL got so much support from core devs who believe the gas limit should be increased is because they felt unheard.
If you oppose any increase in the gas limit — you don’t need EGL! Peter Szilagyi had done a tremendous job representing this stance, conveying it to the rest of the ecosystem. So much so, that most people don’t know different core devs have different opinions on the matter, which (we think) is the reason why EGL got so much support from higher gas limit supporters.
3. EGL cannot adjust the gas limit quickly or arbitrarily
Many of the core devs are understandably unfamiliar with the details of EGL. The key points most are unaware are:
A) EGL adjusts the desired gas limit by 1M/week or less
EGL voters vote on their desired gas limit (desiredEGL), which can be adjusted (up or down) by no more than 1M / week. This means that past instant gas limit increases of 2–2.5M gas (4→6.7M , 8→10M, 10→12.5M, 12.5→30/2=15M) would actually be spread over 2–3 weeks under EGL. In fact, since under 1559 blocks are only half full, it would take 4–6 weeks to increase block sizes by so much.
These longer time scales are giving the community more time to assess, measure, and make informed decisions on gas limit changes, not less, compared to the status quo.
B) EGL changes are gradual
Each week the desiredEGL is set compared to ETH’s actual gas limit, not the previous desiredEGL.That means that if ETH’s actual gas limit this week was 30M gas, EGL voters could only vote it to 31M. Even if they voted for 31M last week, they won’t be able to vote for 32M. This prevents a scenario where EGL voters vote the gas limit up for multiple weeks, and then pools surprisingly increase the gas limit by multiple millions out of the blue to match desiredEGL.
EGL is an intentionally slow-moving system, which cannot adjust the gas limit quickly or arbitrarily.
C) EGL uses average-weighted votes
The weight of each vote depends on a voter’s amount of EGL, multiplied by its lockup period (1–8 weeks). This gives an advantage to long term actors over short term actors. One of the most common concerns we heard was “what if the scammer-du-jour just buys tons of EGLs and vote the gas limit stupidly high to reduce fees?”
Let’s examine this argument’s logic:
- First, why would a scammer / short-term actor have more $$$ than all the long term stakeholders betting on ETH and tokens built on ETH? These stakeholders include both decentralized groups and entities like Uniswap LPs and protocols’ DAOs, and centralized actors like Coinbase, a16z, and Pantera.
- Second, the scammer will have to buy significantly more EGLs than everyone else combined (similar to what you need to produce a new longest chain) and to lock it up for 8 weeks — no flash-loan tricks will save you here.
- We also know now that the scammer cannot just blow up the gas limit — he’ll have to grind it for a few months increasing it by 0.5M gas increments in the best (worst) case scenario.
- For reference, in today’s status, the scammer will need 1.3B EGLs to overrule everyone else’s votes and increase the gas limit by 1M each week,. The giant $100M EGL liquidity pool has less than 750M EGLs in it.
It will cost $750M to buy 700M EGLs (which will need to be locked for 8 weeks), and no amount will buy you even 1B EGLs.
After putting all this money at a terrible risk for months, ETH core devs will just casually decide the EGL experiment didn’t go well, and set the gas limit in-protocol.
4. ETH incentive mechanisms are NOT perfect
Yes, it sounds really bad when you say “EGL bribes pools to adjust the gas limit”. But we bribe miners and pools all the time. We bribe them to include our Tx, to produce new blocks on the longest chain, and post-merge, we’ll be bribing stakers to attest on new valid blocks. It’s called incentives.
ETH incentives are far from perfect, as we’ve already seen it with MEV. Miners and pools are not incentivized to be impartial and include Tx based on their fee, since they can make more profit by ordering transactions. To minimize the effect on users and consensus disruption, the Flashbots team had created a system outside the protocol to handle and silo the ordering of transactions, significantly reducing the effect of gas auctions on regular users.
Similarly, under 1559 there’s no longer an incentive for miners/pools to produce larger blocks, even when perfectly safe; it increases their risk (uncles) but hardly affect their reward (tiny tips), and they no longer have a reason to try and include as many Tx as they can. Even prior to 1559, pools would avoid increasing the gas limit even when they thought it safe, since they were “stuck in a local maximum” where any increase in gas limit would reduce their fees in the short term.
Even the original thought that miners long-term investment in HW incentivizes them to try and increase the long-term value of ETH, and will drive them to set the gas limit to that end is faulty, since this decision is made by mining pools, which have no such investment.
All that is to say that there’s already room for improvement when it comes to incentives. It is exactly for this reason that EGL was created.
Why would we want pools to decide on the gas limit, rather than bribe them to do what ETH stakeholders want? In our perspective, pools have too much power, and make too little money; while miners make $25M/day, f2pool and Ethermine who together control 50% of the hashpower each make only $125,000/day. We’ve already seen the implications of pools having all the control and none of the money in their opposition to 1559, and we believe it’s much better for pools to give back some of the control in order to make more money.
It’s important to note that this problem is not specific to PoW. The problem persists in PoS, and in some aspects it becomes worse — if I’m an ETH enthusiast running a validator, how would I know to what value to configure my gas limit? We already established that even different core devs have different opinions.
5. EGL is a ploy to increase gas limit
bloXroute had been a vocal supporter of increasing the gas limit, which is how we found that in reality “nobody is controlling it”:
- Core devs have conflicting opinions, as do pools, and so some core devs feel pools are rash, while others that they’re too conservative.
- Pools expressed frustration for lack of core devs guidance.
- Users and projects felt their needs are not heard.
It’s important to emphasize EGL was not created to increase the gas limit, and bloXroute has no incentive for a higher gas limit .
A) bloXroute incentives
bloXroute is making lots of $ by propagating Tx and blocks close to the speed of light to DeFi actors, helping them to identify and act faster on arb, liquidation, MEV, etc. bloXroute is protocol-agnostic, and connecting hundreds of nodes, most top-20 ETH pools, over 70% of Polygon validators, and a growing number of BSC validators.
bloXroute doesn’t need, and will not make a single $1 more if the gas limit is higher, or if Tx take place on L1 rather than L2.
That said, bloXroute’s technology was invented to allow blockchains to scale, especially UTXO-based chains which do not suffer as much from state-growth. Our original business model, conceived in 2016, was to offer bloXroute’s tech to all chains for free, and since it reduces the marginal risk of including an additional Tx in a block, it should reduce the compensation (fee) miners require, and we believed we can capture some of these savings. So yes, 3 years ago we thought we’ll be able to make $ by allowing blockchains to scale. This has not been the case for a years now.
B) EGL is not a front for a “big-blocker collusion”
EGL got a lot of support from core devs who think the gas limit should be increased, which brought up allegations that only “big blockers” core devs were offered EGLs to highlight their opinion on gas limit.
We have shared our correspondence with the geth team (who are anything but “big blockers”), offering them to receive EGLs, as we offered publicly and privately to all core devs we were able to contact, to the point we were ordered on discord not to mention EGL or DM core devs on the matter.
We think the reason EGL got so much support from core devs who believe the gas limit should be increased is because they felt unheard.
If you oppose any increase in the gas limit — you don’t need EGL! Peter Szilagyi had done a tremendous job representing this stance, conveying it to the rest of the ecosystem. So much so, that most people don’t know different core devs have different opinions on the matter, which (we think) is the reason why EGL got so much support from higher gas limit supporters.
C) Personal opinions
I, Uri Klarman, CEO of bloXroute, personally believe that ETH can safely increase its gas limit, and that the implications on state-growth are acceptable. I believe there is a dynamic balance between
- keeping the gas limit low, to make it affordable for more people to run a node, and
- increasing the gas limit, to make it affordable for more people to transact.
I think that decentralization of nodes is crucial, but that HW improvement on one hand, and the entrance of thousands of individual businesses running their own nodes on the other, allows ETH to require ever-improving spec to run a node without concern that decentralization is negatively affected. That’s my personal opinion, but EGL is meant to allow any stakeholder to express his/her opinion, and allow the community to to reach a collaborative decision.
You might think I’m wrong — I’d love to discuss! — but there’s no sneaky attempt to affect the gas limit. It’s not like Peter was content with the status quo of pool control over the gas limit 👇
6. EGL is not a money grab
Prior to EGL’s launch, some of our investors approached us and suggested we abandon EGL. Why put ourselves in the midst of the most political and contentious argument, when bloXroute’s core business is much more valuable and profitable?
We decided to move forward with EGL because we think it’s important for ETH, especially post-merge, and we felt we are the only team with the insight to users, pools, miners, and the real dynamics of how the gas limit is being set today.
A) No token sale, reasonable Premine
There was no EGL token sale — anyone with ETH could have staked it to receive EGLs, and “paying for it” by having it all locked in Balancer, to be gradually released over a period of 1 year.
Yes, there was an 18% premine, which also unlocks over a course of a year. We thought it fair and reasonable to be compensated for the ~$1M we spent on legal costs, dev costs, audits, and a year we spent building it.
B) Core devs were not “bribed” to participate
EGL aims to encourage all ETH stakeholders in the gas limit discussion and decision making, but it’s clear that core devs should guide the community in this process. For this reason, we offered all core devs to receive 1.5M EGLs to signal to the community their different opinions on the matter.
These 1.5M EGLs are worth ~$75K, which unlock after 1 year. Anyone who thinks you could bribe a core dev to advance an agenda he disagrees with with a meager $75K is clueless. Core devs can pull incredible salaries if they choose to advance their own agendas — $250K/yr is probably the lower end, and I know token projects who are paying $1M.
C) Is EGL valuable?
To Peter*’s opinion , making $ is fine, as long as you produce value, but EGL doesn’t have nearly enough upside to the problems it’s causing.
We obviously disagree on the downsides he points out in the thread, let’s look on the upside.
Setting the gas limit “right” (whatever “right” means) in a timely manner is extremely valuable. We estimate the value created by the ‘20 12.5 →15M gas limit change to be~$250M/yr (and potentially much higher), roughly pricing every 1M at $100M/yr. That’s a lot of value to the ecosystem, very much worth the effort to get stakeholders to participate and collaborate in setting it “right”.
As one core dev outlined:
“There’s a huge amount of diversity among core devs in terms of what’s reasonable in terms of state growth, and there’s also big disagreement on execution time per block… Previously we’ve been able to shrug it off… We‘ll be taking something that currently we can kind of ignore, or at least have plausible deniability of (ha), and we’re turning it into something we have to actually talk about, and agree on, and make a very very hard decision…”
If core devs disagree on the gas limit, and even pools controlling 20% of the hashpower felt the lack of guidance, how are individual ETH validators going to decide how to set the gas limit? How should they weight different opinions of different core devs?
If EGL makes this less opaque, that is very much valuable.
*Sorry Peter, for keep using you as an example. You are an articulate, outspoken, well-regarded opposer to EGL, which makes it easy to address your arguments against EGL.
7. Going Forward
A few solutions to these concerns were proposed in the ACD call:
- Set the gas-limit in protocol
- Have in-protocol gas limit EIPs at the ready, to counteract EGL if it becomes a problem
- Core devs considered to include a “max cap” for the gas limit, but then agreed it’s the same disagreement. Others also mentioned it makes communication harder (“here’s the cap, but you shouldn’t use it as the gas limit, just don’t go above it”).
These are indeed good safety measures against EGL abuse, but they do come with price:
- Both Vitalik and Peter don’t think core devs should decide the gas limit
- It makes ETH slow to react: past gas limit adjustments were induced by weeks of high demand, but using an EIP would likely require months.
- In the world of 1559 and rollup-centric ETH, a failure of an L2 sequencer/committee would result in all L2 users submitting their proofs to L1, which under 1559 immediately translates to high fees for everyone. Pools would probably overcome it by temporarily increasing the gas limit, but now it would require an emergency upgrade.
Solution I : Core Devs Kill-Switch
EGL is not a malicious attack on ETH, nor a sneaky attempt to increase the gas limit or circumvent core devs. It aims to improve ETH. To that end, core devs are already given a role in EGL (“Signals”) where their votes are highlighted to provide guidance to the rest of the community, since:
- It solidifies the discussion; instead of howling to the CT winds there’s an addressable audience to interact with.
- Even core devs who are not familiar with the matter are better equipped to decide who’s lead/advice they want to follow, and can judge technical arguments.
The capacity of “Signals” can be expanded to control a “kill-switch” - the ability to turn EGL off if their majority deems it necessary. No EIP needed.
To the immediate question “which core devs should hold this power?” the natural answer is everyone. All interested core devs should be able to put their hand on the wheel, and each could then follow the lead of the expert with the best arguments and whom they trust the most.
(the smart-ass answer is whoever you expect to decide the EIP’s gas limit).
Solution II : Limiting Rate of Change
Deciding on the “right” gas limit is hard, but deciding on a safe rate at which it can be adjusted, and thus providing the community enough time to assess the implications, is easier. In addition to the above kill-switch, EGL can allow core devs to decide on a maximal change rate (e.g. no more than 2M gas / 3 months).
Solution III :
We are very much open to discuss additional solutions to alleviate fears of EGL being abused or hurting the ETH ecosystem.
Takeaway
We tried our best to address the concerns brought up by core devs honestly and to the point. EGL is not an attack on ETH, it’s not some ploy to increase the gas limit — it’s an improvement over how the gas limit had been set since ETH’s inception, and it aims to improve communication and collaboration.
We hope these explanations, the proposed Kill-Switch, and the knowledge that core devs can always set the gas limit in-protocol will do much to alleviate these concerns.
EDIT: Micah was kind enough to point out that we did not address his concern, that it’s actually valuable for ETH governance system to be obscured and fuzzy.
I don’t know that I agree that:
- Such systems are harder to capture
- If they are, the cost is worth it
First, it strongly resembles the logic of Security Through Obscurity (STO), which is considered an anti-pattern in OSS security. Obscurity might hide some of the dynamics, but also hides from the rest of the ecosystem who are the involved actors, and any change said dynamics. In the extreme case, it might obscure that these systems were captured.
What happens when key actors move on with their lives, and their knowledge/perspective is lost? A continuous churn of actors both opens the door for a coup (or more likely, a shift in power), and makes it much harder for the community to decide which side is malevolent and which is the guard.
Second, even if such security is indeed valuable, it comes at a great price. By keeping the decision making among those in-the-know, you lose access to the extremely important perspective of the users, the builders, newcomers, academic researchers, and more. Their use-cases, needs, tradeoffs, and preferences are the purpose for which Ethereum was built.
Arguing that groups should organize, make contact with the feedback process, and build trust and familiarity over time effectively means the overwhelming majority of small stakeholders cannot participate (and we say this with outmost respect to Je-Meng).
In our opinion, keeping the mechanism intentionally obscure does not make Ethereum any safer than avoid talking about MEV would, and such safety would not be worth the negative externalities.