Byzantine fault tolerance is a system's ability to keep working even when some participants lie or fail. The name comes from a thought experiment about Byzantine generals trying to coordinate an attack while messengers might be captured or traitors might send false orders. The generals need a plan that works if some of them are unreliable. A blockchain has the same problem. Nodes might go offline. Nodes might send conflicting information. The network still needs to agree on which transactions are valid.
Practical Byzantine Fault Tolerance, or PBFT, is one algorithm that solves this. It works well when the number of faulty nodes is small relative to the total. Many permissioned blockchains use PBFT variants because they know who the participants are. Bitcoin's proof-of-work takes a different approach. It does not identify trustworthy nodes. It makes lying expensive by requiring computational work. The longest chain wins, and producing a longer chain than the honest network is prohibitively costly.
Fault tolerance thresholds
- Crash fault tolerance — nodes may fail but not lie
- Byzantine fault tolerance — nodes may fail and send false information
- PBFT — typically tolerates up to one-third of nodes being faulty
No system tolerates unlimited bad actors. The question is how much misbehavior the protocol can absorb before consensus breaks.
Comments
No comments yet. Be the first to share a thought.
Leave a comment