Consensus mechanisms are the instruments used to arrive to a consensus in the distributed network, without a central authority. They are a foundational element of blockchain, and they come in many different forms. This series aims at defining the characteristics of different consensus mechanisms and elaborate on the strengths and weaknesses of each.
Proof of Authority extends the idea of “stake” to a new level, that of personal identity and reputation, and circles back from the maximum-decentralization precepts of Proof of Work and Proof of Stake to a consensus mechanism where validators are limited in number by design and have to satisfy very stringent requirements.
I need to understand this STAT!
Proof of Authority is a consensus mechanism in which a limited number of pre-vetted entities are the only ones allowed to validate transactions. This vetting goes further than Delegated Proof of Stake – in PoA a validator might need to be a registered public notary, for instance, and associate their personal identity to the validation – making malicious behaviour very damaging to the reputation of the entity in question.
PoA, due to the much lower number of validators than other consensus mechanisms, can achieve much higher throughput: to simplify, if in another system each one of a thousand nodes needs to communicate with every other node, in a PoA system with 101 validators communication takes a lot less time, and effort can be spent elsewhere.
The cost of reaching this performance increase, however, is the subject of much debate: what is the point of using blockchain if we take out one of its most fundamental characteristics, its trustless nature?
In humanitarian action and development, the lessened importance of trustlessness might be a positive if organizations are limited in number
(there will never be a million different UN agencies, for example) and they don’t fully trust each other, or they are not yet ready to launch projects on a public blockchain.
Proof of Authority has a similar structure to Delegated Proof of Stake [LINK], where validators are very limited in numbers: the difference is that in DPoS they are chosen by “the community”, i.e. all token holders, whereas in PoA they are selected after thorough vetting, often from the entity at the helm of the blockchain project.
The mechanics of block creation vary based on the specific implementation, of which we describe two:
Authority Round (click to expand)
The first form of Proof of Authority we examine is called Authority Round, or AuRa.
- A “block leader” is randomly selected from the list of validators;
- The leader forms the block, and then broadcasts it to all others validators (this is the “block proposal” phase);
- Validators transmit the block they received to each other in the phase known as “block acceptance”.
- If they all received the same block, it’s approved and the process repeats with a new block leader. If they didn’t, a vote is started to decide whether the block leader should be considered malicious or not;
- If the block leader is considered to be a malicious actor by the majority of other validators, they are kicked out and lose their block-creation rights. Otherwise, the process simply restarts.
Clique works in “epochs” which begin with a special block that lists the validators for the next set of blocks. In Clique a block can be proposed not only by the block leader, but also by a number of other validators (half minus 1).
As an example, let’s say the validators are 10 and are listed as numbers 1 to 10. The formula above tells us that a maximum of 4 validators can propose blocks.
- For the first block, 1 is the block leader, and validators 2, 3 and 4 can also propose blocks.
- A block created by the block leader has priority over the others, but if for any reason the block leader fails to propose the others will step in. In that case, the block proposed first “wins”.
- After the block is committed to the blockchain the clique of validators “shifts”: in the second round, 2 is the block leader and validators 3, 4 and 5 can also propose blocks.
- The process repeats until all validators have been block leaders, and then a new epoch begins.
What are the requirements for validators?
Depending on the specifics of the system, PoA validators have to meet different requirements:
- Investment: validators must put aside a minimum of tokens as collateral, usually a considerable amount: for VeChain for example that amount is 250’000 VET tokens, for a total value of around 750’000 USD (at the time of writing).
- Availability: often called “uptime”, in the case of blockchain it is defined as being able to produce a certain number of blocks during a specific timeframe.
There is an additional requirement, that of identity verification: given the reliance on these validators, their identity must be confirmed. This is done either by the entity steering the blockchain’s development, such as a foundation, or directly on the blockchain by having a record of a validator’s identity on it, such as proof that they own a certain bank account, social media account, phone number, are located at a certain address, and so on. Without going in too much detail, a number of programs (“smart contracts”) are stored on the blockchain, and for each validator and “piece of identity” the validator must initiate a verification through these programs, which generate a code that the validator must submit as proof of their identity; this code can only be obtained by the owner of what is being verified, however, such as through an SMS for phone numbers, snail-mail for addresses, and small transactions for bank accounts.
Once verified, validators must maintain a pristine record: any action considered harmful for the blockchain, whether malicious like censoring transactions or unintended like not having enough processing power available and thus not performing well, will cause a validator to lose their privileges.
Advantages of Proof of Authority consensus
It is fast
Due to the low number of validators and the vetting they go through, there is no need for competition for block-creation rights: the competition is, in a sense, moved outside of the context of the blockchain itself, to whom can be accepted as a validator. This leads to much-improved performance, mainly translating into high number of transactions per second (tps): PoA systems can theoretically scale from the four tps Bitcoin can reach to the tens and hundreds of thousands, though the claim is so far unproven in a large-scale project.
It is more centralized
PoA is one of the first consensus algorithms that leave full decentralization as a core tenet behind – validators in the POA Network, for instance, are required to be U.S. public notaries with an active license, and their information will be available on the blockchain to be confirmed by anybody that wants to.
It has been argued that a Proof of Work blockchain in which the underlying token has no value will not work, as in that situation the incentivization of validators breaks down. PoA and its heavily-invested validators might be a valuable alternative, and in that case a legally accredited entity will appear to an organization as a much less risky proposition than an anonymous one. Moreover, while some argue that PoW is a fundamental part of blockchain and its security, it does imply a huge expenditure of resources which in the medium-long term might have quite an impact on the environment; if the assumption that PoW is necessary is invalid, Proof of Authority or other consensus mechanisms have a huge advantage in being a lot less expensive to run.
It is worthwhile to note that centralization at this level is only good for certain types of projects: applying Proof of Authority to a pure currency like Bitcoin, for instance, would sacrifice independence of the network from any central entity in favor of performance, arguably “missing the point”, along with most of what makes a blockchain-based currency different from national ones.
Drawbacks of Proof of Authority consensus
It is still unproven
Simply put, PoA has not been used in enough projects to demonstrate what problems it is most suited to solve. The most notable example of its use, as it concerns humanitarian action and development, is Building Blocks (see our analysis here), which runs on a private blockchain. On the “blockchain” side, notable projects using it are POA Network, and the “Kovan” and “Rinkeby” test networks of Ethereum.
It might be a solution looking for a problem
Examining the solution Proof of Authority proposes to reach consensus, it boils down to a select group of validators that take turns approving transactions. This is a response to a computer science problem known as the “Byzantine Generals Problem” where, to quote Wikipedia, “[…] actors must agree on a concerted strategy to avoid catastrophic system failure, but some of the actors are unreliable”. Finding a solution to this problem makes a system dependable, and this is a core issue in blockchain-based systems. If dependability in itself is not an issue, as seems to be the premise with PoA, it is debatable whether blockchain solutions offer any improvement over plain databases with permissioned access.
Is it a good fit for humanitarian action and development?
Discussing Proof of Authority is the closest we might come to discussing the trade-offs of blockchain versus using a normal database. The consensus algorithm strays very close to what a permissioned database does by default – only certain actors can write to it, or read from it – and therefore the question of “does this make sense?” naturally arises. If the consensus itself, arguably the biggest distinguishing factor of blockchain-based systems, is mimicking another type of database, why use blockchain in the first place? I would argue that Proof of Authority is useful if aspects of DLT such as immutability, transparency, or decentralization are fundamental for success, but the organization is overall not ready to launch a project based on a public blockchain. It might also be worthwhile to use this consensus algorithm as a stepping stone towards more open validation (maybe one based on Delegated Proof of Stake, the consensus mechanism with the most similar structure). If the biggest advantage is that validators are vetted and limited in number, then a normal database with redundancies (i.e. backups) in place is much more cost-efficient: operating costs are lower and the technical know-how (database management) is more easily available, as opposed to blockchain expertise which is still scarce and expensive.
Further reading (if you’re interested)
- POA Network whitepaper: https://github.com/poanetwork/wiki/wiki/POA-Network-Whitepaper
Articles and other resources
- Proof of Authority – consensus model with Identity at Stake: https://medium.com/poa-network/proof-of-authority-consensus-model-with-identity-at-stake-d5bd15463256
- What Is A Masternode And How Is It Useful For Cryptocoin Investors: https://coinsutra.com/masternodes/
- Proof-of-authority: https://en.wikipedia.org/wiki/Proof-of-authority
- Proof of Authority & Security: https://medium.com/poa-network/proof-of-authority-security-6d00b07e03fb
- Proof-of-Authority-Chains: https://github.com/paritytech/wiki/blob/master/Proof-of-Authority-Chains.md
- The 101 VeChain Thrudheim (Authority) Masternodes Selection Process Begins: https://medium.com/@vechainofficial/https-medium-com-vechainofficial-authority-masternodes-4c1233c6f18e
- Clique PoA protocol & Rinkeby PoA testnet: https://github.com/ethereum/EIPs/issues/225
- Istanbul Byzantine Fault Tolerance: https://github.com/ethereum/EIPs/issues/650