CIP - Shelley’s Basho-Voltaire decentralization update

I think what you’re trying to say is that if not enough ADA is pledged by all pools in total, not all ADA can be delegated without some of it losing optimal rewards? This is indeed something I didn’t think about before and that’s another point against this proposal for me…

2 Likes

Not just optimal rewards. His graphs show yield curves rapidly approaching 0 well before max K level saturation
Also, at 0 pledge allows pool operators to have power to slash rewards to delegators at will.

With his proposal, zero pledge means zero rewards I think.

2 Likes

Exactly. Gives power to pool operators to slash rewards of their delegators. It is going to erode trust in delegation system if they have to check every 5 days if their pool operator is about to punish them.

1 Like

…, but pool operators have that power already. They could fail their pledge on purpose. They could just turn off their block producer. They could go to 100% margin.

1 Like

Thank you for your comments and thoughts!

We have moved conversation to the official pull request so feel free to post an complete peer review there after collecting all thoughts.

z0*k = 1/k * k = 1

Check out the complete CIP-50 on GitHub! Additions have been made.

IF a pledge leverage factor is tightened (reduced) there would be a great market pressure to pledge at least T/a0*(delegated_fraction). Groups would have the financial motivation to add pledge and compete for delegators. This is a market self-correcting possibility so I considered it, but didn’t decide to include a discussion of it in CIP-50 (yet?). @brouwerQ doesn’t have to worry much. :stuck_out_tongue:

Currently there is no Sybil defense and Cardano is running on honest participating large groups (IOG, Wave, Binance, Coinbase, Etoro). A pledge leverage factor requires each group (one or more pools) to make a real investment and put skin in the game (enforced Sybil defense).

CIP-50 makes it easy for small pools to compete with pools 100 times their size. In the pull request conversation thread I even include a small pool bias variation example that isn’t egalitarian fair, but is worth discussing/considering.

True. You can achieve the same local effect multiple ways but with out such adverse side effects to the whole network. At the moment their actions would be relevant only to their pool.
If you have multi pools drop their pledge with a0 change you can cause the whole network to not have enough saturation for all ADA to be able to pledged.
The rest of my example was just extrapolated attack vector by following the same train of thought.

This proposal seems to optimize for rewards vs pool/pledge size with out consideration of the network. While the optimization is very good number wise it seems to be missing the network view. It removes a0 as Sybil defense, it incentivizes pool growth pass K making K irrelevant and opens new vectors of attack by allowing pledge behavior to control total and local rewards. However, I was just notified that there is updated proposal elsewhere so these concerns may have been addressed already.

Also, considering that current reward protocol is just temporary as emissions run out (and if we get a prolonged bear market they may be forced to increase emissions) this just imposes unnecessary cap and a huge barrier once Cardano becomes fee based. Good luck getting anyone to delegate to capped pool when we become fee based.

Yes, I should of checked for that. Sorry. I’ll just answerer to these comments, then I’ll try to join the proper channel :smiley:

:point_up: This is not equal. z0 * K=33.8 Billion ADA at the moment. Not sure what 1/k*k is supposed to be in this context.

This seems to assumes that every pool pledge is low and delegations are high. In a case where a0 gets reduced while pool pledge is higher then needed to maintain 90% of current delegations this will be incentive to reduce the pledge and start a new pool(s) with the remaining pledge.

If a pool operator has enough pledge for 100% saturation and they have only about 10% in delegation saturation, this incentivizes them to open 10 pools instead of looking for delegators. While these parameters can change the number of blocks is constant at the moment, so having more pools with smaller pledges will take away blocks from single pool operators.

This is not true.
First there are different types of Sybil attacks. The one that current a0 guards against is described in many places. Here is most readable one I found: https://iohk.io/en/blog/posts/2018/10/29/preventing-sybil-attacks/
Basically it prevents creation of low cost small pools that can provide competitive returns. This is done in order to incentivize higher pledge. Your proposal revers this defense mechanism with out offering a replacement or considering implications.

With same amount of blocks produced on the network and no penalty to rewards it is more advantageous to split pledge into many smaller pools. Thus all those newly created smaller pools will be in line for same limited amount of blocks as previously existing pools with less pledge.

Further more, large pools are incentivized to split up into smaller pools for same reason. Limited blocks. This will push out medium size pools, which in turn will split up into smaller pools. This will push out small pools, and so on…

Single pool operators will have 10x more pools to compete with. Plus considering that single pool operators usually have small pledge they will be excluded from the only system that helps small pools, that is IOG and Foundation delegations. Single pool operator that previously qualified with small pledge may not be able to receive these delegations, ever. Since their saturation is capped by a0.

Thanks all for responding. As soon as I feel a bit better I will find my way to official pull request page.

z0 * k isn’t 33.8B but 1, because z0 is defined as 1/k. z0 is not an absolute number, but a fraction of the circulating supply.

1 Like

You are correct. Thanks for pointing this out. :+1:
I should not have just tried to use pre-existing variables.

What the formula should of said is:

pool-max-saturation (in ADA) x K = Total ADA in circulation

1 Like

The latest IOHK blog post still perpetuates the inaccuracy that stake pool pledge has a meaningful effect.

https://iohk.io/en/blog/posts/2022/06/10/cardanos-foundational-research-overview/

Second last paragraph quote:

“The research shows that the proposed reward mechanism steers the network to a desired level of decentralization and, in particular, offers protection against Sybil attacks. This is enabled by a so-called pledging mechanism, which greatly disincentivizes the formation of multiple stake pools controlled by a single real-world entity.”

I strongly disagree. With the current design pledge has no such effect.

2 Likes

It’s a bit funny that in this topic many people think pledge has too much effect, often in reference to private pools, and many think it has too little effect, often in reference to multi pools. Of course depending on the distribution of ada/pledge among SPOs it is possible for both to be true, such as in the case the vast majority of SPOs have very little pledge relative to saturation while some can fully pledge a pool with little to no pledge options in between these extremes. It seems important to point out that this gap between small pledge and full pledge shrinks every time k is increased. If k is increased from 500 to 1000 then pools that were fully pledged before gain no benefit, but the pledge benefit for smaller pools doubles. It seems that increasing k will do much to alleviate the concerns of people that feel pledge does too little and/or too much.

The pledging mechanism does disincentivize multi pools, having to split pledge means lower rewards for your pool and delegators. I certainly think it’s reasonable to argue over the relative magnitude of pledge benefit, but what’s more important than the actual pledge effect is people’s perception of it. As soon as stake pool creation was open to the public on mainnet, some of Cardano’s biggest influencers and “OGs” created multi pools, and over time they repeated to their audience that pledge is worthless so it doesn’t matter if you split it. This has had a massive effect on the social side of incentives, normalizing multi pools as well as pledge being unimportant.

In addition to these social issues, the min fixed fee also clouds the effect of pledge, since at it’s current level it makes the vast majority of pools simply unable to compete with honest marketing.

With these issues at play it seems difficult to put the blame on the current pledge design, especially when it’s possible to measure the loss of rewards due to splitting pledge to open more pools. Incentives only work if people understand and take advantage of them, and the social physics of the system are as important as the financial incentives. The current social issues, the min fixed fee being unreasonably high, and k not being high enough seem of much greater importance to me than the current pledge design.

1 Like

@prometheus-pool I agree with much of what you said. However, I disagree with your overall thesis on two fronts:

  1. Relying on “social physics” is not enough if there are financial incentives pointing in the opposite direction.
  2. Increasing K will lower the saturation threshold. If doubled from its current value then saturation will come down to 34M Ada. Since the extra yield obtainable from full pledge saturation happens almost entirely as you approach the saturation limit. This means that many more holders will be able to exploit this design wrinkle. Not many people have 68M Ada. Many more have 34M. Doubling K again would bring it down to 17M Ada and even more people have that amount.

This @Michael.Liesenfelt graph depicts the problem:

current reward equation

You can see how the benefit of pledge saturation arises predominantly towards the 100% saturation limit.

That, in my opinion, is a weak argument to raise K to 1000 where many more people will be enabled to exploit the extra yield benefit by fully saturating pools with pledge. Pledge will still make almost no difference between 100K to 500K pledge. However it will make a ton of difference from 30M to 34M pledge. These pledge saturated pools are earning over 1% extra yield at the expense of the rest of us.

By the way, if we don’t do something about this “pledge saturated pool” problem soon, you will see many more projects doing what WingRiders is doing. They are using smart contracts to exploit this extra yield. People lock up Ada in their smart contract and they use it all as pledge to earn the extra yield.

Now think about how that incentive model is going to drive decentralisation in the wrong direction!

1 Like

The important thing to point out here is that it is the stake saturation limit, you don’t need a near fully pledged pool to fully realize your pledge benefit, you can fully realize your pledge benefit with any amount of pledge but you will need additional delegation to achieve that. This disincentivizes having more than k pools, a property which the proposed pledge changes in this thread lacks.

So every time k is doubled, many more people get to enjoy the same benefits that only a few do at the moment, and the gap between people that enjoy the maximum benefit and the average pool is significantly lessened. The real problem is not how much people at the top are making, it’s the difference between the top and the bottom, increasing k decreases this gap.

Paying this extra yield is preferable to me than having a system that converges to the staking ecosystem being controlled by a handful of whales. 500k pledge at k = 1000 would give close to 0.5% more rewards to delegators, this is significant relative to pretty much any margin a non private stake pool is currently charging. As delegators take advantage of these financial opportunities and the system becomes more decentralized, a0 can be reduced, further decreasing the gap between fully pledged and average pledged pools.

I think this is something that we will have to watch play out. As more projects come online in the ecosystem users who are looking to take additional risks via smart contracts will have to choose between some extra yield on their staking rewards via pledge locking or other new yield opportunities from projects adding different kinds of value. It seems likely to me these new projects will stake the ada in their smart contracts rather than pledge it as liquidity is often a necessity.

You make two statements here about incentives going in the wrong direction, however I don’t see any support for that in your post, it seems to instead be about some people earning more rewards than others. Could you clarify further?

With the current design and increasing K to 1000 there will be little difference between 100K pledge vs 500K pledge. On the other hand, there will be many more whales that can afford to implement full pledge saturated pools to earn 1%+ more yield than the rest of us. The yield earned through staking needs to be viewed competitively since if some are earning more then they are accumulating a higher percentage of the total system value.

WingRiders is collecting large amounts of Ada because it is incentivising people to stake, via their smart contract system, to earn extra yield. They can pay this extra yield by using the Ada collected as pledge to fully pledge saturate pools and earn an extra 1%+ yield. They can scale this up because they can pay a higher yield than normal stake pool operators. Thus becoming effectively the “Lido” of Cardano.

Take a look at the decentralisation problems that Lido has created for Ethereum in order to work around Ethereum’s lack of liquid staking. Lido now controls > 32% of current Ethereum 2.0 staking. WingRiders could do something similar because they can leverage their DEX and their relative costs will reduce with scale.

This extra 1%+ yield benefit, through pledge saturating pools combined with smart contract staking, has the potential to create a similar decentralisation problem on Cardano.

@HeptaSean did a great post explaining how WingRiders smart contract staking worked. This post highlighted also how smart contracts could be used to effectively lock up Ada for a period so that it can be used as pledge for yield boost. I can’t find the post now, but maybe @HeptaSean can provide the link.

1 Like

The difference will be equivalent to around 0.4% margin, this is a significant amount relative to what most people charge for margin and should not be handwaved away.
As I’ve already stated whales earning more through fully pledging pools is a trade off for decentralization, and the gap will lessen significantly as the system becomes more decentralized via raising k and eventually lowering a0.

I’d love to see some concrete info on what you are saying about Wing Riders, as a dex I don’t see how they would be able to fully pledge pools with ada in smart contracts while maintaining liquidity. As for your Lido comparison, the problem with Lido is significantly magnified by the derivative asset, stETH. Because stETH would not be fungible with similar tokens offered by other competitors of Lido it leads to centralization to a single offering to make use of liquidity in defi, Cardano currently doesn’t have this issue.

I am confused by your claim. That is not what @Michael.Liesenfelt mathematical modelling shows. You have read and discussed @Michael.Liesenfelt modelling and graphs under his CIP: CIP-0050? | Pledge Leverage-Based Staking Rewards by michael-liesenfelt · Pull Request #242 · cardano-foundation/CIPs · GitHub

I am sorry that I can’t find the link to @HeptaSean post. From memory what WingRiders is doing is getting many people to lock-up Ada via a smart contract for a period of time, like 3 months. They then use all this Ada as pledge to fully pledge saturate a pool, or multiple pools, to earn extra yield. They earn more than 1% more yield this way by being fully pledge saturated. They give a cut of the extra yield to the users and keep some as profit.

My point is that this has a centralising effect. More Ada is being “controlled” by WingRiders through exploiting this pledge saturation yield advantage. Economic incentives are motivating people to lock-up Ada with WingRiders to benefit from this extra yield.

By the way, I think WingRiders are good actors. If I remember correctly @HeptaSean post was primarily pointing out how their smart contracts were designed in a good way to ensure user control once the time lockout was reached.

Nevertheless we should be aware of the risks. Other actors may not have good intentions and intentions can change over time.

Those graphs are not pledge saturation, they are stake saturation. If I have 500k pledge at k=500 then when my pool is fully saturated by pledge+stake I return around an extra 0.5% rewards (the majority of the benefit can be realized before full saturation). Pledge benefit is linear with respect to pledge, but if you graph it vs stake saturation then it will not appear that way.

Could you be referring to Eternl wallet? They are time locking ada with native scripts and using it for pledge, much like you’re describing. I’ll admit this was a bit worrisome to me at first, but there is definitely a cost to time locking your ada like this, also there is no guarantee protocol wise that you will receive any rewards at all, Eternl has to send them to you. If you time lock your ada like this you cannot participate in catalyst governance and receive voting rewards, you also cannot participate in any smart contracts that might offer potential yield, or ISPO’s. I won’t go as far as to say it’s nothing to worry about, but there are mitigating factors.

The graph I quoted above was about pledge saturation it was titled: “Reward Potential at various Pledge Fractions”.

Our original dispute arose because I claimed that pledge makes almost no difference at the lower end of the range and I stand by that claim. So let’s put some numbers on it.

Use this fantastic Cardano rewards calculator:

Update the figures for current Ada supply and total staked Ada:

  • Current Ada supply = 33,752,565,071 Ada (messari.io)
  • Total staked Ada = 24602095926 Ada (from my running node using Andrew Westberg’s leaderlog tool)

Using the calculator, leave K=500, set the total Stake to 67M Ada, leave fixed pool fee at 340 and set variable fee to 0%, leave other figures, Rho, Tau, a0 etc. unchanged. Then vary the pledge amount to see how the return for delegators changes.

At Pledge 0, total Stake 67M then return on Ada for delegators is: 4.46%
At Pledge 500K, total Stake 67M then return on Ada for delegators is: 4.46%
At Pledge 1M, total Stake 67M then return on Ada for delegators is: 4.48%
At Pledge 2M, total Stake 67M then return on Ada for delegators is: 4.5%

IE. 0.04% extra yield from 0 to 2M pledge. Very minimal indeed.

On the other hand if I pledge saturate a pool with 67M Ada then total pool return goes to: 5.82%

Wow. An extra 1.32% yield for those that can pledge saturate a pool. So WingRiders can now pay its users an extra say 0.5% yield, for locking up their Ada for 3 months, and pocket the additional 0.82% difference it is earning. This is a great deal for WingRiders and its users. But, not so much for the rest of the Cardano community because they are comparatively earning less.

And, it does reduce decentralisation because it shifts Ada from small stake pools to large entities like WingRiders. Furthermore, these large entities can keep spinning up more pools under their control to match the demand for this extra yield.

I say that this current pledge design is creating the wrong incentives. That is one of the reasons why I support @Michael.Liesenfelt CIP-0050.

By the way, I wasn’t aware that Eternl wallet was doing something similar to WingRiders. One part of me is disappointed to hear that, but, if the incentive models are designed as such, then…

1 Like

Each line is a pledge fraction, the x axis is labeled as Stake Saturation. Each line represents what yield a specific pledge fraction provides at a given stake saturation (pledge + delegation) level. @Michael.Liesenfelt can confirm this for you.

These numbers are in line with that I pointed out in my post and corroborate what I was saying, although it is likely your number for 500k pledge is suffering from a rounding error, I got 4.47% when I tried the calculator you linked with your numbers. At 500k pledge at k = 500 your pledge benefit grants you 0.0447 / 0.0446 ~ 0.22% more rewards, about half of what I said in my example because I used k = 1000 instead of 500. As I stated, if k is doubled to 1000 this is a significant amount relative to what stake pools are charging for margin, and only grows more significant as k increases. Pledge matters and it is measurable, it provides a clear financial disincentive to pledge splitting while ensuring that the staking ecosystem doesn’t end up being run by a handful of whales, an assurance that CIP 50 currently lacks.

As for WingRiders, I’ve already stated my case on why I’m not convinced this will be important. The extra yield from locking your ada forces you to lose voting rewards as well as new potentially much greater yield opportunities on the horizon such as Liqwid, djed, etc.

I have no words.

Why the motivation to spin things this way?