Although Proof-of-Work (PoW) has been recognized as a practical mechanism to implement a decentralized network, it is not friendly to the environment and also requires a large size of participants to maintain security. Ethereum and some other blockchain networks, such as MATIC Bor, TOMOChain, GoChain, xDAI, do use Proof-of-Authority(PoA) or its variants in different scenarios, including both testnet and mainnet. PoA provides some defense to 51% attacks, with improved efficiency and tolerance to certain levels of Byzantine players (malicious or hacked). It serves as an easy choice to pick as the fundamentals.

Meanwhile, the PoA protocol is most criticized for not being as decentralized as PoW, as the validators, i.e. the nodes that take turns to produce blocks, have all the authority and are prone to corruption and security attacks. Other blockchains, such as EOS and Lisk both, introduce different types of Delegated Proof of Stake (DPoS) to allow the token holders to vote and elect the validator set. It increases decentralization and favors community governance.

BNB Application Chain template proposes to combine DPoS and PoA for consensus so that:

  1. Blocks are produced by a limited set of validators;
  2. Validators take turns to produce blocks in a PoA manner, similar to Ethereum’s Clique consensus design;
  3. Validator set are elected in and out based on staking-based governance;
  4. The implementation of the consensus engine is named as Parlia and to clarify some terms;
    1. Epoch block. Consensus engine will update ActiveValidators contract periodically. If now the period is 200 blocks, a block is called an epoch block if the height of it is times of 200;
    2. Snapshot. A snapshot is an assistant object that helps to store the validators and recent signers of blocks.