Abstract
Blockchain is a disruptive technology that relies on the distributed nature of the peer-to-peer network while performing an agreement, or consensus, a mechanism to achieve an immutable, global, and consistent registry of all transactions. Thus, a key challenge in developing blockchain solutions is to design the consensus mechanism properly. As a consequence of being a distributed application, any consensus mechanism is restricted to offer two of three properties: consistency, availability, and partition tolerance. In this paper, we survey the main consensus mechanisms on blockchain solutions, and we highlight the properties of each one. Moreover, we differentiate both deterministic and probabilistic consensus mechanisms, and we highlight coordination solutions that facilitate the data distribution on the blockchain, without the need for a sophisticated consensus mechanism.
Similar content being viewed by others
Notes
Available at https://www.hyperledger.org/projects/sawtooth
References
Nakamoto S (2008) Bitcoin: a peer-to-peer electronic cash system
Medeiros DSV, Fernandes NC, Mattos DMF (2019) Smart contracts and the power grid: a survey. In: 2019 1st Blockchain, Robotics and AI for Networking Security Conference (BRAINS), ser. BRAINS’19. IEEE, pp 41–47
Oliveira MT, Carrara GR, Fernandes NC, Albuquerque CVN, Carrano RC, Medeiros DSV, Mattos DMF (2019) Towards a performance evaluation of private blockchain frameworks using a realistic workload. In: 2019 22nd conference on innovation in clouds, internet and networks and workshops (ICIN), pp 180–187
Zheng Z, Xie S, Dai H, Chen X, Wang H (2017) An overview of blockchain technology: architecture, consensus, and future trends. In: 2017 IEEE international congress on big data (BigData Congress). IEEE, pp 557–564
Brewer EA (2000) Towards robust distributed systems. In: PODC, vol 7
Cachin C, Vukolić M (2017) Blockchain consensus protocols in the wild. arXiv:1707.01873
Zheng Z, Xie S, Dai H, Chen X, Wang H (2017) An overview of blockchain technology: architecture, consensus, and future trends. In: 2017 IEEE international congress on big data (BigData Congress), pp 557–564
Ren W, Beard RW, Atkins EM (2005) A survey of consensus problems in multi-agent coordination. In: Proceedings of the 2005, American Control Conference, 2005, vol 3, pp 1859–1864
Correia M, Veronese GS, Neves NF, Verissimo P (2011) Byzantine consensus in asynchronous message-passing systems: a survey. International Journal of Critical Computer-Based Systems 2(2):141–161
Lamport L, et al (2001) Paxos made simple. ACM Sigact News 32(4):18–25
Mattos DMF, Duarte OCMB, Pujolle G (2018) A lightweight protocol for consistent policy update on software-defined networking with multiple controllers. J Netw Comput Appl 122:77–87. Online. Available: http://www.sciencedirect.com/science/article/pii/S1084804518302649
Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Softw Eng 2:125–143
Fischer MJ, Lynch NA, Paterson MS (1985) Impossibility of distributed consensus with one faulty process. J ACM 32(2):374–382
Fischer MJ, Lynch NA, Paterson MS (1982) Impossibility of distributed consensus with one faulty process. Massachusetts Inst of Tech Cambridge lab for Computer Science, Tech Rep
Dolev D, Dwork C, Stockmeyer L (1987) On the minimal synchronism needed for distributed consensus. J ACM 34(1):77–97. Online. Available: https://doi.org/10.1145/7531.7533
Kreps J, Narkhede N, Rao J, et al (2011) Kafka: a distributed messaging system for log processing. In: Proceedings of the NetDB, pp 1–7
Hunt P, Konar M, Junqueira FP, Reed B (2010) Zookeeper: Wait-free coordination for Internet-scale systems. In: USENIX annual technical conference, vol 8, no 9. Boston, MA, USA
Kwon J (2014) Tendermint: Consensus without mining. Draft v 0.6, fall 1:11
Baliga A, Solanki N, Verekar S, Pednekar A, Kamat P, Chatterjee S (2018) Performance characterization of hyperledger fabric, in. In: 2018 Crypto Valley conference on blockchain technology (CVCBT), pp 65–74
Wang W, Hoang DT, Hu P, Xiong Z, Niyato D, Wang P, Wen Y, Kim DI (2019) A survey on consensus mechanisms and mining strategy management in blockchain networks. IEEE Access 7:22328–22370
de Oliveira MT, Reis LHA, Carrano RC, Seixas FL, Saade DCM, Albuquerque CV, Fernandes NC, Olabarriaga SD, Medeiros DSV, Mattos DMF (2019) Towards a blockchain-based secure electronic medical record for healthcare applications. In: ICC 2019 - 2019 IEEE international conference on communications (ICC), pp 1–6
Chen L, Xu L, Shah N, Gao Z, Lu Y, Shi W (2017) On security analysis of proof-of-elapsed-time (poet). In: International symposium on stabilization, safety, and security of distributed systems. Springer, pp 282–297
Baliga A (2017) Understanding blockchain consensus models. In: Persistent
Lamport L, Shostak R, Pease M (1982) The byzantine generals problem. ACM Transactions on Programming Languages and Systems (TOPLAS) 4(3):382–401
Bessani A, Sousa JA, Alchieri EEP (2014) State machine replication for the masses with bft-smart. In: Proceedings of the 2014 44th Annual IEEE/IFIP international conference on dependable systems and networks, ser. DSN ?14. IEEE Computer Society, Washington, pp 355–362
Castro M, Liskov B (2002) Practical byzantine fault tolerance and proactive recovery. ACM Trans Comput Syst 20(4):398–461. Online. Available: https://doi.org/10.1145/571637.571640
Vukolić M (2016) The quest for scalable blockchain fabric: Proof-of-work vs. bft replication. In: Camenisch J, Kesdoğan D (eds) Open problems in network security. Springer International Publishing, Cham, pp 112–125
Ongaro D, Ousterhout J (2014) In search of an understandable consensus algorithm. In: 2014 USENIX annual technical conference (USENIX ATC 14). USENIX Association, Philadelphia, pp 305–319
Jalalzai MM, Busch C (2018) Window based bft blockchain consensus. In: 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), pp 971–979
Kotla R, Alvisi L, Dahlin M, Clement A, Wong E (2007) Zyzzyva: speculative byzantine fault tolerance. In: Proceedings of Twenty-first ACM SIGOPS symposium on operating systems principles, ser. SOSP ’07. ACM, New York, pp 45–58
Golan Gueta G, Abraham I, Grossman S, Malkhi D, Pinkas B, Reiter M, Seredinschi D, Tamir O, Tomescu A (2019) Sbft: a scalable and decentralized trust infrastructure. In: 2019 49th Annual IEEE/IFIP international conference on dependable systems and networks (DSN), pp 568–580
Boichat R, Dutta P, Frølund S, Guerraoui R (2003) Deconstructing paxos. ACM Sigact News 34 (1):47–67
Woos D, Wilcox JR, Anton S, Tatlock Z, Ernst MD, Anderson T (2016) Planning for change in a formal verification of the raft consensus protocol. In: Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs, ser. CPP 2016. Online. Available: https://doi.org/10.1145/2854065.2854081. ACM, New York, pp 154–165
Malone TW, Crowston K (1990) What is coordination theory and how can it help design cooperative work systems?. In: Proceedings of the 1990 ACM conference on computer-supported cooperative work. ACM, pp 357–370
Bungale PP, Goodell G, Roussopoulos M (2005) Conservation vs. consensus in peer-to-peer preservation systems. In: International workshop on peer-to-peer systems. Springer, pp 240–251
Saab W, Mohiuddin M, Bliudze S, Le Boudec J-Y (2017) Quarts: quick agreement for real-time control systems. In: 2017 22nd IEEE international conference on emerging technologies and factory automation (ETFA). IEEE, pp 1–8
Funding
The authors would like to thank CNPq, CAPES, FAPERJ, and CGI/FAPESP for their financial support.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Carrara, G.R., Burle, L.M., Medeiros, D.S.V. et al. Consistency, availability, and partition tolerance in blockchain: a survey on the consensus mechanism over peer-to-peer networking. Ann. Telecommun. 75, 163–174 (2020). https://doi.org/10.1007/s12243-020-00751-w
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-020-00751-w