Blockchain Consensus Algorithms: a Survey
Total Page:16
File Type:pdf, Size:1020Kb
1 Blockchain Consensus Algorithms: A Survey Md Sadek Ferdous, Member, IEEE, Mohammad Jabed Morshed Chowdhury, Mohammad A. Hoque, Member, IEEE, and Alan Colman F Abstract—In recent years, blockchain technology has received unpar- of Bitcoin [1] that was introduced in 2008. While crypto- alleled attention from academia, industry, and governments all around currencies have emerged as the principal and the most pop- the world. It is considered a technological breakthrough anticipated to ular application of blockchain technology, many enthusiasts disrupt several application domains touching all spheres of our lives. from different disciplines have identified and proposed a The sky-rocket anticipation of its potential has caused a wide-scale plethora of applications of blockchain in a multitude of exploration of its usage in different application domains. This has resul- ted in a plethora of blockchain systems for various purposes. However, application domains [2], [3]. The possibility of exploiting many of these blockchain systems suffer from serious shortcomings blockchain in so many areas has created huge anticipation related to their performance and security, which need to be addressed surrounding blockchain systems. Indeed, it is regarded as before any wide-scale adoption can be achieved. A crucial component one of the fundamental technologies to revolutionise the of any blockchain system is its underlying consensus algorithm, which landscapes of the identified application domains. in many ways, determines its performance and security. Therefore, to A blockchain system is, fundamentally, a distributed address the limitations of different blockchain systems, several existing system that relies on a consensus algorithm that ensures as well novel consensus algorithms have been introduced. A systematic agreement on the states of certain data among distributed analysis of these algorithms will help to understand how and why any nodes. A consensus algorithm is the core component that particular blockchain performs the way it functions. However, the existing studies of consensus algorithms are not comprehensive. Those studies directly dictates how such a system behaves and the per- have incomplete discussions on the properties of the algorithms and formance it can achieve. Distributed consensus has been fail to analyse several major blockchain consensus algorithms in terms a widely studied research topic in distributed systems, of their scopes. This article fills this gap by analysing a wide range of however, with the advent of blockchain, it has received consensus algorithms using a comprehensive taxonomy of properties renewed attention. A wide variety of crypto-currencies and by examining the implications of different issues still prevalent in targeting different application domains has introduced an consensus algorithms in detail. The result of the analysis is presented in array of unique requirements that can only be satisfied by tabular formats, which provides a visual illustration of these algorithms their corresponding consensus mechanisms. This fact has in a meaningful way. We have also analysed more than hundred top crypto-currencies belonging to different categories of consensus al- fuelled the need not only to examine the applicability of gorithms to understand their properties and to implicate different trends existing consensus algorithms in newer settings, but also to in these crypto-currencies. Finally, we have presented a decision tree innovate novel consensus algorithms. Consequently, several of algorithms to be used as a tool to test the suitability of consensus consensus algorithms have emerged, each of which pos- algorithms under different criteria. sesses interesting properties and unique capabilities. As the characteristics of various types of blockchain Index Terms—Blockchain, Distributed Consensus, Proof of Work, PoW, systems are fundamentally dependent on the consensus Proof of Stake, PoS, Delegated Proof of Stake, DPoS. algorithms they use, a systematic analysis of existing con- arXiv:2001.07091v2 [cs.DC] 7 Feb 2020 sensus algorithms is required. It is necessary to examine, compare, and contrast these algorithms. There have a been 1 INTRODUCTION a number of attempts aiming to fulfil this goal can be found in [4], [5], [6], [7], [8], [9], [10]. In particular, the works carried In the last few years, blockchain has received wide-spread out by Cachin et al. [4] and Bano et al. [5] are noteworthy as attention among the industry, the Government, and aca- they represent the pioneer works in this scope. Cachin et al., demia alike. This interest has been piqued by the success in their work, have explored different aspects of distributed systems and consensus and focused on consensus algorithm M. S. Ferdous is with Shahjalal University of Science and Technology, Sylhet 3114, Bangladesh and Imperial College London, London SW7 2AZ, U.K. E- deployed in blockchain systems that are not to open to mail: [email protected]. the public. On the other hand, the focus of the work by Bano et al. is more general in the sense they have explored Mohammad Jabed Morshed Chowdhury is with La Trobe University, Mel- bourne, Victoria-3086, Australia. E-mail: [email protected]. consensus algorithms used both in public as well as private systems. Another exceptional work is by Wang et al. [6] in Mohammad A. Hoque is with University of Helsinki, 3835 Helsinki, Helsinki which the authors have presented a comprehensive survey Finland. E-mail: mohammad.a.hoque@helsinki.fi. of different aspects of consensus, mining, and blockchains Alan Coleman is with Swinburne University of Technology, Hawthorn, in a detailed fashion. Australia. E-mail: [email protected]. However, all these works have some major shortcom- 2 ings. For example, the factors upon which the consensus responding crypto-currencies. algorithms have been analysed are not comprehensive. Importantly, a wide range of consensus algorithms and their internal mechanisms utilised in many existing crypto- 2 BACKGROUND:DISTRIBUTED CONSENSUS currencies have not been considered at all. In addition, all Consensus mechanisms in distributed systems have been of these studies have failed to capture the practical interrela- a well studied research problem for nearly three decades. tion between blockchain systems (mostly crypto-currencies) Such mechanisms enable consensus to be achieved regard- and their corresponding consensus algorithms. All in all, ing a shared state/data among a set of distributed nodes. there is a pressing need for a study that analyses a wide The need for a shared state originated the notion of replic- range of existing consensus algorithms and the blockchain ated database systems in order to ensure resilience against systems in a practical-oriented way and synthesises this node failures within a network. Such database systems analyses into a conceptual framework in a concise yet com- ensure that data is not lost when one or more nodes fail prehensive manner. The principal motivation of this article to function in an excepted fashion. is to fill in this gap. The notion of the replicated database can be generalised with the concept of State Machine Replication (SMR) [11]. Contributions. The main contributions of the article are The core idea behind SMR is that a computing machine can presented below: be expressed as a deterministic state machine. The machine • A novel taxonomy of consensus properties, capturing accepts an input message, performs its predefined computa- different aspects of a consensus algorithm, has been cre- tion, and might produce an output/response. These actions ated. In this taxonomy, consensus algorithms have been essentially change its state. SMR conceptualises that such a categorised in two major categories: incentivised and state machine, with an initial state, can be replicated among non-incentivised algorithms, which have been again different nodes. If it can be ensured that all the participating sub-divided as per different considerations. Consensus nodes receive the same set of input messages in the exact algorithms belonging to each sub-category analysed same order (the phenomenon known as atomic broadcast), together using the taxonomy of consensus properties. then each node would be able to evolve the states of its • The analysis of each sub-category has been summarised state machine individually in exactly the same fashion. This in tabular formats so as to visually represent it in a can guarantee consistency and availability regarding the comprehensible way. state of the machine (as well as data it holds) among all • For each category (and the sub-category, if any), the cor- (applicable) nodes even in the presence of node failures. responding blockchain systems (predominantly crypto- Once this occurs, it can be said that a distributed consensus currencies) have been analysed as well. The ana- has emerged among the participating nodes. It is imperative lysis result has been presented in a concise fashion, that a protocol is defined to ensure timely dissemination which can be used to understand the inter-relation and atomic broadcast of input messages among the nodes between these systems and their underlying consensus and, in many ways, dictates how a distributed consensus is algorithms. achieved and maintained. Hence, such a protocol is aptly • The major issues in each category of consensus al- called a consensus protocol. gorithm have been examined in detail, and their im- Designing and deploying a consensus protocol is a chal- plications