All you ever wanted to know about Engagement Points
Engagement Points are an integral part of Proof of Engagement and are the fuel that drives collaboration in the running of Tgrade. This blog post explores what Engagement Points (which I will shorten to EP) are, how they are distributed and their role in the distribution of block rewards.
In Tgrade, both Stake and EPs are necessary for validators to enter the validator set. The “validator power” is then proportional to both EPs and Stake, and computed through a “mixing function” that combines the effect of both. The validator power determines how often they are selected to sign a block and thus receive the block rewards for their activity.
The mixing function is a Sigmoid function, which has the non-linear effect of effectively capping the amount of maximum rewards a given validator can get, independently of its amount of accumulated stake and engagement points.
Validator rewards (those handled by the validator group contract (DISTRIBUTION PoE type)) are then granted to validators, proportionally to their validator power (MIXER(stake, engagement)).
EPs were initially granted in the genesis file (the start of the chain). EPs are discretionarily granted, through proposals submitted, and voted on, by the Oversight Community (OC) to the wider community around Tgrade as members of the engagement contract (ENGAGEMENT PoE type).
So, there are two contracts that hold EPs for different purposes, the calculation of validator power and used as incentives for the whole community around Tgrade.
Block Reward Distribution
A significant part (~50%) of the block rewards is distributed among validators, proportionally to the voting power that they have in the validator group contract.
But there also others that are eligible to receive block rewards. The distribution of rewards associated to EPs is as follows:
- 47.5% to Validators.
- 47.5% to Engagement Point holders.
- 5% to the Community Pool.
So, 47.5% of rewards will be distributed to validators according to their voting power (derived from the mixing function using stake and EPs).
The number of EPs in this contract will determine in turn, along with the amount of stake in the staking contract (STAKING PoE type), what validators enter the validator set. Only validators that enter the validator set can sign blocks in the contract (VALSET PoE type), and participate in voting through the validator voting contract (VALIDATOR_VOTING PoE type).
Validators receive rewards both on their validator power (blocks they sign) as well as EP (like all EP holders).
47.5% of rewards are distributed to holders of EPs in the engagement group contract, according to their EPs held. This group contains anyone in the wider community including validators, tool builders, media and PR contributors, documenters, and those engaging with businesses.
And the remaining 5% of rewards will be assigned to the Community Pool contract (COMMUNITY_POOL PoE type).
Slashing of a validator can be the result of a proposal submitted, voted and passed through the Oversight Community governance, or an automatic event based on evidence of double signing.
Slashing reduces both, the number of EPs a validator has, and its stake. The EPs are simply decreased by a given percentage, whereas the slashed portion of TGD stake is effectively burned. This in turn will reduce the validators power as calculated from the mixing function, as both inputs are reduced.
In case of double signing, the validator is also jailed (disabled) permanently.
Jailing is a sanction in addition to slashing. It means that the validator is temporarily or permanently disabled from validating blocks, depending on the time period set.
Jailing is submitted through a proposal as part of a slashing event.
Un-jailing is typically required to be a manual process, either triggered by the jailed validator after expiration, or by the Oversight Community.
Half-life and the quest for continuous engagement
Half-life is mechanism by which the number of EPs is halved (decays) as time passes. The idea being that EPs are the rewards for effort and engagement, to incentivise collaboration, and the impact of the EP is considered in short to medium term making it only fair that the rewards gradually diminish. The half-life mechanism encourages active engagement as the community must continue to be involved and make contributions.
In the current setup, half-life applies to EPs in the engagement contract and the validator power is reduced when the EP has half-life applied as the power is calculated using the combination of stake and EP. The current value of half-life for the engagement EPs is 6 months.
Sum of the active EPs
The total number of EPs at any given time is then the sum of EPs granted during genesis, plus the sum of EPs granted to the members of the engagement contract (at genesis or through OC proposals), minus the amount of slashed EPs.
Of course, when applied to rewards distribution, the rewards that go to each contract to be distributed will follow validator power and the ratios set in the EPs awarded to the community members.
Suppose a validator has a validator power of 750,000 , and 2,000 engagement EPs, while the total validator power is 56,000,000 and the total number of engagement EPs is 56,300.
Then if there are 1,000 TGDs of block rewards for distribution, this validator in particular will get
1000TGD * 0.475 * 750000/56000000 + 1000TGD * 0.475 * 2000/56300 = 6.36 + 16.87 = 23.23TGD .
Of those 23.23TGD, 6.36TGD will be available for withdrawal from the distribution contract, and 16.87TGD will be available for withdrawal from the engagement contract.
The current values for epoch length and epoch reward are:
This was defined so that
22.815911TGD * 1 year / 120 seconds = 6M TGD, Tgrade yearly inflation amount.
Summing up EPs
Wrapping up EPs and how they work the following points are a nice summary on how they work.
- EPs in the validator group contract are used to define the voting power, along with the validators’ stake, and through the mixing Sigmoid function.
- This validator power determines in turn the amount of rewards granted to validators during block signing.
- And that amount of EPs determines in turn the distribution of (about half of) the block rewards.
- The other “half” (47.5%) of block rewards goes to EP holders in general, and is distributed according to their EPs in the engagement contract.
- The remaining 5% is sent to the community pool contract.
A big thank you to Mauro and Ethan who contributed to building the code, reviewed the contracts and wrote/reviewed much of this content.