Proof of authority (PoA) is a permissioned consensus mechanism wherein consensus is referred to a group of known and reputable validators. Validators are member nodes who are authorized to take part in validating transactions and adding blocks to the blockchain.
In a proof-of-authority system, each member node has its own unique identity. Validators can run redundant nodes for each identity to ensure that consensus participation is maintained even in the event that one node goes down.
Advantages and Disadvantages of Proof-of-Authority
Achieving consensus through a network of authorized nodes gives proof-of-authority some advantages and disadvantages when compared to other consensus algorithms such as proof-of-work and proof-of-stake.
With known and reputable validators, there is no need to mine cryptocurrencies in a PoA system. This is because the purpose of mining in permissionless, decentralized blockchain systems is to provide economic incentives for nodes to validate transactions honestly. When nodes are already identified and authorized by network administrators in order to participate, they don't need to be incentivized to be honest in this manner.
As a result, PoA can achieve greater efficiency relative to other consensus mechanisms that use cryptographic hash functions. Transaction throughput is limited by bandwidth instead of more severe limits in software and hardware, and fees can be set and maintained rather than fluctuating with the market. Additionally, PoA has high Byzantine Fault Tolerance compared to typical centralized systems without a distributed consensus mechanism.
A disadvantage of PoA is that it isn't suitable for most non-enterprise applications because it requires users to trust validators and authorizers, whereas public blockchains aim to be trustless.
Use Cases for Proof-of-Authority
Due to its permissioned nature, proof-of-authority is best-suited to be the consensus algorithm used in private blockchain networks.
A proof-of-authority algorithm called Aura (Authority Round) has been implemented in Ethereum's Rust-based client, Parity. Microsoft built an enterprise blockchain solution on top of Aura which is named Azure. There are several features of Azure that make it ideal for enterprise clients, including that enterprise developers can write smart contracts in popular programming languages such as C++ and Rust instead of Solidity.
A second implementation of proof-of-authority on Ethereum is an algorithm in Geth (GoLang-based Ethereum client) called Clique. There is an active testnet using Clique consensus named Rinkeby.
Clique: cross-client Proof-of-authority algorithm for Ethereum
Ethereum Proof-of-Authority on Azure
Setup your own private Proof-of-Authority Ethereum network with Geth
Documentaries, videos and podcasts
Ethereum Proof of Authority Tutorial in Azure
November 4, 2018
- Practical Byzantine Fault Tolerance AlgorithmPractical Byzantine Fault Tolerance algorithm (PBFT) provides Byzantine state machine replication at high speed and low cost such that it can be used for improved system safety in real world applications.
- Proof-of-work systemA proof-of-work (POW) system (or protocol, or function) is an economic measure to deter DOS attacks and other abuses (e.g. spam) on a network by requiring some work from the service requester, usually meaning processing time.
- Proof-of-stakeProof-of-stake (PoS) is a system by which a network (e.g., a cryptocurrency blockchain) aims to achieve distributed consensus.
- POA NetworkPOA Network is a blockchain development platform for developers building decentralized applications using Ethereum.
- Kovan TestnetKovan Testnet is a testnet for Ethereum that uses a proof-of-authority consensus mechanism.
- Show More