Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
ACM Transactions on Computer Systems (TOCS)
Practical Byzantine fault tolerance
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Practical byzantine fault tolerance and proactive recovery
ACM Transactions on Computer Systems (TOCS)
Netbed: an integrated experimental environment
ACM SIGCOMM Computer Communication Review
Hints for computer system design
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Packing Messages as a Tool for Boosting the Performance of Total Ordering Protocls
HPDC '97 Proceedings of the 6th IEEE International Symposium on High Performance Distributed Computing
Backoff Protocols for Distributed Mutual Exclusion and Ordering
ICDCS '01 Proceedings of the The 21st International Conference on Distributed Computing Systems
Separating agreement from execution for byzantine fault tolerant services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
High Throughput Byzantine Fault Tolerance
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
The LOCKSS peer-to-peer digital preservation system
ACM Transactions on Computer Systems (TOCS)
BAR fault tolerance for cooperative services
Proceedings of the twentieth ACM symposium on Operating systems principles
Fault-scalable Byzantine fault-tolerant services
Proceedings of the twentieth ACM symposium on Operating systems principles
Proceedings of the 2006 conference on Applications, technologies, architectures, and protocols for computer communications
Attrition defenses for a peer-to-peer digital preservation system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
HQ replication: a hybrid quorum protocol for byzantine fault tolerance
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Zyzzyva: speculative byzantine fault tolerance
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Low-overhead byzantine fault-tolerant storage
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
NSDI'08 Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation
dfence: transparent network-based denial of service mitigation
NSDI'07 Proceedings of the 4th USENIX conference on Networked systems design & implementation
LADIS '08 Proceedings of the 2nd Workshop on Large-Scale Distributed Systems and Middleware
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Zyzzyva: Speculative Byzantine fault tolerance
ACM Transactions on Computer Systems (TOCS)
Proceedings of the 5th European conference on Computer systems
Brief announcement: a leader-free byzantine consensus algorithm
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Applying prolog to develop distributed systems
Theory and Practice of Logic Programming
Prophecy: using history for high-throughput fault tolerance
NSDI'10 Proceedings of the 7th USENIX conference on Networked systems design and implementation
ZZ and the art of practical BFT execution
Proceedings of the sixth conference on Computer systems
Breaking the O(n2) bit barrier: Scalable byzantine agreement with an adaptive adversary
Journal of the ACM (JACM)
Accurate byzantine agreement with feedback
Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing
A leader-free Byzantine consensus algorithm
ICDCN'10 Proceedings of the 11th international conference on Distributed computing and networking
CheapBFT: resource-efficient byzantine fault tolerance
Proceedings of the 7th ACM european conference on Computer Systems
Proceedings of the Seventh Annual Workshop on Cyber Security and Information Intelligence Research
Accurate byzantine agreement with feedback
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
On the price of equivocation in byzantine agreement
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
Resource-competitive analysis: a new perspective on attack-resistant distributed computing
FOMC '12 Proceedings of the 8th International Workshop on Foundations of Mobile Computing
Surviving congestion in geo-distributed storage systems
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
All about Eve: execute-verify replication for multi-core servers
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
DMME: A Distributed LTE Mobility Management Entity
Bell Labs Technical Journal
On the practicality of practical Byzantine fault tolerance
Proceedings of the 13th International Middleware Conference
Communications of the ACM
PoWerStore: proofs of writing for efficient and robust storage
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Towards Byzantine fault tolerant publish/subscribe: a state machine approach
Proceedings of the 9th Workshop on Hot Topics in Dependable Systems
On the efficiency of durable state machine replication
USENIX ATC'13 Proceedings of the 2013 USENIX conference on Annual Technical Conference
Finding trojan message vulnerabilities in distributed systems
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Hi-index | 0.02 |
This paper argues for a new approach to building Byzantine fault tolerant replication systems. We observe that although recently developed BFT state machine replication protocols are quite fast, they don't tolerate Byzantine faults very well: a single faulty client or server is capable of rendering PBFT, Q/U, HQ, and Zyzzyva virtually unusable. In this paper, we (1) demonstrate that existing protocols are dangerously fragile, (2) define a set of principles for constructing BFT services that remain useful even when Byzantine faults occur, and (3) apply these principles to construct a new protocol, Aardvark. Aardvark can achieve peak performance within 40% of that of the best existing protocol in our tests and provide a significant fraction of that performance when up to f servers and any number of clients are faulty. We observe useful throughputs between 11706 and 38667 requests per second for a broad range of injected faults.