Skip to main content

IIP-5: Mining rewards based on Quadratic staking

Author: midenaio

Status: Final

Type: Standard

Created: 2022-07-12

Discussion: https://github.com/idena-network/idena-docs/discussions/81

Translations: 🇷🇺

Abstract

Change the block reward distribution so that instead of a fixed mining reward, the block proposer and block validators are paid in proportion to their stake to the power of 0.9. The proposed change affects only mining rewards distribution and does not affect the consensus mechanism, which implies equality of votes when verifying blocks according to the principle: one node = one vote.

Motivation

Despite the principle of one person=one vote, with the growth of the network, the number of nodes does not increase, but falls. This is due to the concentration of mining rewards earned by pools which demotivates solo users to keep their nodes. There are 8k accounts represented by only ~40 nodes (large pools). Solo users cannot compete with pools and simply shut down their nodes. The network growth associated with the growth of pools does not increase the number of nodes run by independent validators. We believe that this is contrary to our goals and interferes with the solution of the scalability trilemma which requires excessive decentralization.

With quadratic mining rewards, several hundred dormant nodes can be back in the game. Due to the large stake discrimination (stake^0.9), we will provide resistance to the capture of the network by large stakeholders. With the dominance of large stakeholders, the degree can be revised by the network in future.

Positive effects expected from the mining rewards based on Quadratic staking:

  • Increasing the number of validating nodes
  • Increasing the yield of Quadratic staking through the additional mining rewards that can be earned by running the Idena node
  • Amplifying the positive effects of Quadratic staking described in IIP-4
  • Reducing mining rewards of pools which do not replenish the stakes of their accounts

See the difference between mining rewards distribution before and after IIP-5:

image image

For newcomers and users with small stakes the mining rewards in iDNA will decrease. On the other hand, stimulating competition for mining from large stakeholders is aimed at increasing the valuation of the network and increasing the income from mining, denominated in US dollars, for all network participants, including users with small stakes.

You can check the estimated mining rewards using the staking calculator.

Specification

Currently the block reward of 6 iDNA is distributed 1 to 5: 1 iDNA goes to a randomly selected block proposer and 5 iDNA is distributed equally among a randomly selected committee of 100 validators.

We propose to change the block rewards distribution in proportion to stake^0.9 so that the proportion of 1 to 5 is preserved if the stakes of the proposer and all validators are equal.

The block rewards that are paid to the block proposer and block validators depend on their weights:

Proposer weight = Proposer stake ^ 0.9 * N / 5
Validator weight[i] = Validator stake[i] ^ 0.9

Where N=100 and i=1..N.

The block proposer and block validators get the following shares of the block reward of 6 iDNA:

Proposer share = Proposer weight / W
Validator share[i] = Validator weight[i] / W

Where W is the sum of Proposer weight and all Validators weight[i] for i = 1..N:

W = Proposer weight + Sum ( Validator weight[i] )

The following rewards are paid to the block proposer and block validators:

Proposer block reward = Proposer share * 6 iDNA
Validator block reward [i] = Validator share[i] * 6 iDNA

Example 1

Example for N=12 if the stake of the block proposer and all stakes validators are equal:

RoleStake, iDNAWeightShareBlock reward, iDNA
Proposer12.400.16671.00
Validator 111.000.06940.42
Validator 211.000.06940.42
Validator 311.000.06940.42
Validator 411.000.06940.42
Validator 511.000.06940.42
Validator 611.000.06940.42
Validator 711.000.06940.42
Validator 811.000.06940.42
Validator 911.000.06940.42
Validator 1011.000.06940.42
Validator 1111.000.06940.42
Validator 1211.000.06940.42
Total14.401.00006.00

Example 2

Example for N=12 if the stake of one of the validators and the stake of the proposer is 100

RoleStake, iDNAWeightShareBlock reward, iDNA
Proposer100151.430.67154.03
Validator 111.000.00440.03
Validator 210063.100.27981.68
Validator 311.000.00440.03
Validator 411.000.00440.03
Validator 511.000.00440.03
Validator 611.000.00440.03
Validator 711.000.00440.03
Validator 811.000.00440.03
Validator 911.000.00440.03
Validator 1011.000.00440.03
Validator 1111.000.00440.03
Validator 1211.000.00440.03
Total225.531.00006.00

Mining rewards in pools

Mining rewards for pools are calculated in the same way as for regular validators. If one of the pool participants gets into the committee, then the reward for the block verification will be determined by the size of the stake of this selected address.

If a pool owner is selected as the block proposer, the block reward is determined by the stake of the pool representative. The pool representative is selected from the list of all delegates using the round robin algorithm.

Mining penalties

Because mining rewards during an epoch can change significantly due to stake replenishments, the penalties will be in the form of penalty seconds rather than penalty coins. That is, as an offline penalty, the user receives a penalty equal to 8 hours. As the node works, the penalty time will decrease, and the mined coins will be burnt.

Rationale

There are currently 11k participants validated on the network, with only 9.6k+ participants taking part in block production. This means that about 1.4k participants are “sleeping”.

At the same time, there are around 900 online validating nodes.This is a fairly good indicator when compared to other blockchains, especially considering the fact that each Idena node has equal voting power. However, we see the potential to increase the number of validating nodes through activating “sleeping” validators and stimulating solo mining.

The current reward system assumes equal mining income in proportion to the number of accounts. However, the relatively small cost of maintaining one node (about $7-10 per month for renting a VPS) is not covered by solo mining income. Therefore, if possible, users delegate mining to pools, while solo miners simply turn off the nodes.

In order to allow solo miners to recoup the cost of running a node, we offer mining rewards based on the amount of staked coins. Thus, solo miners can influence the profitability of their mining by replenishing the stake of their identity and compete with pools that currently do not use staking, but gain high returns from mining blocks due to a large number of accounts.

In contrast with PoS system, the proposed changes affect only the reward distribution system, but do not affect the consensus mechanism in any way, which implies equality of votes when checking blocks according to the principle: one node = one vote.

See the difference between PoP and PoS:

image

Modeling

We've run a model emulating mining rewards distribution during the epoch #0087 before and after the IIP-5 changes. The model doesn’t include possible mining rewards of the sleeping miners but reflects the possible mining rewards of validators who were actively running their nodes during the epoch #0087.

Category by pool sizeNumber of nodesMining rewards before IIP-5Mining rewards after IIP-5
Solo miners [1]61828 282 iDNA110 085 iDNA
Family pools [2..15]23740 284 iDNA113 642 iDNA
Medium pools [16..50]3931 854 iDNA30 275 iDNA
Large pools [51+]38240 810 iDNA163 868 iDNA
Delegated identities10 029 (not running node)168 968 iDNA92 325 iDNA
Total932510 198 iDNA510 198 iDNA

Before IIP-5 changes were made there were 618 solo miners earning 28k iDNA per epoch. At the same time there were 38 large pools earning more than 400k iDNA together with their delegatees getting rewards into stakes.

After the IIP-5 changes the distribution of rewards shifts in a favor of solo miners and family pools who mainly replenish their stakes.

Stake distibution of the solo miners

There were 618 solo miners running their nodes during the epoch #0087. We've run a model for the mining rewards of the solo miners depending on their stakes.

Category by stakeNumber of nodesAvg. rewards before IIP-5Avg. rewards after IIP-5
Small stake [0..500]41946 iDNA44 iDNA
Medium stake [500..10k]17445 iDNA252 iDNA
Large stake [10k..100k]2247 iDNA1 670 iDNA
Very large stake [100k+]349 iDNA3 655 iDNA
Total618

Quadratic nature of the mining rewards gives a higher yield for the smaller stakes. This means that the mining income of the validators with a small stake is not affected significantly while encouraging them to increase their stakes.

Backward Compatibility

This change requires a hard fork.

Security Considerations

This proposal does not bear any risks for the Idena protocol. If the proposed changes cause an unwanted imbalance in the economics of iDNA, it will be possible to revert the changes and return to the previous age-proportional rewards scheme by initiating a fork.