Skip to main content

A survey of Blockchain consensus algorithms: mechanism, design and applications

Abstract

In 2008, Blockchain was introduced to the world as the underlying technology of the Bitcoin system. After more than a decade of development, various Blockchain systems have been proposed by both academia and industry. This paper focuses on the consensus algorithm, which is one of the core technologies of Blockchain. In this paper, we propose a unified consensus algorithm process model that is suitable for Blockchains based on both the chain and directed acyclic graph (DAG) structure. Subsequently, we analyze various mainstream Blockchain consensus algorithms and classify them according to their design in different phases of the process model. Additionally, we present an evaluation framework of Blockchain consensus algorithms and then discuss the security design principles that enable resistance from different attacks. Finally, we provide some suggestions for selecting consensus algorithms in different Blockchain application scenarios.

This is a preview of subscription content, access via your institution.

References

  1. Nakamoto S. Bitcoin: a peer-to-peer electronic cash system. 2008. http://bitcoin.org/bitcoin.pdf

  2. Zheng Z B, Xie S A, Dai H N, et al. Blockchain challenges and opportunities: a survey. Int J Web Grid Serv, 2018, 14: 352

    Article  Google Scholar 

  3. Yuan Y, Wang F Y. Blockchain: the state of the art and future trends. Acta Autom Sin, 2016, 42: 481–494

    Google Scholar 

  4. Wood G. Ethereum: a secure decentralised generalised transaction ledger. 2014. http://gavwood.com/Paper.pdf

  5. Yuan Y, Wang F Y. Blockchain and cryptocurrencies: model, techniques, and applications. IEEE Trans Syst Man Cybern Syst, 2018, 48: 1421–1428

    Article  Google Scholar 

  6. Christidis K, Devetsikiotis M. Blockchains and smart contracts for the internet of things. IEEE Access, 2016, 4: 2292–2303

    Article  Google Scholar 

  7. Sharma P K, Chen M Y, Park J H. A software defined fog node based distributed blockchain cloud architecture for IoT. IEEE Access, 2018, 6: 115–124

    Article  Google Scholar 

  8. Chen Q, Bridges R A. Automated behavioral analysis of malware: a case study of wannacry ransomware. In: Proceedings of the 16th IEEE International Conference on Machine Learning and Applications (ICMLA), 2017. 454–460

  9. Bencic F M, Zarko I P. Distributed ledger technology: blockchain compared to directed acyclic graph. In: Proceedings of the 38th International Conference on Distributed Computing Systems (ICDCS), 2018. 1569–1570

  10. Chen Z D, Dong A Q, Sun H, et al. Research on private blockchain based on crowdfunding. J Inf Secur Res, 2017, 3: 227–236

    Google Scholar 

  11. Pongnumkul S, Siripanpornchana C, Thajchayapong S. Performance analysis of private blockchain platforms in varying workloads. In: Proceedings of the 26th International Conference on Computer Communication and Networks (ICCCN), 2017

  12. Lamport L, Shostak R, Pease M. The Byzantine generals problem. ACM Trans Program Lang Syst, 1982, 4: 382–401

    Article  Google Scholar 

  13. Perry K J, Toueg S. Distributed agreement in the presence of processor and communication faults. IEEE Trans Softw Eng, 1986, 12: 477–482

    Article  Google Scholar 

  14. Lamport L. The part-time parliament. ACM Trans Comput Syst, 1998, 16: 133–169

    Article  Google Scholar 

  15. Lamport L. Paxos made simple. ACM Sigact News, 2001, 32: 18–25

    Google Scholar 

  16. Ongaro D, Ousterhout J. In search of an understandable consensus algorithm. In: Proceedings of USENIX Annual Technical Conference, 2014. 305–319

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

    MathSciNet  Article  Google Scholar 

  18. Karame G, Androulaki E, Capkun S. Two bitcoins at the price of one? Double-spending attacks on fast payments in bitcoin. 2012. https://eprint.iacr.org/2012/248.pdf

  19. Karame G. On the security and scalability of bitcoin’s blockchain. In: Proceedings of ACM Sigsac Conference on Computer and Communications Security, 2016. 1861–1862

  20. King S, Nadal S. Ppcoin: peer-to-peer crypto-currency with proof-of-stake. 2012. https://decred.org/research/king2012.pdf

  21. Castro M, Liskov B. Practical byzantine fault tolerance. In: Proceedings of Symposium on Operating Systems Design and Implementation, 1999. 173–186

  22. Bano S, Sonnino A, Al-Bassam M, et al. Consensus in the age of blockchains. 2017. ArXiv:1711.03936

  23. Bach L, Mihaljevic B, Zagar M. Comparative analysis of blockchain consensus algorithms. In: Proceedings of the 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2018. 1545–1550

  24. Wang W, Hoang D T, Hu P, et al. A survey on consensus mechanisms and mining strategy management in blockchain networks. IEEE Access, 2019, 7: 22328–22370

    Article  Google Scholar 

  25. Eyal I, Gencer A E, Sirer E G, et al. Bitcoin-ng: a scalable blockchain protocol. In: Proceedings of the 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI16), 2016. 45–59

  26. Gilad Y, Hemo R, Micali S, et al. Algorand: scaling byzantine agreements for cryptocurrencies. In: Proceedings of the 26th Symposium on Operating Systems Principles, 2017. 51–68

  27. Zhang Z W. A byzantine fault-tolerant algorithm for blockchains. 2016. https://docs.neo.org/en-us/basic/consensus/whitepaper.html

  28. Churyumov A. Byteball: a decentralized system for storage and transfer of value. 2016. https://byteball.org/Byteball.pdf

  29. Baird L. The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance. Swirlds Tech Reports SWIRLDS-TR-2016-01. 2016

  30. Micali S, Rabin M, Vadhan S. Verifiable random functions. In: Proceedings of the 40th Annual Symposium on Foundations of Computer Science, 1999. 120–130

  31. Li X Q, Jiang P, Chen T, et al. A survey on the security of blockchain systems. Future Generation Comput Syst, 2020, 107: 841–853

    Article  Google Scholar 

  32. Fu X, Wang H M, Shi P C, et al. Jointgraph: a DAG-based efficient consensus algorithm for consortium blockchains. Softw-Pract Exper, 2019, 42: 2748

    Google Scholar 

  33. Rachmawati D, Tarigan J T, Ginting A B C. A comparative study of message digest 5(MD5) and SHA256 algorithm. J Phys-Conf Ser, 2018, 978: 012116

    Article  Google Scholar 

  34. O’Dwyer K J, Malone D. Bitcoin mining and its energy footprint. In: Proceedings of the 25th IET Irish Signals & Systems Conference, 2014

  35. Li C X, Li P L, Xu W, et al. Scaling nakamoto consensus to thousands of transactions per second. 2018. ArXiv:1805.03870

  36. Larimer D. Delegated Proof-of-Stake (DPOS). Bitshare whitepaper, 2014

  37. Milutinovic M, He W, Wu H, et al. Proof of luck: an efficient blockchain consensus protocol. In: proceedings of the 1st Workshop on System Software for Trusted Execution, 2016

  38. Karantias K, Kiayias A, Zindros D. Proof-of-burn. In: Proceedings of International Conference on Financial Cryptography and Data Security, 2020. 523–540

  39. Sabt M, Achemlal M, Bouabdallah A. Trusted execution environment: what it is, and what it is not. In: Proceedings of the 14th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, 2015

  40. Fabric H. Simple BFT. 2018. https://jira.hyperledger.org/browse/FAB-378

  41. Androulaki E, Barger A, Bortnikov V, et al. Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of European Conference on Computer Systems, 2018

  42. Yin M F, Malkhi D, Reiter M K, et al. Hotstuff: BFT consensus with linearity and responsiveness. In: Proceedings of ACM Symposium on Principles of Distributed Computing, 2019

  43. Stathakopoulou C, David T, Vukolić M. Mir-BFT: high-throughput BFT for blockchains. 2019. ArXiv:1906.05552

  44. Baudet M, Ching A, Chursin A, et al. State machine replication in the libra blockchain. 2019. https://developers.libra.org/docs/assets/papers/libra-consensus-state-machine-replication-in-the-libra-blockchain/2019-09-19.pdf

  45. Amsden Z, Arora R, Bano S, et al. The libra blockchain. 2019. https://developers.libra.org/docs/the-libra-blockchain-paper

  46. Miller A, Xia Y, Croman K, et al. The honey badger of BFT protocols. In: Proceedings of ACM SIGSAC Conference on Computer and Communications Security, 2016. 31–42

  47. Ben-Or M, Kelmer B, Rabin T. Asynchronous secure computations with optimal resilience. In: Proceedings of the 13th Annual ACM Symposium on Principles of distributed computing, 1994. 183–192

  48. Fu X, Wang H M, Shi P C. Proof of previous transactions (PoPT): an efficient approach to consensus for JCLedger. IEEE Trans Syst Man Cybern Syst, 2019. doi: https://doi.org/10.1109/tsmc.2019.2913007

  49. Popov S. The tangle. 2018. http://www.descryptions.com/Iota.pdf

  50. Bentov I, Lee C, Mizrahi A, et al. Proof of activity: extending bitcoin’s proof of work via proof of stake. 2014. https://eprint.iacr.org/2014/452.pdf

  51. Buchman E. Tendermint: Byzantine fault tolerance in the age of blockchains. Dissertation for Ph.D. Degree. Guelph: University of Guelph, 2016

  52. Buterin V, Reijsbergen D, Leonardos S, et al. Incentives in Ethereum’s hybrid casper protocol. 2019. ArXiv:1903.04205

  53. Dinh T T A, Wang J, Chen G, et al. Blockbench: a framework for analyzing private blockchains. In: Proceedings of ACM International Conference on Management of Data, 2017. 1085–1100

  54. Nguyen G, Kim K. A survey about consensus algorithms used in blockchain. J Inf Process Syst, 2018, 14: 101–128

    Google Scholar 

  55. Chalaemwongwan N, Kurutach W. State of the art and challenges facing consensus protocols on blockchain. In: Proceedings of International Conference on Information Networking (ICOIN), 2018. 957–962

  56. Douceur J R. The sybil attack. In: Proceedings of International Workshop on Peer to Peer Systems, 2002

  57. Singh A, Ngan T W, Druschel P, et al. Eclipse attacks on overlay networks: threats and defenses. In: Proceedings of IEEE International Conference Computer and Communications, 2006

  58. Kroll J A, Davey I C, Felten E W. The economics of bitcoin mining, or bitcoin in the presence of adversaries. In: Proceedings of the 12th Workshop on the Economics of Information Securit, 2013

  59. Wang H M, Shi P C, Zhang Y M. Jointcloud: a cross-cloud cooperation architecture for integrated internet service customization. In: Proceedings of IEEE International Conference on Distributed Computing Systems, 2017. 1846–1855

  60. Liang J, Han W L, Guo Z Q, et al. DESC: enabling secure data exchange based on smart contracts. Sci China Inf Sci, 2018, 61: 049102

    Article  Google Scholar 

  61. Wu Y B, Fan H N, Wang X Y, et al. A regulated digital currency. Sci China Inf Sci, 2019, 62: 032109

    Article  Google Scholar 

  62. Veronese G S, Correia M, Bessani A N, et al. Efficient Byzantine fault-tolerance. IEEE Trans Comput, 2013, 62: 16–30

    MathSciNet  Article  Google Scholar 

Download references

Acknowledgements

This work was supported by National Key R&D Program of China (Grant No. 2016YFB1000100), National Natural Science Foundation of China (Grant No. 61772030), and GF Innovative Research Program.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Xiang Fu or Huaimin Wang.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Fu, X., Wang, H. & Shi, P. A survey of Blockchain consensus algorithms: mechanism, design and applications. Sci. China Inf. Sci. 64, 121101 (2021). https://doi.org/10.1007/s11432-019-2790-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s11432-019-2790-1

Keywords

  • Blockchain
  • consensus algorithm
  • Byzantine fault-tolerant
  • process model
  • design principles