Exploring the first 1000 epochs of eth2

Mr. F was here. And many more too.

Barnabé Monnot https://twitter.com/barnabemonnot (Robust Incentives Group, Ethereum Foundation)https://github.com/ethereum/rig

Table of Contents

We look at data between epochs 0 and 1000 (2020-12-05 22:40:23 UTC) and report updated metrics for eth2’s mainnet. You can also find a similar notebook for Medalla here and Pyrmont here.

Performance of duties

Anatomy of an aggregate

Before we begin, remember that the beacon chain is composed of blocks, each of which contains up to 128 aggregates. These aggregates are “vote summaries”, where each aggregate summarises the votes (attestations) of all members of a committee. Each epoch, validators are assigned to exactly one committee. An epoch is divided further into 32 slots, each slot being assigned several committees.

We’ll often provide examples in the following format. Each row is an aggregate attestation.

Let’s dissect it.

Attester duties

We compare the number of included attestations with the number of expected attestations. Since each (active) validator is expected to attest exactly once per epoch, this also charts the percentage of validators attesting over time.

Proposer duties

How many blocks are there in the canonical chain? Validators are sampled randomly to produce blocks. If they fail to produce one, the block is missing. They also sometimes produce one but the block is orphaned, i.e., the chain continues on a different block. The plot below charts the proportion of included blocks to expected blocks.