Consensus
Overview of Celo's consensus protocol and network validators.
Protocol
Celo’s consensus protocol is based on an implementation called Istanbul, or IBFT. IBFT was developed by AMIS and proposed as an extension to go-ethereum but never merged. Variants of IBFT exist in both the Quorum and Pantheon clients. We’ve modified Istanbul to bring it up to date with the latest go-ethereum releases and we’re fixing correctness and liveness issues and improving its scalability and security.
Finality
Blocks in IBFT protocol are final, which means that there are no forks and any valid block must be somewhere in the main chain. The only way to revert a block would be to utilise social coordination to get all participants to manually revert the block.
Validators
Celo’s consensus protocol is performed by nodes that are selected as validators. There is a maximum cap on the number of active validators that can be changed by governance proposal, which is currently set at 110 validators. The active validator set is determined via the proof-of-stake process and is updated at the end of each epoch, a fixed period of approximately one day.