Tendermint is a Byzantine Fault Tolerance (BFT)-based PoS consensus mechanism developed for Cosmos. Its original software was developed by Tendermint (company) and its origins date back to 2014.
Tendermint consists of two core technology components: the blockchain consensus engine Tendermint Core and the universal application interface ABCI.
Tendermint Core is the default consensus engine of Cosmos. It is used to ensure that the same transactions are recorded in the same order on every machine in the decentralized network. Simply put, Tendermint Core can replicate information on multiple machines to ensure data consistency. Powered by Tendermint Core, every correctly functioning machine in the Cosmos network can fetch the exact same transaction log and calculate the same transaction state.
So under this mechanism, the blockchain network can work normally even if up to one-third of the network nodes suffer any kind of error. The security of Cosmos is thus guaranteed. At the same time, Tendermint Core also has a locking mechanism. If any validator successfully breaches network security or attempts to do so, they will be identified and locked by Tendermint. It helps networks conduct accountability and identify the cause of a security incident as quickly as possible after it occurs.
On the other hand, Tendermint Core also brings considerable advantages to Cosmos in terms of performance. Tendermint consensus can provide Cosmos with fast transaction confirmation speed and achieve instant confirmation of transactions. With its support, Cosmos’s block finalization time is 1-2 seconds, and the theoretical maximum TPS can reach 10,000.
But Tendermint’s design isn’t perfect. The problem with it is that if too many nodes participate in forming a consensus, it will slow down the network. Cosmos Hub limits the number of validator nodes on its network. In the Cosmos Hub, not just anyone can become a validator of the network. Only nodes with the top 100 staked $ATOM values can become validators. In order to ensure performance, this design will sacrifice the decentralization of the network to a certain extent.
In addition to the Tendermint Core consensus engine, Tendermint also includes a common application programming interface called the Application BlockChain Interface (ABCI). The role of ABCI is to act as a bridge between the consensus engine and the application. Tendermint BFT can be connected to applications via ABCI.
ABCI enables transactions to be processed in any programming language. Unlike other blockchain solutions that come pre-packaged with built-in scripting languages, ABCI allows developers to use any programming language and development environment that suits them. For example, ABCI is like a translator. It can translate any language into a universal language and help applications communicate with the consensus engine (transaction information transfer).