Generalized Paxos Made Byzantine (and Less Complex)

  • Miguel Pires
  • Srivatsan RaviEmail author
  • Rodrigo Rodrigues
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10616)


One of the most recent members of the Paxos family of protocols is Generalized Paxos. This variant of Paxos has the characteristic that it departs from the original specification of consensus, allowing for a weaker safety condition where different processes can have different views on a sequence being agreed upon. However, much like the original Paxos counterpart, Generalized Paxos does not have a simple implementation. Furthermore, with the recent practical adoption of Byzantine fault tolerant protocols, it is timely and important to understand how Generalized Paxos can be implemented in the Byzantine model. In this paper, we make two main contributions. First, we provide a description of Generalized Paxos that is easier to understand, based on a simpler specification and the pseudocode for a solution that can be readily implemented. Second, we extend the protocol to the Byzantine fault model.



This work was supported by the European Research Council (ERC-2012-StG-307732) and FCT (UID/CEC/50021/2013).


  1. 1.
    Ahamad, M., Neiger, G., Burns, J.E., Kohli, P., Hutto, P.W.: Causal memory: definitions, implementation, and programming. Distrib. Comput. 9(1), 37–49 (1995)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Burrows, M.: The chubby lock service for loosely-coupled distributed systems. In: Proceedings of 7th Symposium on Operating Systems Design and Implementation (2006)Google Scholar
  3. 3.
    Cachin, C., Guerraoui, R., Rodrigues, L.: Introduction to Reliable and Secure Distributed Programming, 2nd edn. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-15260-3CrossRefzbMATHGoogle Scholar
  4. 4.
    Castro, M., Liskov, B.: Practical byzantine fault tolerance. In: Proceedings of 3rd Symposium on Operating Systems Design and Implementation (OSDI) (1999)Google Scholar
  5. 5.
    De Prisco, R., Lampson, B., Lynch, N.A.: Revisiting the paxos algorithm. In: Mavronicolas, M., Tsigas, P. (eds.) WDAG 1997. LNCS, vol. 1320, pp. 111–125. Springer, Heidelberg (1997). doi: 10.1007/BFb0030679CrossRefGoogle Scholar
  6. 6.
    DeCandia, G., et al.: Dynamo: Amazon’s highly available key-value store. In: Proceedings of 21st Symposium on Operating Systems Principles (SOSP) (2007)Google Scholar
  7. 7.
    Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)MathSciNetCrossRefGoogle Scholar
  8. 8.
    Junqueira, F., Reed, B., Serafini, M.: Zab: high-performance broadcast for primary-backup systems. In: 41st International Conference on Dependable Systems and Networks (2011)Google Scholar
  9. 9.
    Ladin, R., Liskov, B., Shrira, L.: Lazy replication: exploiting the semantics of distributed services. In: Proceedings of 9th Symposium on Principles Distributed Computing (1990)Google Scholar
  10. 10.
    Lamport, L.: The part-time parliament. Technical report, DEC SRC (1989)Google Scholar
  11. 11.
    Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998)CrossRefGoogle Scholar
  12. 12.
    Lamport, L.: Paxos made simple. SIGACT News 32(4), 18–25 (2001)Google Scholar
  13. 13.
    Lamport, L.: Generalized consensus and paxos. Technical report, Technical Report MSR-TR-2005-33, Microsoft Research (2005)Google Scholar
  14. 14.
    Lamport, L.: Fast paxos. Distrib. Comput. 19(2), 79–103 (2006)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Lamport, L.: Byzantizing paxos by refinement. In: Peleg, D. (ed.) DISC 2011. LNCS, vol. 6950, pp. 211–224. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-24100-0_22CrossRefGoogle Scholar
  16. 16.
    Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM Trans. Progr. Lang. Syst. 4(3), 382–401 (1982)CrossRefGoogle Scholar
  17. 17.
    Lee, E.K., Thekkath, C.A.: Petal: distributed virtual disks. In: Proceedings of 7th International Conference on Architectural Support for Programming Languages and Operating Systems (1996)Google Scholar
  18. 18.
    Li, C., Porto, D., Clement, A., Gehrke, J., Preguiça, N., Rodrigues, R.: Making geo-replicated systems fast as possible, consistent when necessary. In: Proceedings of 10th Symposium on Operating Systems Design and Implementation (OSDI) (2012)Google Scholar
  19. 19.
    Mao, Y., Junqueira, F.P., Marzullo, K.: Mencius: building efficient replicated state machines for WANs. In: Proceedings of 8th Symposium on Operating Systems Design and Implementation (OSDI) (2008)Google Scholar
  20. 20.
    Martin, J.P., Alvisi, L.: Fast byzantine consensus. IEEE Trans. Dependable Secur. Comput. 3(3), 202–215 (2006)CrossRefGoogle Scholar
  21. 21.
    Moraru, I., Andersen, D.G., Kaminsky, M.: There is more consensus in Egalitarian parliaments. In: Proceedings of Symposium on Operating Systems Principles (SOSP) (2013)Google Scholar
  22. 22.
    Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008)Google Scholar
  23. 23.
    Pires, M., Ravi, S., Rodrigues, R.: Generalized Paxos Made Byzantine (and Less Complex). Tech. rep. (2017)Google Scholar
  24. 24.
    van Renesse, R.: Paxos made moderately complex. ACM Comput. Surv. 47(3), 1–36 (2011)CrossRefGoogle Scholar
  25. 25.
    Singh, A., Fonseca, P., Kuznetsov, P.: Zeno: eventually consistent byzantine-fault tolerance. In: Proceedings of 6th Symposium on Networked Systems Design and Implementation (NSDI) (2009)Google Scholar
  26. 26.
    Vukolic, M.: Quorum systems: with applications to storage and consensus. In: Synthesis Lectures on Distributed Computing Theory. Morgan & Claypool (2012)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Miguel Pires
    • 1
  • Srivatsan Ravi
    • 2
    Email author
  • Rodrigo Rodrigues
    • 1
  1. 1.INESC-ID and Instituto Superior Técnico (U. Lisboa)LisbonPortugal
  2. 2.University of Southern CaliforniaLos AngelesUSA

Personalised recommendations