Epochs and Reconfiguration
Epoch
In IOTA, an epoch is a fixed period (typically around 24 hours) during which the validator set and their stakes remain constant. This stable period ensures that transactions are processed smoothly without unexpected validator changes.
Epoch Numbering & Transaction Data
Epochs are sequentially numbered, and each transaction on the IOTA network includes an epoch identifier. While regular users generally do not need to worry about epochs, they are relevant when dealing with expiring transactions, which must be completed before a specific epoch ends.
Consensus & Checkpoints
During each epoch, the Mysticeti consensus protocol operates to finalize transactions. Validators reach agreement by collecting transaction effect certificates, ensuring a consistent transaction order. A key part of this process is the checkpoint, which is a snapshot of finalized transactions at the end of an epoch. The checkpoint includes:
- A set of finalized transactions
- Validator agreement data
- State updates required for the next epoch
Reconfiguration
At the end of each epoch, a reconfiguration process occurs to prepare the network for the next epoch. This involves the following.
1. Finalizing Transactions & Checkpoints
- Validators finalize the order of transactions and generate a checkpoint, ensuring a synchronized network state.
- This step guarantees that an honest majority of validators share the same transaction history, reinforcing consistency and security.
2. Distribution of Gas Rewards
- Computation gas fees are distributed to the validator staking reward pool.
- Stakers can withdraw their rewards after the epoch ends.
Refer to the Staking and Rewards page for more details.
3. Validator Set Updates
- Any pending staking and unstaking requests are processed.
- The validator set is updated—new validators may be added, and inactive ones may be removed.
- Since staking influences validator selection, it is only processed at epoch transitions.
4. Protocol Upgrades (Optional)
In Byzantine Fault Tolerant (BFT) f
represents the number of faulty validators. 2f+1
represents the minimum number of validators
needed to agree on a transaction to ensure integrity and finality, even if up to f
validators are faulty.
For example, if f = 1
, this means 3 validators must confirm a transaction (a supermajority) to guarantee its
integrity,
ensuring that even if one validator is faulty, the correct decision still stands.
- If 2f+1 validators (a Byzantine Fault Tolerant supermajority) agree, the network may upgrade to a new protocol version.
- These upgrades may include:
- Security patches
- New protocol features
- Updates to the IOTA Move framework
Refer to the Protocol Upgrades page for details.