🛡️ Byzantine Fault Tolerance: The 3f+1 Rule
Learn why PBFT requires 3f+1 nodes to tolerate f malicious actors
Your Progress
0 / 5 completed🛡️ Byzantine Fault Tolerance
PBFT can tolerate up to f Byzantine (malicious or faulty) nodes in a network of n = 3f + 1 nodes. This means with 10 nodes, the system can handle up to 3 faulty nodes and still reach consensus.
The 3f + 1 Rule
Minimum Nodes Formula
To tolerate f faulty nodes, you need at least n = 3f + 1 total nodes.
Examples:
• 4 nodes → tolerate 1 fault
• 7 nodes → tolerate 2 faults
• 10 nodes → tolerate 3 faults
• 13 nodes → tolerate 4 faults
Quorum Size
Need 2f + 1 votes (quorum) in each phase to proceed. This ensures at least one honest node in any two quorums.
🧮 Interactive: Fault Tolerance Calculator
Adjust parameters to see how fault tolerance changes:
Max Faulty (f)
3
⌊(n-1)/3⌋
Quorum Size
7
2f + 1
Status
✓ Safe
Can reach consensus
✅ System is Byzantine Fault Tolerant
With 10 nodes, can tolerate up to 3 Byzantine faults. Currently 0 faulty - within safe limits.
📊 Interactive: Scenario Comparison
Load pre-configured scenarios to understand different tolerance levels:
Safe Configuration
System operates normally
With 10 nodes, can tolerate up to 3 faults. Currently 2 faulty nodes - system is safe.
Types of Byzantine Faults
Crash Failures
Node stops responding completely. Easier to detect than other faults.
Timing Failures
Node responds too slowly, missing deadlines. Can be due to network issues.
Malicious Behavior
Node actively tries to disrupt consensus by sending conflicting messages.
Arbitrary Faults
Node behaves erratically due to bugs, corruption, or external attacks.
The Tradeoff
PBFT's 3f+1 requirement means you need more nodes than simpler consensus algorithms. For example, Raft only needs 2f+1 nodes to tolerate f crash failures (not Byzantine). However, PBFT's extra nodes buy you protection against malicious actors, not just crashes.