Staking in Moonbeam¶
Moonbeam uses a block production mechanism based on Polkadot's Proof-of-Stake model where there are collators and validators. Collators maintain parachains (in this case, Moonbeam) 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 stake in the network. And here is where staking comes in.
Collators (and token holders if they nominate) have a stake in the network from which they get slashed if they misbehave. Therefore, the higher the stake, the higher the network security. The higher the stake, the more likely the collator will get selected to produce a block and earn rewards, which they share with their nominators. In such a way, network members are incentivized to stake tokens to improve the overall security.
Some important parameters to understand in relation to the staking system in Moonbeam include:
- Collators — block producers. They collect transactions from users and produce state transition proofs for the Relay Chain to validate. Have a stake in the network that get slashed if they misbehave
- Nominators — token holders who stake tokens, vouching for specific collators. Any user that holds a minimum amount of tokens as free balance can become a nominator
- Minimum nomination stake — minimum amount of total tokens staked a user must have to be in the set of nominators
- Minimum nomination — minimum amount of tokens to nominate other collators once a user is in the set of nominators
- Maximum nominators per collator — maximum number of nominators a collator can have
- Maximum collators per nominator — maximum number of collators a nominator can nominate
Round — number of blocks in a round. An important parameter for reward distribution
Bond duration — number of rounds that the staking rewards are delayed
Currently, for Moonbase Alpha:
|Minimum nomination stake||5 tokens|
|Minimum nomination||5 tokens|
|Maximum nominators per collators||10|
|Maximum collators per nominator||25|
|Round||600 blocks (2 hours)|
|Bond duration||2 rounds|
At the end of every round (600 blocks), collators are rewarded for their work from 2 rounds ago.
When collators join the set of collators, they establish a commission to charge their nominators for the service they provide. Therefore, the reward distribution goes as follows:
- The commission is taken out of the reward to be distributed
- The collator gets the rewards corresponding to their stake in the network, plus the commission
- The rest of the rewards are distributed among nominators by stake
Mathematically speaking, for collators, the reward would look like this:
Where the stake corresponds to the amount of tokens bonded by the collator in respect to the total stake of that collator (accounting nominations).
For each nominator, the reward would look like this:
Where the stake corresponds to the amount of tokens bonded by each nominator in respect to the total stake of that collator.
Try it on Moonbase Alpha¶
In the Moonbase Alpha TestNet, token holders can stake and earn rewards (to get familiar with the system as the token doesn't have any actual value).
To do so, you can check this guide.