What is Tendermint
When we speak about Tendermint, we mean two different products. The first is Tendermint core, a blockchain consensus engine. In this article we discuss the importance of consensus for blockchain systems and the possible contribution to the future of decentralised systems. Unlike the previous consensus engines, Tendermint uses the Proof-of-Stake model, and it pretends to be the new generation technology.
Another Tendermint component is a generic application interface. This product can also be a milestone in the blockchain world. It can be used for the application written in any programming language to work in the blockchain system. It means that the number of blockchain applications will increase because the development becomes several times easier.
Tendermint Core is a consensus engine with an application interface. The concept of consensus is essential for all blockchain systems because it allows transaction verifications in the decentralized system. Every transaction, each move of the crypto assets in the blockchain system should be verified by the so-called validators. Bitcoin, as most of the decentralised systems, uses the Proof-of-work consensus to verify transactions. Tendermint Core offers the Proof-of-Stake consensus in the peer-to-peer network. Let us start with the idea of consensus and its importance for blockchain systems.
Byzantine Consensus Algorithm
Byzantine was an ancient empire in the Eastern Asia. Thousands of years ago, the Byzantine army seized a city. To win, the army had to attack from different sides of the town at the same time. Long before the mobile wireless network, it was a real problem to start the action simultaneously. The messages between the commanders can delay or be lost, which was crucial for the operation. Moreover, the courier could be killed or seized. The general had to find a consensus regarding the start.
With the launch of the first blockchain system, Satoshi Nakamoto faced the necessity of a consensus between the nodes in the decentralized system. Separate nodes without central management do not trust each other, so one node cannot verify the deal. The problem was solved with the Proof-of-Work (POW) concept. If you have got a chance to send or accept Bitcoins, you probably noticed that each transaction required at least three verifications in the system. This is the Proof-of-Work protocol in action, but the principle is more profound than just three verifications.
To confirm a transaction in a block, several nodes must come to a consensus. However, in the blockchain system, some nods can be malicious or dysfunctional. Byzantine Consensus, also known as a proof of work, allows the system to work if at least ⅔ of all the nodes aren`t malicious. So, the validators should be high-available to make the system work. This algorithm is safe enough; it is widely used on nuclear plants and aircraft engines, and even SpaceX considered the use of this technology.
However, this algorithm is far from perfect, especially in modern reality. The major issues related to the PoW are the following:
– The algorithm is hardly scalable (how long did you wait for the transaction verification?).
– It uses the hashing power of the large mining pools that create the centers of power in the decentralized system;
– At last, it provokes massive energy consumption with all the negative results.
Considering all these issues, we should agree that the crypto community strives to find another solution for blockchain systems. However, PoW is not the only problem of blockchain technology, and some of the other problems are closely related to it.
Problems With the Current Blockchain Architecture
Any blockchain system is rather rigid because it is monolithic. It means that all elements in the system are interconnected and interdependent, and the system represents the one-piece entity. No piece of the system can be taken and used in the other system. The monolithic structure makes the blockchain robust, but the lack of flexibility creates a problem for the developers.
For example, if a developer wants to update a component of the blockchain system, the system should be entirely reworked. The entire rework is never a good idea, but there is no choice for the critical security update. The complete rework or development of the blockchain system from scratch is a complex and resource-consuming task. To explain this, we should discuss the three levels of the blockchain system architecture.
On this layer, the blockchain nodes propagate the transactions across the system.
The consensus we discussed earlier occurs on this layer: the nodes approve the transaction if 2\3 are not malicious.
The user sees the result of networking and consensus on this layer – the new transaction is processed.
The layers are interconnected and interdependent, and the smallest change should be implemented for the entire system. It is impossible to separate one component for building a blockchain-based app.
The system maintenance and update are not the only problems of the monolith architecture. Code reuse is also hardly possible. The attempts to reuse the code components again result in complex maintenance, especially when the database is not modular. At last, the developer should stack with the programming language of the system.
The first available solution for the system update was a fork – developers split the Bitcoin system into two parts and started using it separately. When Ethereum came into play, things got better. In fact, the ERC-20 smart contract opened a new stage for blockchain development. Ethereum-based ERC-20 is a template for customized smart contracts, and the majority of the modern blockchain solutions use ERC-20. However, the Ethereum system also has a rigid architecture, so the problem of the rigid architecture is still alive.
The modular architecture could become the solution for blockchain development. When the layers are not interlinked, it is possible to work with independent modules to update the system. This method is much easier, though the system is not as robust, unlike monolithic systems. It was a matter of time to develop the module architecture solution for the blockchain system. Tendermint offered such a solution – Tendermint Core.
Tendermint Core Architecture and Goals
The Tendermint creators started with the idea to separate the consensus engine from the app. As we mentioned above, Tendermint Core uses modular architecture. It means that an application layer is separated from the consensus and networking layers. For end-users, the change in the architecture creates no difference, but it opens fantastic new opportunities for developers.
Using Tendermint Core, the blockchain developers can only focus on the app level and ignore two other layers. They can pipe data from the blockchain and write in any language creating applications without bootstrapping a whole network. It opens the door for numerous blockchain projects: while the application layer depends on the developer, the Tendermint Core can be used in different business domains and industries.
Of course, any blockchain-based system requires consensus. Tendermint Core offers the consensus that is Byzantine fault-tolerant. It is separated from the application layer, and two layers communicate with each other via the special Application Blockchain Interface (ABCI). As it is stated in Tendermint documentation, ABCI “allows for Byzantine Fault Tolerant replication of applications written in any programming language.”
ABCI is responsible for the data exchange between the application and blockchain. It includes the following primary messages that are responsible for the interaction between the application and the core.
The DeliverTx delivers the transactions to the application, the CheckTx message validates the transactions, and the Commit transaction checks the application state. This simple system has its wages and benefits.
The benefits of the ABC interface are its fast work, compatibility with other solutions, and quick and easy maintenance. The main threat of ABCI is the necessity to design the application architecture very carefully. Otherwise, it will not do anything useful. So, the module architecture does not solve the business problem itself but opens an opportunity to start.
Tendermint – the Proof of Stake System
So, we described the Proof-of-Work concept and its central concerns. PoW is a good solution, but the development of blockchain systems requires some new approaches. Tendermint offers the new principle – Proof of Stake. The new concept aims to use the validators’ staked crypto funds as an economic incentive.
The validators can stake their tokens as collateral and get the authority proportional to the token amount. If such users misbehaved, the staked coins could be revoked. Of course, it makes the validation procedure less democratic.
The largest token stakers are the well-financed mining centers, and their growing influence does not go in line with the concept of a decentralized finance ecosystem. At the same time, in the proof-of-work concept, each miner could work as a validator independently of the size. However, this concept has some vulnerabilities, and the first of them is the environmental impact.
Tendermint authors claim that PoS is a more suitable concept for modern blockchain systems. Tendermint pretends to be the consensus engine that can replace any consensus software. For example, any developer can create the token using the codebase of Ethereum and use Tendermint as a consensus.
This plan sounds very ambitious, but it can become real shortly.
Read also Cryptocurrency predictions for 2021-2025
The Future of Tendermint
The creators of the Tendermint declare their ambitious plans for their product. They claim that Tendermint based applications will become a part of the Tendermint Cosmos blockchain network. The network will include blockchain cloning machines, applications, and more. This network should become a base for a new internet of blockchains.
According to the Tendermint owners, Cosmos can also work with the applications that were not initially created on the top of Tendermint. They do not want to stay in the tight frames of their product but develop it by joining the modularized blockchain apps. Tendermint Core can clone the existing blockchains onto Tendermint Core via the hard-spoon – in this case, the new chain inherits the state of the existing chain but opens wider access to it.
This collaboration is the most exciting part of the Cosmos network, and it is worth the attention of all players in the crypto market.
With the development of blockchain systems, developers require automated and straightforward solutions to focus on the app development level instead of struggling with cryptography. According to the Tendermint owners, it can become the core solution for the new generation of the blockchain system. All blockchain apps will join Cosmos network and open numerous new opportunities for business. We will see if Tendermint this ambition as the plan will come true.