Proof-of-authority

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. Proof-of-authority (PoA) is an algorithm used with blockchains that delivers comparatively fast transactions through a consensus mechanism based on identity as a stake.[1]

Proof-of-authority

In PoA-based networks, transactions and blocks are validated by approved accounts, known as validators.[2] Validators run software allowing them to put transactions in blocks. The process is automated and does not require validators to be constantly monitoring their computers. It, however, does require maintaining the computer (the authority node[3]) uncompromised. The term was coined by Gavin Wood, co-founder of Ethereum and Parity Technologies.[4]

With PoA, individuals earn the right to become validators, so there is an incentive to retain the position that they have gained. By attaching a reputation to identity, validators are incentivized to uphold the transaction process, as they do not wish to have their identities attached to a negative reputation. This is considered more robust than PoS (proof-of-stake), as:

  • In PoS, while a stake between two parties may be even, it does not take into account each party’s total holdings. This means that incentives can be unbalanced.
  • Meanwhile, PoW uses an enormous amount of computing power, which, in itself lowers incentive. It is also vulnerable to attack, as a potential attacker would only need to have 51% of the mining resources (hashrate) to control a network, although this is not easy to do.[5]

On the other hand, PoA only allows non-consecutive block approval from any one validator, meaning that the risk of serious damage is centralized to the authority node.

PoA is suited for both private networks and public networks, like POA Network, where trust is distributed.[3]

Establishing authority

The three main conditions that must be fulfilled for a validator to be established are:

  1. Identity must be formally verified on-chain, with a possibility to cross-check the information in a publicly available domain
  2. Eligibility must be difficult to obtain, to make the right to validate the blocks earned and valued. (Example: potential validators are required to obtain public notary license)
  3. There must be complete uniformity in the checks and procedures for establishing an authority

Comparisons

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

  • The proof-of-work (PoW) consensus uses a mining mechanism, where PoA does not.[6]
  • The proof-of-stake (PoS) mechanism works using an algorithm that selects participants with the highest stakes as validators, assuming that the highest stakeholders are incentivized to ensure a transaction is processed. PoW works by verifying that work (mining) has been done before transactions are carried out.[3]
  • Meanwhile, PoA uses identity as the sole verification of the authority to validate, meaning that there is no need to use mining.
  • Delegated proof-of-stake (DPoS) works using witnesses, who generate blocks. Witnesses are elected by stakeholders at a rate of one vote per share per witness. However, with PoA, the appointment of an authority is automatic, meaning that there can be no bias or uneven process caused by unequal stakes.[7] In PoA, validators need to have their identity verified formally via DApps, and have this identity information available in the public domain for everyone to cross-reference.[8]
  • Since PoA security is centralized in the form of the authority node, a lot of PoA critics wonder the point of using a blockchain for this kind of usages - stating that PoA blockchains are not really decentralized and a simple DB would be more efficient, faster, and cost effective.

Examples

  • Parity supports PoA claims on the Ethereum network.
  • POA Network[9]
  • Kovan is an Ethereum testnet, that runs on PoA[10]

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 3.2 Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.