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