MystenLabs / sui

Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language
https://sui.io
Apache License 2.0
6.27k stars 11.21k forks source link

Validator stake treshold #19097

Open poelzi opened 3 months ago

poelzi commented 3 months ago

Unfortunatelly, sui has a validator dominance problem:

Top Delegators

Currently a single validator holds more then 33% of all delegates.

I suggest 2 settings to mitigate this problem and create a better, heterogeneous environment:

  1. validator_max_percentage

    • The staking function checks if the validator together with the new staked coins <= validator_max_percentage If the threshold is exceeded, the transaction will fail
  2. validator_whale_threshold

    • If the validator exceeds the % of network stake, a increasing % of penalty is used. When a validator gets penalty, those coins are distributed to the validators not exceeding the limit and correct behavior.

I think the second enhancement should be enough to incentivize more decentralized, homogeneous node pool as the yield with larger nodes will diminish.

eagr commented 3 months ago

There's a chance that the top validators could still accumulate the majority of delegates, depending on the threshold and how often penalty occurs. There's an alternative from Polkadot that might yield more even distribution of token delegates, by actually incentivizing people to delegate to validators with lower amount of backing. The general idea:

Each validator receives the same amount of rewards each era (providing their contribution exceeds a certain threshold), which will be distributed to their delegators, in proportion to their share of total delegation to that validator. For instance, if an active validator gets a total of 1,000,000 tokens of delegation, then a delegator staking 500,000 should get 50% of the rewards (minus commission and whatnot).

Totally unsure whether this approach is applicable, as Sui might have a very different consensus mechanism.

poelzi commented 2 months ago

While thinking more about this problem I came to the conclusion we should decentralization at the core: AS (autonomous systems). The internet is a network of different autonomous systems that propagate BGP routes.

Solana nearly had a catastrophic outage as Hetzner started to block solana validators.

If sui would have a oracle that pushes the BGP feed into a proper data structure, the validators could be assigned to AS. Any AS those stake is larger then a threshold like 10% gets reduced allocations.

This would naturally create more distributed network that is not mostly hosted on amazon and google like most chains.

I also fear, that distributing the reduction on validators with very little stake will open an attack surface, where spawning many validators might get beneficial

mwtian commented 2 months ago

Hi @poelzi @eagr, delegators are accounts that delegate their Sui to other validators for staking. Currently, the top delegating account belongs to Sui Foundation. No single Sui validator holds more than 3% of the total stake. In Sui, there is a limit of 10% stake for each validator. If too much stake get deleted to a validator and this 10% threshold is exceeded, any excess stake will not count towards protocol voting or reward distribution. This mechanism helps to discourage an excessive concentration of stake in a single validator.