What is Tendermint
Tendermint is a Byzantine Fault Tolerant (BFT) Proof-of-Stake (PoS) consensus mechanism developed for Cosmos. The initial software was developed by Tendermint Inc. and has its origins dating back to 2014.
Tendermint consists of two core technical components: the Tendermint Core consensus engine and the Application Blockchain Interface (ABCI).
Tendermint Core is the default consensus engine for Cosmos. It ensures that the same transactions are recorded in the same order on every machine in a decentralized network. In simple terms, Tendermint Core replicates information across multiple machines to ensure data consistency. With the support of Tendermint Core, every correctly running machine in the Cosmos network can obtain the exact same transaction log and compute the same transaction state.
This mechanism allows the blockchain network to function properly even if up to one-third of the network nodes exhibit various types of faults, thus ensuring the security of Cosmos. Additionally, Tendermint Core has a locking mechanism. If a validator successfully compromises network security or attempts to do so, Tendermint identifies and locks them. This helps the network quickly hold responsible parties accountable and determine the cause of the error after a security event.
On the performance front, Tendermint Core brings significant advantages to Cosmos. Tendermint provides fast transaction confirmation speed, achieving near-instant finality for transactions. With its support, Cosmos achieves block finality in 1-2 seconds, and theoretically, the maximum Transactions Per Second (TPS) can reach up to 10,000.
However, Tendermint's design is not without its limitations. If there are too many nodes participating in the consensus, it can slow down the network. Cosmos Hub, for instance, imposes limitations on the number of validating nodes on its network. In Cosmos Hub, not anyone can become a validator on the network. Only the top 100 ranked nodes by the value of staked $ATOM tokens can become validators. This design, aimed at ensuring performance, sacrifices some level of network decentralization.
Application Blockchain Interface (ABCI)
In addition to the Tendermint Core consensus engine, Tendermint also includes a universal application interface called the Application Blockchain Interface (ABCI). ABCI acts as a bridge between the consensus engine and the application. Tendermint BFT can connect to applications through ABCI.
ABCI allows transactions to be processed in any programming language. Unlike other blockchain solutions that come with pre-packaged, built-in scripting languages, ABCI enables developers to use any programming language and development environment that suits them. To put it simply, ABCI acts like a translator. It can translate any language into a common language, facilitating communication (transaction information trsfer) between the application and the consensus engine.
What else do you want to learn?