Heterogeneous Paxos

In distributed systems, a group of learners achieve consensus when, by observing the output of some acceptors, they all arrive at the same value. Consensus is crucial for ordering transactions in failure-tolerant systems. Traditional consensus algorithms are homogeneous in three ways: all learners are treated equally, all acceptors are treated equally, and all failures are treated equally. These assumptions, however, are unsuitable for cross-domain applications, including blockchains, where not all acceptors are equally trustworthy, and not all learners have the same assumptions and priorities. We present the first consensus algorithm to be heterogeneous in all three respects. Learners set their own mixed failure tolerances over differently trusted sets of acceptors. We express these assumptions in a novel Learner Graph, and demonstrate sufficient conditions for consensus. We present Heterogeneous Paxos, an extension of Byzantine Paxos. Heterogeneous Paxos achieves consensus for any viable Learner Graph in best-case three message sends, which is optimal. We present a proof-of-concept implementation and demonstrate how tailoring for heterogeneous scenarios can save resources and reduce latency. 2012 ACM Subject Classification Computer systems organization → Redundancy; Computer systems organization → Availability; Computer systems organization → Reliability; Computer systems organization → Peer-to-peer architectures; Theory of computation → Distributed algorithms; Information systems → Remote replication

[1]  Leslie Lamport,et al.  Byzantizing Paxos by Refinement , 2011, DISC.

[2]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[3]  Miguel Oom Temudo de Castro,et al.  Practical Byzantine fault tolerance , 1999, OSDI '99.

[4]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[5]  Nancy A. Lynch,et al.  Consensus in the presence of partial synchrony , 1988, JACM.

[6]  Leslie Lamport,et al.  Paxos Made Simple , 2001 .

[7]  Sébastien Tixeuil,et al.  Knowledge Connectivity vs. Synchrony Requirements for Fault-Tolerant Agreement in Unknown Networks , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[8]  Christian Cachin,et al.  Asymmetric Distributed Trust , 2019, OPODIS.

[9]  Ethan MacBrough,et al.  Cobalt: BFT Governance in Open Networks , 2018, ArXiv.

[10]  Sangmin Lee,et al.  Upright cluster services , 2009, SOSP '09.

[11]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[12]  André Schiper,et al.  Consensus with Unknown Participants or Fundamental Self-Organization , 2004, ADHOC-NOW.

[13]  Marko Vukolic,et al.  Refined quorum systems , 2007, PODC '07.

[14]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[15]  Satoshi Nakamoto Bitcoin : A Peer-to-Peer Electronic Cash System , 2009 .

[16]  Miguel Correia,et al.  From Consensus to Atomic Broadcast: Time-Free Byzantine-Resistant Protocols without Signatures , 2006, Comput. J..

[17]  Butler W. Lampson,et al.  Crash Recovery in a Distributed Data Storage System , 1981 .

[18]  David Mazières,et al.  Fast and secure global payments with Stellar , 2019, SOSP.

[19]  David Schwartz,et al.  The Ripple Protocol Consensus Algorithm , 2014 .

[20]  Elaine Shi,et al.  The Honey Badger of BFT Protocols , 2016, CCS.

[21]  Kartik Nayak,et al.  Flexible Byzantine Fault Tolerance , 2019, CCS.

[22]  Bart Preneel Collision resistance , 2005, Encyclopedia of Cryptography and Security.

[23]  Michael Backes,et al.  Reliable broadcast in a computational hybrid model with Byzantine faults, crashes, and recoveries , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[24]  Jonathan Katz,et al.  Synchronous Consensus with Optimal Asynchronous Fallback Guarantees , 2019, IACR Cryptol. ePrint Arch..

[25]  Alexey Gotsman,et al.  Federated Byzantine Quorum Systems , 2018, OPODIS.

[26]  Rachid Guerraoui,et al.  The disagreement power of an adversary , 2011, Distributed Computing.

[27]  Keith Marzullo,et al.  Designing Algorithms for Dependent Process Failures , 2003, Future Directions in Distributed Computing.

[28]  Christopher Frost,et al.  Spanner: Google's Globally-Distributed Database , 2012, OSDI.

[29]  Alysson Neves Bessani,et al.  Byzantine Consensus with Unknown Participants , 2008, OPODIS.

[30]  Marko Vukolic,et al.  XFT: Practical Fault Tolerance beyond Crashes , 2015, OSDI.

[31]  David Mazières The Stellar Consensus Protocol : A Federated Model for Internet-level Consensus , 2015 .

[32]  Michael Dahlin,et al.  BAR fault tolerance for cooperative services , 2005, SOSP '05.

[33]  Robbert van Renesse,et al.  Charlotte: Composable Authenticated Distributed Data Structures, Technical Report , 2019, ArXiv.

[34]  Sam Toueg,et al.  Resilient consensus protocols , 1983, PODC '83.

[35]  Michael K. Reiter,et al.  Byzantine quorum systems , 1997, STOC '97.

[36]  Wei-Pang Yang,et al.  Byzantine Agreement in the Presence of Mixed Faults on Processors and Links , 1998, IEEE Trans. Parallel Distributed Syst..

[37]  Ju Wang,et al.  Windows Azure Storage: a highly available cloud storage service with strong consistency , 2011, SOSP.

[38]  David Mazières,et al.  Stellar Consensus by Instantiation , 2019, DISC.

[39]  Brad Chase,et al.  Analysis of the XRP Ledger Consensus Protocol , 2018, ArXiv.