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.
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 100 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.