Skip to main content
Log in

The correctness proof of Ben-Or’s randomized consensus algorithm

  • Published:
Distributed Computing Aims and scope Submit manuscript

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.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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. Attiya H., Censor K.: Tight bounds for asynchronous randomized consensus. J. ACM 55(5), 20:1–20:26 (2008)

    Article  MathSciNet  Google Scholar 

  2. Attiya H., Censor-Hillel K.: Lower bounds for randomized consensus under a weak adversary. SIAM J. Comput. 39(8), 3885–3904 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  3. Aspnes J., Herlihy M.: Fast randomized consensus using shared memory. Journal of Algorithms 11, 441–461 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  4. Aspnes J.: Randomized protocols for asynchronous consensus. Distrib. Comput. 16(2–3), 165–175 (2003)

    Article  Google Scholar 

  5. 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)

  6. 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)

  7. Attiya H., Welch J.: Distributed Computing, 2nd edn. Wiley, Hoboken (2004)

    Book  Google Scholar 

  8. Ben-Or, M.: Another advantage of free choice: completely asynchronous agreement protocols. In: ACM Symposium on Principles of Distributed Computing, pp. 27–30 (1983)

  9. Bracha, G., Rachman, O.: Randomized consensus in expected O(n 2 log n operations. In: International Workshop on Distributed Algorithms, pp. 143–150 (1991))

  10. Chor B., Dwork C.: Randomization in Byzantine agreement. Adv. Comput. Res. 4, 443–497 (1989)

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  12. 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)

  13. Hadzilacos, V.: Lecture notes. Unpublished manuscript (1991)

  14. Lynch N.A.: Distributed Algorithms. Morgan Kaufmann Publishers, Inc, San Fransisco (1996)

    MATH  Google Scholar 

  15. Schneider F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv 22, 299–319 (1990)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcos K. Aguilera.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00446-012-0162-z

Keywords

Navigation