vbr (Validator Block Rewards) module allows validators to get a recurrent reward each
time a new block is proposed, even if such a block does not contain any transaction.
# How it works
During genesis, a pool of tokens is created and it's filled with a decided amount of tokens.
From this point in time, each time a new block is proposed a small amount ok tokens will be sent to the block proposer.
The amount of tokens that will be sent to the validator that proposes the block is computed using the formula described below.
Block produced in a year, considering a block interval of 5 seconds and a year length of 365 days and 8 hours:
Initial rewards pool amount:
Voting power of the -th validator at block :
- is the amount of bonded tokens of the -th validator at block
- is the total bonded tokens amount at block
Yearly pool reward amount for the -th year:
Number of active validators
Percentage of active validators towards the target of 100 validators:
Let's define the maximum reward for the -th year as
Define also the maximum limit that each validator can get in a year as
We must take into consideration that validators with higher voting power must have a lower reward per block
as they will validate more blocks.
On the other hand, validators with lower voting power will have a higher reward per block as they will validate fewer blocks. This results in the given formula