Skip to main content
Log in

Consistency, availability, and partition tolerance in blockchain: a survey on the consensus mechanism over peer-to-peer networking

  • Published:
Annals of Telecommunications Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

Notes

  1. Transaction is the atomic operation in a blockchain environment. A transaction may refer to an asset exchange, as in the Bitcoin [1], or a code execution, also called smart contract, as in Ethereum [2].

  2. Available at https://www.hyperledger.org/projects/sawtooth

References

  1. Nakamoto S (2008) Bitcoin: a peer-to-peer electronic cash system

  2. 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

  3. 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

  4. 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

  5. Brewer EA (2000) Towards robust distributed systems. In: PODC, vol 7

  6. Cachin C, Vukolić M (2017) Blockchain consensus protocols in the wild. arXiv:1707.01873

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

  8. 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

  9. 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

    Article  Google Scholar 

  10. Lamport L, et al (2001) Paxos made simple. ACM Sigact News 32(4):18–25

    Google Scholar 

  11. 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

    Article  Google Scholar 

  12. Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Softw Eng 2:125–143

    Article  MathSciNet  Google Scholar 

  13. Fischer MJ, Lynch NA, Paterson MS (1985) Impossibility of distributed consensus with one faulty process. J ACM 32(2):374–382

    Article  MathSciNet  Google Scholar 

  14. 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

  15. 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

    Article  MathSciNet  Google Scholar 

  16. 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

  17. 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

  18. Kwon J (2014) Tendermint: Consensus without mining. Draft v 0.6, fall 1:11

    Google Scholar 

  19. 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

  20. 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

    Article  Google Scholar 

  21. 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

  22. 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

  23. Baliga A (2017) Understanding blockchain consensus models. In: Persistent

  24. Lamport L, Shostak R, Pease M (1982) The byzantine generals problem. ACM Transactions on Programming Languages and Systems (TOPLAS) 4(3):382–401

    Article  Google Scholar 

  25. 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

  26. 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

    Article  Google Scholar 

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. Boichat R, Dutta P, Frølund S, Guerraoui R (2003) Deconstructing paxos. ACM Sigact News 34 (1):47–67

    Article  Google Scholar 

  33. 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

  34. 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

  35. 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

  36. 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

Download references

Funding

The authors would like to thank CNPq, CAPES, FAPERJ, and CGI/FAPESP for their financial support.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diogo M. F. Mattos.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12243-020-00751-w

Keywords

Navigation