Advanced nomination guide for Polkadot and Kusama
By: James Ryan Moreau
Tags: Polkadot Network, Lunie, Proof Of Stake, Kusama Network

This article was written by Mario Pino Uceda, a software developer at Lunie and also the creator of Polkastats. The post was edited by James Ryan Moreau.

Introduction

In this guide we are going to explain how to optimize the performance of your stake in Substrate blockchains like Polkadot and Kusama, its canary network.

If you have just arrived to the Proof of Stake world, I recommend that you start with the article published by DerFredy: “Which Polkadot and Kusama validators should I choose.”

If you are already familiar with using wallets to transfer funds and participate in the network in a basic way, let’s go!

Polkadot time periods

Before we start, we need to know the different time periods that govern Polkadot:

Kusama time periods

Kusama is 4x faster than Polkadot, except for the block time, which is the same.

Rewards

Polkadot is a NPoS or Nominated Proof of Stake blockchain that incentivizes decentralization with two primary mechanisms. The first is that since validators are paid the same regardless of stake level, validators with less stake will generally pay more to nominators per-DOT than pools with more stake. We thus give nominators an economic incentive to gradually shift their preferences to lower staked validators that gain a sufficient amount of reputation. The reason for this is that we want the stake across validators to be as evenly distributed as possible, to avoid a concentration of power among a few validators.

The reasoning is that validators with more stake tend to have more resources such as system administrators, developers, hardware, redundancy, etc. to keep their infrastructure in perfect working order.

Against intuition, we can also see the opposite, with small validators that supplement their lack of resources with a lot of effort and imagination, frequently innovating more than other validators with more resources.

Era points

For every era (a period of time approximately 6 hours in length in Kusama, and 24 hours in Polkadot), validators are paid proportionally to the amount of era points they have collected. Era points are reward points earned for payable actions like:

Issuing validity statements for parachain blocks.

Producing a non-uncle block in the Relay Chain.

Producing a reference to a previously unreferenced uncle block.

Producing a referenced uncle block.

NOTE: An uncle block is a Relay Chain block that is valid in every regard, but which failed to become canonical. This can happen when two or more validators are block producers in a single slot, and the block produced by one validator reaches the next block producer before the others. We call the lagging blocks uncle blocks.

Payments occur at the end of every era.

In principle, for each session each validator should obtain the same long-term era points. However, in practice this is not the case, because the validator can be offline and lose its turn and due to other reasons such as differences in the used hardware. That is why any nominator who cares about the performance of his participation will study the era points that each validator obtains in the long term, avoiding all those in which it is less regular.

Era points generated in the last 84 eras by DragonStake validator in Polkadot, you can see the regularity of the points obtained in each era

Reward calculation

As we have seen, each era the validators accumulate points based on their activity, but some questions may arise: How are the rewards calculated? How are they distributed? How does Polkadot incentivize decentralization in validators?

Each era we have a certain reward that must be distributed to validators and nominators.

Each validator with its nominators forms a group

The era reward is divided among all groups based on the era points accumulated by the validator

The validator subtracts its commission

The remainder is divided among the group’s nominators in proportion to their participation.

Polkadot incentivizes decentralization among active validators by using a selection algorithm called Phragmen, which is run before the change of era to select active validators from all possible validator / nominator candidates.

As we already know, in Polkadot as a nominator it is possible to choose up to 16 validators, but in each era only one of them will be active, providing rewards for that nominator. The Phragmen algorithm always tries to maximize the representation of validators and will calculate the necessary nominations to prioritize the validators with less participation.

In each era we therefore have a number of validators, who with their nominators will form a group ordered by their participation or stake. Given that all validators do the same work and receive the same reward, it stands to reason that the validators and nominators at the bottom of that table receive a higher return per engagement than those at the top of the table.

This causes that nominators who try to maximize their profits will always try to choose validators who are positioned at the bottom of the validator table, but if many nominators follow the same strategy, that validator will increase their participation and rise in position, being slightly less profitable.

The dynamics of participation thus encourages the emergence of new validators waiting to be selected by the nominators with the promise of improving their benefits. As validators at the bottom receive more engagement, their profitability decreases and nominators switch to more profitable validators at the bottom of the table.

As we have commented, we always have to take into account the risks:

Unrecognized validators with unexpected behaviors

Their commission (and if/when it changes)

Slashes

Risk that all the selected validators are left out of the era, leaving the nomination inactive, without generating rewards.

Knowing the risks we can establish the participation strategy that best suits our needs. More conservative nominators will try to choose community-recognized validators, with reasonable commissions and a good track record, even if they are not the highest earners. Other more adventurous nominators will try to select validators at the bottom edge of the table, always trying to adjust their nominations for maximum benefit.

Reward payout

Polkadot and Kusama make stakers claim their rewards for past eras by submitting a transaction. This naturally leads to spreading out reward distribution, as people make transactions at disparate times, rather than updating the accounts of all stakers in a single block. Even if everyone submitted a reward claim at the same time, the fact that they are individual transactions would allow the block construction algorithm to process only a limited number per block and ensure that the network maintains a constant block time. If all rewards were sent out in one block, this could cause serious issues with the stability of the network.

Simple payouts require one transaction per validator per era to claim rewards. The reason Polkadot requires this is to avoid an attack where someone has several thousand accounts nominating a single validator. The major cost in reward distribution is mutating the accounts in storage, and Polkadot cannot pay out several thousand accounts in a single transaction.

Polkadot stores up to 84 eras of reward info like maps of era number to validator points, inflationary rewards, and nomination exposures. Rewards will not be claimable more than 84 eras after they were earned. This means that all rewards must be claimed within 84 eras.

Anyone can trigger a payout for any validator, as long as they are willing to pay the transaction fee. Someone must submit a transaction with a validator ID and an era index. Polkadot will automatically calculate that validator’s reward, find the top 64 nominators for that era, and distribute the rewards.

Keep this in mind if you don’t want to lose your rewards! Another option is to choose validators that implement an automatic reward payment system, which is usually daily. These validators, such as PolkaStats or DragonStake, perform the necessary transactions on a daily basis so that the rewards reach your account without having to worry about it or pay commissions.

Slashes

Slashes are the main risk that a nominator (or validator!) faces, as it is possible to lose a percentage of a nominated balance.

When a validator misbehaves they suffer a Slash event, which is a punishment for not following protocol. The penalty is applied to the validator and all its nominators. Downtime and signature errors are the most common causes of a slash event. The only way to protect yourself from slashing is by carefully choosing the validators you are nominating.

Another measure of the network against centralization is that it punishes clusters (many validators with the same name) more strongly than independent validators. So the more validators make a mistake at the same time, the greater the punishment. Thus, nominators are encouraged to “NOT Nominate” these clusters (usually exchanges and large pools) and instead choose independent validators.

Oversubscribed validators

Oversubscribed validators are a frequent problem in Polkadot (although still rare in Kusama at this moment) which may cause you to stop receiving rewards. A validator is oversubscribed when it has more than 64 nominators, in which case only the first 64 nominators, ordered by stake amount, will recibe rewards.

You can see oversubscribed validators in the Polkadot JS Portal, in the Staking section: https://polkadot.js.org/apps/#/staking. The validators with a red circle with number 64 are oversubscribed. You will also see in those validators the nominators that will not receive rewards (in red).

Never select those validators for nomination, especially if you have a small amount at stake. If you do you are putting your rewards at risk if any of them become active.

NOTE: There is currently a pull request on GitHub to increase nomination limits up to 128 nominators in Kusama and 256 nominators in Polkadot which you can see here: https://github.com/paritytech/polkadot/pull/1668/files

How to choose your validators

Once the previous concepts are clear, we will see how to use the available tools to select the validators that best suit us to maximize our benefits as a nominator. If we do it with certain principles, we will also be helping to make the Polkadot and Kusama networks less centralized!

Targets

Open PolkaStats Targets page in your browser for the network you are participating in:

Polkadot: https://polkastats.io/targets

Kusama: https://kusama.polkastats.io/targets/

Here we can see the list of active validators, ordered by Estimated annualized rewards. Keep in mind that annualized profitability is extrapolated from profitability in the last era.

Choose a page size of 20 and choose 16 validators considering these factors:

Profitability

Current commission

It is not part of a cluster

Does it have an identity? Or is it just an address you don’t know anything about.

Are they known in the community?

History of era points, rewards, slashes and commission

Election prediction

As we said before, the validators for the next era are selected by Phragmen algorithm, but When?

In Polkadot and Kusama there is an election period in the last quarter of the last session of the era. In this election period, it is NOT possible to carry out any staking activity: you cannot select or change your validators and you cannot claim rewards. This is due to the fact that based on the current information of validators and nominators, the Phragmén algorithm is executed offline to select the validators and nominations of the next era.

Is there a way to know what the Phragmen calculation is based on the current staking information? Yes, and we can find it in PolkaStats.io, which runs the offline-election software every 10 minutes to calculate the prediction of selected nominators and validators for the next era. In this way we can anticipate changes in the situation and we can optimize our positions just before the election period begins and it is no longer possible to make any changes.

Polkadot: https://polkastats.io/election-prediction

Kusama: https://kusama.polkastats.io/election-prediction

Conclusion

DYOR

Polkadot and Kusama are very dynamic networks, in which participation can change quite a bit from one era to another. It is always recommended to analyze the performance of the validators that are included in your set, preferably before the beginning of the election period so that you can make the necessary changes.

We also need to take into account:

Changes in validator profitability (tracking era points)

Inactive validators

Commission changes

Slashes

Validators with a low proportion of era points

Some sources of data to perform validator research are:

Polkadot:

Kusama:

We only have to search by address or name for the validator that we want to review and review the graphs. It is advisable to do it frequently, as much as we are interested in optimizing our performance.

Don’t Let Your Rewards Get Stale

As we have already discussed, you should worry about claiming your rewards, as it will not be possible to claim them after 84 days in Polkadot (21 days in Kusama).

References

Learn Staking:

https://wiki.polkadot.network/docs/en/learn-staking

Intro to Nominated Proof-of-Stake:

https://w3f-research.readthedocs.io/en/latest/polkadot/NPoS/index.html

Sequential Phragmén Method:

https://wiki.polkadot.network/docs/en/learn-phragmen

Simple Payouts: