skip to main content
research-article

The Next 700 BFT Protocols

Published:20 January 2015Publication History
Skip Abstract Section

Abstract

We present Abstract (ABortable STate mAChine replicaTion), a new abstraction for designing and reconfiguring generalized replicated state machines that are, unlike traditional state machines, allowed to abort executing a client’s request if “something goes wrong.”

Abstract can be used to considerably simplify the incremental development of efficient Byzantine fault-tolerant state machine replication (BFT) protocols that are notorious for being difficult to develop. In short, we treat a BFT protocol as a composition of Abstract instances. Each instance is developed and analyzed independently and optimized for specific system conditions. We illustrate the power of Abstract through several interesting examples.

We first show how Abstract can yield benefits of a state-of-the-art BFT protocol in a less painful and error-prone manner. Namely, we develop AZyzzyva, a new protocol that mimics the celebrated best-case behavior of Zyzzyva using less than 35% of the Zyzzyva code. To cover worst-case situations, our abstraction enables one to use in AZyzzyva any existing BFT protocol.

We then present Aliph, a new BFT protocol that outperforms previous BFT protocols in terms of both latency (by up to 360%) and throughput (by up to 30%). Finally, we present R-Aliph, an implementation of Aliph that is robust, that is, whose performance degrades gracefully in the presence of Byzantine replicas and Byzantine clients.

References

  1. Michael Abd-El-Malek, Gregory R. Ganger, Garth R. Goodson, Michael K. Reiter, and Jay J. Wylie. 2005. Fault-scalable Byzantine fault-tolerant services. In Proceedings of the Symposium on Operating Systems Principles (SOSP’05). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Marcos K. Aguilera, Svend Frolund, Vassos Hadzilacos, Stephanie L. Horn, and Sam Toueg. 2007. Abortable and query-abortable objects and their efficient implementation. In Proceedings of the ACM Symposium on Principles of Distributed computing (PODC’07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Yair Amir, Brian A. Coan, Jonathan Kirsch, and John Lane. 2011. Prime: Byzantine replication under attack. IEEE Trans. Dependable Sec. Comput. 8, 4 (2011), 564--577. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Hagit Attiya, Rachid Guerraoui, and Petr Kouznetsov. 2005. Computing with reads and writes in the absence of step contention. In Proceedings of the International Conference on Distributed Computing (DISC’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ken Birman, Dahlia Malkhi, and Robbert Van Renesse. 2010. Virtually Synchronous Methodology for Dynamic Service Replication. Technical Report MSR-TR-2010-151.Google ScholarGoogle Scholar
  6. Romain Boichat, Partha Dutta, Svend Frölund, and Rachid Guerraoui. 2003. Deconstructing Paxos. SIGACT News Distrib. Comput. 34, 1 (2003), 47--67. DOI:http://dx.doi.org/10.1145/637437.637447 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Francisco V. Brasileiro, Fabíola Greve, Achour Mostéfaoui, and Michel Raynal. 2001. Consensus in one communication step. In Proceedings of the International Conference on Parallel Computing Technologies (PaCT’01). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Miguel Castro and Barbara Liskov. 2002. Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20, 4 (Nov. 2002), 398--461. DOI:http://dx.doi.org/10.1145/571637.571640 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov. 2003. BASE: Using abstraction to improve fault tolerance. ACM Trans. Comput. Syst. 21, 3 (Aug. 2003), 236--269. DOI:http://dx.doi.org/10.1145/859716.859718 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Tushar D. Chandra, Robert Griesemer, and Joshua Redstone. 2007. Paxos made live: An engineering perspective. In Proceedings of the ACM Symposium on Principles of Distributed Computing (PODC’07). ACM. DOI:http://dx.doi.org/10.1145/1281100.1281103 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Wei Chen. 2007. Abortable Consensus and Its Application to Probabilistic Atomic Broadcast. Technical Report MSR-TR-2006-135.Google ScholarGoogle Scholar
  12. Allen Clement, Edmund Wong, Lorenzo Alvisi, Mike Dahlin, and Mirco Marchetti. 2009. Making Byzantine fault tolerant systems tolerate Byzantine faults. In Proceedings of the Symposium on Networked Systems Design and Implementation (NSDI’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira. 2006. HQ replication: A hybrid quorum protocol for Byzantine fault tolerance. In Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI’06). USENIX Association. http://portal.acm.org/citation.cfm?id=1298455.1298473. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Dan Dobre and Neeraj Suri. 2006. One-step consensus with zero-degradation. In Proceedings of the 2004 International Conference on Dependable Systems and Networks (DSN’06). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988. Consensus in the presence of partial synchrony. J. ACM 35, 2 (April 1988), 36. DOI:http://dx.doi.org/10.1145/42282.42283 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson. 1985. Impossibility of distributed consensus with one faulty process. J. ACM 32, 2 (April 1985), 374--382. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Miguel Garcia, Alysson Bessani, Ilir Gashi, Nuno Neves, and Rafael Obelheiro. 2011. OS diversity for intrusion tolerance: Myth or reality? In Proceedings of the 2011 IEEE/IFIP 41st International Conference on Dependable Systems&Networks (DSN’’11). IEEE Computer Society, Washington, DC, 383--394. DOI:http://dx.doi.org/10.1109/DSN.2011.5958251 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ilir Gashi, Peter T. Popov, and Lorenzo Strigini. 2007. Fault tolerance via diversity for off-the-shelf products: A study with SQL database servers. IEEE Trans. Dependable Sec. Comput. 4, 4 (2007), 280--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jim Gray. 1978. Notes on data base operating systems. In Operating Systems—An Advanced Course. Springer-Verlag, 393--481. http://dl.acm.org/citation.cfm?id=647433.723863 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Rachid Guerraoui, Nikola Knežević, Vivien Quéma, and Marko Vukolić. 2008. The Next 700 BFT Protocols. Technical Report LPD-REPORT-2008-008. EPFL.Google ScholarGoogle Scholar
  21. Rachid Guerraoui, Nikola Knežević, Vivien Quéma, and Marko Vukolić. 2010. The next 700 BFT protocols. In Proceedings of the ACM European Conference on Computer systems (EuroSys’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. James Hendricks, Gregory R. Ganger, and Michael K. Reiter. 2007. Low-overhead byzantine fault-tolerant storage. In Proceedings of the Symposium on Operating Systems Principles (SOSP’07). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Maurice Herlihy and Jeannette M. Wing. 1990. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 3 (1990), 463--492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Prasad Jayanti. 2003. Adaptive and efficient abortable mutual exclusion. In Proceedings of the ACM Symposium on Principles of Distributed Computing (PODC’03). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Rüdiger Kapitza, Johannes Behl, Christian Cachin, Tobias Distler, Simon Kuhnle, Seyed Vahid Mohammadi, Wolfgang Schröder-Preikschat, and Klaus Stengel. 2012. CheapBFT: Resource-efficient Byzantine fault tolerance. In Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys’12). ACM, New York, NY, 295--308. DOI:http://dx.doi.org/10.1145/2168836.2168866 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Ramakrishna Kotla, Lorenzo Alvisi, Mike Dahlin, Allen Clement, and Edmund Wong. 2010. Zyzzyva: Speculative Byzantine fault tolerance. ACM Trans. Comput. Syst. 27, 4, Article 7 (Jan. 2010), 39 pages. DOI:http://dx.doi.org/10.1145/1658357.1658358 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Leslie Lamport. 2003. Lower bounds for asynchronous consensus. In Proceedings of the International Workshop on Future Directions in Distributed Computing (FuDiCo’03).Google ScholarGoogle ScholarCross RefCross Ref
  28. Leslie Lamport. 2009. The PlusCal algorithm language. In Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing (ICTAC). 36--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Leslie Lamport, Dahlia Malkhi, and Lidong Zhou. 2010. Reconfiguring a state machine. SIGACT News 41, 1 (2010), 63--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Fernando Pedone. 2001. Boosting system performance with optimistic distributed protocols. Comput. J. 34, 12 (2001), 80--86. DOI:http://dx.doi.org/10.1109/2.970581 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Fred B. Schneider. 1990. Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Comput. Surv. 22, 4 (Dec. 1990), 299--319. DOI:http://dx.doi.org/10.1145/98163.98167 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Bianca Schroeder, Adam Wierman, and Mor Harchol-Balter. 2006. Open versus closed: A cautionary tale. In Proceedings of the Symposium on Networked Systems Design and Implementation (NSDI). 18--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Atul Singh, Tathagata Das, Petros Maniatis, Peter Druschel, and Timothy Roscoe. 2008. BFT protocols under fire. In Proceedings of the Symposium on Networked Systems Design and Implementation (NSDI’08). USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Sam Toueg. 1984. Randomized Byzantine agreements. In Proceedings of the 3rd Annual ACM Symposium on Principles of Distributed Computing. 163--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Robbert van Renesse and Rachid Guerraoui. 2010. Replication techniques for availability. In Replication, B. Charron-Bost, F. Pedone, and A. Schiper (Eds.). Springer-Verlag, 19--40. http://dl.acm.org/citation.cfm?id=2172338.2172340" Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Robbert van Renesse and Fred B. Schneider. 2004. Chain replication for supporting high throughput and availability. In Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI’04). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Giuliana Santos Veronese, Miguel Correia, Alysson Neves Bessani, and Lau Cheuk Lung. 2009. Spin one’s wheels? Byzantine fault tolerance with a spinning primary. In Proceedings of International Symposium on Reliable Distributed Systems (SRDS’09). IEEE Computer Society. DOI:http://dx.doi.org/10.1109/SRDS.2009.36 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Giuliana Santos Veronese, Miguel Correia, Alysson Neves Bessani, Lau Cheuk Lung, and Paulo Veríssimo. 2013. Efficient byzantine fault-tolerance. IEEE Trans. Comput. 62, 1 (2013), 16--30. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The Next 700 BFT Protocols

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Computer Systems
        ACM Transactions on Computer Systems  Volume 32, Issue 4
        January 2015
        124 pages
        ISSN:0734-2071
        EISSN:1557-7333
        DOI:10.1145/2723895
        Issue’s Table of Contents

        Copyright © 2015 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 20 January 2015
        • Accepted: 1 July 2014
        • Revised: 1 February 2014
        • Received: 1 May 2012
        Published in tocs Volume 32, Issue 4

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader