Tendermint
Tendermint is a consensus algorithm that is resistant to «Byzantine falls» (any malicious actions).
The algorithm was invented in 2014 by Jae Kwon, who was concerned about the problem of high power consumption of the Bitcoin network. Unlike Nakamoto consensus, where the chain with the largest amount of work is selected, Tendermint selects the chain where 2/3 of the network members voted for the block. This is a simplified version.
Differences of consensus
- If 2/3 of the votes are not collected, the consensus pauses and waits.
- If 2/3 is collected, the block can be considered final. That is, you do not need to wait for 10 or 100 blocks (probabilistic finality) to make sure that the transaction will not be pumped out.
- There is no race to create a block (energy consumption is minimal). At the moment, a cyclic search is used as an algorithm for selecting the node that will create the block, weighted according to the share of the cryptocurrency that the node owns. If node A has 100 coins, node B and C have 10 coins each, then A will be assigned more often by the block creator.
BFT-consensus guarantees the correct operation of the computer network, as long as at least 2/3 of the nodes of the blockchain network involved in the formation of blocks (validators) work correctly.
How Tendermint works
Tendermint consists of two main technical components — the «consensus engine» and the «application interface».
- The consensus engine, called Tendermint Core, ensures that the same transactions are recorded on each machine in the same order.
- The application interface, called the Application BlockChain Interface (ABCI), allows you to process transactions in any programming language.
In other words, Tendermint provides an efficient relay of changes to the blockchain throughout the network, ensuring that each node has the same transaction log and blockchain status. The pBFT (practical Byzantine Fault Tolerance) consensus mechanism is a key link of the Decimal blockchain and is used by us without any changes.