Skip to main content

On the Practicality of Practical Byzantine Fault Tolerance

  • Conference paper
Middleware 2012 (Middleware 2012)

Abstract

Byzantine Fault Tolerant (BFT) systems are considered to be state of the art with regards to providing reliability in distributed systems. Despite over a decade of research, however, BFT systems are rarely used in practice. In this paper, we describe our experience, from an application developer’s perspective, trying to leverage the publicly available, highly- studied and extended “PBFT” middleware (by Castro and Liskov), to provide provable reliability guarantees for an electronic voting application with high security and robustness needs.

We describe several obstacles we encountered and drawbacks we identified in the PBFT approach. These include some that we tackled, such as lack of support for dynamic client management and leaving state management completely up to the application. Others still remaining include the lack of robust handling of non-determinism, lack of support for web-based applications, lack of support for stronger cryptographic primitives, and more. We find that, while many of the obstacles could be overcome, they require significant engineering effort and time and their performance implications for the end-application are unclear. An application developer is thus unlikely to be willing to invest the time and effort to do so to leverage the BFT approach.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Schneider, F.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Computing Surveys 22(4), 299–319 (1990)

    Article  Google Scholar 

  2. Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM TPLS 4(3), 382–401 (1982)

    Article  MATH  Google Scholar 

  3. Castro, M., Liskov, B.: Practical byzantine fault tolerance. In: OSDI (February 1999)

    Google Scholar 

  4. Clement, A., Wong, E., Alvisi, L., Dahlin, M.: Making byzantine fault tolerant systems tolerate byzantine faults. In: NSDI (April 2009)

    Google Scholar 

  5. Yin, J., Martin, J.P., Venkataramani, A., Alvisi, L., Dahlin, M.: Separating agreement from execution for byzantine fault tolerant services. In: SOSP (October 2003)

    Google Scholar 

  6. Kotla, R., Dahlin, M.: High throughput byzantine fault tolerance. In: DSN (June 2004)

    Google Scholar 

  7. Abd-El-Malek, M., Ganger, G., Goodson, G., Reiter, M., Wylie, J.: Fault-scalable byzantine fault-tolerant services. In: SOSP (October 2005)

    Google Scholar 

  8. Cowling, J., Myers, D., Liskov, B., Rodrigues, R., Shrira, L.: Hq relication: A hybrid quorum protocol for byzantine fault tolerance. In: OSDI (November 2006)

    Google Scholar 

  9. Distler, T., Kapitza, R.: Increasing performance in byzantine fault-tolerant systems with on-demand replica consistency. In: EuroSys (April 2011)

    Google Scholar 

  10. Garcia, R., Rodrigues, R., Preguica, N.: Efficient middleware for byzantine fault tolerant database replication. In: EuroSys (April 2011)

    Google Scholar 

  11. Kotla, R., Alvisi, L., Dahlin, M., Clement, A., Wong, E.: Zyzzyva: Speculative byzantine fault tolerance. In: SOSP (October 2007)

    Google Scholar 

  12. Vandiver, B., Balakrishnan, H., Liskov, B., Madden, S.: Tolerating byzantine faults in transaction processing systems using commit barrier scheduling. In: SOSP (October 2007)

    Google Scholar 

  13. Wood, T., Singh, R., Venkataramani, A., Shenoy, P., Cecchet, E.: Zz and the art of practical bft. In: EuroSys (April 2011)

    Google Scholar 

  14. Distler, T., Kapitza, R., Popov, I., Reiser, H., Schroder-Preikschat, W.: Spare: Replicas on hold. In: NDSS (February 2011)

    Google Scholar 

  15. Amir, Y., Coan, B., Kirsch, J., Lane, J.: Byzantine replication under attack. In: DSN (June 2008)

    Google Scholar 

  16. Kiayias, A., Korman, M., Walluck, D.: An internet voting system supporting user privacy. In: ACSAC (December 2006)

    Google Scholar 

  17. Guerraoui, R., Knezevic, N., Quema, V., Vukolic, M.: The next 700 bft protocols. In: EuroSys (April 2010)

    Google Scholar 

  18. Clement, A., Kapritsos, M., Lee, S., Wang, Y., Alvisi, L., Dahlin, M., Riche, T.: Upright cluster services. In: SOSP (October 2009)

    Google Scholar 

  19. Singh, A., Das, T., Maniatis, P., Druschel, P., Roscoe, T.: BFT protocols under fire. In: NSDI (2008)

    Google Scholar 

  20. Sen, S., Lloyed, W., Freedman, M.: Prophecy: Using history for high-throughput fault tolerance. In: NSDI (April 2010)

    Google Scholar 

  21. Lamport, L.: The implementation of reliable distributed multiprocess systems. Computer Networks 2 (1978)

    Google Scholar 

  22. Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM TPLS 12(3), 463–492 (1990)

    Article  Google Scholar 

  23. Lynch, N.: Distributed Algorithms. Morgan Kaufmann (1996)

    Google Scholar 

  24. Merkle, R.C.: A Digital Signature Based on a Conventional Encryption Function. In: Pomerance, C. (ed.) CRYPTO 1987. LNCS, vol. 293, pp. 369–378. Springer, Heidelberg (1988)

    Google Scholar 

  25. Castro, M., Rodrigues, R., Liskov, B.: BASE: Using abstraction to improve fault tolerance. ACM TOCS 21(3) (August 2003)

    Google Scholar 

  26. Sqlite embedded database engine, http://www.sqlite.org

  27. Desmedt, Y.G., Frankel, Y.: Threshold Cryptosystems. In: Brassard, G. (ed.) CRYPTO 1989. LNCS, vol. 435, pp. 307–315. Springer, Heidelberg (1990)

    Google Scholar 

  28. Amir, Y., Danilov, C., Dolev, D., Kirsch, J., Lane, J., Nita-rotaru, C., Olsen, J., Zage, D.: Steward: Scaling byzantine fault-tolerant systems to wide area networks. In: DSN (2006)

    Google Scholar 

  29. Upright: Making distributed systems up (available) and right (correct), http://code.google.com/p/upright/w/list

  30. Merideth, M., Iyengar, A., Mikalsen, T., Tai, S., Rouvellou, I., Narasimhan, P.: Thema: Byzantine-fault-tolerant middleware for web-service applications. In: SRDS (October 2005)

    Google Scholar 

  31. Pallemulle, S.L., Thorvaldsson, H.D., Goldman, K.J.: Byzantine fault-tolerant web services for n-tier and service oriented architectures. In: ICDCS (June 2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 IFIP International Federation for Information Processing

About this paper

Cite this paper

Chondros, N., Kokordelis, K., Roussopoulos, M. (2012). On the Practicality of Practical Byzantine Fault Tolerance. In: Narasimhan, P., Triantafillou, P. (eds) Middleware 2012. Middleware 2012. Lecture Notes in Computer Science, vol 7662. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35170-9_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35170-9_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35169-3

  • Online ISBN: 978-3-642-35170-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics