Cardano - The Road To 1000 Successful Stake Pool Operators
On July 29th, 2020 Cardano activated Shelley with a “hard fork combinator event.” Stake pools quickly came online ready to make blocks to decentralize Cardano, a truly historic event! On August 13th at 21:52:20 the first public block was made. We are now a little more than five weeks down the road from that first block. The rewards formula and parameters have started to show the landscape of operating a stake pool on the Cardano blockchain.
With over 1,100 registered pools, Cardano is well on the way to be the most decentralized blockchain. Currently, there are between 250 to 300 pools regularly making blocks every epoch. The remaining 800 pools are struggling to stay alive. There are a lot of operators running multiple pools which prevents stake from moving to the pools that are struggling. For Cardano to spread out the block production to more pools, the incentives need to change.
Two parameters matter the most when it comes to decentralization and increasing network security. These parameters are K, the optimum number of stake pools, and a0, the pledge parameter. Currently, K is set to 150 which determines a saturation point of around 207 Million ADA for stake pools. At this level, the pool becomes capped on rewards which lowers the return for anyone in the pool. This is an incentive to have delegators move stake to another pool to earn higher rewards. The job of a0 is to incentivize pool operators to pledge a larger amount to their pool to prevent a Sybil attack. This is intended to prevent anyone from gaining too much stake and attacking the network. More on a0 later.
Right now, the way the current parameters are set, there are a handful of pool operators that are controlling over 50% of the network. IOG is a big chunk of that however, the fact remains that the stake is skewed to these top operators running multiple pools. This hurts the entire ecosystem by decreasing decentralization.
Given a framework to operate in, people will often choose a path to maximize profits. This is what creates the motivation for innovation in a free market. There should not be any judgment passed on any operator who chooses to run more than one pool, the protocol currently incentivizes this. That is why for Cardano to walk down the road of 1,000 successful stake pools some changes are necessary.
At first, you might think increasing K is the path, however, this would likely not work out. Increasing K decreases the saturation point which lowers the overall fees collected for running the pool. If nothing is preventing an operator from increasing the number of pools they run, then many will choose to do this. If someone were to come into your business and say, “we are cutting your profits by 50%”. The obvious solution is to double the number of locations to keep profits up as long as nothing was preventing you from doing that. This is essentially what increasing K by itself would do.
Increasing a0 to a level that disincentivizes operators from running multiple pools should prevent it from happening. However, there are two problems with doing this.
The first, and the one many pool operators are worried about, is a0 is designed to work by decreasing rewards for pools with a low pledge. This “unfairly” punishes those, especially in developing countries who simply cannot afford to, “pay to play”. Although to some extent this cannot be avoided in order to secure the network. At the end of this article, I will show a scenario where this could be minimized.
The second issue is a0 decreases rewards by design which by itself is not a problem. However, the current formula is not effective for the range of pledge any pool operator has. I ran multiple scenarios in the Rewards Calculator attempting to have a0 decrease the return for a delegator staking with a low pledge pool when K = 1000. I was only able to get about a 0.63 ADA difference for a delegator with 100K ADA over an entire year. When trying this, the rewards for the entire pool decreased to a very unfavorable level, which hurts everyone. The range of pledge I used was between 10K ADA and 1 Million ADA, this takes into consideration most pool operators. There is a much larger negative effect on the overall rewards than there is any positive effect on the incentive that encourages single pool operation. The formula itself is not working for the amount of stake any normal pool operator has for a pledge. The reason for this is a0 has a linear relationship with the pledge amount.
Delegator with 100K ADA
Rewards parameters: K = 1000 saturation 31M a0 = 0.3
5,134.92 ADA annually 10K pledge 2% fee
5,135.09 ADA annually 1 Million pledge 2% fee
Below is what happens when a0 is increased in an attempt to incentivize single pool operation.
Delegator with 100K ADA
Rewards parameters: K = 1000 saturation 31M a0 = 8
661.42 ADA annually 10K pledge 2% fee
662.05 ADA annually 1 Million pledge 2% fee
So how do we ensure the network is secure and decentralized? The rewards formula would need to be adjusted so we can make a0 act like a thermostat and adjust the parameter to handle the amount of pledge operators have. There is a CIP proposal - Curved Pledge Benefit which proposes the idea of making a0 - a curve and adjustable. The idea sounds interesting and could be a possible solution to the problems mentioned above. Researching how this would affect the security of the network and projecting how it would affect stake pool operators would need to be looked into deeply before implementing such a change to the protocol.
There is a trade off between network security and fairness in Proof of Stake. Right now, there is no way to have both 100 percent protection on Sybil attacks and 100 percent fairness in a Proof of Stake protocol. Finding that balance is something that will need to happen over time. However, network security needs to be a priority. The alternative is a worthless network.
The road to 1000 successful stake pool operators will not happen overnight. The first step is getting the incentives right by taking a look at how the current incentives are working and then making the necessary adjustments. The idea for an adjustable a0 curve will help dial in this balance along with adjusting K. Over time the network will gain use cases and the value of ADA will follow. As this happens the K parameter will be able to increase further, pushing delegation into pools with a lower pledge.
Getting this right is important to the protocol, stake pool operators, delegators, and anyone who uses Cardano. It will take time, and adjustments will need to be made to the parameters over the years as the system grows.
Thank you Nick, amazing article :) Very well explained.. 👌
Great piece, Nick. I'm interested to see how the curved-pledge-benefit will be received by IOHK & the Cardano Foundation. From running my stakepool, MASTR, I've observed that stake can fluctuate wildly when under a 10M threshold. Needless to say, small pools feel each and every departure. The irony is that pool-hoppers won't know if they've made the right decision for 15 days. They may attribute a great reward to the new pool, when in fact it was the former pool who delivered!