## 1 Introduction
In the absence of the central governing authority in blockchain, consensus algorithms' main role is to ensure the collective agreement by the majority of the blockchain entities on the blockchain about any action attempted to occur. Hence, consensus algorithms aim to achieve reliability, integrity, and security of the blockchain [22]. Practically, every blockchain has various application scenarios. Thus, adopted consensus algorithms by blockchain need to be compatible with the requirements for each blockchain application. Hence, there are many forms of consensus that help to fit these requirements. The proof-of-work (PoW), the proof-of-stake (PoS), and the proof-of-authority (PoA) are the most popular consensus algorithms [22; 23]. The PoW consensus algorithm involves a set of mechanisms that cause a considerable amount of effort when performing most of the network processing, such as mining new blocks. The purpose is to protect the blockchain against computing power-based attacks such as DoS attacks. More computing power nodes are often more likely to perform the mining and similar operations on the blockchain network, thus achieving the rewards [23]. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Feature** & **Distributed Database** & **Public Blockchain** & **Private Blockchain** \\ \hline \multirow{2}{*}{Data control} & Many control features are & \multirow{2}{*}{Decentralised} & Hybrid with few features \\  & centralised & & centralised \\ \hline Architecture & Client-server architecture & Public peer-to-peer architecture & Closed peer-to-peer architecture \\ \hline Performance & Extremely fast & Slow & Fast to medium \\ \hline Data persistence & non-persistence & Immutable & Immutable \\ \hline Access type & Permissioned & Permissionless & Permissioned \\ \hline Chance of failure & Hard but possible & Impossible & Impossible \\ \hline \multirow{4}{*}{Reliability} & Low, a trusted third party & High, a trusted third party does not exist, any participant can & High, a trusted third party does not exist, any participant can verify the operations & exist, any participant can verify the operations independently \\  & operations independently & independently & operations independently \\ \hline Transparency & No, under administrators’ & & \\ decisions & & & \\ \hline Integrity & Vulnerable to & & \\ data-change attacks & Supported & Supported \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Blockchain vs. distributed database [20; 21]. The PoS consensus algorithm applies a set of pseudorandom-based processes that determine the validator node for the subsequent blocks. The purpose is to distribute network tasks fairly among the network's participants since the reward for the network process is not limited to the most computational power participants but instead is a right for everyone. Hence, PoS could provide a secure network against 51% of attacks given the fair distribution of tasks in the network [22]. The PoA consensus algorithm grants authority for selected nodes in validating the transactions and other network tasks. As such, authorised nodes are considered as trusted entities for this blockchain and responsible for their security. The other nodes benefit from the network services and play a prominent role in monitoring the blockchain registry of their transactions and verifying the authority of their executors. Consequently, the transactions and other network tasks are performed significantly faster, which positively reflects on the network throughput. However, the concept of full decentralisation will be affected in this consensus algorithm as long as the majority of nodes do not have full authority, similar to the other consensus algorithms. However, there is a cost of obtaining high throughput and scalability. The PoA is secure against DoS and attacks and 51% of other attacks to some extent [4]. Table 3 presents the main comparisons among the above-mentioned consensus algorithms.