Epoch Transition
- Epoch transition happens when someone calls
beginEpochTransition()and the current block isepochLengthblocks more since last transitioned block. - In
beginEpochTransition()- An
EpochEndedevent is emitted andcurrentEpochincreases by 1.
- An

- After the
EpochEndedevent is emitted, all epoch keys attested during this epoch will have their hash chains sealed- by sealed it means that the hash chain is hashed again with
1, e.g.,hash(1, originalHashChain) - if an epoch key received no attestation, it's hash chain would be
hash(1, 0)
- by sealed it means that the hash chain is hashed again with

- After hash chain of the epoch keys are sealed, these epoch keys and their hash chain will be inserted into the epoch tree of this epoch
- there's only one epoch tree for every epoch.

- There will be a new global state tree for each epoch.
- And after epoch transition, user needs to perform user state transition to transition his user state into the latest epoch
info