Proof-of-Authority Consensus
Proof-of-Authority (PoA) is a consensus mechanism used in blockchain networks to help validate transactions and add new blocks to the chain. The application this post will cover: Aura Algorithm (available in OpenEthereum).
This algorithm relys on a set of N trusted nodes which are are called authorities. Essentially this consensus algorithm uses the value of identifers. Each authority is further identified by a unique ID and a majority of the them is assumed to be hones (N/2 + 1).
Aura - Authority Round Algorithm
Parameters
n = number of nodes
f = number of faulty nodes
t = step duration in seconds
The network in Aura is also assumed to be synchronous, and all authorities are assumed to hold the same UNIX time. The leader of each step is directly calculated by duration and the number of authorities.
i = T / duration
Note: an edge-turn-sealer refers to a non-leader block-producing sealer
Next, each authority will then execute an infinite loop that will check whether i equals the position index. If true, the authority will suggest a block, and will present this to other authorities. If the block is not produced by the current leader with correct difficulty, there will be a rejection. We know this to be called “out-of-term”. On the other hand, if the block is valid, the authorities will send received blocks forward.