Compare Crash Fault Tolerant (Raft/Paxos) vs Byzantine Fault Tolerant (PBFT) consensus engines.
β Interview Prompt: Compare Crash Fault Tolerance (CFT - Raft/Paxos handling node crashes) vs Byzantine Fault Tolerance (PBFT handling malicious lying nodes).
Evaluating distributed consensus engines:
| Criteria | Crash Fault Tolerance (CFT - Raft / Paxos) | Byzantine Fault Tolerance (PBFT) |
|---|---|---|
| Assumptions | Nodes may crash or drop offline, but never lie or forge data | Nodes may be malicious, lie, or send corrupted messages |
| Quorum Threshold | Majority Quorum ($N/2 + 1$) | $3f + 1$ Total Nodes required to tolerate $f$ bad nodes |
| Use Case | Private enterprise clusters (etcd, Consul, CockroachDB) | Untrusted public networks, blockchain, federated PKI |
Code Implementation Example
{
"consensusType": "Crash Fault Tolerant (Raft)",
"assumedEnvironment": "Trusted Private Datacenter Network",
"nodeQuorum": "3 out of 5 Nodes"
}Use Raft/Paxos (CFT) for trusted internal datacenter clusters, and PBFT (BFT) for untrusted networks where nodes can act maliciously.