Skip to main content

Byzantine Fault-Tolerance with Commutative Commands

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7109))

Abstract

State machine replication is a popular approach to increasing the availability of computer services. While it has been largely studied in the presence of crash-stop failures and malicious failures, all existing state machine replication protocols that provide byzantine fault-tolerance implement some variant of atomic broadcast. In this context, this paper makes two contributions. First, it presents the first byzantine fault-tolerant generic broadcast protocol. Generic broadcast is more general than atomic broadcast, in that it allows applications to deliver commutative commands out of order—delivering a command out of order can be done in fewer communication steps than delivering a command in the same order. Second, the paper presents an efficient state machine replication protocol that tolerates byzantine failures. Our protocol requires fewer message delays than the best existing solutions under similar conditions. Moreover, processing of commutative commands on replicas requires only two MAC operations. The protocol is speculative in that it may rollback non-commutative commands.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21, 558–565 (1978)

    Article  MATH  Google Scholar 

  2. Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: A tutorial 22, 299–319 (1990)

    Google Scholar 

  3. Kotla, R., Alvisi, L., Dahlin, M., Clement, A., Wong, E.: Zyzzyva: Speculative byzantine fault tolerance. ACM Transactions on Computer Systems 27, 1–39 (2009)

    Article  Google Scholar 

  4. Abd-El-Malek, M., Ganger, G.R., Goodson, G.R., Reiter, M.K., Wylie, J.J.: Fault-scalable byzantine fault-tolerant services. In: SOSP 2005: Proceedings of the Twentieth ACM Symposium on Operating Systems Principles, pp. 59–74. ACM, New York (2005)

    Chapter  Google Scholar 

  5. Castro, M., Liskov, B.: Practical byzantine fault tolerance and proactive recovery. ACM Transactions on Computer Systems 20, 398–461 (2002)

    Article  Google Scholar 

  6. Cowling, J., Myers, D., Liskov, B., Rodrigues, R., Shrira, L.: HQ replication: a hybrid quorum protocol for byzantine fault tolerance. In: OSDI 2006: Proceedings of the 7th Symposium on Operating Systems Design and Implementation, pp. 177–190. USENIX Association, Berkeley (2006)

    Google Scholar 

  7. Guerraoui, R., Knežević, N., Quéma, V., Vukolić, M.: The next 700 bft protocols. In: EuroSys 2010: Proceedings of the 5th European Conference on Computer Systems, pp. 363–376. ACM, New York (2010)

    Google Scholar 

  8. Aguilera, M.K., Delporte-Gallet, C., Fauconnier, H., Toueg, S.: Thrifty Generic Broadcast. In: Herlihy, M.P. (ed.) DISC 2000. LNCS, vol. 1914, pp. 268–283. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  9. Lamport, L.: Generalized consensus and paxos. Technical report, Microsoft Research MSR-TR-2005-33 (2005)

    Google Scholar 

  10. Pedone, F., Schiper, A.: Handling message semantics with generic broadcast protocols. Distributed Computing 15, 97–107 (2002)

    Article  Google Scholar 

  11. Raykov, P., Schiper, N., Pedone, F.: Byzantine fault-tolerance with commutative commands. Technical report, University of Lugano (2011), http://www.inf.usi.ch/faculty/pedone/Paper/2011/2011OPODIS-full.pdf

  12. Rivest, R.L., Shamir, A., Adleman, L.: A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM 26, 96–99 (1983)

    Article  MATH  Google Scholar 

  13. Bellare, M., Canetti, R., Krawczyk, H.: Keying Hash Functions for Message Authentication. In: Koblitz, N. (ed.) CRYPTO 1996. LNCS, vol. 1109, pp. 1–15. Springer, Heidelberg (1996)

    Google Scholar 

  14. Fischer, M., Lynch, N., Paterson, M.: Impossibility of distributed consensus with one faulty process. Journal of the ACM 32, 374–382 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  15. Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. Journal of the ACM 43, 225–267 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  16. Ben-Or, M.: Another advantage of free choice (extended abstract): Completely asynchronous agreement protocols. In: PODC 1983: Proceedings of the Second Annual ACM Symposium on Principles of Distributed Computing, pp. 27–30. ACM, New York (1983)

    Chapter  Google Scholar 

  17. Dwork, C., Lynch, N., Stockmeyer, L.: Consensus in the presence of partial synchrony. Journal of the ACM 35, 288–323 (1988)

    Article  MathSciNet  Google Scholar 

  18. Toueg, S.: Randomized byzantine agreements. In: PODC 1984: Proceedings of the Third Annual ACM Symposium on Principles of Distributed Computing, pp. 163–178. ACM, New York (1984)

    Chapter  Google Scholar 

  19. Cachin, C., Kursawe, K., Petzold, F., Shoup, V.: Secure and Efficient Asynchronous Broadcast Protocols. In: Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 524–541. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  20. Lamport, L.: Lower bounds for asynchronous consensus. Distributed Computing 19, 104–125 (2006)

    Article  MATH  Google Scholar 

  21. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 463–492 (1990)

    Article  Google Scholar 

  22. Malkhi, D., Reiter, M., Lynch, N.: A correctness condition for memory shared by byzantine processes (1998) (unpublished manuscript)

    Google Scholar 

  23. Aiyer, A.S., Alvisi, L., Bazzi, R.A., Clement, A.: Matrix Signatures: From MACs to Digital Signatures in Distributed Systems. In: Taubenfeld, G. (ed.) DISC 2008. LNCS, vol. 5218, pp. 16–31. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  24. Kotla, R., Dahlin, M.: High-throughput byzantine fault tolerance. In: International Conference on Dependable Systems and Networks, DSN (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Raykov, P., Schiper, N., Pedone, F. (2011). Byzantine Fault-Tolerance with Commutative Commands. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds) Principles of Distributed Systems. OPODIS 2011. Lecture Notes in Computer Science, vol 7109. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25873-2_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25873-2_23

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25872-5

  • Online ISBN: 978-3-642-25873-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics