Table of contents
In our previous blog post, we dove into House Move, including the creation of the Move programming language under Facebook’s Libra, the formation of an independent organization, and the battle between the heirs Sui and Aptos for the Move Throne.
This post will explore House Tendermint: a Byzantine Fault Tolerant (BFT) blockchain protocol that is staking a claim as the Linux of blockchains. We will dive into Tendermint’s development history, understand the technical nuances, and learn about the Cosmos ecosystem that is being built on top of it.
The state of Blockchain Development
Blockchains consist of three layers — networking, consensus, and application. The networking layer handles the transfer of transaction messages. All blockchains use a peer-to-peer model where nodes communicate with each other without relying on a centralized authority. The consensus layer handles how transactions are agreed upon and added to the chain. House Bitcoin implements the Proof of Work (PoW) while House Cardano implements the Proof of Stake (PoS) consensus mechanism. The final layer is the application layer, where blockchain developers can write custom logic to process transactions.
If developers wanted to create a new blockchain before 2014, they would need to write the logic for all three layers. This would often take years.
The Birth of House Tendermint
By 2014, blockchain users began to understand the limitations of proof of work - in particular, how much computing is required. It became increasingly apparent that you needed to be able to decouple the consensus and networking layers of a blockchain. That spring, Jae Kwon published a white paper outlining his vision for a proof of stake-based blockchain protocol called Tendermint. With Tendermint, developers would only have to worry about the application layer of a blockchain; Tendermint would take care of networking and consensus. Kwon began working on an implementation in Go because of its ease of use for building distributed systems.
Tendermint: A Deeper Dive
Like other blockchains, Tendermint has a peer-to-peer model as the networking layer where nodes communicate with each other using gossip. Tendermint’s Proof of Stake consensus algorithm consists of a group of validators that have their coins staked to vote on the next block. A new block is added to the chain when a ⅔ majority commit votes are achieved from the validators. As a result, Tendermint can bear up to ⅓ dishonest validators and is Byzantine Fault Tolerant. (Inspired by the Byzantine General’s Problem, a distributed system is deemed BFT if it can continue to function appropriately even with offline or malicious nodes in the system.) If there is sufficient evidence that a Tendermint validator is dishonestly voting, an evidence transaction with their conflicting vote signatures can be committed to the blockchain, slashing their staked coins.
The Tendermint consensus algorithm consists of a round of communication between the validators before a block is agreed upon and committed. Each game takes the same time and consists of three steps:
- Propose - a validator is chosen in a round-robin format. The validator will send a proposal for the new block to be added to the blockchain with their signature to the other validators.
- Prevote - All the validators will receive the proposal, decide whether to accept the block and send a message to all the validators.
- Pre-commit - Each validator will receive a vote from every other validator. If at least ⅔ of the validators accept, they will send a pre-commit acknowledgment. A new round will begin for the same blockchain height if there isn't a majority.
As a result, the consensus is partially synchronous, as there is a voting round for each new block on the blockchain; some validators may be offline or have network issues during a round.
All distributed data systems are bound by the CAP Theorem, which states that when there is a network partition, a system has to choose between consistency (where all nodes agree on the state of the blockchain) or availability (ensure that new blocks can continually be added). Bitcoin and other networks like CASPER choose availability: Bitcoins can be sent and received even when there are node failures or connectivity issues. However, the chains can become inconsistent across all nodes spawning stale blocks. Meanwhile, Tendermint chooses consistency to ensure that there are not two different forks off a chain. This can, however, cause downtime in the blockchain network as the fork will need to be resolved before a new transaction is accepted. Tendermint assumes that the number of malicious participants and the frequency of attacks are low.
Tendermint lays the foundation for other blockchains to be easily built on top of it by modularizing the blockchain into two entities — the Tendermint Core and the Application Blockchain Interface (ABCI).
This platform contains the networking model and consensus engine for Tendermint and exposes an API that can be connected to by any ABCI. The split responsibility allows the engine to focus on communicating and validating transactions between nodes while providing a language-agnostic endpoint for developers to focus on building blockchain applications. There are a few attractive properties of Tendermint Core:
- Private and Public Blockchain compatible — As the validator set is per application, developers define how they want transactions to be validated.
- High Performance — Tendermint can handle around 10,000 TPS.
- Fast Finality — Due to the synchronicity of transactions, the state of the blockchain can be finalized quickly.
- Modularity — The separated logic allows for arbitrary applications to be run on a generalized engine.
Application Blockchain Interface (ABCI)
The ABCI is the server-client architectural API that defines communication between Tendermint Core and the hosted application. The Core serves as the client and sends requests using socket connections; the application can send one of three response messages:
- DeliverTx - The message is accompanied by each transaction. An application needs to validate it and then update the state.
- CheckTx - Similar to DeliverTx, but is used primarily for validating transactions. The Core’s mempool checks validity and only disseminates valid transactions.
- Commit - The application calculates the Merkle root hash of the application state, which will be placed in the next block header.
The developer can write their blockchain in any language using the endpoints defined by the ABCI.
If Tendermint is the operating system of blockchains, then Cosmos, first proposed by Kwon and his cofounder Ethan Buchman in 2016, is akin to the internet. It’s an ecosystem/bridge of independent blockchains, each powered by Tendermint's Byzantine fault tolerance, that can interoperate with each other. Projects that otherwise would have to build their own chains from scratch, can instead make use of Tendermint to quickly and easily create an independent chain that nevertheless can talk to every other chain in the Cosmos ecosystem.
Since its launch in 2019, Cosmos has grown to over 48 active blockchains on the network, including Cosmos Hub, Axelar, Osmosis, and Ethermint, an Ethereum replica of Cosmos; these chains see over a million transfers every week.
Since its launch, Cosmos has been actively enhanced with regular code upgrades and a new governance protocol. In June 2020, the Stargate update was proposed that included the Inter-Blockchain Communication (IBC) protocol which defined how blockchains can transact with each other, and protocol buffer improvements that increased transaction throughput. IBC was voted in through community governance, and within a month, over a million cross-chain transfers on Cosmos were recorded.
The Cosmos white paper defines new terminologies that are important in understanding the potential of the new ecosystem.
Cosmos Hub is the first independent blockchain in the Cosmos network. Its main purpose is to connect chains by establishing IBC connections with compatible chains and operating decentralized bridges with chains like Ethereum and Bitcoin.
ATOM is the native token of Cosmos Hub, and is widely used across the Cosmos network. ATOM can be held and staked by users to vote for improvements within the network. Validators also receive compensation in ATOM for generating new blocks. Unlike Bitcoin, there is not a limited supply of ATOM coins; Cosmos adjusts the circulation based on the quantity of ATOM staked — ensuring the inflation rate is between 7% to 20% through proposals.
The development kit simplifies building blockchains on Cosmos by providing tools to integrate easily with the network. Developers can quickly build the technology according to their specifications, test it with users, and scale their chains using parallelization. Chains can also be made interoperable with others on Cosmos by following the IBC protocol.
Zones and Hubs
The Cosmos ecosystem consists of Zones and Hubs — zones that function as independent blockchains, and hubs act as intermediaries between the zones. Hubs add trust to the network by moderating transactions to prevent double-spending and recording the zones' state. Cosmos Hub is the first blockchain on Cosmos and functions as the network’s hub and connects to the zones using IBC.
There are two types of blockchains: deterministic and probabilistic. Deterministic blockchains, like Tendermint, have fast finality and can confirm the entire state of the blockchain at any point in time. Meanwhile, probabilistic blockchains like Bitcoin cannot guarantee the main chain until there is a majority on the dominant fork. This inconsistency breaks the IBC protocol, as the Hubs need to know the finalized state of all the chains to allow for interoperability. Peg Zones are blockchains that track probabilistic blockchains like Bitcoin and store their finality state so that Cosmos is able to communicate with them effectively.
While the Cosmos network has been growing steadily, there has been discordance in Tendermint Inc., the company that builds its core infrastructure. In January 2020, three months after the launch, Jae Kwon departed from the platform after a feud with early contributor Zaki Manian. His new organization, Virgo, received partial funding from the Interchain Foundation, a bureau that funds the development of the Cosmos ecosystem.
In mid-2022, Tendermint Inc. went through multiple transitions in rapid succession: the new CEO Peng Zhou renamed the organization to Ignite; Jae Kwon announced his return to the organization albeit under a new umbrella called NewTendermint; CEO Zhou announced his exit from the organization; Ignite let go of over half the company’s employees.
As of October 2022, Cosmos has 48 active zones, according to the network visualizer Map of Zones. Some popular chains are Osmosis, Axelar, and Juno, where developers can build custom dapps, smart contracts, or applications on top of them.
Cosmos continues to face competition from other Houses. Ethereum’s new PoS consensus mechanism makes it a more computationally efficient blockchain following The Merge. Additionally, Polkadot markets the same level of interoperability as Cosmos with a more energy-efficient nominal PoS system. Despite this, House Tendermint is a strong competitor in the Cryptoverse. Its interoperability, effective governance protocol, and robust SDK are much-desired features in blockchain development and will breed loyal Cosmonauts.