Abstract
In a ground-breaking paper that appeared in 1983, Ben-Or presented the first randomized algorithm to solve consensus in an asynchronous message-passing system where processes can fail by crashing. Although more efficient randomized algorithms were subsequently proposed, Ben-Or’s algorithm is still the simplest and most elegant one. For this reason, it is often taught in distributed computing courses and it appears in several textbooks. Even though Ben-Or’s algorithm is widely known and it is very simple, surprisingly a proof of correctness of the algorithm has not yet appeared: previously published proofs make some simplifying assumptions—specifically, they either assume that f < n/3 (n is the total number of processes and f is maximum number of processes that may crash) or that the adversary is weak, that is, it cannot see the process states or the content of the messages. In this paper, we present a correctness proof for Ben-Or’s randomized consensus algorithm for the case that f < n/2 process crashes and the adversary is strong (i.e., it can see the process states and message contents, and schedule the process steps and message receipts accordingly). To the best of our knowledge, this is the first full proof of this classical algorithm. We also demonstrate a counterintuitive problem that may occur if one uses the well-known abstraction of a “global coin” to modularize and speed up randomized consensus algorithms, such as Ben-Or’s algorithm. Specifically, we show that contrary to common belief, the use of a global coin can sometimes be deleterious rather than beneficial: instead of speeding up Ben-Or’s algorithm, the use of a global coin in this algorithm may actually prevent termination.
Similar content being viewed by others
References
Attiya H., Censor K.: Tight bounds for asynchronous randomized consensus. J. ACM 55(5), 20:1–20:26 (2008)
Attiya H., Censor-Hillel K.: Lower bounds for randomized consensus under a weak adversary. SIAM J. Comput. 39(8), 3885–3904 (2010)
Aspnes J., Herlihy M.: Fast randomized consensus using shared memory. Journal of Algorithms 11, 441–461 (1990)
Aspnes J.: Randomized protocols for asynchronous consensus. Distrib. Comput. 16(2–3), 165–175 (2003)
Aspnes, J.: Randomized consensus in expected O(n 2) total work using single-writer registers. In: International Symposium on Distributed Computing, pp. 263–273 (2011)
Aguilera, M.K., Toueg, S.: Correctness proof of Ben-Or’s randomized consensus algorithm. Technical report TR98-1682, Department of Computer Science, Cornell University, Ithaca, NY 14853 (1998)
Attiya H., Welch J.: Distributed Computing, 2nd edn. Wiley, Hoboken (2004)
Ben-Or, M.: Another advantage of free choice: completely asynchronous agreement protocols. In: ACM Symposium on Principles of Distributed Computing, pp. 27–30 (1983)
Bracha, G., Rachman, O.: Randomized consensus in expected O(n 2 log n operations. In: International Workshop on Distributed Algorithms, pp. 143–150 (1991))
Chor B., Dwork C.: Randomization in Byzantine agreement. Adv. Comput. Res. 4, 443–497 (1989)
Fischer M.J., Lynch N.A., Paterson M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)
Golab, W.M., Higham, L., Woelfel, P.: Linearizable implementations do not suffice for randomized distributed computation. In: ACM Symposium on Theory of Computing, pp. 373–382 (2011)
Hadzilacos, V.: Lecture notes. Unpublished manuscript (1991)
Lynch N.A.: Distributed Algorithms. Morgan Kaufmann Publishers, Inc, San Fransisco (1996)
Schneider F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv 22, 299–319 (1990)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Aguilera, M.K., Toueg, S. The correctness proof of Ben-Or’s randomized consensus algorithm. Distrib. Comput. 25, 371–381 (2012). https://doi.org/10.1007/s00446-012-0162-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00446-012-0162-z