Proof Of Authority Consensus Algorithm For Ethereum
It is very easy to become a participant of the Ethereum project. This network proposes many opportunities to the users who want to deal with blockchain. For instance, depending on a particular task, it is possible to create an election system, a trading platform, an investment company and many other projects. Such flexibility is one of the main goals Ethereum developers could successfully implement.
As in any other crypto project, it is crucial to reach an agreement among all Ethereum participants. This agreement is called consensus. Since Ethereum was inspired by Bitcoin, both solutions have a lot in common, for example, their basic approaches to reaching consensus. Each participant can become a miner and create blocks. As soon as a new block corresponds to the set of rules, it is accepted by the network. Correspondence is checked in accordance with the result of a hashing function. If the result received by a participant satisfies the whole network, it is considered valid. Thus, the block proposed by a user has to be accepted by everyone else.
However, there are significant differences in the features of Ethereum and Bitcoin. First, the hash function type. Bitcoin works with SHA-256, while Ethereum uses its own Ethash function. Second, block time. Bitcoin has 10 minutes on average, and Ethereum has 10 to 15 seconds. The last difference consists in plans for the future. While there is no information about changing the methods of achieving consensus in Bitcoin, Ethereum intends to switch from PoW to PoS.
Ethereum currently uses PoW; nevertheless, it is possible to program wallets for different consensus algorithms on the top. It looks like a pyramid of standard network protocols. Another option proposed by different developers is alternative consensus methods used within private Ethereum solutions. That is exactly the case we are going to talk about right now.
The Proof-of-Authority protocol is used as an alternative solution in Parity. It has two options of PoA: Aura and Clique. Their difference is that Aura requires an additional round of verification to be implemented, while Clique doesn't. In both cases the main mechanism assumes that there are several privileged users who select and propose a new block to the network.
The main argument of such an approach is security issues. Imagine a new coin being introduced. A malicious participant possessing over 50% of hashing power can break the whole system. There will be no option against harmful mining. Noone will invest money in this project. However, if there is an alternative consensus approach in the first several months, it will be possible to raise distinguished hashing facilities. Another reason for PoA implementation is a partially trusted network. In case if you don't trust your neighbour but you both trust a third party, it is logical to provide this agent with block validation power.
The Aura algorithm is based on steps. Each step, a single primary participant is selected. He or she proposes a new block to the chain and propagates the chain update to others. Inappropriate behaviour of nodes is prevented by the finality rule that requires the majority of votes.
The Clique proposal is somewhat similar to the TaPOS technique. It suggests that the reliability of miners should be confirmed. In order to execute this without complications and network overload, all data should be placed in an extended empty space in the block.
Even though both of considered algorithms seem similar, it is obvious that they are designed for different purposes. However, different problems may require the same solution. After all, PoA can be used both in theory and in practice. We will look at PoA applications in our next articles.