owned this note
owned this note
Published
Linked with GitHub
---
title: Decoded talk - NPoS Impacts, Critiques and Future Potentials in Polkadot
tags: decoded, staking, polkadot, frame
---
# NPoS Impacts, Critiques and Future Potentials in Polkadot
- slide deck: https://docs.google.com/presentation/d/1w3vDlT3jYHai-q_kdvaIjEO2Q6GMzUe1
## Prelude
Proof-of-Stake (PoS) protocols are a category of consensus mechanisms used by blockchains for large untrusted parties to reach consensus with regards to the state of the blockchain. One of the main responsibilities of PoS protocols is to select a set of validators (the "active validator set") that are tasked with producing and verifying blocks for a limited period of time. The active validator set must be bounded due to the time and logistical constraints, since the consensus protocol used requires the active validator set to communicate and reach consensus in a limited time window. The subset of validators is selected (or "elected") from a larger set of candidate validators that set intention to take part on helping the network to produce blocks and reach consensus and earn rewards for the work performed.
In order to participate as a validator, candidates must set their intentions on-chain and lock funds (the validator's "backed" stake). These funds are locked for as long as the candidate wants to become a validator. The backed validator funds are leveraged to align incentives between all validators, so that elected validators behave as expected by the protocol without requiring any further guarantees. The incentive alignment is achieved through penalizing validators that misbehave by slashing their locked funds. PoS protocols leverage economic and game theory by rewarding well-behaved validators and slashing bad actors, which enables large networks of untrusted parties to produce blocks that are eventually consentual to a majority of the network participants.
Given this premise, it follows that a validator has more incentives to perform their tasks correctly the bigger their locked stake is, since the punishment for misbehaving is economincally larger. This is the main insight behind incentive alignment and PoS networks in an adversarial setting.
We can then generalize that the higher the overall staking backing the winner validator set, the higher is the "economic security" of the network. From this assumption, it follows that the chances of a candidate being elected must be propotional to the amount of stake they have locked, in order to maximize the security of the network. However, depending on the election algorithm used to select the winner validators, there may be other factors that also play into the election as we will explore later in this article.
### Nominated Proof-of-Stake
Given the risks and complexity of being a validator (up-time requirements, infrastructure costs and maintainance, etc), not everyone can or may want to become a validator. Nominated Proof-of-Stake (NPoS) allows any user to delegate their funds to validators, without requiring who delegates the stake (the "nominators") to run the validator infrastructure and operation. The funds delegated by nominators are added to the validators stake and are also liable to slashing if the validator misbehaves. In addition to being exposed to slashes, nominators are also rewarded for the work performed by the validators they nominate. In sum, the nominators have similar incentives as validators, but instead of being incentivized to operate and maintain well-behaved validators, they are incentivized to *nominate* well-behaved validators in order to earn rewards and not being slashed.
NPoS protocols have two considerable advantages: it increases the overall stake of the validator set by giving the opportunity for more users to lock and use their funds to secure the network and opens up the possibility for any user to be rewarded to help securing the PoS network.
### NPoS Election Algorithm
An important piece in the NPoS consensus protocol is the election mechanism which selects which candidate validators will be selected as "winners" for the next epoch, i.e. which validators will participate in the block production and verification for the next epoch and earn rewards for the work performed. Ideally, the election algorithm will select a set of winner validators from the list of candidates that maximize the economic security (i.e. the total stake backing the winner set) from the list of nominations and candidate intentions in the system at the time of the election. The election algorithm must run trustlessly on-chain to ensure that bad actors cannot bias the election results.

***Figure X**. The Nominated Proof-of-Stake stages. Nominators vote on validator candidates and lock staking funds; the on-chain election algorithm selects a subset of winner validators that will produce and verify blocks in the next epoch.*
### Polkadot and NPoS
Polkadot leverages a NPoS consensus mechanism as described above. The main focus of this article is to go deeper on the design and engineering considerations behind the election algorithm used in Polkadot, what is the election algorithm optimized for and comparing the algorithm with other approaches taken by other blockchains that use NPoS.
The remaining of the article is divided into three sections: 1) how does Polkadot implement the election algorithm and why; 2) how has Polkadot's election algorithm been performing and how does it compare to other election solutions and 3) future work and improvements.
**Key takeaways**:
- Polkadot staking scheme is called Nominated Proof-of-Stake, where validators and nominators stake their tokens to provide economic security to the network and align incentives;
- A NPoS election algorithm selects the subset of active validators to author and validate the next blocks and it optimizes different parameters, economic security being of the most important parameters but not the only one.
## What is Polkadot's NPoS election algorithm optimizing for?
As stated above, one of the most important design decisions of any PoS blockchain is how the protocol selects the subset of winner validators from a list of candidates that will propose and validate the next blocks. The most intuitive approach is to select the subset of validators that have higher stake, in order to maximize the amount of stake and to maximize the economic security in the network.
Although maximizing the amount of stake backing the selected validators the best strategy to optimize the overall security of the network, there are other factors that are important to consider for the sake of security, aligning network incentives, optimize capital efficiency and fairness and having a good UX of token holders. For example, decentralization also impact economic security. The Polkadot PoS scheme tries to optimize more parameters than only the amount of stake backing the active validators in the network.
Besides maximizing the total stake behind the winner validator set (*Economic Security*), Polkadot's NPoS election algorithm also tries to optimize the following paramters:
- *Capital Efficiency*
- *Fairness*
- *Nominator Freedom*
### Capital Efficiency
In the context of NPoS, _capital efficiency_ is the ratio of "active stake" that is useful to secure the network to the total amount of stake locked by validators and nominators. In other words, the capital efficiency is as large as the total stake backing the winner validator set, compared to the total stake locked for staking.

***Figure X**. Capital Efficiency is the ratio betweek active stake and total stake locked for by nominators and validators in staking.*
The goal of Polkadot election algorithm is to *maximize* the capital efficiency of each election. The larger the capital efficiency is, the more stake is backing the active validators that need to produce and verify blocks, which means that the overall incentives for validators to respect the state transition logic when producing/verifying the blocks is larger. The inactive stake is, in practice, idle and not used to secure the network since it is not exposed to slashing. We can assume that the economic security and capital efficiency are directly correlated.
### Fairness
There is a detail in Polkadot's consensus protocol that also guides what NPoS election algorithm should optimize for. In Polkadot, the elected validators have equal voting power in the consensus protocol. In practice, this means that the validators that are selected to author the next set of blocks have the same voting power and responsabilities, regardless of their backing stake compared to other validators in the winning set.
Thus, one of the NPoS election scheme goal's is to ensure that the result of the election consists of a set of winners which stake is as evenly distributed as possible. In addition, the NPoS scheme was designed to prevents any minority to be overrepresented in the winner set, in order to prevent an attacker -- which in PoS is assumed to be a minority -- from acquiring asymmetric power over the elected validator set. We call this property _fair representation_. This property is achieved in the Polkadot's election algorithm by
### Nominator Freedom
Finally, the NPoS scheme also optimizes for *nominator freedom*. In doing so, the NPoS algorithm tries to activate as much of the capital locked from nominators as possible, while giving a high degree of freedom for nominators to select the validators they trust the most. In practice, this is achieved by allowing nominators to vote on multiple validators (16 in Polkadot and 24 in Kusama).
So as to optimize capital efficiency in a context where nominators can back multiple validator candidates with their stake, Polkadot's election algorithm ensures that all the stake of a nominator is used *as far as at least one nominated validator is selected*.
The advantages and side-effects of this design decision are manifold. First, the nominators can select a diverse group of validators they trust, giving nominators freedom of choice and maximizing their chances of backing a winner validator (and thus, increasing the overall capital efficiency and economic security of the network). Secondly, the amount of locked stake that is inactive is minimized since *all* the locked funds of a nominator are activated, provided that at least one of the candidates is selected (which maximizes both capital efficiency and economic security in the network). Finally, this design decision lowers the risk for nominators to diversify their nomination portofolio and do not add negative incentives for nominators to vote on validators that are starting their operations and/or have low backing (but high enough reputation). Lowering the risks to diversify the voting choices of nominators results is lower barriers to entry for new validators, avoids conter productive incentives to back only large validators and, as a byproduct, helps with network decentralization.
**Key takeaways**:
- Polkadot's NPoS election algorithm is designed to maximize the following properties: **economic security**; **fair representation**; **capital efficiency** and **nominator freedom**.
- Polkadot's NPoS election algorithm tries to answer the following question: "Given the current set of validator candidates, their nominations and their overall backing, which subset of validators optimizes the economic security, fair representation and capital efficiency of the network?"
## Phrágmen election algorithm for NPoS
Given a large and varied enough set of nominator votes and candidates, the decision on how to distribute the votes and stake across the candidate validators so that the capital efficiency, economic security and fairness are maximized is a complex optimization problem.
Consider the nominations graph in Figure X. In this example, there are 4 nominators and 5 candidates to become validators. Each nominator cast their votes by nominating one or more validators. Each nominator reserves the funds necessary to back the validators. A nominator vote is also called an "edge" (as in "graph edge", since the election problem can be encoded as a graph where the votes correspond to an edge of the graph).

***Figure X**. <add description>.*
The responsability of Polkadot's election algorithm is to select the best edges and corresponding stake distribution so that the resulting winner validator set is the best possible, in relation to the metrics and goals described in Section Y. Figure X and X are two possible solutions election solutions of this simplified example.

***Figure X**. <add description>.*

***Figure X**. <add description>.*
In sum, given the edges of the election graph, the election algorithm must find a solution where:
- the total stake backing the active validator set is as high as possible (maximizing capital efficiency and economic security);
- the stake backing the winner validator with the backing should be as high as possible (to maximize incentive alighment);
- the stake is as evenly distributed across all winner validators as possile (fairness and incentive alignment);
- and that respects the nominator's choices
From an engineering perspective, given the constrained environment in terms of computation and storage of [blockspace](https://www.rob.tech/blog/polkadot-blockspace-over-blockchains/) in Polkadot, running the optimization problem required to solve the election on-chain with the required input sizes for staking is not feasible.
However, the Web3 Foundation desgined an election algorithm based on the [Phrágmen voting rules](https://en.wikipedia.org/wiki/Phragmen%27s_voting_rules) that, coupled with heuristics and approximations [[1](https://arxiv.org/abs/2004.12990), [2](https://research.web3.foundation/Polkadot/protocols/NPoS/Overview)], achieves all the requirements in Polkadot. One of the useful results from the W3F research on the election algorithm was that it is possible to verify a solution for of an election in linear time, with soft trust requirements regarding the prover. This result made it possible to implement an election mechanism in Polkadot where the election algorithm is ran off-chain by untrusted parties while the solution can be submitted to and (trustlessly) verified on-chain. The best solution (see more on Section X how to compare solutions) that satisfies all the necessary requirements described above is then selected by the staking protocol.
## Polkadot NPoS Phrágmen election algorithm compared
At this point, we have covered what is the goal of the NPoS election algorithm and what are the metrics that the Polkadot's algorithm is trying to optimize.
The goal of this section is to show that the Phrágmen-based election algorithm used in Polkadot is successful in achieving the goals we set to achieve. Also, we show that Polkadot's election algorithm is better at maximizing economic security that than other NPoS election algorithms. We do that by comparing the results of previous election in Polkadot with what the election results would be if Polkadot used other election algorithms.
But first, in order for us to be able to _compare_ election results, we need to define what are the comparison metrics that allow us to weight different solutions.
### The election score
Given multiple election solutions, how do we compare them and decide which result is better? In Polkadot, we use the concept of "election score" to help comparing different election solutions. In practice, an election result is a directed graph representing, where each edge of the graph represents the nominator votes to one or more validators in the final winner set. For example, the election result of Figure X can be represented as:
```
(A, [2], stake), (C, [5], stake), (D, [4], stake)
```
which represents the votes of the nominators `A, C, D` to the validators `2, 4, 5` in winner set (i.e. edges) and their corresponding stake. Based on this election result graph, we can calculate how much stake is backing each validator, what is the stake of the validator with the least stake in the winner set and the variance of the stake backing all the validators in the winner set.
In Polkadot, the election score plays key role in the staking protocol. Since multiple off-chain solutions may be computed and submitted on-chain by different untrusted parties, the staking runtime needs to select the best of the correct solutions submitted. This selection is performed by comparing the results in terms of the submission's "election score". What "best" means is defined by three parameters:
- **Minimal stake** (`minimal_stake`): the amount of funds backing the least backed validator in the election result. The minimal stake must be maximized to ensure that all the validators in the active set have high incentives to not be slashed;
- **Total stake** (`sum_stake`): the total amount of stake backing the winner validator set. The total stake is directly propotional to both economic security and capital efficiency of the solution. Thus, we give priority to election results with high total stake;
- **Stake variance across validators** (`sum_stake_squared`): the variance of stake across all the validators in the winner set. We want the stake variance to be low, in order to ensure that the stake is as evenly distributed as possible across the winner validator set.

***Figure X**. <add description>.*
The election score must be simple enough to verify and compare different election results on-chain. However, it should also encapsulate and steer the final solution towards the goals defined by Polkadot staking system, namely maximizing the economic security, maximizing capital efficiency, maximizing nominator freedom, and to respect fair representation.
Prefering solutions that have higher `sum_stake` ensures that the economic security and capital efficiency are higher, since there is more stake backing the winner set. On the other hand, selecting solutions with lower `sum_stake_squared`, ie, the variance of the stake backing each validator in the winner set, ensures that the stake is distributed fairly across the validators. Finally, preferring solutions with higher `minimal_stake` has the objective to ensure that even the lowest backed validator has high incentives to perform their tasks correctly.
Note that is is not relevant to encapsulate in the election score a nominator freedom metric. However, that goal is already embeded in the protocol by allowing nominators to vote in multiple validators and by ensuring that all the nominator's stake is actively used, provided that at least one voted validator is part of the final winner set.
### Approval voting-based election algorithm
We compare the Phrágmen-based election algoritm used in Polkadot with an [approval voting](en.wikipedia.org/wiki/Approval_voting) (AV) based election algorithm, which is commonly used in the industry by other delegated PoS (DPoS) blockchains (note that different blockchains leveraging AV-based election algorithms implement their own flavor of the algorithm, which may not be completely captured in this analysis. It should, however, be a good approximation and provide an acceptable baseline for comparison).
The AV election algoritm used in this analysis consists of selecting the top `N` validators with the highest nominated stake, without any additional optimizations in terms of how the stake is distributed across the winner validator set. The nominators select which validators to vote and define the stake backing each of the validators.
For the sake of this comparison, the stake is distributed using a pareto distribution (ie. 20% of the validators get 80% of the backing) -- this trend seems to be widespread among DPoS based blockchains that use AV-based election algorithms. Note that the AV election algorithm *does not* redestribute the nominated stake. This is a crucial difference between the AV and Phrágmen based election algorithms: while the Phrágmen algoritm ensures that all the nominator's stake is used to back a validator (provided that at least one of the voted validators is part of the winner set), the AV-based election algorithm does not redestribute the nominated stake. Consider the following nomination graph:

***Figure X**. <add description>.*
While the Phrágmen-based election algorithm would redistribute all the stake from nominator `A` to the validator `2` (since validator `2` is part of the active validator set), the AV-based algorithm would not. Thus, the stake that nominator `A` put behind the validator `1` would not be backing the active validator set.
Since the AV-based election algorithm dos not perform the stake distribution optimization (which is a NP-hard optimization problem), it is faster to run and does not require the election to run off-chain. However, we expect the Phrágmen based election algorithm to be better at maximizing the capital efficiency and the economic security of the system due to those optimization.
Currently, Polkadot relies on "bounded" staking data, which imposes boundaries on the input data to the election algorithm. The current implementation is bounded due to the computational complexity and the high strain that the unbounded Phragmen-based election scheme puts on the chain (even if the election occurs off-chain, the solution verification still needs to be computed on-chain). However, due to the computational complexity of the AV-based election algorithm, we can assume that the Polkadot could in practice implement an unbounded AV algorithm on-chain. Thus, we assume it is fair to compare the bounded NPoS against the unbounded DPoS scheme.
In the future, we plan to implement an unbounded election in Polkadot by splitting certain operations and data intake across multiple blocks (see section [Future improvements and directions](#Future-improvements-and-directions) for more details). It is expected that the unbounded election will yeld better election results when using Phrágmen -- especially as the amount of nominators, validator candidates and stake increases in the system. We also run the elections as if the input to the Phrágmen algorithm is unbounded to compare of the other election results.
*Note on data provenance and reproducibility*: We used the [substrate-etl](https://github.com/gpestana/substrate-etl) tool to fetch historical data from Polkadot and compute NPoS and DPoS elections, calculate the election scores and all the other data shown in this section. You can reproduce these experiments by using the [`election-analysis`](https://github.com/gpestana/substrate-etl/blob/main/src/operations.rs#L178) command. The data was obtained from Polkadot for ~365 eras (1 year of election data, starting from block #14897884), sampling the staking data at each 15 eras.
### Election algorithms compared
#### Minimal stake

***Figure X**. Comparison of minimal stake between NPoS, bounded DPoS and unbounded DPoS.*

***Figure X**. Comparison of minimal stake behind winners between NPoS and unbounded NPoS.*
- NPoS achieves better minimum stake score than both DPoS and unbounded DPoS;
- The minimal stake of unbounded NPoS is marginally better than that of the bounded NPoS.
- The minimum stake is lower in DPoS-flavoured schemes because the vote weight per nomination is split equaly per vote (capital efficiency in NPoS is superior to that of DPoS). Since the number of candidates and winners is the same as in NPoS, the overall minimum stake is lower.
- As expected, the minimal stake of the unbounded DPoS is better than that of the bounded DPoS.
#### Total stake

***Figure X**. Comparison of total stake between NPoS, bounded DPoS and unbounded DPoS.*
- The total stake backing the network is higher for the unbounded NPoS than the other schemes. The DPoS scheme
- The total stake is lower in DPoS-flavoured schemes compared to NPoS because the vote weight per nomination is split equaly per vote (capital efficiency in NPoS is superior to that of DPoS). Since the number of candidates and winners is the same as in NPoS, the overall total stake is lower.

***Figure X**. Comparison of total stake behind winners between NPoS and unbounded NPoS.*
#### Stake variance across validators

***Figure X**. Comparison of stake variance behind winners between NPoS, bounded DPoS and unbounded DPoS.*
- NPoS performs better than the DPoS flavoured election schemes. This is achieved by the optimizations performed by phragmen NPoS algorithm.
#### Snapshot bounds and encoded size
[](https://hackmd.io/_uploads/BkScI_vEh.png)
***Figure X**. Comparison snapshot bounds in terms of voters and targets between NPoS, bounded DPoS and unbounded DPoS.*

***Figure X**. Comparison snapshot encoded size of bounded and unbounded schemes.*
- As expected, as the number of voters considered in an election increase, so does the size of the snapshot that needs to be kept in storage.
### Conclusion
Based on the results above, we can claim that the NPoS Phágmen-based election algorithm successfully achieves better economic security, capital efficiency and fairness than approval voting-based election protocols. Due to the redestribution and optimization performed by the Phrágmen algorithm, the election results are better across the board then when using AV-based election algorithm, which is widely used in the industry.
However, there are costs associated with achieving these results. Polkadot's staking and election protocol implementation is complext and it requires on/off-chain interactions due to the infeasibility of running optimization algorithms on-chain at scale. However, this complexity does not affect the user's UI/UX, thus we believe that it is a tradeoff that greatly benefits the ecosystem.
In addition, the current Polkadot staking system needs to impose artificial boundaries on the election state. This can and will be improved in the future once the multi-block election is implemented.
## Future improvements and directions
The current staking protocol in Polkadot already implements scaling solutions that help improving the usability and scalability of the protocol which were not mentioned in the article. One example is nomination pools, which allow a larger and theoretically unbounded set of nominators to come together and participate in the stake as one account, lowering the requirements in terms of minimum nomination bond and increaseing the number of nominators that the system can handle.
However, there are some improvements in the team's road map that will improve the scalability, usability and overall economic security of the staking protocol in Polkadot, namely:
- **Multi-block unbounded NPoS**: as we've explored in [Section X](), the unbounded Phrágmen election algorithm performs better in all fronts. To achieve this, there are multiple staking building blocks that need to be refactored to run in multiblock;
- **Staking Parachain**: One of the long-term goals for the staking team is run the staking runtime in a dedicated [system parachain](https://wiki.polkadot.network/docs/learn-system-chains), which will allow the staking protocol to leverage all scalling capabilities of Polkadot;
- **Operator-based validators**: In order to like to have a Group nominators/validators by operator and introduce the notion of "operator" in the NPoS algorithm to improve decentralization/ Nakamoto-Operator Coefficient
- **Further analysis**: We'd like to explore more in depth what are the advantages of the NPoS Phrágmen-based election algorithm and how other DPoS blockchains could benefit from it.
---
---
---
## Dropped sections
### Other data insights (leave for future, too much info already)
> 1. Add plot on active vs idle stake per era
> 2. Add plot on validator churn (and nominator churn too?)
> 3. Answer the overall question: "In which ways does phragmen-based NPoS influence metrics we are optimizing for, compared to other solutions?"
### Election score comparison with higher number of winners
In the previous comparisons, we assumed that the winner set is 270, which is the current winner size in Polkadot. An hypothesis for NPoS to perform considerably better than DPoS is that the winner size is relatively small compared to the set of registered targets. How would the election score trends change if we consider a winner set size of 600 targets?
## Other Nominator-based PoS Networks
### Cosmos Hub/Tendermint
- Stats from https://www.mintscan.io/cosmos/validators (mid-May 2023)
- top validator with 7.5%
- top 15 validators with 50% of stake
- total of 175 validators
- top 20% (35 validators) with 74% of the stake (close to Pareto distribution)
Validators are chosen to be a block producer based on their self and delegated stake. More stake means more chances of winning rewards; no active measures to improve decentralization (apart from not requiring unbounding period to switch validator).
#### Notes
- "Voting power" of a validator == bonded ATOM (by self-stake or delegators);
- The frequency of being chosen is proportional to the voting power (i.e. amount of bonded ATOM) of the validator.
- e.g if the total bonded stake across all validators is 100 ATOM and a validator's total stake is 10 ATOM, then this validator is the proposer ~10% of the blocks.
- Block rewards are distributed proportionally to all validators relative to their voting power.
- Validators are required to self-stake at least 1 ATOM to be active.
- Validators can "signal" a minimum amount of self-stake. If the self-stake goes below the minimum amount defined, the validator gets to "jailed" state and is kicked out of the active validator set (delegators remain bounded).
- Preventing concentration of stake in few whales:
- No unbounding period to move to another validator;
- Relies on incentives (reward dilution) and active, informed delegators.
#### The good, the bad and the ugly
- Simple election/staking algorithm.
- No unbounding period for delegators to re-stake between validators may open attack vector (needs confirming if they have a mechanism to prevent delegators from switching before an attack as been detected and slashed);
- Slashes only occur in case of 1) double-signing and 2) downtime (both with low slashing %);
- Delegated and self-stake follows a Pareto distribution
### Solana
- Stats from https://solanabeach.io/validators (mid-May 2023)
- 1,826 active validators
- superminority of 33 validators (top 33 validators own 33% of the total stake);
- top 20% (365 validators) with 74% of the stake
Each validator receives "votes" for the work performed (block production and block verification) and the total rewards for an epoch are distributed based on those votes and a pro-rata basis based on their active stake (more stake -> more relative rewards).
#### Code
- [fn leader_schedule](https://github.com/solana-labs/solana/blob/39770b2de17e5b3f4b5c7151fb6121b4f5b21f79/ledger/src/leader_schedule_utils.rs#L12) -- weighted leader selection for next epoch, by stake.
[**Leader Schedule Generation Algorithm**](https://docs.solana.com/cluster/leader-rotation#leader-schedule-generation-algorithm "Direct link to heading")
Leader schedule is generated using a predefined seed. The process is as follows:
1. Periodically use the PoH tick height (a monotonically increasing counter) to seed a stable pseudo-random algorithm.
2. At that height, sample the bank for all the staked accounts with leader identities that have voted within a cluster-configured number of ticks. The sample is called the _active set_.
3. Sort the active set by stake weight.
4. Use the random seed to select nodes weighted by stake to create a stake-weighted ordering.
5. This ordering becomes valid after a cluster-configured number of ticks.
Basically, the `Bank` struct keeps all the stakes in the solana network at a given time. Running the election basically consists of sorting the `Bank.stakes_cache()` per stake and select the top `N` validators (with *some* randomisation).
```
$ solana stakes --url https://api.mainnet-beta.solana.com
```
#### Notes
- Rewards are evenly divided among all staked nodes according to their relative stake weight (and participation).
- Stakers (nominators) earn rewards propotional to their nominated stake.
- "Unbounding" stake keeps earning rewards until it is withdrew and it is also exposed to slash (effectively, this means it is possible to withdraw without any unbounding period, it seems).
- Leader Selection: The leader for each round is selected based on a randomized lottery using the validators' stake. Validators with a higher stake have a greater probability of being selected as leaders and are responsible for proposing the order of transactions for the given round.
- Slot Duration: Solana operates on fixed-duration time slots, typically around 400 milliseconds. Within each time slot, the leader proposes a block of transactions and broadcasts it to the network.
- Validators with higher stake earn more rewards.
#### The good, the bad and the ugly
- Rewards propotional to the stake; No active measures to avoid centralization (incentives for stakers to accumulate as much stake as possible)
- Potential 0-time unbounding attack vector (? to confirm).
- Delegated and self-stake follows a Pareto distribution
### Cardano
- Stats from https://cexplorer.io/pool
- ~2.8K pools
- Total stake: 22.27B ADA (20% == ~4B)
- Rougly pareto distribution, but less pronounced than in Solana and Cosmos Hub
- Perhaps due to the "pool saturation"
#### Notes
- The more stake a pool controls, the higher the probability of that pool being selected as a slot leader.
- Self-stake == "pledging".
- Pool saturation:
- Rewards Adjustment: When a stake pool becomes saturated, the rewards earned by delegators are adjusted to encourage them to delegate their stake to other, less saturated pools. The rewards reduction provides an incentive for delegators to distribute their stake across multiple pools, increasing network decentralization.
- Unclear if big whales are distributing the funds over multiple pools, which ends up being the same (it seems to be the case given the name of the pool)
- Claiming that more pledge increases the reputation of the pool (pool owner will have more incentive to behave as expected)
- Rewards and Performance: Slot leaders who successfully create and validate blocks are rewarded with ADA. The rewards are distributed among the slot leader and the delegators who have delegated their stake to the elected pool. Rewards are based on factors such as the amount of stake delegated, the pool's performance, and the duration of the delegation.
- Validators and nominators == stake pools
- Stake pool owners "pledge" ADA
- The reward distribution is made by the stake operator to the pool owners (requires trust, not only for correct pool operation but also for reward distribution)
- Besides pool owners and pool operators, there are also pool delegators (nominators). Pool delegation rewards are automatic.