How do consensus mechanisms (e.g., IBFT, RAFT, PBFT) work in permissioned networks? What trade-offs do they introduce?
1. Consensus mechanisms: RAFT, BFT (PBFT, IBFT, Hotstuff)
RAFT
- Type: Crash Fault Tolerant (CFT).
- How it works: A single leader proposes blocks, followers replicate.
- Strengths:
- Simple, very fast (low latency).
- Great for private networks with trusted participants.
- Only tolerates crashes/failures, not malicious actors.
- Clique (PoA, some BFT but not as high as IBFT, slower than RAFT, legacy)
Byzantine Fault Tolerant (BFT) systems
- PBFT (Practical Byzantine Fault Tolerance)
- Works for fixed validator set, adding or removing nodes means re running the bootstrap
- Leader proposes → replicas exchange messages (pre-prepare → prepare → commit)
- Requires 3f + 1 nodes to tolerate f Byzantine faults.
- Message complexity: O(n²) per round (lots of all-to-all communication).
- Weakness: Doesn’t scale well beyond tens of validators due to message overhead.
- IBFT (Istanbul Byzantine Fault Tolerant)
- Variant of PBFT designed for Ethereum clients (Quorum).
- How it works:
- Imagine you have n banks (nodes) running the same ledger.
- One of them is the leader (primary) for this round.
- A client sends a payment request → the leader proposes it.
- The proposal goes through three steps:
- Pre-prepare: leader broadcasts its proposal.
- Prepare: Validators broadcast a “prepare” message if they think the block is valid.
- Commit: (If enough votes are collected (typically 2f+1 out of n), validators broadcast a “commit)
- Once the threshold of commits is reached, the block is officially added to the chain.) and the transaction is final
- Message complexity: Also O(n²), but optimized for smaller, permissioned networks.
- Strengths:
- Provides finality (once a block is committed, it’s irreversible).
- Resilient to some malicious or misconfigured nodes.
- Limitations:
- More communication overhead, slower than RAFT.
- Example - In multi-party consortiums where there’s some distrust among participants, or regulators require Byzantine fault tolerance. Cross-border FX PvP where banks in different jurisdictions may not fully trust each other.
Tendermint (2016)
- Used in Cosmos.
- Strong BFT finality, rotating proposers.
- Message complexity O(n²).
- Mature and widely deployed.
Hotstuff (Espresso Systems)