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

[TBD] change group epoch score calculation #42

Closed
wants to merge 2 commits into from

Conversation

zviadm
Copy link
Contributor

@zviadm zviadm commented Aug 30, 2020

No description provided.


## Alternative Solutions

## Risks
Copy link
Contributor

Choose a reason for hiding this comment

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

I would add the risk that this mechanism would be avoidable by splitting any large group into a number of "singleton" groups. Countering this risk would be the difficulty of getting enough votes for each individual group to get 1 validator elected, and that will likely outweigh the incentive to avoid this mechanism, but it is certainly worth discussing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is an interesting point. I don't see this being an issue in practice since most of the large groups are fully self funded/self-voted anyways so for them it probably wont make a big difference.

Also, as long as all groups are named and verified, it will be questionable to see multiple groups with the same name/domain, and they will go in questionable group category that people should most likely not delegate their votes to.

Choose a reason for hiding this comment

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

Zviad,

This makes sense and should help to level the playing field for validators. Supportive.

Copy link

Choose a reason for hiding this comment

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

I also support this.

Copy link
Contributor

Choose a reason for hiding this comment

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

@asaj and I considered several metrics here when putting this together initially. ThIe choice of AVG was because it is means validator and groups are invariant without requiring any Sybil resistance -- i.e. as @nategraf says, there is no advantage to be gained by groups splitting themselves into individual units. If we made this change, the rational behavior for any multi-validator groups would be to split into singletons, and I think that would potentially confuse users and diminish the value of groups. FWIW I share the sentiment and considered several other ways of disincentivizing forming of larger groups, like a diminishing reward curve, but without Sybil resistance all are problematic.

Copy link
Contributor Author

@zviadm zviadm Sep 4, 2020

Choose a reason for hiding this comment

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

To keep history, pasting comments from discord here too.

First, there is already a much larger incentive that exists to split up large groups into smaller groups as a Sybil attack. This is due to the slashing penalty. Since slashing penalty is applied to the whole group even if one validator is slashed, it is much safer to run multiple groups instead of one large one. But as we observe, no group is really doing this. Of course, once slashing actually starts working, we will most likely see self-funded groups do all sorts of potentially "not intended" things if they were to get slashed, but there isn't much we can do to control fully self funded groups anyways.

So if we are looking at not fully self funded groups, there are already many incentives to discourage any "non approved" behaviour like setting up multiple groups:

  • Reputation risk
  • 2x more CELO locked for 6 months.
  • Much harder vote management. It is a lot harder to get other users to vote in perfect balance for multiple groups, especially if owner is hiding the fact that they all belong to the same entity.
  • Pretty limited overall benefit to doing this. Since group epoch score isn't cumulative, there really isn't a huge difference in rewards due to occasional outages. If it is calculated as average or minimum it really won't make a difference to go through all these trouble.

Copy link
Contributor

Choose a reason for hiding this comment

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

  • Reputation risk

I believe most of the whales don't depend much on others to vote for them, so the reputation risk is not a factor.

  • 2x more CELO locked for 6 months.

The amount of LockedGold is the same in whichever arrangement (since the amount you need to lock at a group scales with the number of members).

  • Much harder vote management. It is a lot harder to get other users to vote in perfect balance for multiple groups, especially if owner is hiding the fact that they all belong to the same entity.

For the same reason as described above, where whales don't rely on others' votes and can split their funds into multiple accounts, this isn't much of a hurdle.

  • Pretty limited overall benefit to doing this. Since group epoch score isn't cumulative, there really isn't a huge difference in rewards due to occasional outages. If it is calculated as average or minimum it really won't make a difference to go through all these trouble.

If the rewards from their own voting funds would suffer if any of their validators went down (the whole point of this proposal) they would have a financial incentive to form singleton groups.

I am definitely interested in exploring ways we can further incentivize voting to support decentralization and broader participation of more validators. In general, whales can organize themselves exactly how n small validators would, and it's very hard to build a mechanism that gets round that. Leveraging Foundation voting is a good avenue -- since the foundation votes are a form of KYC. You can imagine a number of things that could be tied to the "identity" aspect of being a foundation vote recipient.

Copy link
Contributor

Choose a reason for hiding this comment

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

Regarding the big groups splitting, I think that it's possible although with a reputational risk. Also, it is true that those groups are mostly self-funded today, but as adoption grows the outsider votes are going to get more significant. Then having to ask your voters to split their votes across multiple groups and losing the spotlight in the validator ranking by votes, could make groups to be reluctant to split their group.

And even if they do split their group and votes, they still have an operational overhead that smaller groups don't have.

I am supportive of this proposal.

Copy link
Contributor

Choose a reason for hiding this comment

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

Adding to what @nategraf mentioned, this could make existing groups move their validators into anonymity, which is something that can't be prevented but it's not very desired.

Copy link
Contributor

@martinvol martinvol Sep 14, 2020

Choose a reason for hiding this comment

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

  • 2x more CELO locked for 6 months.

The amount of LockedGold is the same in whichever arrangement (since the amount you need to lock at a group scales with the number of members).

This is true but if they want to split their groups now they'll have to lock liquid CELO (because the one in the group is locked) and then lock this new one for further 6 months. Splitting does have a cost on this regard but if whales are the one doing it then it doesn't matter.

CIPs/0018.md Show resolved Hide resolved
@gavinly
Copy link

gavinly commented Sep 3, 2020

Hey Zviad, would be great to post a write-up about this on the forum: https://forum.celo.org/c/governance/12

@zviadm
Copy link
Contributor Author

zviadm commented Sep 4, 2020

Hey Zviad, would be great to post a write-up about this on the forum: https://forum.celo.org/c/governance/12

Done: https://forum.celo.org/t/change-group-epoch-score-calculation/594
It is a bit confusing if things like this should go on github or forum. After giving it a second thought, probably forum would have been a better place to write this proposal in the first place.

Maybe one day forum will also have "signaling" feature too, so we can conduct informal off-chain but still signed polls of all CELO holders directly on the forum.

CIPs/0018.md Outdated
# CIP [0018]: Change group epoch score calculation for voter rewards

- Date: 2020-08-30
- Author: @zviadm
Copy link
Contributor

Choose a reason for hiding this comment

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

hi @zviadm thank you for submitting this CIP, I would like you to update it to follow the newly activated CIP process which has it's newly updated template here: https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-template.md

Also, if the CIP is in Draft status, I'd be able to merge the proposal into the repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

hey, i finally got around to this and have updated the doc to match the new template.

@zviadm zviadm changed the title [0018] change group epoch score calculation [TBD] change group epoch score calculation Jan 23, 2021
@zviadm zviadm closed this Jun 16, 2022
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.

None yet

9 participants