Abstract

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 a 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 in the context of blockchain 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 attempt to provide a simpler description of Generalized Paxos, 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, and provide the respective correctness proof.

Highlights

  • The evolution of the Paxos [1] protocol is a unique chapter in the history of Computer Science.It was first described in 1989 through a technical report [2], and was only published a decade later [1].Another long wait took place until the protocol started to be studied in depth and used by researchers in various fields, namely the distributed algorithms [3] and the distributed systems [4] research communities

  • We argue that, much in the same way that the clarification of the Paxos protocol contributed to its practical adoption, it is important to simplify the description of Generalized Paxos

  • We present a simplified version of the specification of Generalized Consensus, which is focused on the most commonly used case of the solutions to this problem, which is to agree on a sequence of commands; we present a simplified version of the Generalized Paxos protocol, complete with pseudocode; we extend the Generalized Paxos protocol to the Byzantine fault model; we present a description of the Byzantine Generalized Paxos protocol including the respective pseudocode, in order to make it easier to implement; we prove the correctness of the Byzantine Generalize Paxos protocol; and we discuss several extensions to the protocol in the context of relaxed consistency models and fault tolerance

Read more

Summary

Introduction

The evolution of the Paxos [1] protocol is a unique chapter in the history of Computer Science. It was first described in 1989 through a technical report [2], and was only published a decade later [1] Another long wait took place until the protocol started to be studied in depth and used by researchers in various fields, namely the distributed algorithms [3] and the distributed systems [4] research communities. A series of papers hardened the protocol against malicious adversaries by solving consensus in a Byzantine fault model [9,10] The importance of this line of research is being confirmed as these protocols are in widespread use in the context of cryptocurrencies and distributed ledger schemes such as blockchain [11]. This paper is an extended version of [16], with permission from Springer Nature

Classic Paxos
Fast Paxos
Generalized Paxos
Mencius
Egalitarian Paxos
Byzantine Fault Tolerant Replication
Crash Fault Tolerant Protocol
Agreement Protocol
Classic Ballots
Fast Ballots
Byzantine Fault Tolerant Protocol
Overview
View Change
Leader Value Picking Rule
Byzantine Leader
Checkpointing
Correctness Proofs
Consistency
Take a pair proposals s and s0 that meet the conditions of
Inductive Step
Nontriviality
Liveness
Conclusions and Discussion
Handling Faults in the Fast Case
Extending the Protocol to Universally Commutative Commands
Generalized Paxos and Weak Consistency

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.