Bifrost is based on a Delegated Proof of Stake (DPoS) system where nominators back validators with their own staked BFC as a show of faith in the good behavior of the validator. Anyone who has BFC staked in the DPoS-based Bifrost Network can participate in the network consensus process as a validator or a nominator (the exact amounts are TBD).
The Bifrost Network updates the current active validator set every round. A new active validator set is selected based on which validators have the highest voting power – the total voting power of an individual validator consists of the sum of their self-bonded stake and received nominations. Only the top n will be selected as the active validators authorized to participate in the consensus for the new round. At the end of each round, validators earn round rewards in return for maintaining the security and reliability of the Bifrost Network. Some of the validator’s round rewards will be proportionally distributed to each of their nominators.
Validators that do not behave properly may be designated as a target for slashing and receive a penalty that deducts a percentage of their staked BFC. Validators are incentivized to maintain a high level of voting power within the network in order to remain in the active validator set and continue to earn rewards; or so that they can increase their chances of being selected as an active validator. Nominators are incentivized to vote for reliable validators to ensure that their stakes are maintained and rewarded. Over time, the voting power of each validator will be equivalent to the confidence that the total body of nominators has in that validator to support and secure the network. This set of consensus mechanisms and rewards is based on mutual trust and symbiotic relationships that improve both the stability and reliability of the network.
Bifrost's block production engine is AuRA (Authority Ro(a)und). AuRa works by sequentially selecting the block producer for the current slot in a round-robin fashion. If the network is stable, all active validators will create the exact same number of blocks for each round.
Bifrost's block finalization engine is GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement). GRANDPA is a consensus approach based on deterministic finality. All active validators selected in each round must participate in the voting process to determine the finality of the block.
The voting process begins by selecting a primary node. The primary node then selects the highest block in the chain from that node's point of view and broadcasts its block data to the network. After when the rest of the nodes receive the block data, they vote on the block to achieve finality. If the block is affirmed by more than two-thirds of all active validators, all blocks below that block number will be finalized.