Synthesis of Self-Stabilising and Byzantine-Resilient Distributed Systems

Fault-tolerant distributed algorithms play an increasingly important role in many applications, and their correct and efficient implementation is notoriously difficult. We present an automatic approach to synthesise provably correct fault-tolerant distributed algorithms from formal specifications in linear-time temporal logic. The supported system model covers synchronous reactive systems with finite local state, while the failure model includes strong self-stabilisation as well as Byzantine failures. The synthesis approach for a fixed-size network of processes is complete for realisable specifications, and can optimise the solution for small implementations and short stabilisation time. To solve the bounded synthesis problem with Byzantine failures more efficiently, we design an incremental, CEGIS-like loop. Finally, we define two classes of problems for which our synthesis algorithm obtains solutions that are not only correct in fixed-size networks, but in networks of arbitrary size.

[1]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[2]  Rastislav Bodík,et al.  Synthesis of biological models from mutation experiments , 2013, POPL.

[3]  Swen Jacobs Incremental Instance Generation in Local Reasoning , 2009, CAV.

[4]  Christoph Lenzen,et al.  Synchronous counting and computational algorithm design , 2013, J. Comput. Syst. Sci..

[5]  Leonid Ryzhyk,et al.  Efficient Synthesis for Concurrency by Semantics-Preserving Transformations , 2013, CAV.

[6]  Jennifer L. Welch,et al.  Self-Stabilizing Clock Synchronization in the Presence of ByzantineFaults ( Preliminary Version ) Shlomi Dolevy , 1995 .

[7]  Salomon Sickert Converting Linear Temporal Logic to Deterministic (Generalised) Rabin Automata , 2015, Arch. Formal Proofs.

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

[9]  Bernd Finkbeiner,et al.  Uniform distributed synthesis , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[10]  Thomas Schwentick,et al.  Local Normal Forms for First-Order Logic with Applications to Games and Automata , 1998, Discret. Math. Theor. Comput. Sci..

[11]  Vojtech Rehák,et al.  LTL to Büchi Automata Translation: Fast and More Deterministic , 2012, TACAS.

[12]  Bernd Finkbeiner,et al.  Lazy Synthesis , 2012, VMCAI.

[13]  Neeraj Suri,et al.  Efficient Verification of Distributed Protocols Using Stateful Model Checking , 2013, 2013 IEEE 32nd International Symposium on Reliable Distributed Systems.

[14]  Sébastien Tixeuil,et al.  Self-stabilizing algorithms , 2010 .

[15]  Edsger W. Dijkstra,et al.  Self-stabilizing systems in spite of distributed control , 1974, CACM.

[16]  Vineet Kahlon,et al.  Reducing Model Checking of the Many to the Few , 2000, CADE.

[17]  Nikolaj Bjørner,et al.  Efficient E-Matching for SMT Solvers , 2007, CADE.

[18]  E. A. Emerson,et al.  On Reasoning About Rings , 2003, Int. J. Found. Comput. Sci..

[19]  Armando Solar-Lezama,et al.  Program synthesis by sketching , 2008 .

[20]  Kenneth L. McMillan,et al.  Applying SAT Methods in Unbounded Symbolic Model Checking , 2002, CAV.

[21]  Borzoo Bonakdarpour,et al.  SMT-Based Synthesis of Distributed Self-stabilizing Systems , 2014, SSS.

[22]  Leslie Lamport,et al.  Brief Announcement: Leaderless Byzantine Paxos , 2011, DISC.

[23]  Amir Pnueli,et al.  Synthesis of Reactive(1) designs , 2006, J. Comput. Syst. Sci..

[24]  Eran Yahav,et al.  Inferring Synchronization under Limited Observability , 2009, TACAS.

[25]  Srinath T. V. Setty,et al.  IronFleet: proving practical distributed systems correct , 2015, SOSP.

[26]  Helmut Veith,et al.  Decidability of Parameterized Verification , 2015, Synthesis Lectures on Distributed Computing Theory.

[27]  Osman Hasan,et al.  Applying Formal Methods to Networking: Theory, Techniques, and Applications , 2013, IEEE Communications Surveys & Tutorials.

[28]  Amir Pnueli,et al.  Synthesis of Reactive(1) Designs , 2006, VMCAI.

[29]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[30]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1985, JACM.

[31]  Roderick Bloem,et al.  Parameterized Synthesis , 2012, TACAS.

[32]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[33]  A. Prasad Sistla,et al.  Reasoning about systems with many processes , 1992, JACM.

[34]  Roderick Bloem,et al.  PARTY Parameterized Synthesis of Token Rings , 2013, CAV.

[35]  Bernd Finkbeiner,et al.  Bounded synthesis , 2012, International Journal on Software Tools for Technology Transfer.

[36]  Thomas A. Henzinger,et al.  Synthesizing robust systems , 2009, FMCAD.

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

[38]  Benjamin Aminof,et al.  Parameterized Model Checking of Token-Passing Systems , 2013, VMCAI.

[39]  Sven Schewe,et al.  Distributed synthesis is simply undecidable , 2014, Inf. Process. Lett..

[40]  Michael E. Saks,et al.  Wait-free k-set agreement is impossible: the topology of public knowledge , 1993, STOC.

[41]  Ruzica Piskac,et al.  Functional synthesis for linear arithmetic and sets , 2011, International Journal on Software Tools for Technology Transfer.

[42]  Swen Jacobs,et al.  Tight Cutoffs for Guarded Protocols with Fairness , 2015, VMCAI.

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

[44]  Cesare Tinelli,et al.  DPLL( T): Fast Decision Procedures , 2004, CAV.

[45]  Mikolás Janota,et al.  Solving QBF with Counterexample Guided Refinement , 2012, SAT.

[46]  Bernd Finkbeiner,et al.  Synthesis of Fault-Tolerant Distributed Systems , 2009, ATVA.

[47]  Leslie Lamport,et al.  Reaching Agreement in the Presence of Faults , 1980, JACM.

[48]  Amir Pnueli,et al.  Distributed reactive systems are hard to synthesize , 1990, Proceedings [1990] 31st Annual Symposium on Foundations of Computer Science.

[49]  Roderick Bloem,et al.  Towards Efficient Parameterized Synthesis , 2013, VMCAI.

[50]  E. Cachan,et al.  Logic for Communicating Automata with Parameterized Topology , 2014 .

[51]  R. Downey,et al.  Algorithms and Theory of Computation Handbook, Second Edition , 2007 .

[52]  Shlomi Dolev,et al.  Self Stabilization , 2004, J. Aerosp. Comput. Inf. Commun..

[53]  Yuval Ishai,et al.  On Adaptive vs. Non-adaptive Security of Multiparty Protocols , 2001, EUROCRYPT.

[54]  Orna Kupferman,et al.  Safraless decision procedures , 2005, 46th Annual IEEE Symposium on Foundations of Computer Science (FOCS'05).

[55]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, 2013 Formal Methods in Computer-Aided Design.