# Attester effectiveness

Validators are called to attest once in every epoch. These attestations are important consensus material. When attesting, validators vote on their version of the perceived state of the chain, which is described by a handful of distinct variables. These variables are also known as a validator's duties.

When validators perform their duties appropriately, they earn rewards; if they don't they are penalized. The core duties that validators are called to perform are:

- Getting a vote (1)
*included*; this is equivalent to submitting a the Casper FFG*source*checkpoint vote that is correct. - Getting a (2)
*correct*vote included. Correctness is described by:**Head vote:**submitting an attestation that correctly identifies the head of the chain, by GHOST rules**Target vote:**submitting an attestation that correctly identifies the Casper FFG*target*checkpoint of the chain

- Getting a correct vote included (3) with
*minimal delay*.- Every validator is assigned a slot “n” to attest to in every epoch, and the earliest their vote could be included is on slot n+1. For every slot greater than n+1 that the vote gets included, the validator earns increasingly less rewards.

You can refer to Rewards and Penalties on Ethereum 2.0 [Phase 0] for more context on how rewards are distributed in eth2 pre-Altair.

We measure (1) as

*participation rate*, (2)*correctness*and (3) as*inclusion delay*. These are calculated as:- 1.
**Participation rate:**total amount of attestations included over the number of epochs active. - 2.
**Correctness:**amount of correct head and target votes over the sum of votes included. - 3.
**Inclusion delay:**aggregate slot distance between the attestation slots attributed and the actual slots the votes were included in.

Given the above, we compute attester effectiveness as follows:

attester_effectiveness == participation_rate * correctness_score / aggregate_inclusion_delay

The premise in the above calculation is that we can it captures equally all the important elements in evaluating how well a validator's consensus duties are being performed, accurately, while at the same time shielding the methodology from unnecessary complexity.

The Altair upgrade brought on a few significant changes in how rewards and penalties tied to attestation duties are distributed in eth2. More specifically, the rules governing the timing that the vote material gets included on-chain and rewards/penalties relationship, become stricter. In Rated v0 terms:

- 1.
**Participation rate:**in order for an attestation to be included the*source*vote must*still*be correct. There are now additional penalties for cases when the attestation does not get included in a timely manner; namely within`sqrt(EPOCH_LENGTH)`

or 5 slots. This however does not affect how we calculate participation. - 2.
**Correctness:**the*target*and*head*votes must not only be correct, but also need to be included in a timely manner; namely within`EPOCH_LENGTH`

or 32 slots and 1 slot respectively. We also bundle*source vote*lateness (by the above criteria) in the correctness calculation. In this case we look at events in a binary way (prompt, late) and do not modulate for "how late" in the calculation. - 3.
**Inclusion delay:**The concept of moderating rewards downwards the more delayed the attestations are is not valid any longer on its own accord, and is rather feeding directly into*participation*and*correctness*

We have updated the Rated v0 model to reflect the new rules that underlie

*participation*and*correctness*. However, we haven't changed the way the overall*attester effectiveness*calculation is computed, in the spirit of maintaining the design goals we initially set.We welcome the community's feedback on

**whether or not the inclusion delay moderating factor should be removed**from the model post-Altair.While the way the components are computed and attributed value, the base formula for attester effectiveness post-Altair remains the same:

attester_effectiveness == participation_rate * correctness_score / aggregate_inclusion_delay

No significant changes have been introduced to the spec that would warrant revisiting the attester effectiveness methodology.

Last modified 7mo ago