Proof of Stake

In this phase, estimated for Q2 2021, the network will convert to Nominated Proof of Stake (NPoS) as designed by Web3 Foundation wherein validators can participate by staking (locking) tokens. Candidate validators can stake their own tokens or other token holders can nominate candidates by locking tokens on their behalf. The locked tokens can only be withdrawn after 2 epochs (20 days). This time period is called an unbonding period.

The candidates with the most stake behind them become validators and earn rewards every epoch; there can be at most 50 validators at any given instant. In case of malicious behavior, the validators and their nominators are penalized proportionately via a mechanism called slashing. Slashing is an event where the validator and/or nominator loses a defined proportion of staked tokens, which are then redistributed among validators, the maliciousness reporter (when it applies), and the Treasury. The block rewards consist of the emission rewards and fees from the transactions and block rewards for each epoch go to the Treasury with 60% being reserved for Treasury and rest for validators. The emission rewards are configured such that every year at most a certain amount of tokens need to be emitted and this number decreases each year by 25% of the remaining supply. The Treasury also gets a share of the slashings depending on the kind of maliciousness, more on that later. For more details on the economics, check the section on PoS token-economics.

The Treasury will no longer be accessible via a multi-signature account at this stage and token withdrawals will require transactions. Tokens earned as block rewards, either by validators or nominators, can be withdrawn up to 10 epochs (about 3 months) after the epoch when they were earned. The rewards are not directly credited to accounts so as not to disrupt activity on the chain in case there is a very large amount of nominators. However, rewards will be credited directly to nominators and validators in the early stages of PoS as there won't be as many recipients.

The process to elect Council members will evolve to be determined by the token holders. To become a Council member, a candidate registers and locks 100 tokens. Any token holder can vote for the candidate by locking tokens signaling its vote. A token holder can vote for multiple candidates simultaneously and can also remove any of their locked tokens from any candidates. The Council members are selected by Phragmen, which is the same algorithm used to select validators in NPoS. If a token holder votes for more than 1 candidate with their locked tokens, Phragmen distributes the locked tokens to maximize the total amount of locked tokens in the system and decrease the variance between each candidates' locked tokens. Once a candidate is selected to be a council member, they will serve their tenure of up to 2 years. If a member misbehaves and is deemed to be detrimental to the health of the network, the Association Board can vote to remove that member.

Changes to the network will be subject to a voting process. Each change (a function call with parameters) will require a token holder to make a proposal by locking tokens. The proposal must be binary (yes or no vote) and can be backed by other token holders who support it. A proposal can also be raised by the Council. Proposals by the Council and the general public will be kept in separate queues and every 30 days a proposal is picked from one of the queues and considered for voting. The proposal selection alternates between these queues. The proposal with the most votes will be chosen for a vote and will be entered into a referendum. In the referendum, the votes are tallied, and depending on the conditions, the proposal is accepted or rejected. If accepted, the proposal is executed after the enactment period which will always be slightly longer than the unbonding period so that token holders have an opportunity to leave the network if they disagree with a proposal.

The value of a vote is proportional to the number of tokens and the duration for which the tokens are locked. There is a 'vote multiplier' which is multiplied by the amount of locked tokens when tallying the votes. The maximum value of the multiplier is 6 and it's achieved when tokens are locked for 6 epochs, locking for 2 epochs makes the multiplier 2, locking for 3 makes it 3, etc. Another factor while tallying the votes is the voter turnout. A proposal that is raised by the general public and has a low turnout requires a super-majority (> 50% of the turnout) of "yes" votes to be approved which is called positive turnout bias. On the other hand, a proposal raised and unanimously approved by the Council has a negative turnout bias where a super-majority of "no" votes is required to reject it. A proposal raised by the Council and not approved unanimously, but only by a simple majority of the Council, is determined by the simple-majority votes of the general public.

The network can punish validators for being offline or equivocation in block production or finality. The nature and severity of the punishment also change with the number of validators involved in the activity. If only 10% of validators are detected offline then no direct economic penalty (slashing) is applied. Otherwise, the penalty increases linearly to the number of offline validators. However, validators are removed from the current validator set and barred from participating in the next validator selection (indirect economic penalty) for being offline. This is called chilling. Validators found to be equivocating are sent to chilling and slashed, the slashing being quadratically proportional to the number of validators equivocating. Anticipating that a validator might become offline or might equivocate due to bugs in the software, the Council reserves the right to reverse any slashing event (up to 6 epochs in past, i.e., approx. 2 months) by voting. Reversing any slash requires at least a simple majority of Council votes. As the slashing amount increases, more Council votes are needed to reverse the slash.