Tendermint is a software which consistently and securely replicates the application on many machines using their tendermint consensus algorithm based on Byzantine fault tolerance consensus algorithm (BFT). Tendermint consensus algorithm plays an important role in fault tolerance of machines and replication in distributed systems like in Cosmos, tendermint is playing a role of fuel for Cosmos Blockchain.
Whenever a network receives new transaction, the nodes have the option to either include that transaction to the copy of their ledger or to ignore it. If it is ignored it becomes a fault in the system. The nodes will be updated on the basis of majority of the decisions on this state and that’s how consensus will be achieved in the network.
Byzantine Fault Tolerance (BFT)
BFT generates the ability in computer networks to reach consensus despite of factors spreading incorrect information to other peers, this is how byzantine Fault Tolerance will act to maintain consensus in the distributed network. Whenever a transaction occurs on the network by client it is broadcasted to all of the peers on the network for the endorsements. After the endorsements are received, changes will be requested from ordering services to replicate the information in the distributed ledger.
Blockchain is a decentralised ledger which means there is no central authority controlling it but due to the values stored in the these ledgers bad actors may want to create faults, which may decrease the blockchain’s reliability. This is when Byzantine fault tolerance will work to avoid this phenomenon.
Components of Tendermint
There are two main components of Tendermint specified as:
• Consensus engine
• Application Interface
The consensus engine known as Tendermint Core is responsible for ensuring that all the transactions are replicated to all the machines in the same order securely and efficiently without any fault using Byzantine Fault Tolerance (BFT) algorithm based Proof of Stake (PoS). While the application’s interface known as Application Blockchain Interface (ABCI) provides the programming interface for processing transactions in any programming language.
Cosmos-Internet of Blockchains (IoB)
Cosmos is an independent parallel blockchain also known as the internet of Blockchains built on decentralized network and uses Byzantine Fault Tolerance (BFT) consensus algorithm. Cosmos Blockchain has Inter-Blockchain Communication (IBC) protocol which allows Blockchains to interact with other Blockchains by exchanging asset or sending and receiving the messages.
This figure explains how Cosmos Hub is allowing other Blockchains (Zones) to interact with each other and exchange their assets via Cosmos Hub.
Blockchain of Cosmos (Hub)
Cosmos Hub is the first blockchain of Cosmos Network with its tokens named as Atoms. Anybody can create blockchains on it because of its permissionless network in which each blockchain is powered by Tendermint.
Cosmos Network goes around four main elements:
Hub: Distributed ledger of individual users or zones where they can place their tokens and these users and zones can interact with each other using Inter-Blockchain Communication (IBC).
Zones: Independent blockchains are called zones which are powered by the Tendermint Core that provides high performance, consistency and secure BFT consensus engine which scales public Proof of Stake Blockchains.
Validators: Validators are responsible for ensuring consensus in the network and managing the addition of new blocks in the network.
Atoms: Atom is the license given to the stake holders to verify the transactions vote on the Cosmos Hub.
There are different zones of Blockchain and Cosmos hub Blockchain will connect these zones via Inter-Blockchain Communication (IBC) protocol and also keep the record of tokens sent to the stake holders with in every zone. We can send and receive tokens to and from other zones within a network with high performance and security without introducing any third party between these zones. Cosmos hub Blockchain uses Tendermint to rely on stake holders who validate transactions in the network. Atom is a token just like a license for the stake holders to vote and validate the Cosmos Hub blockchain. The total Atoms including self and delegated atoms are called stakes. Stakeholders lockup their atoms to receive block provisions, block rewards and transaction fee. When a stakeholder wants to get back his locked atoms they have to wait for 3 weeks which is the un-bonding period. Validators in the network are responsible for committing new blocks and are responsible for altering any faults that might occur to ensure the consensus.
Infrastructure of Cosmos Blockchain is consists of hubs and zones. In Cosmos Blockchain, there are multiple blockchains connected to the central cosmos Hub Blockchain in a parallel manner. Every zone in connect to tendermint if they want to be the part of cosmos Hub, For two zones want to connect each other they will go the Cosmos Hub using Inter-Blockchain Communication(IBC), Hub is playing an important role here as the zones are going through hub if they needs to connect with other zones.
Inter-Blockchain Communication Protocol
Cosmos Inter-Blockchian communication protocol defines some rules and set of semantics and ordered message passing between Blockchain hubs with independent consensus algorithms. These semantics are implemented by many developers over the IBC for the particular application to enable users to send and receive their assets to different Blockchains.
As an example, suppose we have two Blockchains i.e. Zone1 and Zone2 and these zones want to interact with each other via Hub Blockchain. For that, Zone1 will send a packet to Zone2 with its headers.
This packet will be received by the Hub and will be split into two transactions by IBC in following types:
- IBCBlockCommitTx: This transaction provides a proof of the activity of zone 1 by stakeholder and replicates it into the ledger.
- IBCPacketTx : This transaction will be recognised as the proof of the packet sent by zone1
When the Hub receives the transaction, it will send the packet to Zone2 with the same two transactions including the header of Zone1. This is how the Inter-Blockchain Communication Protocol will help two zones to interact with each other.
Comparison of Different Fault Tolerance Consensus Algorithms used in Blockchains
Different blockchain platforms use different fault tolerance techniques (consensus algorithms) to maintain their network’s reliability and security.
Hyper ledger fabric is using Byzantine Fault Tolerance (BFT) consensus algorithm to maintain its network, while Bitcoin and Ethereum use Proof of Work (Pof) and Cardano is using Proof of Stake (PoS) Ourobrus consensus algorithm while Cosmos is using BFT based Proof of Stake(PoS) algorithm by Tendermint.
Cosmos is a secured protocol for many blockchains to safely and more reliably interact with each other as it allows creating new Blockchains to send and receive transactions and messages to each other via Inter-Blockchain Communication Protocol (IBC). These are the main features of Cosmos Blockchain Protocol.
Cosmos provides interoperability as the network is the central hub for the blockchains to connect with each other using IBC. Cosmos Blockchain is built to allow many independent public and private Blockchains to exchange assets and to communicate with each other. Cosmos offers more scalability than any other blockchain platform. Cosmos uses Interledger Protocol (ILP) to enhance its scalability to an unmatchable level. It’s more developer friendly compared to any other blockchain platform and it was designed keeping the developers’ concerns in mind. Cosmos integrated Tender mint’s Application Blockchain Interface (ABCI) to help the developer to develop applications on Cosmos more effortlessly.