skip to main content
survey
Public Access

On Choosing Server- or Client-Side Solutions for BFT

Published: 18 March 2016 Publication History

Abstract

Byzantine Fault Tolerant (BFT) protocols have the ability to work correctly even when up to a threshold f of system servers are compromised. This makes them appealing for the construction of critical systems connected to the Internet, which are constantly a target for cyber attacks.
BFT protocols differ based on the kind of application, deployment settings, performance, access control mechanisms, number of servers in the system, and protocol implementation. The large number of protocols present in the literature and their differences make it difficult for a system builder to choose the solution that best satisfies the requirements of the system that he wants to build. In particular, the main difference among BFT protocols lies in their system models: server-side versus client-side. In the server-side model each client relies on the system to consistently order and replicate updates, while in the client-side model each client actively participates in the protocol.
In this article, we classify BFT protocols as server-side or client-side. We analyze the trade-offs between the two models, describe systems that use these models and the trade-offs they choose, highlight the research gaps, and provide guidelines to system builders in order to choose the solution that best satisfies their needs.

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. ACM SIGOPS Operating Systems Review 39, 5 (2005), 59--74.
[2]
Atul Adya, William J. Bolosky, Miguel Castro, Gerald Cermak, Ronnie Chaiken, John R. Douceur, Jon Howell, Jacob R. Lorch, Marvin Theimer, and Roger P. Wattenhofer. 2002. FARSITE: Federated, available, and reliable storage for an incompletely trusted environment. ACM SIGOPS Operating Systems Review 36, SI (2002), 1--14.
[3]
Yair Amir, Brian Coan, Jonathan Kirsch, and John Lane. 2008. Byzantine replication under attack. In Proceedings of the IEEE International Conference on Dependable Systems and Networks with FTCS and DCC. IEEE, 197--206.
[4]
Yair Amir, Jonathan Kirsch, John Lane, and Marco Platania. 2014. Prime 2.0. Retrieved from http://www.dsn. jhu.edu/download.html.
[5]
Johannes Behl, Tobias Distler, and Rüdiger Kapitza. 2014. Scalable BFT for multi-cores: Actor-based decomposition and consensus-oriented parallelization. In Proceedings of the 10th USENIX Conference on Hot Topics in System Dependability. USENIX Association, 9--14.
[6]
Mihir Bellare, Ran Canetti, and Hugo Krawczyk. 1996. Keying hash functions for message authentication. In Advances in Cryptology—CRYPTO’96. Springer, 1--15.
[7]
Alysson Bessani, Miguel Correia, Bruno Quaresma, Fernando André, and Paulo Sousa. 2013. DepSky: Dependable and secure storage in a cloud-of-clouds. ACM Transactions on Storage 9, 4 (2013), 12.
[8]
George Robert Blakley. 1979. Safeguarding cryptographic keys. In Proceedings of the International Workshop on Managing Requirements Knowledge. IEEE Computer Society, 313--317.
[9]
Miguel Castro and Barbara Liskov. 1999. Practical Byzantine fault tolerance. In OSDI, Vol. 99. 173--186.
[10]
Miguel Castro and Barbara Liskov. 2002. Practical Byzantine fault tolerance and proactive recovery. ACM Transactions on Computer Systems 20, 4 (2002), 398--461.
[11]
Allen Clement, Manos Kapritsos, Sangmin Lee, Yang Wang, Lorenzo Alvisi, Mike Dahlin, and Taylor Riche. 2009a. Upright cluster services. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. ACM, 277--290.
[12]
Allen Clement, Edmund L. Wong, Lorenzo Alvisi, Michael Dahlin, and Mirco Marchetti. 2009b. Making Byzantine fault tolerant systems tolerate Byzantine faults. In Proceedings of the 6th USENIX Symposium on Networked System Design and Implementation (NSDI), Vol. 9. USENIX, 153--168.
[13]
Frederick B. Cohen. 1993. Operating system protection through program evolution. Computers and Security 12, 6 (1993), 565--584.
[14]
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 7th Symposium on Operating Systems Design and Implementation (OSDI). USENIX Association, 177--190.
[15]
Wagner Saback Dantas, Alysson Neves Bessani, Joni da Silva Fraga, and Miguel Correia. 2007. Evaluating Byzantine quorum systems. In Proceedings of the 26th IEEE International Symposium on Reliable Distributed Systems (SRDS’07). IEEE, 253--264.
[16]
Whitfield Diffie and Martin E. Hellman. 1976. New directions in cryptography. IEEE Transactions on Information Theory 22, 6 (1976), 644--654.
[17]
Dan Dobre, Ghassan Karame, Wenting Li, Matthias Majuntke, Neeraj Suri, and Marko Vukolić. 2013. PoWerStore: Proofs of writing for efficient and robust storage. In Proceedings of the 2013 ACM SIGSAC Conference on Computer and Communications Security (CCS). ACM, 285--298.
[18]
Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988. Consensus in the presence of partial synchrony. Journal of the ACM 35, 2 (1988), 288--323.
[19]
C. Fragouli, J. Le Boudec, and J. Widmer. 2006. Network coding: An instant primer. Computer Communication Review 36, 1 (2006), 63.
[20]
Miguel Garcia, Nuno Neves, and Alysson Bessani. 2013. An intrusion-tolerant firewall design for protecting SIEM systems. In Proceedings of the 2013 43rd Annual IEEE/IFIP Conference on Dependable Systems and Networks Workshop (DSN-W). IEEE, 1--7.
[21]
Cristiano Giuffrida, Anton Kuijsten, and Andrew S. Tanenbaum. 2012. Enhanced operating system security through efficient and fine-grained address space randomization. In Proceedings of the USENIX Security Symposium.
[22]
Garth R. Goodson, Jay J. Wylie, Gregory R. Ganger, and Michael K. Reiter. 2004. Efficient Byzantine-tolerant erasure-coded storage. In Proceedings of the 2004 International Conference on Dependable Systems and Networks. IEEE, 135--144.
[23]
Rachid Guerraoui, Nikola Knežević, Vivien Quéma, and Marko Vukolić. 2010. The next 700 BFT protocols. In Proceedings of the 5th European Conference on Computer Systems (Eurosys). ACM, 363--376.
[24]
James Hendricks, Gregory R. Ganger, and Michael K. Reiter. 2007. Low-overhead Byzantine fault-tolerant storage. In ACM SIGOPS Operating Systems Review, Vol. 41. ACM, 73--86.
[25]
Maurice P. Herlihy and Jeannette M. Wing. 1990. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12, 3 (1990), 463--492.
[26]
Andrei Homescu, Steven Neisius, Per Larsen, Stefan Brunthaler, and Michael Franz. 2013. Profile-guided automated software diversity. In Proceedings of the IEEE/ACM International Symposium on Code Generation and Optimization (CGO). IEEE, 1--11.
[27]
Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, and Benjamin Reed. 2010. ZooKeeper: Wait-free coordination for internet-scale systems. In Proceedings of the USENIX Annual Technical Conference, Vol. 8. 9.
[28]
Jonathan Kirsch, Stuart Goose, Yair Amir, Dong Wei, and Paul Skare. 2014. Survivable SCADA via intrusion-tolerant replication. IEEE Transactions on Smart Grid 5, 1 (2014), 60--70.
[29]
Ramakrishna Kotla, Lorenzo Alvisi, Mike Dahlin, Allen Clement, and Edmund Wong. 2007. Zyzzyva: Speculative Byzantine fault tolerance. In ACM SIGOPS Operating Systems Review, Vol. 41. ACM, 45--58.
[30]
Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21, 7 (1978), 558--565.
[31]
Leslie Lamport. 1986. On interprocess communication. Distributed Computing 1, 2 (1986), 86--101.
[32]
Leslie Lamport. 1998. The part-time parliament. ACM Transactions on Computer Systems 16, 2 (1998), 133--169.
[33]
Leslie Lamport. 2001. Paxos made simple. ACM Sigact News 32, 4 (2001), 18--25.
[34]
Leslie Lamport, Robert Shostak, and Marshall Pease. 1982. The Byzantine generals problem. ACM Transactions on Programming Languages and Systems 4, 3 (1982), 382--401.
[35]
Barbara Liskov and Rodrigo Rodrigues. 2006. Tolerating Byzantine faulty clients in a quorum system. In Proceedings of the 26th IEEE International Conference on Distributed Computing Systems (ICDCS’06). IEEE, 34--34.
[36]
Dahlia Malkhi and Michael Reiter. 1998a. Byzantine quorum systems. Distributed Computing 11, 4 (1998), 203--213.
[37]
Dahlia Malkhi and Michael K. Reiter. 1998b. Secure and scalable replication in Phalanx. In Proceedings of the 17th IEEE Symposium on Reliable Distributed Systems. IEEE, 51--58.
[38]
Dahlia Malkhi and Michael K. Reiter. 1998c. Survivable consensus objects. In Proceedings of the 17th IEEE Symposium on Reliable Distributed Systems. IEEE, 271--279.
[39]
Jean-Philippe Martin and Lorenzo Alvisi. 2006. Fast Byzantine consensus. IEEE Transactions on Dependable and Secure Computing 3, 3 (2006), 202--215.
[40]
Michael G. Merideth and Michael K. Reiter. 2010. Selected results from the latest decade of quorum systems research. In Replication. Springer, 185--206.
[41]
Zarko Milosevic, Martin Biely, and André Schiper. 2013. Bounded delay in Byzantine tolerant state machine replication. In Proceedings of the IEEE 32nd International Symposium on Reliable Distributed Systems (SRDS). IEEE, 61--70.
[42]
Vasilis Pappas, Michalis Polychronakis, and Angelos D. Keromytis. 2012. Smashing the gadgets: Hindering return-oriented programming using in-place code randomization. In Proceedings of the IEEE Symposium on Security and Privacy (SP). IEEE, 601--615.
[43]
Marshall Pease, Robert Shostak, and Leslie Lamport. 1980. Reaching agreement in the presence of faults. Journal of the ACM 27, 2 (1980), 228--234.
[44]
Marco Platania, Daniel Obenshain, Thomas Tantillo, Ricky Sharma, and Yair Amir. 2014. Towards a practical survivable intrusion tolerant replication system. In Proceedings of the IEEE 33rd International Symposium on Reliable Distributed Systems (SRDS). IEEE, 242--252.
[45]
Ronald L. Rivest, Adi Shamir, and Len Adleman. 1978. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM 21, 2 (1978), 120--126.
[46]
Rodrigo Rodrigues, Miguel Castro, and Barbara Liskov. 2001. BASE: Using abstraction to improve fault tolerance. ACM SIGOPS Operating Systems Review 35, 5 (2001), 15--28.
[47]
Tom Roeder and Fred B. Schneider. 2010. Proactive obfuscation. ACM Transactions on Computer Systems 28, 2 (2010), 4.
[48]
Douglas C. Schmidt and Tatsuya Suda. 1993. Transport system architecture services for high-performance communications systems. IEEE Journal on Selected Areas in Communications 11, 4 (1993), 489--506.
[49]
Fred B. Schneider. 1990. Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys (CSUR) 22, 4 (1990), 299--319.
[50]
Marco Serafini, Péter Bokor, Dan Dobre, Matthias Majuntke, and Neeraj Suri. 2010. Scrooge: Reducing the costs of fast Byzantine replication in presence of unresponsive replicas. In Proceedings of the 2010 IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 353--362.
[51]
Adi Shamir. 1979. How to share a secret. Communications of the ACM 22, 11 (1979), 612--613.
[52]
Konstantin Shvachko, Hairong Kuang, Sanjay Radia, and Robert Chansler. 2010. The hadoop distributed file system. In Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 1--10.
[53]
João Sousa and Alysson Bessani. 2012. From Byzantine consensus to BFT state machine replication: A latency-optimal transformation. In Proceedings of the 2012 9th European Dependable Computing Conference (EDCC). IEEE, 37--48.
[54]
Paulo Sousa, Alysson Neves Bessani, Miguel Correia, Nuno Ferreira Neves, and Paulo Verissimo. 2010. Highly available intrusion-tolerant services with proactive-reactive recovery. IEEE Transactions on Parallel and Distributed Systems 21, 4 (2010), 452--465.
[55]
Jian Yin, Jean-Philippe Martin, Arun Venkataramani, Lorenzo Alvisi, and Mike Dahlin. 2003. Separating agreement from execution for Byzantine fault tolerant services. In ACM SIGOPS Operating Systems Review, Vol. 37. ACM, 253--267.
[56]
Wenbing Zhao and F. Eugenio Villaseca. 2008. Byzantine fault tolerance for electric power grid monitoring and control. In Proceedings of the International Conference on Embedded Software and Systems (ICESS’08). IEEE, 129--135.
[57]
Lidong Zhou, Fred B. Schneider, and Robbert Van Renesse. 2002. COCA: A secure distributed online certification authority. ACM Transactions on Computer Systems (TOCS) 20, 4 (2002), 329--368.

Cited By

View all
  • (2024)Towards Full Stack Adaptivity in Permissioned BlockchainsProceedings of the VLDB Endowment10.14778/3641204.364121617:5(1073-1080)Online publication date: 1-Jan-2024
  • (2024)BFTDiagnosis: An automated security testing framework with malicious behavior injection for BFT protocolsComputer Networks10.1016/j.comnet.2024.110404249(110404)Online publication date: Jul-2024
  • (2023)SoK: Essentials of BFT Consensus for Blockchains2023 Fifth International Conference on Blockchain Computing and Applications (BCCA)10.1109/BCCA58897.2023.10338868(315-328)Online publication date: 24-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 48, Issue 4
May 2016
605 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/2891449
  • Editor:
  • Sartaj Sahni
Issue’s Table of Contents
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: 18 March 2016
Accepted: 01 January 2016
Revised: 01 November 2015
Received: 01 March 2015
Published in CSUR Volume 48, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. BFT quorums
  2. BFT state machine replication
  3. deployment strategies
  4. performance
  5. trade-offs

Qualifiers

  • Survey
  • Research
  • Refereed

Funding Sources

  • DARPA
  • Loewe CASED projects
  • TUD EC-SPRIDE

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)159
  • Downloads (Last 6 weeks)12
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Towards Full Stack Adaptivity in Permissioned BlockchainsProceedings of the VLDB Endowment10.14778/3641204.364121617:5(1073-1080)Online publication date: 1-Jan-2024
  • (2024)BFTDiagnosis: An automated security testing framework with malicious behavior injection for BFT protocolsComputer Networks10.1016/j.comnet.2024.110404249(110404)Online publication date: Jul-2024
  • (2023)SoK: Essentials of BFT Consensus for Blockchains2023 Fifth International Conference on Blockchain Computing and Applications (BCCA)10.1109/BCCA58897.2023.10338868(315-328)Online publication date: 24-Oct-2023
  • (2022)Queuing Theory of Improved Practical Byzantine Fault Tolerant ConsensusMathematics10.3390/math1002018210:2(182)Online publication date: 7-Jan-2022
  • (2022)ZERMIA - A Fault Injector Framework for Testing Byzantine Fault Tolerant ProtocolsNetwork and System Security10.1007/978-3-030-92708-0_3(38-60)Online publication date: 1-Jan-2022
  • (2021)Blockchain-Based Network Collaborative Design Resource Sharing and Tracing MethodComputer Science and Application10.12677/CSA.2021.111229411:12(2900-2912)Online publication date: 2021
  • (2021)A Survey on Deep Learning for Software EngineeringACM Computing Surveys10.1145/3505243Online publication date: 22-Dec-2021
  • (2020)A Blockchain Consensus Mechanism for Marine Data Management SystemBlockchain and Trustworthy Systems10.1007/978-981-15-9213-3_2(18-30)Online publication date: 12-Nov-2020
  • (2020)Byzantine Fault-Tolerant Consensus Algorithm Based on the Scoring MechanismThe 10th International Conference on Computer Engineering and Networks10.1007/978-981-15-8462-6_77(676-684)Online publication date: 6-Oct-2020
  • (2019)Scientific workflow execution system based on mimic defense in the cloud environmentFrontiers of Information Technology & Electronic Engineering10.1631/FITEE.180062119:12(1522-1536)Online publication date: 10-Jan-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media