Skip to content

Instantly share code, notes, and snippets.

@kianenigma
Last active October 5, 2022 00:58
Show Gist options
  • Save kianenigma/aa835946455b9a3f167821b9d05ba376 to your computer and use it in GitHub Desktop.
Save kianenigma/aa835946455b9a3f167821b9d05ba376 to your computer and use it in GitHub Desktop.
Polkadot's Monthly Staking Update

DEPRECATED: Polkadot Staking Progress Report

I started this gist as an index for all of the staking reports. Almost a year in, we migrated everything to https://polkadot.network/tag/staking-updates/. This page will no longer be updated:

Prelude

Polkadot's staking system is among the most complicated in the blockchain ecosystem. The relay chain's validator set is securing not just the state transition of the relay chain itself, but also a potentially large number of parallel chains, or parachains for short. Since security is its main goal, Polkadot has been designed with a complicated, and strict staking system, optimized for locking the most amount of tokens at stake while spreading that stake as evenly as possible to maximize decentralization - all with the goal of effectively minimizing the possibility of the validator set becoming compromised. Read more about this here, or watch this talk.

The complications of achieving NPoS has led to the staking system to come under strain with Polkadot's rapid scaling. This monthly note is compiled by the main developers maintaining the staking system, and will be updated every month with the latest changes, explaining what has been done and what is next, in the spirit of transparency and clear communication to the Polkadot stakers. Feel free to contact @kianenigma or @zeke in any of Parity/Polkadot Element chats, such as the Polkadot watercooler if you have further questions.

This note only mentions Polkadot. Nonetheless, at a technical level, everything mentioned here is applicable ot Kusama as well. Kusama has a smaller number of nominators, and is therefore not constrained by the same limits (well, yet, expect chaos!).

Index

August 2021

  • This month's main focus was on a PR that will allow the staking pallet to maintain a semi-sorted list of all nominators. This will allow us to remove the count limit on nominators (or increase it significantly) and make the nominate transaction available at all times again. That being said, the sorted list will still act as an entry barrier: When the time for a staking election comes, we will only take the top x nominators, where x will most likely be the same as our current limit, 22500 or very similar. This limit will be removed once we achive our next milestone, multi-block elections (read below).

  • The semi-sorted list will act as the foundation of our next big step, which is multi-block elections. Sometime in the future, Polkadot will, for example, be able to allocate 5 blocks to its staking election, during which the 5 most highly staked pages of nominators (where each page has a fixed size) need to processed and used for the election. This is why the sorted list of nominators is important! The multi-block election change is being actively designed and prototyped, see this tracking issue. Furthermore, in the long term future something like an NPoS election parachains could enable virtually unbounded nominator participation as all blocks could be used to process elections.)

  • In motion 31 we proposed the increase of the minimum nomination bond to 80 DOTs. This is (inevitably) the chain's only strategy to deal with the influx of nominators as of now, until the multi-block elections are deployed. Most of nominators who had staked less than this amount have already been chilled through the permissionless chill_other transaction.

  • Kusama's number of nominators is still below 7000, with a slight decrease over the last month, which can be attributed to the launch of parachains and stakers moving into crowdloans. So, for now, exceptionally, no chaos is expected 🦜.

@CrommVardek
Copy link

CrommVardek commented Sep 6, 2021

Hello Kian,

I'm not aware of how complex the NPoS of Polkadot is. But the main issue right now is a number of nominators too great that would cause trouble to the network. So an idea have crossed my mind, I certainly miss important things, but wouldn't it possible for multiple addresses to act as one nominator ? (and the reward would be distributed between them). Let's say for example instead of having 10 nominators A, B, C ... A, B and C would work together as one nominator "Z" (let's call it an aggregated nominator), and from the algo point of view, A, B C does not exists, only Z as a nominator, for a total of 8 nominators, behind the scene, once the reward for aggregated-nominator Z is given out, then A B and C share the reward. I'm aware this add complexity (for starter, all nominators would need to trust each other and share the exact same set of validators), but maybe it is a way to reduce sorting without reducing the number of account that can nominate ? Anyway, I don't have the full picture of how it works, so I probably overlooked something.

@kianenigma
Copy link
Author

@CrommVardek your point is 100% correct, and this is something that we've had in our "list of ideas" for improved staking for a while (years, to be accurate). We named it as 2nd degree nomination in a general sense, where, exactly as you said, multiple accounts can act as a single nominator, effectively masking the O(N) complexity on the NPoS system. What your description does overlook is the complexity that this adds to slashing and rewards. Won't get into this now, but it is not super trivial.

Multi-block elections will increase the bandwidth of nominators, and is more suitable for a vision of an election parachain, while the 2nd degree nomination are more suitable for the scenario where all of this happens on the relay chain and adds a new type of nominator that probably earns slightly less rewards (since someone needs to pay for the fees of the 2nd degree reward distribution and accounting), but they can participate with less stake.

We're pursuing both, but implementation wise we're mostly focused on the former now simply because it is a larger programming endeavor.

@CrommVardek
Copy link

Thanks for the insights and the explanations !

@jmhickman
Copy link

Thank you for these posts, and being dedicated to transparency and explaining exactly what's going on. These glimpses behind the scenes are interesting to me from a systems-design perspective.

@jenahopkins
Copy link

Thanks a lot for sharing this information with me. It is relevant and cognitive for me. You may check other posts at https://exclusive-paper.net/place-to-order-coursework.php The blog section is quite useful for students. There are hundreds of free samples to use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment