In order for the network to maintain a high level of decentralization, it was necessary to devise a few rules governing the protocol. One of them is a saturation of the pool. Delegating coins to a saturated pool is less beneficial as it generates less profit. Let’s explain exactly what the saturation is, how to calculate it, and which tool to use to find saturated pools.

Keeping protocol decentralization

In Proof-of-Stake (PoS) system the network is owned by coins holders. We can talk about stake-holders. The number of coins held determines how much of the network you own and what decision power you could have within the consensus if you participate in staking.

Wealth is distributed unequally in society and there is a trend that a large portion of wealth is held by a small fraction of the population. For example, Pareto distribution power-law states that, for example, 80% of the wealth of a society is held by 20% of its population. This distribution is undesirable within PoS protocol since a few wealthy stakeholders could become powerful and only a few entities could obtain the right to produce a new block. In a decentralized system, everybody should have the ability to contribute and participate in making consensus. Staking pool allows combining user’s stakes and the creation of a single entity. Pool’s stake consists of a pool’s operator stake and stakes of all users that have delegated their coins to the pool. Users can whenever delegate to other pools if they are not satisfied with the pool for any reason.

If you ask what is a desirable decision power distribution then the answer would be the most decentralized one. The economic incentives should be configured in a way that ensures fair coexistence of many pools with similar size.

Both the stake of pool operators and delegators determines the sizes of pools. It can happen that there will be a whale in the system that has a 5% stake. It would be also desirable to economically motivate the whale to distribute the stake into smaller portions.

In Proof-of-Work (PoW) the rewards are distributed proportionally to the size of pools. If a pool has a portion of 15% of the total hashing power of the network then it mines approximately 15% of new blocks so it gets 15% of rewards. However, this proportional rewarding approach does not support a high level of decentralization. As we can observe, there are often only a few bigger pools in PoW projects and the number decreases as time passes. PoW pool gets the higher reward the bigger the pool becomes and there is no limitation. To prevent centralization in PoW there must be people who put aside economic interests and delegate hash-rate to the less profitable pool for other reasons. The question is how it is probable in reality.

Saturation point

The linearity between pool size and rewards must be interrupted at some point. Linearity is good for smaller pools but must decrease as pools begin to gain dominance. Based on the pool size, Cardano divides rewarding behavior into two stages. The first one is a growth stage where the linearity in rewarding is respected. The second stage is a stabilization stage where the pool is considered as large. The large pool is thus considered as saturated.

When a pool reaches a saturation point the protocol will cut rewards. If the saturation point is 1% of all staked coins, then the pool that has 1,5% of staked coins will have the same reward as a pool that has 1% of staked coins.

When a pool becomes saturated?

Let’s have a look at how the saturation point can be found.

First of all, we have to know how many ada coins are used for consensus, in other words, how many coins are staked. There is a certain amount of coins in circulation, however, only a part of them is used for staking. It can be 10% or 90%. It is hard to predict since some coins can be used for other purposes. It can be expected that ada holders will want to participate in consensus and receive rewards. The number of staked coins will change in time (in each epoch) so the exact saturation point cannot be calculated in advance.

Let’s assume that 10 000 000 000 ada coins are staked. There will be a desirable number of pools in the network that will be defined in the protocol by a constant K. It is a desirable number of pools, no limitation or max amount of pools. If there is a desirable number of pools set to 1000, then K = 1000.

Saturation point can be then calculated in the following way:

Saturation-point ≥ Staked-ada-coins / K

In our case:

Saturation-point ≥ 10 000 000 000 / 1000