Skip to main content
Log in

Verification of consensus algorithms using satisfiability solving

  • Published:
Distributed Computing Aims and scope Submit manuscript

Abstract

Consensus is at the heart of fault-tolerant distributed computing systems. Much research has been devoted to developing algorithms for this particular problem. This paper presents a semi-automatic verification approach for asynchronous consensus algorithms, aiming at facilitating their development. Our approach uses model checking, a widely practiced verification method based on state traversal. The challenge here is that the state space of these algorithms is huge, often infinite, thus making model checking infeasible. The proposed approach addresses this difficulty by reducing the verification problem to small model checking problems that involve only single phases of algorithm execution. Because a phase consists of a small, finite number of rounds, bounded model checking, a technique using satisfiability solving, can be effectively used to solve these problems. The proposed approach allows us to model check several consensus algorithms up to around 10 processes.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ben-Or, M.: Another advantage of free choice: Completely asynchronous agreement protocols (extended abstract). In: Proc. Second ACM Symp. on Principles of Distributed Computing (PODC-2), pp. 27–30 (1983)

  2. Bokor, P., Pataricza, A., Serafini, M., Suri, N.: Model checking of distributed dependable protocols using semantic property preserving abstractions. Tech. Rep. TR-TUD-DEEDS-09-01-2007, TU Darmstadt (2007)

  3. Bultan T., Gerber R., Pugh W.: Model-checking concurrent systems with unbounded integer variables: Symbolic representations, approximations, and experimental results. ACM Trans. Program. Lang. Syst. 21(4), 747–789 (1999). doi:10.1145/325478.325480

    Article  Google Scholar 

  4. Bultan, T., Yavuz-Kahveci, T.: Action language verifier. In: Proc. 16th IEEE Int’l Conf. on Automated Software Engineering (ASE ’01), pp. 382–386. San Diego, CA, USA (2001)

  5. Chandra T.D., Toueg S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2), 225–267 (1996). doi:10.1145/226643.226647

    Article  MATH  MathSciNet  Google Scholar 

  6. Chaouch-Saad M., Charron-Bost B., Merz S.: A reduction theorem for the verification of round-based distributed algorithms. In: Bournez, O., Potapov, I. (eds) Reachability Problems ’09, Lecture Notes in Computer Science, vol. 5797, pp. 93–106. Springer, Palaiseau (2009)

    Google Scholar 

  7. Charron-Bost B., Merz S.: Formal verification of a Consensus algorithm in the Heard-Of model. Int. J. Softw. Inform. 3(2–3), 273–303 (2009)

    Google Scholar 

  8. Charron-Bost, B., Schiper, A.: Improving Fast Paxos: Being optimistic with no overhead. In: Proc. of 12th Pacific Rim International Symposium on Dependable Computing (PRDC’06), pp. 287–295. IEEE CS Press, Riverside, CA, USA (2006)

  9. Charron-Bost B., Schiper A.: Harmful dogmas in fault tolerant distributed computing. SIGACT News 38(1), 53–61 (2007)

    Article  Google Scholar 

  10. Charron-Bost B., Schiper A.: The heard-of model: Computing in distributed systems with Benign failures. Distrib. Comput. 22(1), 49–71 (2009)

    Article  Google Scholar 

  11. Cheung, L.: Randomized wait-free consensus using an atomicity assumption. In: Proc. 9th International Conference on Principles of Distributed Systems (OPODIS’05), LNCS, vol. 3974, pp. 47–60. Springer, Pisa, Italy (2005)

  12. Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NuSMV 2: An opensource tool for symbolic model checking. In: Proc. of 14th Conf. on Computer Aided Verification (CAV 2002), LNCS, vol. 2404. Springer, Copenhagen, Denmark (2002)

  13. Clarke E., Biere A., Raimi R., Zhu Y.: Bounded model checking using satisfiability solving. Formal Methods Syst. Des. 19(1), 7–34 (2001). doi:10.1023/A:1011276507260

    Article  MATH  Google Scholar 

  14. Dutertre, B., de Moura, L.M.: A fast linear-arithmetic solver for DPLL(T). In: Proc. of 18th Conf. on Computer Aided Verification (CAV 2006), LNCS, vol. 4144, pp. 81–94. Springer, Seattle, USA (2006)

  15. Dwork C., Lynch N., Stockmeyer L.: Consensus in the presence of partial synchrony. J. ACM 35(2), 288–323 (1988). doi:10.1145/42282.42283

    Article  MathSciNet  Google Scholar 

  16. Fischer M.J., Lynch N.A., Paterson M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985). doi:10.1145/3149.214121

    Article  MATH  MathSciNet  Google Scholar 

  17. Gafni, E.: Round-by-round fault detectors: Unifying synchrony and asynchrony. In: Proc. 17th ACM Symp. on Principles of Distributed Computing (PODC-17), pp. 143–152. ACM Press, New York, NY, USA (1998). doi:10.1145/277697.277724

  18. Gafni E., Lamport L.: Disk Paxos. Distrib. Comput. 16(1), 1–20 (2003). doi:10.1007/s00446-002-0070-8

    Article  Google Scholar 

  19. Guerraoui R., Schiper A.: The generic consensus service. IEEE Trans. Softw. Eng. 27(1), 29–41 (2001). doi:10.1109/32.895986

    Article  MathSciNet  Google Scholar 

  20. Hendriks, M.: Model checking the time to reach agreement. In: Pettersson, P., Yi, W. (eds.) 3rd International Conference on the Formal Modeling and Analysis of Timed Systems (FORMATS’05), LNCS, vol. 3829, pp. 98–111. Springer (2005)

  21. Holzmann G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997). doi:10.1109/32.588521

    Article  MathSciNet  Google Scholar 

  22. Hutle, M., Schiper, A.: Communication predicates: A high-level abstraction for coping with transient and dynamic faults. In: Proc. Int’l Conf. on Dependable Systems and Network (DSN 2007). IEEE CS Press, Edinburgh, UK (2007). Full version in technical report LSR-REPORT-2006-006, EPFL, pp. 92–101 (2006)

  23. Kwiatkowska, M.Z., Norman, G.: Verifying randomized Byzantine agreement. In: Proc. 22nd IFIP WG 6.1 International Conference on Formal Techniques for Networked and Distributed Systems (FORTE ’02), LNCS 2529, pp. 194–209. Springer, Houston, USA (2002)

  24. Kwiatkowska, M.Z., Norman, G., Segala, R.: Automated verification of a randomized distributed consensus protocol using Cadence SMV and PRISM. In: Proc. of 13th Conf. on Computer Aided Verification (CAV 2001), LNCS, vol. 2102, pp. 194–206. Springer, Paris, France (2001)

  25. Lamport L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998). doi:10.1145/279227.279229

    Article  Google Scholar 

  26. Lamport, L.: Personal Communication (2006)

  27. Lamport L.: Fast Paxos. Distrib. Comput. 19(2), 79–103 (2006)

    Article  MathSciNet  Google Scholar 

  28. McMillan K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Norwell, MA (1993)

    MATH  Google Scholar 

  29. Minamikawa, T., Tsuchiya, T., Kikuno, T.: Language and tool support for model checking of fault-tolerant distributed algorithms. In: Proc. of 14th Pacific Rim International Symposium on Dependable Computing (PRDC’08), pp. 40–47. IEEE CS Press, Taipei, Taiwan (2008)

  30. Minamikawa, T., Tsuchiya, T., Kikuno, T.: Towards automated verification of distributed consensus protocols. In: Proc. of 16th Asia-Pacific Software Engineering Conference (APSEC 2009), pp. 499–506. IEEE CS Press, Penang, Malaysia (2009)

  31. Mostéfaoui, A., Raynal, M.: Solving consensus using Chandra-Toueg’s unreliable failure detectors: A general quorum-based approach. In: Proceedings of the 13th International Symposium on Distributed Computing, pp. 49–63. Springer, London, UK (1999)

  32. de Moura, L., Rueß, H., Sorea, M.: Bounded model checking and induction: From refutation to verification. In: Proc. of 15th Conf. on Computer Aided Verification (CAV 2002), LNCS, vol. 2725, pp. 14–26 (2003)

  33. Schiper A., Toueg S.: From set membership to group membership: A separation of concerns. IEEE Trans. Dependable Secur. Comput. (TDSC) 3(1), 2–12 (2006)

    Article  Google Scholar 

  34. Sheeran, M., Singh, S., Stålmarck, G.: Checking safety properties using induction and a sat-solver. In: Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design (FMCAD ’00), LNCS, vol. 1954, pp. 108–125. Springer, London, UK (2000)

  35. Tsuchiya, T., Schiper, A.: An automatic real-time analysis of the time to reach consensus. In: Proc. of 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007), pp. 53–60 (2007)

  36. Tsuchiya, T., Schiper, A.: Model checking of consensus algorithms. In: Proc. 26th Symp. on Reliable Distributed Systems (SRDS), pp. 137–148. Beijing, China (2007)

  37. Tsuchiya, T., Schiper, A.: Using bounded model checking to verify consensus algorithms. In: 22nd International Symposium on Distributed Computing (DISC 2008), LNCS, vol. 5218, pp. 466–480. Springer (2008)

  38. Zieliński, P.: Automatic verification and discovery of Byzantine consensus protocols. In: Proc. Int’l Conf. on Dependable Systems and Network (DSN 2007), pp. 72–81. IEEE CS Press, Edinburgh, UK (2007)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tatsuhiro Tsuchiya.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Tsuchiya, T., Schiper, A. Verification of consensus algorithms using satisfiability solving. Distrib. Comput. 23, 341–358 (2011). https://doi.org/10.1007/s00446-010-0123-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00446-010-0123-3

Keywords

Navigation