Explaining How Tendermint Consensus Works

Even the “simplest”, like Bitcoin, can seem confusing. The world of blockchain becomes more complex when you move on to newer protocols, such as Ethereum.

Tendermint is one such project which aims to change the way in which we use blockchain technology.

Tendermint, also known as the Byzantine Fault Tolerant (BFT) consensus algorithm or atomic broadcast in common parlance, is a protocol which helps to order events on a network when there are adversarial circumstances. The problem is also known as Byzantine fault-tolerant (BFT),consensus algorithms or atomic transmission. It has gained a lot of attention over the past few years because blockchain-based currencies like Ethereum have been so successful.

The two currencies solved the issue of running a large network without central control, and created what is now called decentralized public Blockchains. Tendermint simplifies and modernizes academic research on this subject by using a peer to peer gossip protocol between nodes.


A Closer Look At Tendermint

Tendermint exists in a stack with Cosmos , a blockchain platform that serves as a mediator and self-described “Internet of Blockchains”; this platform launched its blockchain just a couple of days ago, initiating the Cosmos/Tendermint ecosystem’s practical existence. The entire ecosystem operates similarly to Ethereum, except it’s more modular, flexible and easier to develop on.

Tendermint Core and Cosmos SDK represent the network layer, while Tendermint Core represents the consensus layer.

Cosmos SDK represents ABCI’s basic implementation and is an application layer that developers can enhance by adding custom features. The Tendermint SDK allows existing blockchains to build Tendermint applications which can exchange value and messages with each other.

Tendermint and Cosmos are using the moniker “Internet of Blockchains”. The entire system is aiming to be a hub which would enable interoperability among different blockchains.

The project is being developed by a for-profit Californian firm called Tendermint. They separated the main three elements and connected them under Tendermint.

It is to simplify the use of components and to fix them without the need to develop the whole ecosystem. Tendermint was created by Jae Kwon and Ethan Buchman to be easy to use, understand and implement.

Tendermint was the first blockchain to allow you to build all three layers from scratch (networking layer, consensus layer, and application). Ethereum made this easier by providing Virtual-Machine Blockchains on which users could implement custom logic as Smart Contracts. The development of blockchains remained a problem. Tendermint makes the development process much easier, since developers only have to focus on the application layer.

Tendermint Core already provides networking and consensus layers. All you have to do is customize the ABCI using your preferred programming language, create your own application and begin using Tendermint’s features.

Tendermint did this, by taking Ethereum code and stripping it of PoW. Then they plugged the result onto their Tendermint Core. Ethermint was created, an Ethereum-like protocol with Proof of Stake. Ethermint is compatible with all existing Ethereum tools, including Truffle, Metamask and others. You can easily port smart contracts to Ethermint without doing any extra work.

IBC is an important part of the equation, which we haven’t mentioned yet but it is crucial for interoperability. It allows different chains to exchange data and value.

Cosmos has proposed a modular design with two types of blockchains: Hubs and Zones .

Hubs, on the other hand, are designed specifically to link Zones. Zones consist of regular heterogeneous blockchains. If a Zone connects to a Hub via an IBC, then it has access to (i.e. Send to or receive data from any other Zone connected to the Hub. Each Zone can establish only a small number of connections to a set of hubs.

Hubs prevent Zones from spending twice. When a Zone gets a token via a Hub it can only trust its origin Zone and the Hub. It was only a few days ago that the Cosmos Hub was released . Some chains won’t be completely Tendermint-compatible; the developers envisioned so-called peg zones to deal with this issue.

Tendermint cryptography isn’t very advanced. ECDSA signatures are the “exotic technology” in this ecosystem. BLS signature aggregation was mentioned in the post-launch video, but it doesn’t seem like these features are on the way just yet.

Both systems are BFT. The technology is able to be applied for the creation of public and private chains, with one operating via PoS while the other through nodes that have permission. The Tendermint Core allows blocks to be instantaneously final and have block times of up to one second. Otherwise, it is safe for the network that they are under a 33% (more than third) attack.

Malicious Nodes And Byzantine Fault-Tolerance

A blockchain needs to be Byzantine Fault Tolerant, aka capable of tolerating potentially malicious nodes that are communicating false states and messages to the network and endangering the consensus. The science was scarce on Byzantine Fault Tolerant systems as this topic wasn’t that popular in academia.

Tendermint’s developers were looking for something more scalable. Bitcoin, which introduced a system that could support thousands of nodes independently, had (and has still got) only one administrative domain. This severely limits the scalability of Bitcoin.

Kwon, along with his collaborators, envisioned the BFT protocol as a permissionless system that would scale up to hundreds of nodes using Proof-of-Stake. The BFT system was developed with two main components: Tendermint Core, which serves for “gossiping”, consensus and consensus reaching; and Cosmos SDK which acts as an application layer.

The BFT Proof of Stake algorithm uses a partly synchronous model of a network to overcome the Byzantine Generals Problem. This means the validators who vote on each block do not need to be in the same place at the exact time. The blocks in this system don’t have a set size or a fixed schedule.

Bitcoin is considered to be “fully synchronous” and we are given a 10 minute window in which the nodes must collect, verify, add, or remove transactions from a block. This timeframe for Ethereum is 15 seconds. It’s all good and well until the synchronization is broken. Some nodes may go offline or suffer from latency problems, which can cause the chain to stop working.

Tendermint Stack

Tendermint is aiming to adopt a more centralized model that refuses the timing restrictions due to its nodes working in asynchronously.

This protocol has a more non-synchronous approach: rather than each round taking an exact amount of time to complete, it progresses when more than two thirds of nodes have reached a consensus. The project calls this partial lack of synchronization ” Weakly Asynchronous“. The validators have a good reputation and are able to communicate with each other in order to coordinate efforts and reach consensus on the network. This implies that the network in question will never split.

Tendermint reassigns the validity rights of a proposed block on a regular basis to mitigate any potential problems with centralization. Validators then vote on the blocks in a multi round , deterministic procedure.

In order to expand upon this, it is important to understand that there are non deterministic protocols and deterministic protocols. We see nondeterministic protocol in completely asynchronous systems. As asynchronous systems rely on broadcasting, the consensus can be based on oracles.

Tendermint can avoid this by taking a deterministic approach. Nothing is random, but instead done using a mathematical function that allows us to predict the outcome of the protocol.

Tendermint rotates validators using a round-robin format based on deterministic weighting. A validator can be elected to lead more than once if they have a higher stake. The protocol currently has a cap of 100 validators. However, if more are needed, it may be added. The system will be safe and active in asynchronous settings. The consensus mechanism, in general, sacrifices some liveliness for instantaneous finality and consensus safety.

Making It Sense of All…

Tendermint is an interesting concept that perhaps looks and sounds more complicated on paper than it actually is in reality. It’s basically EOS of interoperability and has plenty of similarities with Ethereum and a whole host of its clone projects. Tendermint’s main goal is to tackle the issue of blockchain interoperability, and it faces strong opposition in that market. Ark, ICON , Polkadot , AION and similar projects all have that same goal in mind so it remains to be seen who will come out on top.

We will be happy to hear your thoughts

Leave a reply