Skip to content
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-ShawnMcMurdo-NonCentralizingRankings #21

Merged
merged 11 commits into from
Jul 27, 2021

Conversation

shawnim
Copy link
Contributor

@shawnim shawnim commented Sep 19, 2020

Initial CIP for Stake Aware Rankings.

@shawnim shawnim changed the title Stake Aware Raninkings CIP-ShawnMcMurdo-StakeAwareRaninkings Sep 19, 2020
@shawnim shawnim changed the title CIP-ShawnMcMurdo-StakeAwareRaninkings CIP-ShawnMcMurdo-StakeAwareRankings Sep 19, 2020
@shawnim
Copy link
Contributor Author

shawnim commented Sep 19, 2020

I see that the automatic checks have failed.
When I look at the details and the log I only see the following which is not very helpful.
10:24:31 PM: Error running command: Build script returned non-zero exit code: 2
10:24:31 PM: Failing build: Failed to build site
10:24:31 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2
IS this a system problem or is there something wrong with my submission?
Any useful details or guidance on what is wrong appreciated.

pools will eventually be saturated, whereas all other pools will lose all their members, then to
finally base all reward calculations on these assumptions."

2. Remove the follosing statement from section 5.6.1:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo.


This is a modification of the ranking methodology defined in section 5.6 Non-Myopic Utility of “Shelley Ledger: Delegation/Incentives Design Spec. (SL-D1 v.1.20, 2020/07/06)” as follows:

1. Remove the follosing statement from section 5.6:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo.


## Backward Compatibility

This proposal is not backwards compatible with the current ranking system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not break backwards compatibility because it is an off-chain change.

@shawnim shawnim changed the title CIP-ShawnMcMurdo-StakeAwareRankings CIP-ShawnMcMurdo-NonCentralizingRankings Sep 22, 2020
@shawnim
Copy link
Contributor Author

shawnim commented Sep 22, 2020

Thanks @mark-stopka ! Incorporated your changes.

Comments-Summary:
Comments-URI:
Status: Draft
Type: Standards
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be an "Informational" since this doesn't affect the protocol itself

@crptmppt
Copy link
Contributor

crptmppt commented Feb 21, 2021

With the change of k to 500 this CIP has become less critical. If there are strong opinions thank you for weighing in, else this will checked in further out to see if still relevant.

@rphair
Copy link
Collaborator

rphair commented Feb 22, 2021

@crptmppt I've observed that this is just as relevant today. Even in the most recent versions of Daedalus the pools are still basically ranked by descending stake. This kills off small pools even if highly performant because delegators follow the # 1 signs (or top line, or top screen) in Daedalus - conditioned by the UI to believe they're making a mistake if they don't. I've seen our own delegators run from 8 to 10% rewards (as well as our long term 6%) to delegate to packed pools with 4% rewards, over and over again.

Because the favoured pools will always be just below the saturation point, and the small performant pools with consistent but fluctuating rewards will be close to the zero point, this problem will remain no matter what K is raised to, and it's happening just as much today as it was back in September 2020 when this CIP was submitted.

IOG recently and very publicly claimed in its re-delegation marketing campaign that a diverse "ecosystem" of small pools is integral to Cardano's survival and prosperity. Meanwhile stake-centralising rankings persist. The message to SPOs is: if you have a lot of inertial stake from the beginning, it will maintain an equilibrium just below the saturation point... if not, you must make up for it in sustained persuasive and centralised marketing to reverse the trend of delegators constantly defecting to the largest pools which will always be at the top of the boards.

I've done my best to understand the algorithm and maybe have missed something. Like @shawnim said on the Cardano Foundation forum when this CIP first came up (in response to an initial misunderstanding of mine), this will remain a problem no matter what value K may be raised to, and exactly as Shawn predicted the problem hasn't been attenuated by raising K to 500: https://forum.cardano.org/t/how-to-improve-daedalus-rankings/40478/3

If I've misunderstood about whether or how this algorithm change would affect the situation I've described above then please someone post an example (missing from the CIP, perhaps from strict editing) so I can understand it better & help others to do so. If more recent changes to the Daedalus ranking algorithm address this problem in theory then maybe Shawn will post an update about why they don't address it in practice.

I'll have to rely on Shawn & others to elaborate: for now I can do no more than respond to the call for "strong opinions." I can confirm from my experience as an SPO is that our Cardano community needs to somehow put an end to the "Nash equilibrium" culling process by diversifying the positions of highest rank, and for this I'm trusting in the Rationale statement itself:

Using this non-centralizing ranking methodology gives a more fair ranking of stakepools based on performance, pledge and saturation which will encourage delegators to choose better pools. It will also bring the rankings more in line with the general Cardano principle of increasing decentralization.

@shawnim
Copy link
Contributor Author

shawnim commented Feb 22, 2021

@rphair Thanks for the thoughtful response on this!
I had mentioned to @cryptmppt that maybe it was less important now that k has increased and that my focus was on the Fair Min Fees CIP at the moment.
Knowing this is still an ongoing issue, I would really like to get some sort of response from IOG regarding their belief that the Nash Equilibrium is necessary for any
reason other than idealized game theory.
I believe that having 1500 well performing pools with various levels of saturation between 10% and 90% is a much stronger network than 500 pools with 95% saturation an
d 1000 pools closing because they are not sustainable.
This is not a protocol issue but because Daedalus is the dominant wallet and their spec may influence other wallet implementations it is important to recognize that th
is choice is detrimental to Cardano's own stated goals of decentralization.

@shawnim
Copy link
Contributor Author

shawnim commented Feb 22, 2021

Anyone know why "All checks have failed"? Is this something wrong with the CIP or a system issue?

@crptmppt crptmppt requested review from crptmppt and KtorZ February 22, 2021 20:05
@crptmppt
Copy link
Contributor

crptmppt commented Feb 22, 2021

@shawnim

Anyone know why "All checks have failed"? Is this something wrong with the CIP or a system issue?

Looking at the logs it seems netlify failed to build the rendered site - the CI expects 'Authors' in the header (you have 'Author' - would love to get the CI to support both), that might be what is causing the issue, or the structure/format.

Where:
proposed_pool_stake = pool_live_stake + proposed_user_stake
saturation_warning_stake = (total_stake / k) * saturation_warning_level
saturation_warning_level is a real number greater than 0 representing the percent of ssaturation which is undesirable. A proposed value for saturation_warning_level is 0.95 meaning 95% saturated.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small typo here

Suggested change
saturation_warning_level is a real number greater than 0 representing the percent of ssaturation which is undesirable. A proposed value for saturation_warning_level is 0.95 meaning 95% saturated.
saturation_warning_level is a real number greater than 0 representing the percent of saturation which is undesirable. A proposed value for saturation_warning_level is 0.95 meaning 95% saturated.

@robinboening
Copy link

@shawnim, thank you for this proposal! Thank you, @rphair, for your additional arguments strengthening it. I can not really add anything more but to express my support as I am sharing the same opinions based on my own experience as SPO. I hope this will be reviewed, discussed and implemented very soon. ❤️

@kevinhammond
Copy link
Contributor

I'll pass this on to the IOG researchers - there's ongoing discussion on the ranking mechanism and how it can be improved. This will be very interesting to them.

@shawnim
Copy link
Contributor Author

shawnim commented Mar 9, 2021

Thanks @kevinhammond for passing this along.
I particularly would like to know from the researchers and game theorists what the reasons are for having Nash Equilibrium as a goal. It seems to be a purely academic goal whose real world result is to encourage centralization which goes against a fundamental principle of Cardano.


## Abstract

Modify the current ranking system by removing the centralizing Nash Equilibrium goal of the ranking methodology in order to give more fair rankings and improve the viability of the stake pool operator community and the network overall. To do this we need to remove the stated goal of having k fully saturated pools and all other pools having no stake other than owner pledge, which goes against the Cardano goal of decentralization.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is true that the current ranking has a steep edge after the top k desirable pools. It seems totally reasonable to me to want to ease that transition. It's not clear to me, though, why we have to remove the equilibrium goal. It's also not obvious to me that this is more fair or more decentralized, it's just that there is less noise around the k boundary.

@crptmppt
Copy link
Contributor

@kevinhammond thanks for providing updates when feasible!

@crptmppt
Copy link
Contributor

crptmppt commented Jun 8, 2021

This was discussed at the last Editor meeting (23), please refer to the notes.
The Current Consensus is that if Authors are fine proceeding (with the understanding that there is no expectation of implementation) this should be good to merge in the repo. (this is still being reviewed, but the CIP itself should be fine as a draft (needs a rebase)

@kevinhammond
Copy link
Contributor

The IOG researchers have been considering changes to the rewards calculations that would impact the rankings (taking into account both short-term and long-term delegation behaviour) and also possible changes to the visualisations of the rankings. I would expect these results to be publicised soon.

@rphair
Copy link
Collaborator

rphair commented Jun 17, 2021

Thanks to @kevinhammond (with @dcoutts also present) for coming in front of the SPO Marketing Zoom forum last Thursday, in which I was also presenting the Stake Pool Links part of CIP-0013, to address the issue of Delegation Incentives.

In trying to gather community feedback as I promised to do at the last couple of CIP Editor meetings, and today trying to explain Delegation Incentives vs. Ranking Algorithm in the SPOCRA forum (please correct me if I've written incorrectly here & I'll post & edit accordingly; I'm a member of the forum but not the union itself):

https://members.spocra.io/posts/14926363/comments/41055385

... I've realised that incoming stake pool links as agreed upon in #61 might not achieve the documented Motivation if the scientifically agreed "incentives" still cause Daedalus wallet & other UIs to provide an effective "warning" against lower ranked stake pools... e.g. by displaying them in the usual angry red colour, with a ranking number suggesting mediocrity even to the naive user. As I've explained it to that forum:

... if people click that link then they come to Daedalus and see your pool showing up with a warning colour & with a number suggesting an end-of-the-line ranking, at which point they can still decide to leave no matter how you might have convinced that delegator of your legitimacy & desirability. 😟

This is a part of the incentive & ecosystem requirement we have never had to consider until now and I wanted to please ask if the IOG scientists deliberating this issue would also consider suppressing any information from the "ranking algorithm" including the subtle but powerful colour codes, and rank(s) which are no longer relevant to apply to pools that the delegating user has already chosen.

I'm just posting here to try to get ahead of this issue while you are talking about this one on the back end... to consider the spirit of the overall implementation instead of setting up the UI designers to leave the URI-linked delegations with the same centralising bias that has always been present in the ranking algorithm. I realise this is a complicated dependency & I'll definitely be at Tuesday's meeting to discuss with everyone.

@@ -0,0 +1,100 @@
---
CIP: ?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CIP-0018 (tentative)

@crptmppt
Copy link
Contributor

crptmppt commented Jun 28, 2021

6/8 Editors meeting (24) discussed this PR - see notes. (conversation might be ahead of meeting notes at this point, this is a reference)

=> @shawnim confirmed he would like to see this PR merged / adding it as "Last Check" to tomorrow's CIP Editors Meeting (25)

@crptmppt crptmppt requested a review from SebastienGllmt July 7, 2021 10:52
@crptmppt
Copy link
Contributor

crptmppt commented Jul 7, 2021

I see that the automatic checks have failed.
When I look at the details and the log I only see the following which is not very helpful.
10:24:31 PM: Error running command: Build script returned non-zero exit code: 2
10:24:31 PM: Failing build: Failed to build site
10:24:31 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2
IS this a system problem or is there something wrong with my submission?
Any useful details or guidance on what is wrong appreciated.

@shawnim - Can you try to rebase the PR? Wondering about the automated checks

@crptmppt
Copy link
Contributor

crptmppt commented Jul 7, 2021

6/29 Editors meeting (25) discussed this PR - see notes. (conversation might be ahead of meeting notes at this point, this is a reference)

=> PR to be merged as CIP-0024 (Draft) shortly
(as noted repeatedly, merging does not imply future implementation or agreement, but facilitates conversation with implementers and the community)

@crptmppt
Copy link
Contributor

(The PR should be merged shortly as Draft)
@shawnim - a note about the Title - some have brought up for consideration that "less punitive rankings" might be a more fitting title (the current title might not properly capture the essence). Thanks for considering!

Copy link
Contributor

@dcoutts dcoutts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With my opinionated architect's hat on, I don't agree with the proposal.

With my fair editor's hat on, it's a reasonable and clearly explained proposal.

@KtorZ KtorZ force-pushed the stake_aware_rankings branch from 521c552 to 5ed5117 Compare July 20, 2021 09:28
Copy link
Member

@KtorZ KtorZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebased onto latest master, and added to the README 👍

@shawnim
Copy link
Contributor Author

shawnim commented Jul 20, 2021

Where should further discussion, such as the title and better understanding of Duncan's reasons for opposing, occur post-merge?

@crptmppt crptmppt merged commit c95a6b9 into cardano-foundation:master Jul 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants