Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Byzantine Fault-tolerant State-machine Replication from a Systems Perspective

Published: 11 February 2021 Publication History

Abstract

Byzantine fault-tolerant (BFT) state-machine replication makes it possible to design systems that are resilient against arbitrary faults, a requirement considered crucial for an increasing number of use cases such as permissioned blockchains, firewalls, and SCADA systems. Unfortunately, the strong fault-tolerance guarantees provided by BFT replication protocols come at the cost of a high complexity, which is why it is inherently difficult to correctly implement BFT systems in practice. This is all the more true with regard to the plethora of solutions and ideas that have been developed in recent years to improve performance, availability, or resource efficiency. This survey aims at facilitating the task of building BFT systems by presenting an overview of state-of-the-art techniques and analyzing their practical implications, for example, with respect to applicability and composability. In particular, this includes problems that arise in the context of concrete implementations, but which are often times passed over in literature. Starting with an in-depth discussion of the most important architectural building blocks of a BFT system (i.e., clients, agreement protocol, execution stage), the survey then focuses on selected approaches and mechanisms addressing specific tasks such as checkpointing and recovery.

References

[1]
Remzi Can Aksoy and Manos Kapritsos. 2019. Aegean: Replication beyond the client-server model. In Proceedings of the 27th Symposium on Operating Systems Principles (SOSP’19). 385--398.
[2]
Yair Amir, Brian Coan, Jonathan Kirsch, and John Lane. 2011. Prime: Byzantine replication under attack. IEEE Trans. Depend. Sec. Comput. 8, 4 (2011), 564--577.
[3]
Ittai Anati, Shay Gueron, Simon Johnson, and Vincent Scarlata. 2013. Innovative technology for CPU based attestation and sealing. In Proceedings of the 2nd International Workshop on Hardware and Architectural Support for Security and Privacy (HASP’13). 1--7.
[4]
Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolić, Sharon Weed Cocco, and Jason Yellick. 2018. Hyperledger fabric: A distributed operating system for permissioned blockchains. In Proceedings of the 13th EuroSys Conference (EuroSys’18). Article 30, 15 pages.
[5]
ARM. 2009. Security Technology Building a Secure System Using TrustZone Technology. White Paper.
[6]
Pierre-Louis Aublin, Rachid Guerraoui, Nikola Knežević, Vivien Quéma, and Marko Vukolić. 2015. The next 700 BFT protocols. ACM Trans. Comput. Syst. 32, 4, Article 12 (2015), 45 pages.
[7]
Pierre-Louis Aublin, Sonia Ben Mokhtar, and Vivien Quéma. 2013. RBFT: Redundant Byzantine fault tolerance. In Proceedings of the 33rd International Conference on Distributed Computing Systems (ICDCS’13). 297--306.
[8]
Algirdas Avižienis. 1985. The N-version approach to fault-tolerant software. IEEE Trans. Softw. Eng. 11, 12 (1985), 1491--1501.
[9]
Amy Babay, John Schultz, Thomas Tantillo, Samuel Beckley, Eamon Jordan, Kevin Ruddell, Kevin Jordan, and Yair Amir. 2019. Deploying intrusion-tolerant SCADA for the power grid. In Proceedings of the 49th International Conference on Dependable Systems and Networks (DSN’19). 328--335.
[10]
Mathieu Baudet, Avery Ching, Andrey Chursin, George Danezis, François Garillot, Zekun Li, Dahlia Malkhi, Oded Naor, Dmitri Perelman, and Alberto Sonnino. 2019. State Machine Replication in the Libra Blockchain. Technical Report. Calibra.
[11]
Johannes Behl, Tobias Distler, and Rüdiger Kapitza. 2015. Consensus-oriented parallelization: How to earn your first million. In Proceedings of the 16th Middleware Conference (Middleware’15). 173--184.
[12]
Johannes Behl, Tobias Distler, and Rüdiger Kapitza. 2017. Hybrids on steroids: SGX-based high performance BFT. In Proceedings of the 12th European Conference on Computer Systems (EuroSys’17). 222--237.
[13]
Christian Berger and Hans P. Reiser. 2018. Scaling Byzantine consensus: A broad analysis. In Proceedings of the 2nd Workshop on Scalable and Resilient Infrastructures for Distributed Ledgers (SERIAL’18). 13--18.
[14]
Christian Berger, Hans P. Reiser, João Sousa, and Alysson Bessani. 2019. Resilient wide-area Byzantine consensus using adaptive weighted replication. In Proceedings of the 38th International Symposium on Reliable Distributed Systems (SRDS’19). 183--192.
[15]
Emery D. Berger and Benjamin G. Zorn. 2006. DieHard: Probabilistic memory safety for unsafe languages. ACM SIGPLAN Not. 41, 6 (2006), 158--168.
[16]
Alysson Bessani, Eduardo Alchieri, João Sousa, André Oliveira, and Fernando Pedone. 2020. From Byzantine replication to blockchain: Consensus is only the beginning. In Proceedings of the 50th International Conference on Dependable Systems and Networks (DSN’20). 424--436.
[17]
Alysson Bessani, Marcel Santos, João Felix, Nuno Neves, and Miguel Correia. 2013. On the efficiency of durable state machine replication. In Proceedings of the 2013 USENIX Annual Technical Conference (USENIX ATC’13). 169--180.
[18]
Alysson Bessani, João Sousa, and Eduardo E. P. Alchieri. 2014. State machine replication for the masses with BFT-SMaRt. In Proceedings of the 44th International Conference on Dependable Systems and Networks (DSN’14). 355--362.
[19]
Alysson Neves Bessani, Hans P. Reiser, Paulo Sousa, Ilir Gashi, Vladimir Stankovic, Tobias Distler, Rüdiger Kapitza, Alessandro Daidone, and Rafael Obelheiro. 2008. FOREVER: Fault/intrusiOn REmoVal through evolution 8 recovery. In Proceedings of the Middleware 2008 Conference Companion (Middleware’08 Poster Session). 99--101.
[20]
Alysson Neves Bessani, Paulo Sousa, Miguel Correia, Nuno Ferreira Neves, and Paulo Veríssimo. 2008. The CRUTIAL way of critical infrastructure protection. IEEE Secur. Priv. 6, 6 (2008), 44--51.
[21]
Sandeep Bhatkar, Daniel C. DuVarney, and R. Sekar. 2003. Address obfuscation: An efficient approach to combat a board range of memory error exploits. In Proceedings of the 12th USENIX Security Symposium (USENIX Security’03). 105--120.
[22]
Alexandra Boldyreva. 2003. Threshold signatures, multisignatures and blind signatures based on the gap-diffie-hellman-group signature scheme. In Proceedings of the 6th International Workshop on Public Key Cryptography (PKC’03). 31--46.
[23]
Ethan Buchman. 2016. Tendermint: Byzantine Fault Tolerance in the Age of Blockchains. Master Thesis. University of Guelph.
[24]
Christian Cachin, Simon Schubert, and Marko Vukolić. 2017. Non-determinism in Byzantine fault-tolerant replication. In Proceedings of the 20th International Conference on Principles of Distributed Systems (OPODIS’16). Article 24, 16 pages.
[25]
Christian Cachin and Marko Vukolic. 2017. Blockchain consensus protocols in the wild (keynote talk). In Proceedings of the 31st International Symposium on Distributed Computing (DISC’17). 1--16.
[26]
Miguel Castro and Barbara Liskov. 1999. Practical Byzantine fault tolerance. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI’99). 173--186.
[27]
Miguel Castro and Barbara Liskov. 2002. Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20, 4 (2002), 398--461.
[28]
Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov. 2003. BASE: Using abstraction to improve fault tolerance. ACM Trans. Comput. Syst. 21, 3 (2003), 236--269.
[29]
Tushar D. Chandra, Robert Griesemer, and Joshua Redstone. 2007. Paxos made live: An engineering perspective. In Proceedings of the 26th Symposium on Principles of Distributed Computing (PODC’07). 398--407.
[30]
Monica Chew and Dawn Song. 2002. Mitigating Buffer Overflows by Operating System Randomization. Technical Report CMU-CS-02-197. Carnegie Mellon University.
[31]
Byung-Gon Chun, Petros Maniatis, Scott Shenker, and John Kubiatowicz. 2007. Attested append-only memory: Making adversaries stick to their word. In Proceedings of the 21st Symposium on Operating Systems Principles (SOSP’07). 189--204.
[32]
Allen Clement, Manos Kapritsos, Sangmin Lee, Yang Wang, Lorenzo Alvisi, Mike Dahlin, and Taylor Riche. 2009. UpRight cluster services. In Proceedings of the 22nd Symposium on Operating Systems Principles (SOSP’09). 277--290.
[33]
Allen Clement, Edmund Wong, Lorenzo Alvisi, Mike Dahlin, and Mirco Marchetti. 2009. Making Byzantine fault tolerant systems tolerate Byzantine faults. In Proceedings of the 6th Symposium on Networked Systems Design and Implementation (NSDI’09). 153--168.
[34]
Miguel Correia, Nuno Ferreira Neves, Lau Cheuk Lung, and Paulo Veríssimo. 2007. Worm-IT -- A wormhole-based intrusion-tolerant group communication system. J. Syst. Softw. 80, 2 (2007), 178--197.
[35]
Miguel Correia, Nuno Ferreira Neves, and Paulo Veríssimo. 2013. BFT-TO: Intrusion tolerance with less replicas. Comput. J. 56, 6 (2013), 693--715.
[36]
Miguel Correia, Giuliana Santos Veronese, Nuno Ferreira Neves, and Paulo Veríssimo. 2011. Byzantine consensus in asynchronous message-passing systems: A survey. Int. J. Crit. Comput.-Based Syst. 2, 2 (2011), 141--161.
[37]
Domenico Cotroneo, Roberto Natella, Roberto Pietrantuono, and Stefano Russo. 2014. A survey of software aging and rejuvenation studies. ACM J. Emerg. Technol. Comput. Syst. 10, 1 (2014), 1--34.
[38]
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’06). 177--190.
[39]
Christian Deyerl and Tobias Distler. 2019. In search of a scalable Raft-based replication architecture. In Proceedings of the 6th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC’19). 1--7.
[40]
Tobias Distler, Christian Cachin, and Rüdiger Kapitza. 2016. Resource-efficient Byzantine fault tolerance. IEEE Trans. Comput. 65, 9 (2016), 2807--2819.
[41]
Tobias Distler and Rüdiger Kapitza. 2011. Increasing performance in Byzantine fault-tolerant systems with on-demand replica consistency. In Proceedings of the 6th European Conference on Computer Systems (EuroSys’11). 91--105.
[42]
Tobias Distler, Rüdiger Kapitza, Ivan Popov, Hans P. Reiser, and Wolfgang Schröder-Preikschat. 2011. SPARE: Replicas on hold. In Proceedings of the 18th Network and Distributed System Security Symposium (NDSS’11). 407--420.
[43]
Tobias Distler, Rüdiger Kapitza, and Hans P. Reiser. 2010. State transfer for hypervisor-based proactive recovery of heterogeneous replicated services. In Proceedings of the 5th ”Sicherheit, Schutz und Zuverlässigkeit” Conference (SICHERHEIT’10). 61--72.
[44]
Sisi Duan, Michael K. Reiter, and Haibin Zhang. 2018. BEAT: Asynchronous BFT made practical. In Proceedings of the 25th Conference on Computer and Communications Security (CCS’18). 2028--2041.
[45]
Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988. Consensus in the presence of partial synchrony. J. ACM 35, 2 (1988), 288--323.
[46]
Michael Eischer, Markus Büttner, and Tobias Distler. 2019. Deterministic fuzzy checkpoints. In Proceedings of the 38th International Symposium on Reliable Distributed Systems (SRDS’19). 153--162.
[47]
Michael Eischer and Tobias Distler. 2018. Latency-aware leader selection for geo-replicated Byzantine fault-tolerant systems. In Proceedings of the 1st Workshop on Byzantine Consensus and Resilient Blockchains (BCRB’18). 140--145.
[48]
Michael Eischer and Tobias Distler. 2019. Scalable Byzantine fault-tolerant state-machine replication on heterogeneous servers. Computing 101, 2 (2019), 97--118.
[49]
Ian Aragon Escobar, Eduardo Alchieri, Fernando Luís Dotti, and Fernando Pedone. 2019. Boosting concurrency in parallel state machine replication. In Proceedings of the 20th International Middleware Conference (Middleware’19). 228--240.
[50]
Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson. 1985. Impossibility of distributed consensus with one faulty process. J. ACM 32, 2 (1985), 374--382.
[51]
Stephanie Forrest, Anil Somayaji, and David H. Ackley. 1997. Building diverse computer systems. In Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS’97). 67--72.
[52]
Roy Friedman and Robbert Van Renesse. 1997. Packing messages as a tool for boosting the performance of total ordering protocols. In Proceedings of the 6th International Symposium on High Performance Distributed Computing (HPDC’97). 233--242.
[53]
Miguel Garcia, Alysson Bessani, Ilir Gashi, Nuno Neves, and Rafael Obelheiro. 2014. Analysis of operating system diversity for intrusion tolerance. Softw. Pract. Exp. 44, 6 (2014), 735--770.
[54]
Miguel Garcia, Alysson Bessani, and Nuno Neves. 2019. Lazarus: Automatic management of diversity in BFT systems. In Proceedings of the 20th International Middleware Conference (Middleware’19). 241--254.
[55]
Miguel Garcia, Alysson Neves Bessani, Ilir Gashi, Nuno Neves, and Rafael Obelheiro. 2011. OS diversity for intrusion tolerance: Myth or reality? In Proceedings of the 41st International Conference on Dependable Systems and Networks (DSN’11). 383--394.
[56]
Miguel Garcia, Nuno Neves, and Alysson Bessani. 2016. SieveQ: A layered BFT protection system for critical services. IEEE Trans. Depend. Sec. Comput. 15, 3 (2016), 511--525.
[57]
Ilir Gashi, Peter Popov, Vladimir Stankovic, and Lorenzo Strigini. 2004. On designing dependable services with diverse off-the-shelf SQL servers. In Architecting Dependable Systems II. Springer, 191--214.
[58]
Guy Golan Gueta, Ittai Abraham, Shelly Grossman, Dahlia Malkhi, Benny Pinkas, Michael Reiter, Dragos-Adrian Seredinschi, Orr Tamir, and Alin Tomescu. 2019. SBFT: A scalable and decentralized trust infrastructure. In Proceedings of the 49th International Conference on Dependable Systems and Networks (DSN’19). 568--580.
[59]
Gerhard Habiger, Franz J. Hauck, Johannes Köstler, and Hans P. Reiser. 2018. Resource-efficient state-machine replication with multithreading and vertical scaling. In Proceedings of the 14th European Dependable Computing Conference (EDCC’18). 87--94.
[60]
Andreas Haeberlen, Petr Kouznetsov, and Peter Druschel. 2006. The case for Byzantine fault detection. In Proceedings of the 2nd Workshop on Hot Topics in System Dependability (HotDep’06).
[61]
Andreas Haeberlen, Petr Kouznetsov, and Peter Druschel. 2007. PeerReview: Practical accountability for distributed systems. In Proceedings of 21st Symposium on Operating Systems Principles (SOSP’07). 175--188.
[62]
William G. J. Halfond, Jeremy Viegas, and Alessandro Orso. 2006. A classification of SQL injection attacks and countermeasures. In Proceedings of the International Symposium on Secure Software Engineering (ISSSE’06). 13--15.
[63]
Franz J. Hauck, Gerhard Habiger, and Jörg Domaschka. 2016. UDS: A novel and flexible scheduling algorithm for deterministic multithreading. In Proceedings of the 35th Symposium on Reliable Distributed Systems (SRDS’16). 177--186.
[64]
Maurice P. Herlihy and Jeannette M. Wing. 1990. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 3 (1990), 463--492.
[65]
Andrei Homescu, Steven Neisius, Per Larsen, Stefan Brunthaler, and Michael Franz. 2013. Profile-guided automated software diversity. In Proceedings of the 11th International Symposium on Code Generation and Optimization (CGO’13). 1--11.
[66]
Yennun Huang, Chandra Kintala, Nick Kolettis, and N. Dudley Fulton. 1995. Software rejuvenation: Analysis, module and applications. In Proceedings of 25th International Symposium on Fault-Tolerant Computing (FTCS-25). 381--390.
[67]
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 European Conference on Computer Systems (EuroSys’12). 295--308.
[68]
Rüdiger Kapitza, Thomas Zeman, Franz J. Hauck, and Hans P. Reiser. 2007. Parallel state transfer in object replication systems. In Proceedings of the 7th International Conference on Distributed Applications and Interoperable Systems (DAIS’07). 167--180.
[69]
Manos Kapritsos and Flavio P. Junqueira. 2010. Scalable agreement: Toward ordering as a service. In Proceedings of the 6th Workshop on Hot Topics in System Dependability (HotDep’10). 7--12.
[70]
Manos Kapritsos, Yang Wang, Vivien Quéma, Allen Clement, Lorenzo Alvisi, and Mike Dahlin. 2012. All about eve: Execute-verify replication for multi-core servers. In Proceedings of the 10th Symposium on Operating Systems Design and Implementation (OSDI’12). 237--250.
[71]
Gaurav S. Kc, Angelos D. Keromytis, and Vassilis Prevelakis. 2003. Countering code-injection attacks with instruction-set randomization. In Proceedings of the 10th Conference on Computer and Communications Security (CCS’03). 272--280.
[72]
Ramakrishna Kotla, Lorenzo Alvisi, Mike Dahlin, Allen Clement, and Edmund Wong. 2009. Zyzzyva: Speculative Byzantine fault tolerance. ACM Trans. Comput. Syst. 27, 4, Article 7 (2009), 39 pages.
[73]
Ramakrishna Kotla and Mike Dahlin. 2004. High throughput Byzantine fault tolerance. In Proceedings of the 34th International Conference on Dependable Systems and Networks (DSN’04). 575--584.
[74]
Petr Kuznetsov and Rodrigo Rodrigues. 2009. BFTW3: Why? When? Where? Workshop on the theory and practice of Byzantine fault tolerance. SIGACT News 40, 4 (2009), 82--86.
[75]
Leslie Lamport, Dahlia Malkhi, and Lidong Zhou. 2010. Reconfiguring a state machine. SIGACT News 41, 1 (2010), 63--73.
[76]
Butler W. Lampson. 1983. Hints for computer system design. In Proceedings of the 9th Symposium on Operating Systems Principles (SOSP’83). 33--48.
[77]
Dave Levin, John R. Douceur, Jacob R. Lorch, and Thomas Moscibroda. 2009. TrInc: Small trusted hardware for large distributed systems. In Proceedings of the 6th Symposium on Networked Systems Design and Implementation (OSDI’09). 1--14.
[78]
Bijun Li, Nico Weichbrodt, Johannes Behl, Pierre-Louis Aublin, Tobias Distler, and Rüdiger Kapitza. 2018. Troxy: Transparent access to Byzantine fault-tolerant systems. In Proceedings of the 48th International Conference on Dependable Systems and Networks (DSN’18). 59--70.
[79]
Bijun Li, Wenbo Xu, Muhammad Zeeshan Abid, Tobias Distler, and Rüdiger Kapitza. 2016. SAREK: Optimistic parallel ordering in Byzantine fault tolerance. In Proceedings of the 12th European Dependable Computing Conference (EDCC’16). 77--88.
[80]
Jinyuan Li and David Maziéres. 2007. Beyond one-third faulty replicas in Byzantine fault tolerant systems. In Proceedings of the 4th Symposium on Networked Systems Design and Implementation (NSDI’07). 131--144.
[81]
Shengyun Liu, Paolo Viotti, Christian Cachin, Vivien Quéma, and Marko Vukolić. 2016. XFT: Practical fault tolerance beyond crashes. In Proceedings of the 12th Conference on Operating Systems Design and Implementation (OSDI’16). 485--500.
[82]
Yanhua Mao, Flavio P. Junqueira, and Keith Marzullo. 2008. Mencius: Building efficient replicated state machines for WANs. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI’08). 369--384.
[83]
Parisa Jalili Marandi, Marco Primi, and Fernando Pedone. 2012. Multi-ring Paxos. In Proceedings of the 42nd International Conference on Dependable Systems and Networks (DSN’12). 1--12.
[84]
Michael A. Marsh and Fred B. Schneider. 2004. CODEX: A robust and secure secret distribution system. IEEE Trans. Depend. Sec. Comput. 1, 1 (2004), 34--47. https://ieeexplore.ieee.org/document/1335466.
[85]
Jean-Philippe Martin and Lorenzo Alvisi. 2004. A framework for dynamic Byzantine storage. In Proceedings of the 34th International Conference on Dependable Systems and Networks (DSN’04). 325--334.
[86]
Jean-Philippe Martin and Lorenzo Alvisi. 2006. Fast Byzantine consensus. IEEE Trans. Depend. Sec. Comput. 3, 3 (2006), 202--215.
[87]
Michael G. Merideth. 2008. Tradeoffs in Byzantine-Fault-Tolerant State-Machine-Replication Protocol Design. Technical Report CMU-ISR-08-110. Carnegie Mellon University.
[88]
Ralph C. Merkle. 1987. A digital signature based on a conventional encryption function. In Advances in Cryptology (CRYPTO’87). 369--378.
[89]
Andrew Miller, Yu Xia, Kyle Croman, Elaine Shi, and Dawn Song. 2016. The honey badger of BFT protocols. In Proceedings of the 23rd Conference on Computer and Communications Security (CCS’16). 31--42.
[90]
Henrique Moniz, Nuno Ferreria Neves, Miguel Correia, and Paulo Veríssimo. 2008. RITAS: Services for randomized intrusion tolerance. IEEE Trans. Depend. Sec. Comput. 8, 1 (2008), 122--136.
[91]
Louise E. Moser, Peter M. Melliar-Smith, Priya Narasimhan, Lauren A. Tewksbury, and Vana Kalogeraki. 2000. Eternal: Fault tolerance and live upgrades for distributed object systems. In Proceedings of the DARPA Information Survivability Conference and Exposition (DISCEX’00). 184--196.
[92]
André Nogueira, Miguel Garcia, Alysson Bessani, and Nuno Neves. 2018. On the challenges of building a BFT SCADA. In Proceedings of the 48th International Conference on Dependable Systems and Networks (DSN’18). 163--170.
[93]
National Institute of Standards and Technology. 2020. National Vulnerability Database. Retrieved from http://nvd.nist.gov/.
[94]
Rafail Ostrovsky and Moti Yung. 1991. How to withstand mobile virus attacks. In Proceedings of the 10th Symposium on Principles of Distributed Computing (PODC’91). 51--59.
[95]
Marco Platania, Daniel Obenshain, Thomas Tantillo, Yair Amir, and Neeraj Suri. 2016. On choosing server- or client-side solutions for BFT. Comput. Surv. 48, 4, Article 61 (2016), 30 pages.
[96]
Marco Platania, Daniel Obenshain, Thomas Tantillo, Ricky Sharma, and Yair Amir. 2014. Towards a practical survivable intrusion tolerant replication system. In Proceedings of the 33rd International Symposium on Reliable Distributed Systems (SRDS’14). 242--252.
[97]
Daniel Porto, João Leitão, Cheng Li, Allen Clement, Aniket Kate, Flavio Junqueira, and Rodrigo Rodrigues. 2015. Visigoth fault tolerance. In Proceedings of the 10th European Conference on Computer Systems (EuroSys’15).
[98]
Hans P. Reiser and Rüdiger Kapitza. 2007. Hypervisor-based efficient proactive recovery. In Proceedings of the 26th Symposium on Reliable Distributed Systems (SRDS’07). 83--92.
[99]
Ronald L. Rivest, Adi Shamir, and Leonard Adleman. 1978. A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 21, 2 (1978), 120--126.
[100]
Rodrigo Rodrigues and Barbara Liskov. 2004. Byzantine fault tolerance in long-lived systems. In Proceedings of the 2nd Bertinoro Workshop on Future Directions in Distributed Computing (FuDiCo’04).
[101]
Rodrigo Rodrigues, Barbara Liskov, Kathryn Chen, Moses Liskov, and David Schultz. 2012. Automatic reconfiguration for large-scale reliable storage systems. IEEE Trans. Depend. Sec. Comput. 9, 2 (2012), 146--158.
[102]
Tom Roeder and Fred B. Schneider. 2010. Proactive obfuscation. ACM Trans. Comput. Syst. 28, 2, Article 4 (2010), 54 pages.
[103]
Signe Rüsch, Kai Bleeke, and Rüdiger Kapitza. 2019. Bloxy: Providing transparent and generic BFT-based ordering services for blockchains. In Proceedings of the 38th International Symposium on Reliable Distributed Systems (SRDS’19). 305--314.
[104]
John M. Rushby. 1981. Design and verification of secure systems. In Proceedings of the 8th Symposium on Operating Systems Principles (SOSP’81). 12--21.
[105]
Rainer Schiekofer, Johannes Behl, and Tobias Distler. 2017. Agora: A dependable high-performance coordination service for multi-cores. In Proceedings of the 47th International Conference on Dependable Systems and Networks (DSN’17). 333--344.
[106]
Fred B. Schneider. 1990. Implementing fault-tolerant services using the state machine approach: A tutorial. Comput. Surv. 22, 4 (1990), 299--319.
[107]
Siddhartha Sen, Wyatt Lloyd, and Michael J. Freedman. 2010. Prophecy: Using history for high-throughput fault tolerance. In Proceedings of the 7th Symposium on Networked Systems Design and Implementation (NSDI’10). 345--360.
[108]
Victor Shoup. 2000. Practical threshold signatures. In Proceedings of the 19th International Conference on Theory and Application of Cryptographic Techniques (EUROCRYPT’00). 207--220.
[109]
Atul Singh, Tathagata Das, Petros Maniatis, Peter Druschel, and Timothy Roscoe. 2008. BFT protocols under fire. In Proceedings of the 5th Symposium on Networked Systems Design and Implementation (NSDI’08). 189--204.
[110]
João Sousa and Alysson Bessani. 2015. Separating the WHEAT from the Chaff: An empirical design for geo-replicated state machines. In Proceedings of the 34th International Symposium on Reliable Distributed Systems (SRDS’15). 146--155.
[111]
João Sousa, Alysson Bessani, and Marko Vukolić. 2018. A Byzantine fault-tolerant ordering service for the hyperledger fabric blockchain platform. In Proceedings of the 48th International Conference on Dependable Systems and Networks (DSN’18). 51--58.
[112]
João Sousa and Alysson Bessani. 2012. From Byzantine consensus to BFT state machine replication: A latency-optimal transformation. In Proceedings of the 9th European Dependable Computing Conference (EDCC’12). 37--48.
[113]
Paulo Sousa, Alysson Neves Bessani, Miguel Correia, Nuno Ferreira Neves, and Paulo Veríssimo. 2010. Highly available intrusion-tolerant services with proactive-reactive recovery. IEEE Trans. Parallel Distrib. Syst. 21, 4 (2010), 452--465.
[114]
Paulo Sousa, Alysson Neves Bessani, and Rafael R. Obelheiro. 2008. The FOREVER service for fault/intrusion removal. In Proceedings of the 2nd Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS’08). 1--6.
[115]
Paulo Sousa, Nuno Ferreira Neves, and Paulo Veríssimo. 2006. Proactive resilience through architectural hybridization. In Proceedings of the 21st Symposium on Applied Computing (SAC’06). 686--690.
[116]
Paulo Sousa, Nuno Ferreira Neves, and Paulo Veríssimo. 2007. Hidden problems of asynchronous proactive recovery. In Proceedings of the 3rd Workshop on Hot Topics in System Dependability (HotDep’07). 5--9.
[117]
Philip Thambidurai and You-Keun Park. 1988. Interactive consistency with multiple failure modes. In Proceedings of the 7th Symposium on Reliable Distributed Systems (SRDS’88). 93--100.
[118]
Gene Tsudik. 1992. Message authentication with one-way hash functions. ACM SIGCOMM Comput. Commun. Rev. 22, 5 (1992), 29--38.
[119]
Robbert Van Renesse, Chi Ho, and Nicolas Schiper. 2012. Byzantine chain replication. In Proceedings of the 16th International Conference on Principles of Distributed Systems (OPODIS’12). 345--359.
[120]
Paulo E. Veríssimo. 2006. Travelling through wormholes: A new look at distributed systems models. SIGACT News 37, 1 (2006), 66--81.
[121]
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 the 28th International Symposium on Reliable Distributed Systems (SRDS’09). 135--144.
[122]
Giuliana Santos Veronese, Miguel Correia, Alysson Neves Bessani, and Lau Cheuk Lung. 2010. EBAWA: Efficient Byzantine agreement for wide-area networks. In Proceedings of the 12th Symposium on High-Assurance Systems Engineering (HASE’10). 10--19.
[123]
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.
[124]
Marko Vukolić. 2015. The quest for scalable blockchain fabric: Proof-of-work vs. BFT replication. In Proceedings of the International Workshop on Open Problems in Network Security (iNetSec’15). 112--125.
[125]
Timothy Wood, Rahul Singh, Arun Venkataramani, Prashant Shenoy, and Emmanuel Cecchet. 2011. ZZ and the art of practical BFT execution. In Proceedings of the 6th European Conference on Computer Conference (EuroSys’11). 123--138.
[126]
Jian Yin, Jean-Philippe Martin, Arun Venkataramani, Lorenzo Alvisi, and Mike Dahlin. 2003. Separating agreement from execution for Byzantine fault tolerant services. In Proceedings of the 19th Symposium on Operating Systems Principles (SOSP’03). 253--267.
[127]
Lidong Zhou, Fred B. Schneider, and Robbert Van Renesse. 2002. COCA: A secure distributed online certification authority. ACM Trans. Comput. Syst. 20, 4 (2002), 329--368.
[128]
Lidong Zhou, Fred B. Schneider, and Robbert Van Renesse. 2005. APSS: Proactive secret sharing in asynchronous systems. ACM Trans. Inf. Syst. Secur. 8, 3 (2005), 259--286.

Cited By

View all
  • (2024)Blockchain based mobile communication data privacy protection algorithm for cellular networksIntelligent Decision Technologies10.3233/IDT-230233(1-15)Online publication date: 5-Jan-2024
  • (2024)Exploring Blockchain Technology through a Modular Lens: A SurveyACM Computing Surveys10.1145/365728856:9(1-39)Online publication date: 11-Apr-2024
  • (2024)Distributed Transaction Processing in Untrusted EnvironmentsCompanion of the 2024 International Conference on Management of Data10.1145/3626246.3654684(570-579)Online publication date: 9-Jun-2024
  • Show More Cited By

Index Terms

  1. Byzantine Fault-tolerant State-machine Replication from a Systems Perspective

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Computing Surveys
    ACM Computing Surveys  Volume 54, Issue 1
    January 2022
    844 pages
    ISSN:0360-0300
    EISSN:1557-7341
    DOI:10.1145/3446641
    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 the author(s) 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: 11 February 2021
    Accepted: 01 November 2020
    Revised: 01 September 2020
    Received: 01 March 2020
    Published in CSUR Volume 54, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Byzantine fault tolerance
    2. state-machine replication

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)158
    • Downloads (Last 6 weeks)13
    Reflects downloads up to 03 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Blockchain based mobile communication data privacy protection algorithm for cellular networksIntelligent Decision Technologies10.3233/IDT-230233(1-15)Online publication date: 5-Jan-2024
    • (2024)Exploring Blockchain Technology through a Modular Lens: A SurveyACM Computing Surveys10.1145/365728856:9(1-39)Online publication date: 11-Apr-2024
    • (2024)Distributed Transaction Processing in Untrusted EnvironmentsCompanion of the 2024 International Conference on Management of Data10.1145/3626246.3654684(570-579)Online publication date: 9-Jun-2024
    • (2024)TinyBFT: Byzantine Fault-Tolerant Replication for Highly Resource-Constrained Embedded Systems2024 IEEE 30th Real-Time and Embedded Technology and Applications Symposium (RTAS)10.1109/RTAS61025.2024.00026(225-238)Online publication date: 13-May-2024
    • (2024)Fault-Tolerant Scheduling of Heterogeneous UAVs for Data Collection of IoT ApplicationsIEEE Internet of Things Journal10.1109/JIOT.2023.330970511:16(26623-26644)Online publication date: 15-Aug-2024
    • (2024)Accelerating BFT Database with Transaction Reconstruction2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW63119.2024.00061(232-241)Online publication date: 27-May-2024
    • (2024)Intrusion Tolerance for Networked Systems through Two-Level Feedback Control2024 54th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN58291.2024.00042(338-352)Online publication date: 24-Jun-2024
    • (2024)Analysis of Futuristic Currency: Facebook’s LibraCryptology and Network Security with Machine Learning10.1007/978-981-97-0641-9_36(527-542)Online publication date: 23-Apr-2024
    • (2023)An Optimized Byzantine Fault Tolerance Algorithm for Medical Data SecurityElectronics10.3390/electronics1224504512:24(5045)Online publication date: 18-Dec-2023
    • (2023)Blockchain based trusted execution environment architecture analysis for multi - source data fusion scenarioJournal of Cloud Computing10.1186/s13677-023-00494-812:1Online publication date: 19-Aug-2023
    • Show More Cited By

    View Options

    Get Access

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media