Consensus
The Balance, designed to offer a high-performance blockchain for managing enterprise services, chooses the PoA consensus algorithm that offers short block time and stability as the primary protocol. PoA is the method that verifies transactions and creates blocks by a group of nodes that have proved their authority. It offers the equal opportunity of creating blocks for each node in the progress of consensus. Therefore, it allows deciding fast block finality compared to PoW(Proof of Work), which requires computation with time/energy-consuming. Also, it can process transactions through the wide bandwidth of the network.
LPoA is the own consensus protocol of The Balance that improves the original PoA algorithm to enhance performance and availability. PoA protocols based on Clique may occur unfairness, frequent forking, and network delay problems because the block proposal opportunities are given to out-turn nodes randomly when in-turn nodes' response delays. LPoA provides subdivided block decisions and verification policies to resolve these problems. Thus, LPoA can guarantee the creation of blocks at a steady speed(up to one block per second) and the block finality versus the original PoA protocol. Also, it provides the performance of up to 3200 TPS(Transactions Per Second). The block creation in LPoA proceeds in the following orders.
Each validator node verifies the nonce and signature of transactions received over the P2P network, then puts verified transactions into the mempool queue and transfers them to neighbor nodes.
If the previous block is determined, the next validator node has the opportunity to propose a block as an in-turn node. The chance of block proposal is equally given to all validator nodes in order. The in-turn node, which has the right to the block proposal, creates a new block and signs it. After that, spread it to the network, proposing the new block. The block proposed by the in-turn node has a high weight(Difficulty, a weight of 2), and the size of a block and gas limit follow network parameters.
Other nodes have a chance to propose a block if the in-turn node is not available to propose in a certain period due to system down or network issues. If multiple nodes propose simultaneously, it may occur forks, and the additional process for block finality decision is necessary to resolve it. Therefore, in LPoA, we give the chance of block proposal to other blocks according to its own algorithm of turn distribution. The node given an opportunity will propose a block, and other nodes that received the block decide the next block through the following process of block verification. To recover liveness steady even though several nodes are in trouble, the response latency from each candidate node decreases as repeating turns, and the accumulative latency follows an exponential distribution to time. In case forks occur due to the turn changes in the short term, rapid convergence is provided according to policies of LPoA block consensus.
Each node that received the block proposal has to verify the signature of the proposal node and then transfer its result to other nodes. The block verified by more than a majority will be successfully determined as the final block. If multiple blocks are proposed, the block created by the node with a higher weight is chosen in priority. The block proposed by the out-turn node has a lower weight than the block from the in-turn node. Therefore, the block proposed by the in-turn node can be adopted within a reasonable time even if propagation is somewhat late due to network delay. If an out-turn node proposes blocks repeatedly or is out of order, it is considered a malicious act to harm the stability of the network. This node can be on restriction through monitoring.