Rewards and Penalties
The journey of a validator balance
A simplified overview of the most common validator rewards and penalties.
A validator can propose one attestation and one block per epoch and depending on their properties the reward varies.
Rewards and penalties are based on the correctness of
Head, Source, target, can be either positive or negative, however the inclusion delay can just be positive. The Source has to be correct in order to get included.
The worst inclusion speed reward is base_reward * 1/32 * 7/8 with an inclusion distance of 32 and the best is base_reward * 1/1 * 7/8 with an inclusion distance of 1.
Assumption: The participation rate is 100%
- 1.You vote correctly and gets included in the next slot: you get 31/8*base_reward
- 2.You miss head because you got a late block and it gets included in the next slot: 15/8*base_reward
- 3.You miss head and target cause you got late a block, you get -1/8* base_reward
- 4.You attest and vote correctly, but the next block is missed, you get 55/16 * base_reward
- 5.You attest correctly and get perfect inclusion distance, but you attested on a block that most people got late as in 2., you get ~7/8 * base_reward The last one is the most confusing one: When there is a late block where validators miss the head, the validator that misses the head earns more than the validator that votes correctly, as in 2. 15/8 > 7/8
Best possible reward 31/8 * base_reward Worst possible reward with an included attestation ("Negative Reward") -249/256 * base_reward
Only valid attestations (correct source) can be included in a block and the rewards for a block proposal scale with the amount of included attestations. Theoretically, block proposers could include aggregated attestations from a parent block, but there is incentive to do so.
Each included attestation in a block will be rewarded (if it is the first time that is included in a block) with
There is no penalty for not proposing a block. A block proposer which includes slashing will be rewarded with the
slashed_validators_effective_balance / 512where