CIP - Fair Stakepool Rewards

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:

  1. Eliminate all anticompetitive features. These include any parts of the design that treat stakepools differently based on anything other than pledge or declared fees.
  2. 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.
  3. Ensure that the pledge benefit is effective and incentivizes increasing pledge over time.
  4. 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:

  1. Decrease minPoolCost from 340 ADA to 100 ADA and increase k from 500 to 750.
  2. Increase k from 750 to 1000, decrease minPoolCost from 100 ADA to 0 ADA, and decrease a0 from 0.3 to 0.2.
  3. Remove minPoolCost from the protocol and implement the new rewards calculation equation.
14 Likes

I believe this CIP is complementary to CIP-69, and I wholeheartedly support both.
For the reduction of risk, I think it makes sense to adjust minPoolCost incrementally as suggested here.

I also agree with the changes to k and a0, and hope that we can somehow unblock the log jam to get these changes made rather than the endless debate and kicking the can down the road which has been characteristic of the struggle to update protocol params so far.

8 Likes

This CIP definitely looks interesting. Proposing an improvement by modifying 4 parameters is integral, it is better than just setting the minFee to zero. Models will have to be made to prove their effectiveness (beyond the spreadsheets already provided). Congratulations Tobias

3 Likes

You cannot model a herd of cats. You simply set them free and observe their behaviour.

1 Like

I support this proposal, capping saturation based on pledge doesn’t really make sense to me, especially in the lower ends of the “stake spectrum”.
ONLY removing minPoolFee only worsens the situation in the long run, but tackling all these issues together and being progressive with the changes is definitely a better option in my humble opinion.
What’s your estimation on the time between first and second parameters change?

2 Likes

Thanks for the feedback! I’m thinking maybe 1 month to 6 months between the first and second parameter changes, but ultimately it will be a decision that will have to be made by IOG with community support.

3 Likes

I particularly like the idea of changing K at the same time because this will force many network participants to re-stake or at least think about it. Furthermore, it will induce the multi-pool operators to unleash lots of free advertising about the changes on their youtube channels, which will get more people thinking about re-staking.

4 Likes

This proposal looks well thought out. I am working on a way to increase the value of tADA on our testnets so we can get more emperical evidence to test parameter proposals. The primary reason we dont test these types of protocol changes is because tADA has no value. Please have a look at https://testnetcoins.io all feedback is welcome - I just started.
Thanks, Chris Santo Electronics with Santo Stake Pool

1 Like

@TobiasFancee hoping you & advocates of this proposal will be able to attend the CIP Editors’ meeting when we can schedule an agenda with other proposals in this same vein (PoS system revisions). In the meantime, participants here can follow & discuss similarly themed proposals in the Discord channel link in this posting :nerd_face:

1 Like

In Favor for Path to Active #1 and #2, Abstain from #3 until Further Research

First of all, this is an extremely well researched, thought out, and written draft CIP.

I like the inclusion of Goldfinger and DeFi attacks, the Google Sheets, and the frame of thinking with the Unsaturated Pledge Benefit Penalty, reworking the Current Rewards Equation to the Proposed, and the notion of “social pledge” which is under the radar and underrated. My hat tip to you @TobiasFancee.

After thinking deeply for a few days, I think this is the best approach we are going to get given the current reward equation framework.

I agree with the path to active #1 and #2 lowering minPoolCost & a0, and raising k in those steps. I will abstain from #3 hardforking the new proposed equation, because as you know, I’m in favor of the CIP-50 pledge leveraged proposed equation.

However, what I’m more in favor of is, researching and battle testing new reward equation frameworks, like your proposed equation, AND ranking systems. I think your proposed equation is probably a top contender for evaluation. I’m also open to innovating and seeing the parameter changes in your option #1 and #2 and seeing the outcomes. Hopefully by the time #3 comes around, we will have an Analysis of Alternatives of reward equation schemas.

Here’s my open thoughts for discussion on the parameter and equation changes in detail.

on minPoolCost

I’m in favor of lowering minPoolCost to 0 to push free market decision making power to the edges of the SPOs who know their business best. (Note, this does not dictate the minFee, what the min costs the pool can charge, it only lowers their potential limit. Pools can still cover their expenses and some profit with minFee as they see fit, with whatever hardware they are using, in whatever country). Central Planning is the Road to Serfdom, as Hayek would say.

on k

In reality looking at the stakepool landscape I think it would make more sense to actually lower k, because it would raise the saturation point of many pools, and encourage consolidating. Will big pools with low pledge actually do that, I really don’t think they would. I think they don’t mind collecting the 340 min fee and rewards from a quantity approach, even if their reward yields drop. Also, with the price of Ada increasing, I don’t see small pools being able to buy enough Ada to make it close to that 90% saturation boost area. Unfortunately, the cat may be out of the bag on that. I think lowering k is good because the “effective weighted average” of pools winning rewards is about 40, which is way less than 500. I could be wrong, but the only reasonable approach in this current equation framework may be to raise k. I like the 1000 number too.

My concern with raising k to 1000 (that is, cutting the pool saturation limit in half 68M/2=34M), is that, I think you’ll see more of a race to reach the intended a0 boost area. I think we may see more pools going private, and even more splitting. I think ultimately this will increase the quantity of pool (and hardware and sustainment costs), but no real change to decentralize pool groups. However, for regular pools this 34M limit is more obtainable to reach 90% for sure.

I’m very curious and skeptical of the pool dynamics on this change, I don’t think it will really do much, with delegators chasing higher yield from the same pool groups, but we’ll see.

on a0

I think this parameter works as intended, but is a fundamentally flawed parameter. Lowering a0 from 0.3 to 0.2 is a great idea. I think it definitely will give small-med pools more rewards in the “body” of the curve. All pools will look to chase the more obtainable “pledge boost” 90% saturated region. But it is still unobtainable for very many. In this regard, earning the max yield is not egalitarian and still drives classes.

on the proposed equation

This is definitely the best derivation variant on the current equation. I like the simplification.

on Limiting Leverage and Social Pledge

Reasons I like the CIP-50 pledge leverage based equations are that I think a0 is fundamentally flawed, causes staking classes, and is not egalitarian, nor does it drive decentralization. In your comments on the pledge leverage based equations of CIP-50 and 37, I may comment on those separately because I believe there are many misconceptions.

consideration

Consider, which I found out to be a very profound part of the stake pool game theory, the ranking equation system to accompany this new proposed equation. Daedalus and Eternl have different ranking schemes. CIP-50 does as well. Maybe consider a Pool Ranking section to complement the new equation? Is there anything you’d like to see changed or prioritized in pool ranking?

Cheers!
-Christophe

5 Likes

Thanks for your feedback! Sorry for the late reply, I don’t go on the forum that often. I’m glad that we agree on many aspects, but here’s some commentary on some things we disagree on:

k:
I believe increasing k is one of the most important things we should be pushing for right now. Not only does it make the pledge benefit more effective, it will also get stagnant delegations moving again which is necessary if we are going to try to push the network to a more decentralized equilibrium point. Multipools can split, but if they do, they will lose more pledge benefit, and if minPoolCost is removed or set to zero, 0 fee pools will out-compete these profit-driven multipools. You also said that we will see more pools going private. I think this would be a good thing. Private pools have the lowest leverage possible, isn’t that the goal? Also, it’s important to note that most community pools with delegation make much greater returns than private pools due to margin and fixed fee. So more pools going private would actually lower rewards disparity between SPOs and delegators.

Limiting leverage, Social Pledge:
I actually think pledge-leverage is the opposite of egalitarian, it’s plutocratic. It essentially creates a cost to get delegations, which results in a network that is only ruled by the wealthy. As I said in the proposal, community members who aren’t wealthy but have a voice in the community should be able to participate in consensus. The irony is that I was the first one to come up with pledge leverage, now I think it’s mostly a bad idea.

Ranking:
I honestly don’t care about ranking. Wallets are going to do whatever they want. It’s actually in a wallet’s best interest to only rank based on ROS, higher rewards = more users. Of course there is talk of creating a verification process for wallets which could impose a ranking system, but do we really want that kind of gatekeeping? Overall, I think active delegators look for three things in a pool: decent ADA rewards, operated by a trusted community member, and ISPOs. I don’t think many pay attention to rankings. But I could be wrong.

Also, I’m in the CIP Editors Discord now, so we can continue discussion there.

Cheers,
Tobias

6 Likes

Thanks for the reply and feedback, definitely appreciate the perspective. I guess you let the pledge base pool idea “cat out of the bag”! Ha.

1 Like

But that you result in more stake if such a member is having such a voice in the community. This should normally lead to more delegators because of the social stand of that member.

1 Like

Agree - “social proofing”