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

staking: introduce total delegation to self-delegation threshold #1480

Open
4 tasks
cmwaters opened this issue Mar 13, 2023 · 2 comments
Open
4 tasks

staking: introduce total delegation to self-delegation threshold #1480

cmwaters opened this issue Mar 13, 2023 · 2 comments
Labels
enhancement New feature or request ice-box this label is automatically applied to all issues. it is removed after starting work proposal item is not yet actionable and is suggesting a change that must first be agreed upon

Comments

@cmwaters
Copy link
Contributor

Summary

This is a proposal to introduce a staking based parameter which identifies a ratio or factor between a validators delegation to themselves and the total delegation of all other users to that validator. Voting power would thus be curtailed to min(self-delegation * ratio, total delegation), thus when the ratio was exceeded the rewards and governance power of the delegators to that validator would become diluted, encouraging redistribution of stake.

Problem Definition

The proposal sets to target two issues:

  • Nothing at stake: In the nominated proof of stake protocol we currently use, there are no rules on how much the validators themselves may self-delegate. What we observe in practice is validators with a handful of tokens self delegated and who have hundreds of thousands in delegations. These validators have gained a large stake in the network and could potentially preform risky attacks with nothing to loose (except perhaps their reputation).
  • Distribution of stake: In practice, PoS chains have a very non-linear distribution in voting power (the top 7/175 validators on the Cosmos Hub constitute 1/3 and the top 26 constitute 2/3). Not only does this reduce the fault tolerance by having less politically-separate entities, it also makes the profitability of running a validator highly disproportionate (In the Cosmos Hub, the top validator makes 118,261.73 ATOM/year and the bottom validator makes 818.01 ATOM/year). By selecting an appropriate ratio and starting with a relatively even genesis distribution, we may expect a more balanced distribution of stake

Proposal

My understanding isn't yet fully developed to suggest the best approach for this (and there are some edge cases I've been thinking about - validators unbonding etc.) however, my naive approach would be to have a parametrised value. Delegators are still free to delegate to who they wish, but after the threshold (self-delegation * factor), there rewards would be curtailed proportionately. As an example:

Say a validator has 100 self delegated and the factor is 10. If there are 2000 tokens delegated, then each delegator get's half the rewards they would have got if only 1000 (or less) were delegated. Similarly, each delegator has only half the voting power if there was only 1000 (or less) delegated.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@cmwaters cmwaters added enhancement New feature or request proposal item is not yet actionable and is suggesting a change that must first be agreed upon labels Mar 13, 2023
@mindstyle85
Copy link

I just want to note that low/min self stake is a standard practice in tendermint chains, usually because validators rather self stake the minimum, then delegate via another address (preferably via hw wallet) - we do the same on all tendermint chains

I havent seen this yet on another tendermint chain, but what you propose is essentially similar to some other chains (avalanche has it at 5x your self stake, and the graph has it at 15x your self stake)

@cmwaters
Copy link
Contributor Author

Thanks for the input @mindstyle85

low/min self stake is a standard practice in tendermint chains, usually because validators rather self stake the minimum, then delegate via another address (preferably via hw wallet)

Yes, I would do the same when validating in the past although a validators account keys and tendermint validator keys are different. Maybe I'm missing something but I don't see why you couldn't use a hw wallet for your validator account. Alternatively it may be possible to have multiple accounts associated with the same validator.

I havent seen this yet on another tendermint chain, but what you propose is essentially similar to some other chains (avalanche has it at 5x your self stake, and the graph has it at 15x your self stake)

Good to know that the idea has some prior work to validate it. I had a look at avalanche and it seems as though voting power is purely a function of the validators own stake (no delegations involved).

@evan-forbes evan-forbes added ice-box this label is automatically applied to all issues. it is removed after starting work needs:discussion item needs to be discussed as a group in the next sync. if marking an item, pls be prepped to talk labels Feb 21, 2024
@evan-forbes evan-forbes removed the needs:discussion item needs to be discussed as a group in the next sync. if marking an item, pls be prepped to talk label Mar 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ice-box this label is automatically applied to all issues. it is removed after starting work proposal item is not yet actionable and is suggesting a change that must first be agreed upon
Projects
None yet
Development

No branches or pull requests

3 participants