Characterizing consensus in the Heard-Of model

The Heard-Of model is a simple and relatively expressive model of distributed computation. Because of this, it has gained a considerable attention of the verification community. We give a characterization of all algorithms solving consensus in a fragment of this model. The fragment is big enough to cover many prominent consensus algorithms. The characterization is purely syntactic: it is expressed in terms of some conditions on the text of the algorithm. One of the recent methods of verification of distributed algorithms is to abstract an algorithm to the Heard-Of model and then to verify the abstract algorithm using semi-automatic procedures. Our results allow, in some cases, to avoid the second step in this methodology.

[1]  Ulrich Schmid,et al.  The Theta-Model: achieving synchrony without clocks , 2009, Distributed Computing.

[2]  Wang Yi,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2019, Lecture Notes in Computer Science.

[3]  Achour Mostéfaoui,et al.  Solving Consensus Using Chandra-Toueg's Unreliable Failure Detectors: A General Quorum-Based Approach , 1999, DISC.

[4]  Felix C. Freiling,et al.  The failure detector abstraction , 2011, CSUR.

[5]  Michael D. Ernst,et al.  Planning for change in a formal verification of the raft consensus protocol , 2016, CPP.

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

[7]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[8]  KonnovIgor,et al.  A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms , 2017 .

[9]  Achour Mostéfaoui,et al.  A Versatile Family of Consensus Protocols Based on Chandra-Toueg's Unreliable Failure Detectors , 2002, IEEE Trans. Computers.

[10]  Kenneth L. McMillan,et al.  Modularity for decidability of deductive verification with applications to distributed systems , 2018, PLDI.

[11]  Sam Toueg,et al.  The weakest failure detector for solving consensus , 1992, PODC '92.

[12]  Stephan Merz,et al.  A Reduction Theorem for the Verification of Round-Based Distributed Algorithms , 2009, RP.

[13]  André Schiper,et al.  The Heard-Of model: computing in distributed systems with benign faults , 2009, Distributed Computing.

[14]  Josef Widder,et al.  Communication-Closed Asynchronous Protocols , 2019, CAV.

[15]  Flaviu Cristian,et al.  The Timed Asynchronous Distributed System Model , 1998, IEEE Trans. Parallel Distributed Syst..

[16]  Rachid Guerraoui,et al.  The Alpha of Indulgent Consensus , 2007, Comput. J..

[17]  Stephan Merz,et al.  Verifying Fault-Tolerant Distributed Algorithms in the Heard-Of Model , 2012, Arch. Formal Proofs.

[18]  Robbert van Renesse,et al.  Vive La Différence: Paxos vs. Viewstamped Replication vs. Zab , 2013, IEEE Transactions on Dependable and Secure Computing.

[19]  André Schiper,et al.  Generic construction of consensus algorithms for benign and Byzantine faults , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[20]  André Schiper,et al.  Tolerating corrupted communication , 2007, PODC '07.

[21]  David A. Basin,et al.  Cutoff Bounds for Consensus Algorithms , 2017, CAV.

[22]  Igor Konnov,et al.  Reachability in Parameterized Systems: All Flavors of Threshold Automata , 2018, CONCUR.

[23]  Stephan Merz,et al.  Formal Verification of a Consensus Algorithm in the Heard-Of Model , 2009, Int. J. Softw. Informatics.

[24]  Tatsuhiro Tsuchiya,et al.  Verification of consensus algorithms using satisfiability solving , 2011, Distributed Computing.

[25]  Yoram Moses Knowledge in Distributed Systems , 2016, Encyclopedia of Algorithms.

[26]  Benjamin Aminof,et al.  Parameterized Model Checking of Synchronous Distributed Algorithms by Abstraction , 2018, VMCAI.

[27]  Thomas A. Henzinger,et al.  A Logic-Based Framework for Verifying Consensus Algorithms , 2014, VMCAI.

[28]  Thomas A. Henzinger,et al.  PSync: a partially synchronous language for fault-tolerant distributed algorithms , 2016, POPL.

[29]  Xi Wang,et al.  Verdi: a framework for implementing and formally verifying distributed systems , 2015, PLDI.

[30]  Florian Zuleger,et al.  Verifying safety of synchronous fault-tolerant algorithms by bounded model checking , 2019, International Journal on Software Tools for Technology Transfer.

[31]  Ognjen MariÄ,et al.  Formal Verification of Fault-Tolerant Systems , 2017 .

[32]  Eli Gafni,et al.  Round-by-Round Fault Detectors: Unifying Synchrony and Asynchrony (Extended Abstract). , 1998, PODC 1998.

[33]  Robbert van Renesse,et al.  The Building Blocks of Consensus , 2008, ICDCN.

[34]  Yoram Moses,et al.  A Layered Analysis of Consensus , 2002, SIAM J. Comput..

[35]  Igor Konnov,et al.  Verification of randomized consensus algorithms under round-rigid adversaries , 2019, International Journal on Software Tools for Technology Transfer.

[36]  Michel Raynal,et al.  Synchrony weakened by message adversaries vs asynchrony restricted by failure detectors , 2013, PODC '13.

[37]  Nikolaj Bjørner,et al.  Cardinalities and universal quantifiers for verifying parameterized systems , 2016, PLDI.

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

[39]  Stephan Merz,et al.  Formal Verification of Consensus Algorithms Tolerating Malicious Faults , 2011, SSS.

[40]  Helmut Veith,et al.  On the completeness of bounded model checking for threshold-based distributed algorithms: Reachability , 2014, Inf. Comput..

[41]  Marcos K. Aguilera,et al.  Partial synchrony based on set timeliness , 2012, Distributed Computing.

[42]  Helmut Veith,et al.  SMT and POR Beat Counter Abstraction: Parameterized Model Checking of Threshold-Based Distributed Algorithms , 2015, CAV.

[43]  Helmut Veith,et al.  A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms , 2016, POPL.