Reading about Ethereum 2.0, I note the formula for the BASE_REWARD
, which is
"the base unit that other rewards are calculated from"
is given as following:
base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
where
"base_reward_factor is 64, base_rewards_per_epoch is 4 and sum(active balance) is the total staked ether across all active validators"
So a validator that doesn't propose a block in that epoch and is not part of the sync committee (ignoring the inclusion_delay_reward
for simplicity) should get (6.75/8 * BASE_REWARD)
per epoch.
Given an active validator set of 747,846, assuming a given validator's effective stake of 32 ETH and Ether staked per validator of 32 ETH (I know average balance is quoted as 32.14 ETH but presumably the excess is not counted as 'staked'), this gives:
base_reward = 32 * (64 / (4 * sqrt(32*747846))) ~ 0.10466 ETH
And for non-sync committee, non-proposer:
Epoch reward = base_reward * (6.75/8) ~ 0.08831 ETH
However this is of course not correct, but if I omit the square root from the above calculation, the epoch reward per validator is:
Epoch reward = 21394 Gwei * (6.75/8) ~ 18,051 Gwei
This result is much more in line with reality, where currently the reward for same assumptions is about 11,000 Gwei.
So this is a long way of asking was the square root removed from BASE_REWARD
formula? All docs I read refer to the first formula I gave, so not sure where the discrepancy is. If it's been updated, where can I find most updated and comprehensive docs?