Do you keep wondering what Tendermint is all about? Here’s a simple but comprehensive explanation for intermediate readers.
Tendermint, technically called “Tendermint Core,” is open-source software developed by Ignite. It allows a set of computers to reach consensus on specific information and is primarily used in proof of authority-based blockchains. Together with the Cosmos SDK and the IBC protocol - developed by the same teams - it powers the Cosmos’ network of blockchains, which include the likes of the Binance Chain, THORChain, Maya Protocol, and the Aztec Chain.
Tendermint provides the necessary specifications to facilitate an agreement between a set of nodes while remaining Byzantine fault tolerant. To achieve this, all validating nodes must post a collateral “bond” of coins, the idea being that Node Operators should not act maliciously if they are resource-committed to the network. Validator nodes also participate in the governance of the chain, and their voting power is weighted according to their total stake.
Even though more nodes result in a more secure network, the total number of validator nodes in Tendermint does not scale very well. This happens because all nodes have to know and speak to the rest of the set, which implies an exponential increase in latency. For instance, in a network of 10 nodes, every node has to speak to 9 more, whereas in a network of 100 nodes, every node has to talk to 99 more. Still, what Tendermint trades in node count scalability, it earns in Transactions per Second (TPS) and Instant Finality, which are very important components to have in a cross-chain DEx.
Increased network resiliency is achieved if these validating nodes are deployed on different computers, controlled by different organizations, and are located across different geographies. Notably, anyone can anonymously bid to join or leave the validator set by posting their bond to the network.
As of today, around 100 active nodes might be a good number to have for an efficient, decentralized and secure Tendermint set of validators.
The consensus process works in rounds, with one of the active nodes assuming the role of proposer and the rest of them as validators every time. These roles change every block (round) and continue endlessly.
Every round, the designated proposer node collects all the transactions which have shown up since the last block was accepted and organizes them in a new block of information that is proposed to the validator nodes for analysis. These validator nodes then communicate their acceptance or rejection of the block to everyone else.
If 2/3 of the nodes notice that 2/3 of the votes for the block were positive, then they have reached a consensus, resulting in a new block committed to the chain and new information pushed up to the application layer. Remember, Tendermint by itself is not a blockchain but only the consensus engine.
The network incorporates a series of security measures to increase security, prevent collusion, and counteract malicious or unresponsive nodes. “Churning” is a notable one, and it involves a recurring re-organization of the active validators chosen from the validators set automatically. User funds are also constantly being migrated to new “vaults.”
Maya Protocol uses Tendermint as its consensus engine, allowing us to run a safe and resilient network that can be grown and strengthened on the go. Together with other technologies, Tendermint will enable us to be part of the Cosmos blockchains ecosystem and export secure coordination into other projects, like the Aztec Chain.
You can always find more about Tendermint on their official website or Whitepaper. Or you can continue exploring our related articles inside the Maya Academy. Make sure to share your thoughts with us via Twitter or on our Discord server. Read you soon!