# Hybrid binary consensus in anonymous asynchronous systems using coins and failure detectors

## Abstract

*Fault tolerance* and *agreement* are essential capabilities of current distributed systems. In this context, *Binary Consensus* is a key problem. It is well-known that consensus cannot be solved in a pure asynchronous system when at least one process can crash. To overcome this impossibility result, the asynchronous system is usually augmented with randomization, *failure detectors* or some kind of synchronization. Random binary consensus in classic asynchronous systems is usually solved using a *common coin* to achieve a constant expected number of rounds. However, to our knowledge, the literature lacks the existence of common coin algorithms for anonymous asynchronous systems. In this paper, an implementation of a common coin that runs on anonymous asynchronous systems is proposed and it is proved that the probability that this common coin gives the same outcome to all processes is bigger than 0.75 with small bias. This result allows to solve random consensus, in anonymous asynchronous systems, in four expected rounds, independently of the number of processes in the system. The main result of this paper is a hybrid (deterministic/random) binary consensus algorithm which solves consensus in anonymous asynchronous systems enriched with a common coin and a failure detector of class \(A{\varOmega}'\), where less than half of the processes may fail, which is an optimal bound on the number of failures. To our knowledge, this is the first such algorithm. It only needs a quadratic number of interchanged messages per round, and the size of these messages is minimal (*O*(1) bytes). Consensus is achieved in one round by our hybrid algorithm if the failure detector does not make any errors or all processes propose the same value, and in four expected rounds if the adversary does not control the common coin. Additionally, we conducted an experimental evaluation whose results agree with the expected ones and slightly improve them. In particular, above 95% of the times, all processes get the same outcome from the coin, and random consensus is achieved in less than two rounds on average with very small standard deviation. This makes our algorithms good candidates for deployment in practical distributed systems.

## Keywords

Fault-tolerant distributed systems Binary consensus Common coin Hybrid consensus Anonymous asynchronous systems## Notes

### Acknowledgements

We would like to thank Jesús García López de Lacalle for his help with mathematical aspects of the proofs.

### Funding

This work has been partially funded by the Ministry of Economy and Competitiveness (MINECO) under Project CloudDB (TIN2016-80350), European Union Horizon 2020 Programme under Project CloudDBAppliance (Grant 732051), and by the Regional Government of Madrid (CM) under Project Cloud4BigData (S2013/ICE-2894) cofunded by FSE & FEDER.

## References

- 1.Aguilera MK, Toueg S (1998) Failure detection and randomization: a hybrid approach to solve consensus. SIAM J Comput 28(3):890–903MathSciNetCrossRefzbMATHGoogle Scholar
- 2.Akyildiz IF, Weilian S, Sankarasubramaniam Y, Cayirci E (2002) Wireless sensor networks: a survey. Comput Netw 38(4):393–422CrossRefGoogle Scholar
- 3.Angluin D (1980) Local and global properties in networks of processors (extended abstract). In: Miller RE, Ginsburg S, Burkhard WA, Lipton RJ (eds) Proceedings of the 12th Annual ACM Symposium on Theory of Computing, April 28–30, 1980, Los Angeles, CA, USA. ACM, pp 82–93Google Scholar
- 4.Angluin D, Aspnes J, Diamadi Z, Fischer MJ, Peralta R (2006) Computation in networks of passively mobile finite-state sensors. Distrib Comput 18(4):235–253CrossRefzbMATHGoogle Scholar
- 5.Angluin D, Aspnes J, Eisenstat D, Ruppert E (2005) On the power of anonymous one-way communication. In: Anderson JH, Prencipe G, Wattenhofer R (eds) Principles of Distributed Systems, 9th International Conference, OPODIS 2005, Pisa, Italy, 12–14 Dec 2005, Revised Selected Papers, volume 3974 of Lecture Notes in Computer Science. Springer, pp 396–411Google Scholar
- 6.Aspnes J (2003) Randomized protocols for asynchronous consensus. Distrib Comput 16(2–3):165–175CrossRefGoogle Scholar
- 7.Attiya H, Snir M, Warmuth MK (1988) Computing on an anonymous ring. J ACM 35(4):845–875MathSciNetCrossRefzbMATHGoogle Scholar
- 8.Attiya H, Welch J (2004) Distributed computing: fundamentals, simulations and advanced topics. Wiley, HobokenCrossRefzbMATHGoogle Scholar
- 9.Babu KS, Hota J, Jena SK (2014) Privacy preserving social networking. Int J Comput Sci Eng 9(3):165–176Google Scholar
- 10.Ben-Or M (1983) Another advantage of free choice: completely asynchronous agreement protocols (extended abstract). In: Probert RL, Lynch NA, Santoro N (eds) Proceedings of the Second Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, Montreal, QC, Canada, 17–19 Aug 1983. ACM, pp 27–30Google Scholar
- 11.Bonnet F, Raynal M (2011) The price of anonymity: optimal consensus despite asynchrony, crash, and anonymity. TAAS 6(4):23:1–23:28CrossRefzbMATHGoogle Scholar
- 12.Bonnet F, Raynal M (2013) Anonymous asynchronous systems: the case of failure detectors. Distrib Comput 26(3):141–158CrossRefzbMATHGoogle Scholar
- 13.Bouzid Z, Travers C (2012) Anonymity, failures, detectors and consensus. Working paper or preprint, AugustGoogle Scholar
- 14.Bouzid Z, Travers C (2012) Brief announcement: anonymity, failures, detectors and consensus. In: Aguilera MK (ed) Distributed Computing—26th International Symposium, DISC 2012, Salvador, Brazil, 16–18 Oct 2012. Proceedings, volume 7611 of Lecture Notes in Computer Science. Springer, pp 427–428Google Scholar
- 15.Bracha G (1987) Asynchronous Byzantine agreement protocols. Inf Comput 75(2):130–143MathSciNetCrossRefzbMATHGoogle Scholar
- 16.Cachin C, Guerraoui R, Rodrigues L (2011) Introduction to reliable and secure distributed programming, 2nd edn. Springer, Berlin IncorporatedCrossRefzbMATHGoogle Scholar
- 17.Cachin C, Kursawe K, Shoup V (2005) Random oracles in constantinople: practical asynchronous Byzantine agreement using cryptography. J Cryptol 18(3):219–246MathSciNetCrossRefzbMATHGoogle Scholar
- 18.Canetti R, Rabin T (1993) Fast asynchronous Byzantine agreement with optimal resilience. In: Rao KS, Johnson DS, Aggarwal A (eds) Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, 16–18 May 1993, San Diego, CA, USA. ACM, pp 42–51Google Scholar
- 19.Chandra TD, Hadzilacos V, Toueg S (1996) The weakest failure detector for solving consensus. J ACM 43(4):685–722MathSciNetCrossRefzbMATHGoogle Scholar
- 20.Chandra TD, Toueg S (1996) Unreliable failure detectors for reliable distributed systems. J ACM 43(2):225–267MathSciNetCrossRefzbMATHGoogle Scholar
- 21.Chang C-C, Lin C-Y, Lin K-C (2007) Simple efficient mutual anonymity protocols for peer-to-peer network based on primitive roots. J Netw Comput Appl 30(2):662–676CrossRefGoogle Scholar
- 22.Chor B, Dwork C (1989) Randomization in Byzantine agreement. Adv Comput Res 5:443–497Google Scholar
- 23.Chor B, Merritt M, Shmoys DB (1989) Simple constant-time consensus protocols in realistic failure models. J ACM 36(3):591–614MathSciNetCrossRefzbMATHGoogle Scholar
- 24.Chothia T, Chatzikokolakis K (2005) A survey of anonymous peer-to-peer file-sharing. In: Enokido T, Yan L, Xiao B, Kim D, Dai Y-S, Yang LT (eds) Embedded and Ubiquitous Computing—EUC 2005 Workshops, EUC 2005 Workshops: UISW, NCUS, SecUbiq, USN, and TAUES, Nagasaki, Japan, 6–9 Dec 2005, Proceedings, volume 3823 of Lecture Notes in Computer Science. Springer, pp 744–755Google Scholar
- 25.Correia M, Veronese GS, Neves NF, Verissimo P (2011) Byzantine consensus in asynchronous message-passing systems: a survey. Int J Crit Comput Based Syst 2(2):141–161CrossRefGoogle Scholar
- 26.Durresi A, Paruchuri V, Durresi M, Barolli L (2005) A hierarchical anonymous communication protocol for sensor networks. In: Yang LT, Amamiya M, Liu Z, Guo M, Rammig FJ (eds) Embedded and Ubiquitous Computing—EUC 2005, International Conference EUC 2005, Nagasaki, Japan, December 6-9, 2005, Proceedings, volume 3824 of Lecture Notes in Computer Science, pp 1123–1132. SpringerGoogle Scholar
- 27.Fischer MJ, Lynch NA, Paterson MS (1985) Impossibility of distributed consensus with one faulty process. J ACM 32(2):374–382MathSciNetCrossRefzbMATHGoogle Scholar
- 28.Goldreich O, Petrank E (1990) The best of both worlds: guaranteeing termination in fast randomized Byzantine agreement protocols. Inf Process Lett 36(1):45–49MathSciNetCrossRefzbMATHGoogle Scholar
- 29.Guerraoui R, Ruppert E (2005) What can be implemented anonymously? In: Fraigniaud P (ed) Distributed Computing, 19th International Conference, DISC 2005, Cracow, Poland, 26–29 Sept 2005, Proceedings, volume 3724 of Lecture Notes in Computer Science. Springer, pp 244–259Google Scholar
- 30.Jiménez E, Arévalo S, Fernández A (2006) Implementing unreliable failure detectors with unknown membership. Inf Process Lett 100(2):60–63MathSciNetCrossRefzbMATHGoogle Scholar
- 31.Jiménez E, Arévalo S, Herrera C, Tang J (2015) Eventual election of multiple leaders for solving consensus in anonymous systems. J Supercomput 71(10):3726–3743CrossRefGoogle Scholar
- 32.Lamport L, Shostak R, Pease M (1982) The Byzantine generals problem. ACM Trans Program Lang Syst 4(3):382–401CrossRefzbMATHGoogle Scholar
- 33.Mostéfaoui A, Moumen H, Raynal M (2015) Signature-free asynchronous binary byzantine consensus with \(\text{ t } < \text{ n }/3\), o(n2) messages, and O(1) expected time. J ACM 62(4):31:1–31:21CrossRefzbMATHGoogle Scholar
- 34.Mostéfaoui A, Raynal M, Tronel F (2000) The best of both worlds: a hybrid approach to solve consensus. In: 2000 International Conference on Dependable Systems and Networks (DSN 2000) (formerly FTCS-30 and DCCA-8), 25–28 June 2000, New York, NY, USA. IEEE Computer Society, pp 513–522Google Scholar
- 35.Mostéfaoui A, Raynal M, Tronel F (2000) From binary consensus to multivalued consensus in asynchronous message-passing systems. Inf Process Lett 73(5):207–212MathSciNetCrossRefzbMATHGoogle Scholar
- 36.Ould-Ahmed-Vall EM, Blough DM, Heck-Ferri BS, Riley GF (2009) Distributed global ID assignment for wireless sensor networks. Ad Hoc Netw 7(6):1194–1216CrossRefGoogle Scholar
- 37.Pease M, Shostak R, Lamport L (1980) Reaching agreement in the presence of faults. J ACM 27(2):228–234MathSciNetCrossRefzbMATHGoogle Scholar
- 38.Rabin MO (1983) Randomized Byzantine generals. In: 24th Annual Symposium on Foundations of Computer Science, Tucson, AZ, USA, 7–9 Nov 1983. IEEE Computer Society, pp 403–409Google Scholar
- 39.Raynal M (2009) Failure detectors for asynchronous distributed systems: an introduction. Wiley Encycl Comput Sci Eng 2:1181–1191Google Scholar
- 40.Raynal M (2010) Communication and agreement abstractions for fault-tolerant asynchronous distributed systems. Synthesis lectures on distributed computing theory. Morgan & Claypool Publishers, Los AltosGoogle Scholar
- 41.Sherwood R, Bhattacharjee B, Srinivasan A (2002) P5 : a protocol for scalable anonymous communication. In: Proceedings 2002 IEEE Symposium on Security and Privacy, pp 58–70Google Scholar
- 42.Srikanth TK, Toueg S (1987) Simulating authenticated broadcasts to derive simple fault-tolerant algorithms. Distrib Comput 2(2):80–94CrossRefGoogle Scholar
- 43.Toueg S (1984) Randomized byzantine agreements. In: Kameda T, Misra J, Peters JG, Santoro N (eds) Proceedings of the Third Annual ACM Symposium on Principles of Distributed Computing, Vancouver, BC, Canada, 27–29 Aug 1984. ACM, pp 163–178Google Scholar
- 44.Zamsky A (1996) A randomized byzantine agreement protocol with constant expected time and guaranteed termination in optimal (deterministic) time. In: Burns JE, Moses Y (eds) Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, Philadelphia, PA, USA, 23–26 May 1996. ACM, pp 201–208Google Scholar