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.
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.
Proof-of-Authority also has the advantage of being more environmentally-friendly than Proof-of-Work-based algorithms since block validators aren't competing to find block hashes, and therefore don't need to use electricity on processor cycles to find the correct hash per block.
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.
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. A second implementation of proof-of-authority on Ethereum is an algorithm in Geth (GoLang-based Ethereum client) called Clique. Ethereum also has a public testnet which uses 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