Why doesn't Lido self-limit?

A brief history of the narrative on self-limiting staking protocols on Ethereum:

  • Ethereum uses a proof of stake consensus layer. There are thresholds that, if breached, can represent a threat to the network
    • 33% Threshold: If a malicious actor controls more than 33% of the total staked ETH, they can potentially disrupt the network’s liveness but cannot directly control the blockchain or reverse transactions. This does not prevent the chain from progressing but delays how long it will take for a certain set of blocks to finalize (and potentially allows for a longer-range re-org to occur). If 33% of the total possible votes (the participation rate) in a specific epoch are not cast, the epoch cannot be justified. This would result in an inactivity leak that would eventually result in the network finalizing, as the inactive validators (i.e. the 33% offline) slowly leaks their effective balance, allowing the network to re-stabilize.
    • 51% Threshold: Controlling a majority of the network still has some checks on absolute power, as double-spend and transaction censorship can still be challenged by the remaining honest validators. But this could theoretically split the chain into two equally sized forks.
    • 66% Threshold: This is a more critical threshold. If an actor controls over 66% of the staked ETH, they can potentially control the majority of the block validation process. This level of control could enable them to execute more severe attacks, such as double-spending or reversing transactions, which would significantly compromise the security and integrity of the blockchain.
  • Any coordinated group above or even near those critical values could represent a possible attack vector that undermines the decentralization and credible neutrality of the entire network.
  • Vitalik wrote a post suggesting the idea of increased fees for large staking protocols to slow their growth.
  • Following that post and subsequent community discussions, some protocols (e.g. RocketPool) stated that they would self-limit and not allow their protocols to grow more than a predetermined amount of the total Ethereum stake (often 22%)
  • Lido DAO held a vote with the question “Should Lido consider self-limiting?”, and the result was not to self-limit. This vote was also accompanied by a forum post where the vote was hotly debated.

About the author:

I’m Eridian, and I’m an Ethereum staking enthusiast. I wrote and maintain the EthStaker Knowledge Base and I’ve worked on a number of Ethereum staking-related projects such as DVStakers and Staking Directory. While participating in the Lido DVT trials, I decided to apply for the role of Community Lifeguard. The role is outlined in this forum post and the TLDR is that I don’t work for Lido, I’m a community participant who is compensated via a LEGO grant for my contributions to the Lido community. All opinions are my own, I simply want to support the diversification of the Lido node operator set, enabling thousands of solo stakers to participate in validating Ethereum.

This post aims to be a shorter TLDR of that initial post (which has ~78 detailed comments) as well as to provide updates from the ~19 months since that vote took place. It should help to address questions and concerns new community stakers have about becoming a Lido operator, given Lido’s size and market share.

No staking protocol other than Lido has discussed self-limiting at a level that would require immediate action, making Lido’s vote to not self-limit a data point of one, with no direct comparison available. While several staking protocols have stated that they would self-limit if they reached a particular threshold, these commitments have not been implemented in code.

Since the self-limit vote took place, the amount of ETH staked with Lido has increased from 4.1 million ETH to 9.2 million ETH as of writing, but the percentage of all ETH staked with Lido has remained almost the same at ~32%. The chart below shows the percentage of all ETH staked since November 2020. The dates of the Lido self-limit vote and when withdrawals on the Lido protocol were enabled are shown relative to the current Lido stake percentage.

image

Before I started researching this topic in detail, the main thing I had heard about this self-limiting vote was that Lido had overwhelmingly voted NO.

image

With that vote, Lido had sent a clear message to the Ethereum community that it didn’t care about their concerns and that growth at any cost was all that mattered… right?

As it turns out, it’s never that simple. There are valid points and concerns on both sides.

Self-limiting does not automatically make a staking protocol Ethereum aligned and a positive influence on the network.

Not self-limiting does not automatically make a staking protocol anit-Ethereum and a negative influence on the network.

Social Pressure & Education Hypothesis

The Ethereum staking community has in the past overcome issues such as supermajority clients by diversifying. In that case, the risk to the network from a bug in a single client is reduced by validators using different clients so that the network has greater resiliency. This education campaign was successful and client diversity has improved (at least on the consensus layer :eyes:).

image

So why would a staking protocol be any different? If users can be made to understand the risks of using a “supermajority” staking protocol, then they will switch to another one - problem solved :white_check_mark:

But switching staking clients is a lot easier than switching staking protocols, even with withdrawals enabled. With staking clients, the switching time and costs are minimal and there is no “vendor lock-in” as each client adheres to a standard specification so each is interoperable. Not so with liquid staking protocols. They have an inherent stickiness created by the utility and liquidity of their LST.

For and against self-limiting

Arguments in favor of self-limiting

  • Avoids the critical thresholds of 33%, 51% and 66%.
  • Ethereum can continue to be “credibly neutral” with no caveats.
  • It gives other staking protocols a chance to catch up.
  • “Can’t be evil” is better than “Don’t be evil”.

Arguments against self-limiting

  • Against free market economics. Efficient markets should be able to self-regulate and not require social pressure alone.
  • Lido is “better” (this is subjective, but was discussed in my other post “Is Lido good for Ethereum”) than the centralized exchanges that stake may flow to if Lido stopped accepting deposits.
  • Self-limiting does not automatically make a protocol Ethereum-aligned.
  • Creating a permissionless, unstoppable world computer like Ethereum, only to then have applications be required to self-limit is a juxtaposition.

Summary of the 19 months since the vote to not self-limit

Lido’s growth as a percentage of all ETH staked ETH remains stable at ~32%

Why didn’t Lido race past 33%, pause at 40% and continue on to 90% of all Ethereum staked? It could be argued that given the stake remaining consistent at ~32% since the self-limit vote took place, even with withdrawals being enabled, that markets can in fact self-regulate. Others may argue that it was intense social pressure from the Ethereum community that convinced people not to stake with Lido.

While it’s not possible to give a single reason for this phenomenon, the outcome has been that Lido’s percentage stake has remained pretty constant for 19 months.

Withdrawals are now enabled, everyone is free to leave if they choose

Withdrawals are enabled and both the exit and entry queues are short/empty most of the time. Yet, there has not been a mass exodus of staked ETH from Lido flowing to other protocols. The users of Lido are the stakers holding stETH and their actions speak for themselves.

What about Vitalik’s comment suggesting increasing the protocol fee?

Now withdrawals are enabled, Lido could change its protocol fee (e.g. increasing it if the stake breached a predetermined threshold). Coinbases cbETH is an example of charging much higher fees (25%) than the rest of the market and yet their percentage of total staked ETH has also remained relatively constant over the past 19 months. Increasing the fee effectively acts as a “soft cap” on the amount of ETH staked, as an increasing fee would significantly deter more people from staking with Lido if the rewards were substantially lower. Lido has not changed its 10% fee (5% to node operators and 5% to the Lido DAO) and this suggestion is not under active discussion.

Lido is working on steps to manage the power of the Lido DAO

The LDO+stETH dual governance proposal (and design spec) is one approach to reducing the power of LDO when making changes to the protocol. This would give stETH holders the power to veto changes that they feel would negatively impact them, giving them time to withdraw and take their stake elsewhere. Posts from prominent researcher Mike Neuder gave a detailed analysis on Lido attack vectors, highlighting the importance of these initiatives. Other Lido DAO initiatives such as GOOSE aim to align the DAOs actions with its overarching objectives, facilitating decentralized decision-making and responsiveness to changing environments.

Lido V2 Modules - Permissionless operators are coming!

Alongside these discussions about self-limiting the stake the Lido protocol manages, there has been significant work in parallel to increase the number of node operators running validators. The V2 upgrade paved the way for modules to be created that will massively increase the number of operators participating in the Lido protocol from 10s to 1000s. Increasing the number of operators doesn’t mean that new stake has to be introduced to the system. Stake can be redistributed from existing large operators to reduce the risk posed by single large operators.

The Simple DVT trials are a clear example of the work Lido DAO contributors are doing towards a future where permissionless solo home stakers will be able to run validators for Lido, alongside their existing home staking validators. The next stage of this will be the recently approved Community Staking Module which will allow permissionless entry to the Lido on Ethereum validator set with a bond requirement.

Conclusion

Lido didn’t vote to self-limit but Lido also hasn’t continued to grow past the 33% critical threshold either. The current situation appears to be in equilibrium, but the needle could tip in either direction at any moment. Having comprehensive discussions in open forums is the only way to ensure that whatever the outcome, Lido is prepared.

For potential solo stakers reading this post with the question “Is it bad for Ethereum for me to run validators for the Lido protocol?” hopefully this post has given you an insight into the history of the self-limit vote and some additional resources to continue your research. My personal opinion is that in whatever size and form Lido exists in 1 year, 5 years, and 10 years, a larger more diverse operator set that includes homes stakers is essential, even if the percentage of total ETH staked increases, decreases, or remains the same.

12 Likes

Great post, @Eridian!

Let me add a bit of a color on some of your points:

It is crucial to note that Lido is the only protocol to support “unlimited” permissionless withdrawals. In contrast, Coinbase withdrawals are permissioned, and Rocket Pool only allows to withdraw using deposit pool funds.w

This example shows that a significant part of the users choose a staking protocol with no regard to the Ethereum goals and vision. It is just easier to stake with Coinbase or other CEX for them.

7 Likes