Quorum Blockchain Consensus Algorithms
This article will focus on the pros and cons of using Raft and Istanbul BFT in the Quorum permissioned blockchain.
Istanbul BFT was inspired by Clique PoA (Proof of Authority). Clique PoA is currently used for Ethereum’s Rinkeby test network as well as Ethereum private networks. I will cover Clique PoA in a future article.
BFT vs CFT
Istanbul BFT is Byzantine Fault Tolerant (BFT) while Raft is Crash Fault Tolerant (CFT). BFT protects the blockchain against bad actors, while CFT only protects against nodes crashing.
Unlike PoW (Bitcoin/Ethereum) and PoET (Hyperledger Sawtooth), we don’t have to worry about forks with Raft or IBFT, allowing for faster finality.
Consensus Type: CFT
Healthy Nodes Required: 2f+1
- Super fast with a default block minting at 50ms
- Does not mint empty blocks, giving us a big saving on storage space
- Transaction finality, insures we don’t get forks that would slow us down
- No protection from bad actors, in fact historical block information could be modified and then the block hashes recalculated to edit the past. A workaround could be to implement a custom solution that would store the block hashes on a separate system.
Consensus Type: BFT
Healthy and Honest Nodes Required: 3f+1
- Protects the blockchain from about 30% of the nodes being bad actors
- Super hard to tamper with the past, since a bad actor would need all the the private signing keys from the validator and proposer nodes to edit the blocks.
- Mints blocks at a constant rate, even empty blocks that take up unnecessary storage
- Like all voting algorithms, there is a lot of messaging overhead that gets exponentially worse as we add validator nodes.
If you trust all of your nodes to never be bad actors, then Raft is the way to go, but if you only partially trust members in your consortium, then go with IBFT.
How’d you like this article? If you liked it or learned something, please leave a clap! DarkBlock.io is an enterprise blockchain development company and we’re always taking on new clients. Reach out to me at firstname.lastname@example.org or visit our website at DarkBlock.io!