Here is my CIP for fair stakepool rewards. This CIP makes changes to the current reward scheme to prioritize fairness and increase decentralization. These changes are necessary if we are to achieve a truly egalitarian network. There are two spreadsheets included in this CIP. One for comparing the current scheme to this proposal and another to highlight the problem with current pledge benefit. Additionally, there is a discussion section that will not be included in the pull request. It is just additional commentary based on some of the discussions Iâve read on Twitter. Please share your thoughts and opinions.
Pull Request:
Abstract
The current reward sharing scheme of Cardano is unfair and anticompetitive. As a result, Cardano has become more centralized over time. The high minimum fixed fee and current pledge benefit favor large stakepools and leave small stakepools at a significant disadvantage. The current scheme allows large pools with low pledge to be more attractive than smaller pools with higher pledge leading to centralization and potential Goldfinger attacks. Furthermore, k, the parameter representing the optimal number of stakepools, is set too low resulting in an ineffective pledge benefit, the formation of multipools, and a low incentive for stakepools to increase pledge over time. Finally, the current setting of a0, the pledge influence parameter, gives an unnecessarily large boost in rewards to fully pledged private pools resulting in significantly less rewards for public pools and their delegators.
This proposal retains most of the original reward sharing scheme, but makes changes to ensure fairness, increase decentralization, and reduce the viability of Goldfinger attacks. By removing the minimum fixed fee, adjusting the pledge benefit, increasing k, and reducing a0, a more egalitarian network can be achieved.
Definitions
Minimum Fixed Fee
- Protocol parameter minPoolCost.
Margin
- Stakepool parameter PoolRate (percentage fee).
Public Stakepool
- A stakepool with a margin that is less than 100%.
Private Stakepool
- A stakepool that is not seeking delegation with a margin of 100%.
Stakepool Operator (SPO)
- The operator of a stakepool, can be a single person or an entity.
Multipool
- A group or brand of stakepools operated by a single entity or stakepool operator.
ROS
- Return on staking (often annualized and represented as a percentage of the initial investment).
Leverage
- The ratio between a stakepoolâs total stake and pledge.
Stakepool Viability Point
- The amount of pledge required for a stakepool with zero delegations to distribute nonzero rewards to delegators (assuming minimum stakepool fees and ignoring luck in VRF block production, i.e., rewards are exactly proportional to stake).
Stakepool Competitive Point
- The amount of pledge required for a stakepool with zero delegations to offer the same ROS as a fully-saturated stakepool with zero pledge (assuming minimum stakepool fees).
Stakepool Saturation Point
- The maximum amount of total stake in a stakepool before total stakepool rewards are capped and ROS diminishes.
Unsaturated Pledge Benefit Penalty
- The amount of potential pledge benefit (in ADA or represented as a percentage) a stakepool loses for being unsaturated. The penalty is larger the smaller the stakepool.
Minimum Attack Vector (MAV)
- Also known as the Nakamoto Coefficient, the MAV is the minimum number of entities required to capture more than 50% of a network. In the context of Cardano, this refers to the minimum number of SPOs required to capture more than 50% of active stake.
Goldfinger Attack
- An attack on a cryptocurrency protocol where the objective is to attack the protocol or network in order to make profit by shorting the native cryptocurrency.
Sybil Attack
- An attack on an online system where an entity tries to take over the network by creating many identities or nodes.
Motivation
The Current Rewards Equation
In section 10.8 Rewards Distribution Calculation of âA Formal Specification of the Cardano Ledgerâ (git revision 1.1-486-g301fede) the current rewards calculation equation is described by the function maxPool:
maxPool = (R / (1 + a0)) * (o + (p * a0 * ((o - (p * ((z0 - o) / z0))) / z0)))
where: maxPool = maximum rewards for a stake pool, R = ((reserve * rho) + fees) * (1 - tau), o = min(poolstake / totalstake, z0) = z0 for fully saturated pool, p = min(pledge / totalstake, z0), and z0 = 1 / k
Current protocol parameters: k = 500, rho = 0.003, a0 = 0.3, and tau = 0.2
The current reward sharing scheme which includes the rewards calculation equation and the minimum fixed fee are inadequate in promoting decentralization as evident by Cardanoâs currently low MAV relative to k. This is due to its anticompetitive features which are discussed in this section.
The Minimum Fixed Fee
The minimum fixed fee or minPoolCost was apparently included for additional sybil attack protection. However, itâs effect has been the opposite allowing stakepools with low pledge to offer greater rewards than pools with higher pledge in some cases. Moreover, the minimum fixed fee is certainly problematic as it places an unfair burden on small pools by enforcing a disproportionally larger fee than that of larger stakepools, reducing the ROS of small pools and incentivizing delegation to larger stakepools. This leads to centralization of the network around established stakepools, leaving less opportunity for smaller stakepools that may have greater pledge or community presence.
The Current Pledge Benefit
The current pledge benefit in the rewards equation is a function of the total stake in a pool that is significantly biased towards large stakepools that are close to saturation. Specifically, the current equation penalizes the pledge benefit of small pools. The smaller the pool, the larger the penalty. This unsaturated pledge benefit penalty combined with the minimum fixed fee leads to illogical rewards where large pools with low pledges can offer delegators higher ROS than smaller pools with significantly higher pledges. As a result, delegators are incentivized to delegate to larger stakepools even if they have lower pledges leading to network centralization.
The unsaturated pledge benefit penalty is part of the current rewards calculation equation and can be described by the equation:
UnsaturatedPledgeBenefitPenalty = (R / (1 + a0)) * p * a0 * ((p * ((z0 - o) / z0)) / z0)
See this Google Sheets to calculate the current unsaturated pledge benefit penalty for a stakepool.
Goldfinger Attacks
The minimum fixed fee and current pledge benefit introduce a potential security threat to the Cardano protocol: Goldfinger attacks. The current reward scheme puts all small stakepools at a disadvantage regardless of pledge centralizing the network around established stakepools rather than pools with the most attractive pledge and fee combination. When SPOs with low stake (pledge) in the protocol are allowed to dominate consensus, they have a potential alternative incentive to attack the network in order make profit by shorting ADA. Because these stakepools have low stake in the protocol (operate with low or even zero pledge), they would be able make profit without any significant loss other than future staking rewards. With leverage, the attackers could make significantly more profit shorting ADA than years of staking.
The Optimal Number of Stakepools, k
The current setting of k, the parameter representing the optimal number of stakepools, is set too low to provide an effective pledge benefit leaving little incentive for pools to increase pledge over time. Specifically, with a small k value, a fully pledged pledge benefit is far from achievable for most SPOs. An ineffective pledge benefit leads to the formation of multipools with high leverage, as operators can split their pledge into multiple stakepools without a significant decrease in ROS in the resulting stakepools.
The Pledge Influence Parameter, a0
The current setting of a0, the pledge influence parameter, gives an unnecessarily large boost in rewards to very high pledge and fully pledged private pools. Specifically, the current setting of a0 results in approximately 30% greater rewards for fully pledged private pools. This boost in rewards unfortunately results significantly less rewards for public pools that commonly have low pledges relative to the saturation point. Given that most Cardano users are delegators and not SPOs, this exclusive boost for high pledge pools decreases Cardanoâs overall attractiveness as a staking protocol. Additionally, having a high a0 setting only accelerates the wealth (ADA) disparity between large entities operating private pools and delegators who make up majority of the ecosystem.
Specification
The Proposed Rewards Calculation Equation
The proposed rewards calculation equation is a modification of the current equation that removes the unsaturated pledge benefit penalty:
maxPool = (R / (1 + a0)) * (o + (p * a0 * (o/z0)))
where: maxPool = maximum rewards for a stake pool, R = ((reserve * rho) + fees) * (1 - tau), o = min(poolstake / totalstake, z0) = z0 for fully saturated pool, p = min(pledge / totalstake, z0), and z0 = 1 / k
The Proposed Parameter Values
The proposed parameter values are the following:
Name of the Parameter | New Parameter (Y/N) | Deleted Parameter (Y/N) | Proposed Value | Summary Rationale for Change |
---|---|---|---|---|
minPoolCost | N | Y | N/A | See Rationale Section. |
stakePoolTargetNum | N | N | 1000 | See Rationale Section. |
poolPledgeInfluence | N | N | 0.2 | See Rationale Section. |
Rationale
Principles
The main goal of this proposal is to ensure fairness in stakepool rewards. This is achieved by including these principles in the design:
- Eliminate all anticompetitive features. These include any parts of the design that treat stakepools differently based on anything other than pledge or declared fees.
- Ensure that the pledge benefit is fair and corresponds to a consistent boost in ROS no matter pool size. In other words, assuming the same fees, two pools with the same pledge should always offer the same ROS.
- Ensure that the pledge benefit is effective and incentivizes increasing pledge over time.
- Reduce the large rewards disparity between private pools and delegators and increase Cardanoâs overall attractiveness as a staking protocol.
Explanation
The current reward sharing scheme includes two notable anticompetitive features. These features are the minimum fixed fee and the unsaturated pledge benefit penalty. This proposal removes these features to ensure fairness and promote adequate competition between stakepools. Removing these anticompetitive features promotes delegation to pools with most attractive pledge and fee combinations rather than established large pools and multipools. This results in fairer competition among stakepools and lower possibility of Goldfinger attacks as the pledge benefit is effective at all stakepool sizes. Greater decentralization is also possible as small stakepools will be able to offer competitive returns and potentially extract delegation from low pledge multipools.
To ensure a more effective pledge benefit and incentivize increasing pledge over time, this proposal increases the current value of k from 500 to 1000. This allows a fully pledged pledge benefit to be closer for all SPOs and will force multipools to split pledge and reduce pledge benefit if they wish to continue operating with the same leverage. Additionally, a change in the value of k will give many stagnant delegators an incentive to reconsider their delegations giving smaller stakepools an opportunity at increasing delegation.
Finally, to reduce the large rewards disparity between private pools and delegators, this proposal reduces the setting of a0 from 0.3 to 0.2. The current setting of a0 results in approximately 30% greater rewards for fully pledged private pools. This proposal reduces this disparity to 20% to create a fairer rewards distribution. The result is an overall increase in rewards for delegators as most public pools operate with low pledges relative to the saturation point. Given that delegators make up majority of users, this reduction in a0 will make Cardano a much more competitive staking investment in contrast to other blockchains.
These proposed changes to Cardanoâs reward sharing scheme are aimed at ensuring fairness, increasing decentralization, and creating a more egalitarian staking ecosystem.
Discussion
Sybil Attacks
Sybil attacks are an often perceived threat to proof-of-stake protocols. The original design of the reward sharing scheme combats sybil attacks with a pledge benefit. The implemented reward sharing scheme apparently introduces a minimum fixed fee for additional protection. However, this introduction, as noted before, has had the opposite effect. An important factor that is often ignored in delegated and liquid proof-of-stake protocols is social consensus. Social consensus includes community interactions, commentary, and online tools. With a strong enough community, sybil attacks can be avoided simply by social consensus, that is, an agreement to not delegate stake to possible sybil pools. Sybil pools can be discussed on social media, and stakepool explorers as well as Cardano wallets can mark possible sybil pools. With a fair pledge benefit and a strong community, Cardano is well armed against sybil attacks and has no need for a minimum fixed fee.
The Race to the Bottom
This proposal removes the minimum fixed fee which allows all stakepools to offer viable rewards. Moreover, k is doubled which will put many saturated stakepools over saturation. These changes may make a race to the bottom a concern as pools will be able to operate with zero fees to be as competitive as possible. However, a race to the bottom is not actually a concern when a fair pledge benefit is also implemented. In order to compete with zero fee pools, SPOs operating with fees can increase their pledge. The pledge benefit is not only a way to offer a higher ROS but also a way to offer the same ROS with higher fees. Therefore, these changes will encourage SPOs to increase and consolidate their pledge to stay competitive resulting in greater decentralization.
Limiting Leverage and Social Pledge
CIP-37 and CIP-50 propose making the saturation point of a stakepool dependent on pledge. While on paper these schemes may appear useful in reducing leverage on Cardano, there are some major tradeoffs that must be considered. Firstly, depending on implementation, these schemes may almost completely cut out low pledge stakepools from block production by significantly reducing their saturation points relative to higher pledge stakepools. If we are to achieve âpower to the edgesâ this is certainly not the way to go about it. Additionally, these schemes ignore the idea of social pledge. I consider there to be two types of pledge: ADA pledge and social pledge, where social pledge encompasses community interaction, marketing, education, community tools/DeFi, and mission-driven operations. I consider social pledge to be valuable to the protocol and vital to its success. Reputation in the community has value and should not be ignored, but limiting leverage makes ADA pledge the only factor in determining a stakepoolâs potential. Finally, these schemes put a potential limit on how much stakepools should pledge. SPOs may pledge the minimum amount to get to their desired saturation point instead of pledging as much as they can to stay competitive. For example, using the proposed rewards equation from CIP-50, if a stakepool has 50M total stake and pledge leverage is set to 100, then the only incentive to pledge beyond 1% or 500k ADA is to potentially increase delegations. But if stakepool delegations are at an equilibrium and increasing delegations is difficult, then there is little incentive to pledge more. The ADA an operator could use as pledge could also be used in DeFi to achieve potentially higher yields than staking alone (many DeFi platforms now offer staked ADA yield). These are just some factors to consider when discussing limiting leverage. It may be wiser to make smaller adjustments to the reward scheme we have now than to make drastic changes.
Test Cases
Stakepool viability and competitive points can give some insight into the fairness of the reward scheme. These points are essentially start-up costs required to run viable and competitive stakepools. These points are very high and out of reach for many SPOs with the current scheme. This proposal effectively minimizes these points.
Current stakepool viability point: ~625,000 ADA
Current stakepool competitive point: ~19,000,000 ADA
Proposal stakepool viability point: 1 ADA
Proposal stakepool competitive point: 1 ADA
See this Google Sheets to compare stakepool ROS between the current and proposed scheme.
Backwards Compatibility
This proposal includes parameter changes, one parameter removal, and a change to the rewards calculation. Because of the parameter removal and changes to the rewards calculation, a hardfork will be necessary for implementation.
Path to Active
This proposal must be approved by both IOG as well as the community before implementation. Community consensus should be a high priority for proposals that modify staking rewards.
Implementation can be staged to reduce shock to the network:
- Decrease minPoolCost from 340 ADA to 100 ADA and increase k from 500 to 750.
- Increase k from 750 to 1000, decrease minPoolCost from 100 ADA to 0 ADA, and decrease a0 from 0.3 to 0.2.
- Remove minPoolCost from the protocol and implement the new rewards calculation equation.