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.
Similar content being viewed by others
References
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)
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)
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
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)
Chandra T.D., Toueg S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2), 225–267 (1996). doi:10.1145/226643.226647
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)
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)
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)
Charron-Bost B., Schiper A.: Harmful dogmas in fault tolerant distributed computing. SIGACT News 38(1), 53–61 (2007)
Charron-Bost B., Schiper A.: The heard-of model: Computing in distributed systems with Benign failures. Distrib. Comput. 22(1), 49–71 (2009)
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)
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)
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
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)
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
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
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
Gafni E., Lamport L.: Disk Paxos. Distrib. Comput. 16(1), 1–20 (2003). doi:10.1007/s00446-002-0070-8
Guerraoui R., Schiper A.: The generic consensus service. IEEE Trans. Softw. Eng. 27(1), 29–41 (2001). doi:10.1109/32.895986
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)
Holzmann G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997). doi:10.1109/32.588521
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)
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)
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)
Lamport L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998). doi:10.1145/279227.279229
Lamport, L.: Personal Communication (2006)
Lamport L.: Fast Paxos. Distrib. Comput. 19(2), 79–103 (2006)
McMillan K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Norwell, MA (1993)
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)
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)
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)
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)
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)
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)
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)
Tsuchiya, T., Schiper, A.: Model checking of consensus algorithms. In: Proc. 26th Symp. on Reliable Distributed Systems (SRDS), pp. 137–148. Beijing, China (2007)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00446-010-0123-3