PolkaFoundry Staking implementation

PolkaFoundry uses a block production mechanism based on Polkadot’s Nominated Proof-of-Stake Proof-of-Stake model where there are collators, nominators and validators. Collators maintain parachains by collecting transactions from users and producing state transition proofs for the Relay Chain validators.

The collators’ set (nodes that produce blocks) are selected based on their self-stake and the stake that is voted to them from nominators.

Select the winner

We use Sequential Phragmén Method to select the winner per round. Given the large set of nominators and collators, Phragmén’s method is a difficult optimization problem. PolkaFoundry uses off-chain workers to compute the result off-chain and submit a transaction to propose the set of winners.

  • Should we change to just select on-chain the X winners base on their stake? It’s fast and much easier

Inflation model

PKF is inflationary; there is no maximum number of PKF as in Bitcoin. We will use X PKF in the first Y years and Inflation is designed to be 10% in the next Z years, with validator rewards being a function of the amount staked and the remainder going to treasury.

Let x be the staking rate in NPoS at a particular point in time, i.e. the total amount of tokens staked by nominators and collators, divided by the total token supply.

Let xideal be the staking rate we would like to attain ideally in the long run. We originally set it at xideal=0.5. If it falls, the security is compromised, so we should give strong incentives to PKF holders to stake more. If it rises, we lose liquidity, which is also undesirable, so we should decrease the incentives sharply.

Let i=i(x) be the yearly interest rate in NPoS; i.e., the total yearly amount of tokens minted to pay all collators and nominators for produce blocks, divided by the total amount of tokens staked by them

Let ideal:=i(χideal) be the interest rate we pay in the ideal scenario where x= χidealx. We suggest iideal = 0.2

Let INPoS is the inflation caused by token minting to pay nominators and collators. If we consider INPoS as a function of the staking rate x then clearly the relation between INPoS(x) and i(x) is given by

                           INPoS(x)=x⋅i(x)

From our previous analysis, we can see that INPoS(χideal)=χideal . ideal. Since we want to steer the market toward a staking rate of x=χideal, it makes sense that the inflation rate INPoS(x) should be maximal at this value.

Let I0 be the limit of INPoS(x) as x goes to zero (i.e. when neither collators nor nominators are staking any). The value of I0 should be close to zero but not zero, because we need to make sure to always cover at least the operational costs of the validators, even if nominators get paid nothing. We suggest I0 = 2.5

Let d be the decay rated so that the inflation rate decreases by at most 50% when x shifts d units to the right of xideal. We suggest d = 0.05.

We calculate the inflation per year by the formula:

  • x-axis: Proportion of PKF staked
  • y-axis: Inflation, annualized percentage
  • Blue line: Inflation rewards to stakers
  • Green line: Staker rate of return

For the 2(χideal−x)/d. Because the exponent to 2 is close to 0 we can approximate using Taylor series.

The function is: Máy tính đồ thị

By adding the above-inflation model, we will adjust the incentives of PolkaFoundry users and encourage the actions expected of PolkaFoundry Network.

Feel free to ask us if you have any questions.

Reference: Token Economics — Research at W3F

1 Like