-
Notifications
You must be signed in to change notification settings - Fork 318
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CIP-0037? | Dynamic Saturation based on Pledge #163
Conversation
cip-caseygibson-dynamicsaturation.md
Outdated
|
||
An example of how Dynamic Saturation would be calculated: | ||
|
||
500,000 ADA Pledged = Saturation point at 100% of K |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will need a mechanism to determine these pledge thresholds. For example, why does 500,000 ADA pledge, instead of 600,000 ADA, deserve 100% saturation point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not smart in general to limit saturation, dynamic impact of pledge, relative to total delegated stake would be much more beneficial, and provide a level playing field...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will need a mechanism to determine these pledge thresholds. For example, why does 500,000 ADA pledge, instead of 600,000 ADA, deserve 100% saturation point.
The example I gave was based on the fact that the values would be adjustable in the same way all the other params were chosen and could be changed based on network consensus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not smart in general to limit saturation, dynamic impact of pledge, relative to total delegated stake would be much more beneficial, and provide a level playing field...
For the purpose of the discussion, can you please explain why "it's not good to limit saturation"? Technically the k param already limits saturation, so I'm not sure what your point is.
The idea is to shift the saturation to the pledge instead of on the pool.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is my idea of formulating the thresholds as a function of k
and two additional parameters, e
(entry threshold) and l
(leverage):
orig_sat = total_supply / k
new_sat = orig_sat * max(e, min(1 / k, pledge / orig_sat * l))
We can use function new_sat
to calculate the saturation point for a pool given its pledge, so we don't need to define these thresholds manually in the protocol. The parameter e
is to, like Casey mentioned, safe guard small SPOs so they can at least have a reasonable chance to generate a block in a certain period of time. A value of 0.01 could be a starting point. The parameter l
(leverage) could be a value the community define, e.g. 20, which means the saturation point will be 20x the amount of pledge.
@mark-stopka Not limiting the saturation point means we will discard k
completely, which will be a much bigger change than the scope of this proposal I think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as a small pool, reaching saturation at 13m stake vs 64m seems more reasonable to me and targeting 50k pledge also seems like a realistic target this would encourage me to increase my pledge sooner to avoid declining rewards for my delegates - do I understand this correctly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These numbers are just used for discussion purpose and nothing is finalized. In this context, increasing the pledge means increasing the saturation threshold for your pool. If your pool's pledge is at 50k, then the pool will be saturated at 13.49M ADA, meaning that any more delegation to the pool will result in decreasing reward. In this case, you are correct in a sense that you would need to increase the pledge above 50k in order to receive more delegations beyond 13.49M ADA without hurting the ROI of your pool.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@CyberCyclone Casey, if this formula looks good to you, would you mind including it in your proposal? I can also create a pull request to your clone, and then you can merge it from your clone and resubmit this pull request. I am fine with either way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the reminder @cffls Jerry. I'll try and look into adding it in the next few days. I'm working on another CIP so once that's ready I'll come back to this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cffls I've finally gotten around to updating the CIP. I've attached the code to the bottom of the CIP.
The example uses these numbers: "500,000 ADA Pledged = Saturation point at 100% of K". This is way too low. I'm pretty confident most of the OG pool group operators have enough ADA to cover this and not collapse pools. |
I'm not sure who you're referring to @StakeWithPride or what OG means, but the idea is to make single entities the majority operators of the network and force large stake pool operators to put down a decent pledge. If a small number of entities have enough ADA to meet the pledge and want to operate multiple pools then that's not an exploitation. |
Just a comment to avoid the idea being lost: Tobias Fancee mentioned a possible variant by calculating the pledge benefit from the stake/pledge ratio: "Pledge/pool stake ratio pledge benefit pretty much does the same thing and is way easier to implement. Also, you wouldn't need saturation at all because the more leverage a pool has the smaller their pledge benefit which gives smaller pools a chance to compete." https://twitter.com/TobiasFancee/status/1466437270651686922 PS: It looks like the same idea as the one mentioned in this comment: #163 (comment) |
Why define it as a concreate number and not a Leverage cap ? For example at a leverage cap of 10 you can have 10X the stake given your pledge. this way it is also easy to translate into K changes etc. |
A good way to calculate a starting value for the max leverage(dynamic saturation is to find the total leverage of the network at present and use that) this way theoretically all stake should go to the pools to saturate base on pledge. Operators will naturally increase pledge as much as they can making the system more fluid and competitive again. Based on data from (https://adapools.org/press) this suggested starting values would be: This would mean that for a full saturation of 64M an operator would need ~ 5M Pledge. This is the extreme end of values that we can support but we can support it and I would make things like new pledge changes and K increases less relevant and necessary |
I proposed a formula which introduced in a new parameter |
Top 19 pools are IOG and anonymous pools with full pledge (64M). We should exclude these pools since they are outliers. If those 19 pools are excluded, we will end up with leverage of 31.09, which means full saturation of 64M will require ~2M pledge, which sounds a bit better. Calculation:
|
Dear Community, It is a pleasure to have this chance to contribute to the Cardano ecosystem, and I am glad that this chance is open for everyone even to contributors like I am who is not a developer by profession. I do have a terminal degree in the sciences, so I can understand quite a bit of mathematics (this CIP is somewhat mathematically oriented). I must reveal that I am using a pseudonym as I am still not sure at this point what I am getting into. Here, I proposed a CIP that will hopefully address the steadily increasing stake centralization in the Cardano ecosystem. I am also aware that there is another proposed CIP by Casey Gibson (cardano-foundation#163) which is similar to mine. I discussed the differences of these two proposals in the Rational section of my CIP. Finally, I gave a very simple scenario below that may help orient the reader as to what the CIP is trying to achieve. Alice, Bob, and Charlie are pool operators, and each is entitled to 3 saturation limits (SL). However, they need to make a pledge to get any SL in a 1:1 ratio. The ecosystem has a total of 9 ADA in circulation, and the proposed CIP requires that the “total SL is always equal to ADA in circulation” regardless of pools’ pledge status. Scenario: a. Alice pledged 3, Bob 3, Charlie 3 (ecosystem is in equilibrium, total SL = ADA in circulation). Since all SL were claimed and no one is under-pledged, additional pledges from Alice, Bob, and Charlie will no longer allow them to gain any more SL nor will it decrease their current SL. b. Alice withdrew 1 pledge due to an unforeseen circumstance, and this makes the ecosystem under-pledged (Alice has 2 SL, Bob 3, and Charlie 3). The proposal always require that “total SL = ADA in circulation”, so the unclaimed SL must be redistributed. The redistribution uses pool accumulated time as the parameter instead of pledge so as not to disadvantage Alice even more by having the lowest pledge. Assuming they all started at the same time as pool operators, Alice, Bob, and Charlie deserve equal proportion to the unclaimed SL, and each will receive 0.33 SL. So, Alice has 2.33 SL, Bob 3.33 and Charlie 3.33. “total SL = ADA in circulation” is re-stablished. c. Eventhough, Alice’s unclaimed SL was re-distributed, it can still be claimed by anybody. So, Bob decided to pledge 1. Alice now has 2 SL, Bob 4 and Charlie 3. Since all SL were claimed but only Alice is under-pledged, only Alice can pledge at this point. Additional pledges from Bob and Charlie will no longer allow them to gain any more SL nor will it decrease their current SL d. Alice decided to pledge 1 to reclaim her SL. Now, Alice has 3 SL, Bob 3, and Charlie 3. Since all SL were claimed and no one is under-pledged, additional pledges from Alice, Bob, and Charlie will no longer allow them to gain any more SL nor will it decrease their current SL. e. Under the new proposal, the only way any one of them can take away SL from the other pools is to set up more pools. However, one will need to pay a pledge to take away only a tiny fraction of SL, which makes this strategy unrewarding. To illustrate scenario (e) even better, a current MPO that has 60 pools and controls 2.8B ADA in stake without any pledge must now pledge 12.8M and set up 282 pools to retain all 2.8B ADA in stake under the proposed CIP.
Moving forward, we would like to:
|
@KtorZ The CIP has been updated for IOG review. Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@CyberCyclone thanks for adding Path To Active although the Status:
in the header is not the place to suggest that this is waiting for review...
Co-authored-by: Robert Phair <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for making that last change but my apologies (for duplication of effort) we also missed this one 😖
Co-authored-by: Robert Phair <[email protected]>
No problem @rphair. Let me know if there's anything else needed. |
@rphair just pinging this in case it's been forgotten about 👍 |
@CyberCyclone I've requested reviews from other editors already, plus I've also just now requested that we add this to the upcoming CIP meeting agenda... so it's sure to progress somehow from there 😎 here's the Discord where that meeting will take place: https://discord.com/channels/971785110770831360 ... you'll see the upcoming meeting details & agenda on the Events tab. |
This CIP is a proposal to correlate a SPOs total pledge to the pools saturation level. This takes the importance of the pledge and pool saturation away from the pool entity and places it on the SPO entity. This is to patch the loophole that single entity SPOs have exploited in running pool farms with significant amounts of stake.
The intention of the pool saturation was to limit how dominant a single entity could become, however they have bypassed this intention by creating secondary pools.
This proposal will mean that a SPO will have a saturation point across all their pools based on how much pledge they have across them.