Tendermint Review

Tendermint Review

Tendermint is a blockchain engine. It uses the BFT PoS (Byzantine Fault Tolerant Proof-of-Stake) consensus algorithm for block validation. Language agnostic - the ABCI protocol allows you to work with the mechanism in programming languages: Java, C ++, Python, Go, JavaScript, Rust.

The main feature ofTendermint is the speed of finalization. The transaction is included in the block in seconds and does not require waiting for confirmation.

Origin Of Tendermint

In 2014, Jae Kwon, looking for a solution to optimize the operation of nodes in Wide Area Networks (WAN), developed a new protocol based on BFT (the first algorithms were created at MIT in 1988). Tendermint is open source software. Conceptually demonstrated the achievement of security in a network with a large number of nodes. Four years later, in 2018, the Cosmos project (ATOM) started using the Tendermint engine.

Byzantine Generals’ Task

To reach consensus quickly it is necessary to demand the truth from at least 2⁄3 (66%) of the nodes.The Byzantine Consensus Algorithm (or BFT, Byzantine Fault Tolerance) uses a solution to this problem. Let there be four generals and they need to coordinate actions. They can exchange letters. Each general in a letter reports on the number of troops. Vectors are formed. They are compared, and false information and its source are exposed against the background of all the data.

Nodes in the blockchain operate on the same principle. If someone broadcasts an incorrect state of the network (balances, transactions), the Tendermint algorithm will exclude them from the validation process or fine them. 

Tendermint Protocol Features 

Tendermint Inc. 

This organization provides access to the Tendermint Core engine and API – Application Blockchain Interface (ABCI).

Tendermint Core

Protocol, middleware. Receives code in any programming language and safely replicates it to multiple machines. Responsible for distributing data about blocks and transactions across nodes, fixing their order.

The Bitcoin protocol maintains a base of unspent outputs (UTXO), signing and validating transactions, preventing double spending attempts. Which makes it monolithic. In Tendermint,the ABCI is responsible for it. 

Application Blockchain Interface (ABCI)

It is a simple API for applications which transfers data to Tendermint Core via 3 separate connections:

  • DeliverTx – transaction details. They are identified to be approved for placement in the mempool.
  • CheckTx – checking approved transactions. Only such can then be transferred to the base of the entire network.
  • Commit  – committing a cryptographic proof of the validity of the network state, for placement in the next block hash. Provides continuity. The work of lightweight clients is possible – proofs are obtained from hashes of blocks according to the Merkle tree.

ABCI as a separate layer can work in any programming language.

Determinism

Consensus in Tendermint would not have been possible without predictability. The Solidity (Ethereum) language is also deterministic. For this, free languages (Java, C ++, Python, Go) partially restrict from sources of pseudo-randomness: random number generators, concurrent state of threads, system clock, uninitialized memory, floating point arithmetic.The static analyzer checks the code for determinism (developers can do this task manually), and so Tendermint reaches consensus in a multilingual environment.

Building Consensus

Validators take turns proposing blocks and voting to fix them within the same mechanism. The developers call the rounds polka (in honor of the dance). 2/3 participants must agree on a proposal for it to be approved and the network to move on.

If the offering node does not respond for a long time or is offline, the others wait for a while and then let it pass. The timeout dependency makes Tendermint a weakly synchronous protocol, but otherwise asynchronous.

Staking

For a validator to be eligible to vote, he must freeze his coins for the duration of his work. Tendermint calls this "bonding". The cryptocurrency is frozen for several months to avoid attacks. This distinguishes Tendermint from many PoS systems.

The strength of the vote is determined by the number of coins in stake. Ordinary users can entrust their stake to validators and receive a fractional return.

Tendermint Advantages And Disadvantages

  • High throughput (transactions are confirmed immediately). 
  • Horizontal scalability (through zoning).
  • Support for all programming languages.
  • Saving computing resources (no power is required as in PoW mining). 
  • Lack of motivation among users with a small stake to support democracy (psychologically, they consider their role to be insignificant in the voting process, and power is concentrated in the hands of exchanges and other services over time). 
  • The stake is frozen for several months. 

Use Cases

  • Cosmos (Interchain Foundation) is a decentralized blockchain ecosystem. Tens of billions of dollars are already circulating in this network. Users can stake the base ATOM coin and receive profitability. Your chain is created in 5 minutes, for this there is a ready-made toolkit. Binance, Terra, Hub, Crypto.com, and Thorchain have built their networks on Cosmos. Cosmos uses the Tendermint engine.
  • Fabric – uses the PBFT (1999) implementation to explore the possibility of executing non-deterministic chained code. As a result, Fabric can be released as an ABCI application for Tendermint.
  • Ethermint is an experimental version of the Ethereum network on Tendermint.
  • Burrow is a copy of the Ethereum Virtual Machine and transaction mechanics, but with additional functions: a registry of names, rights, native contracts, an alternative blockchain API.
1610540297889.jpg

WRITTEN BY

Viktor Ihnatiuk

Founder at Boosty Labs, SNO Growth Lead at Storj Labs

You might like it

1641315045895.jpg
A Short Review of GameFi Sector

Jan 4, 2022 by Viktor Ihnatiuk
1641315395285.jpg
What are wrapped tokens

Jan 4, 2022 by Viktor Ihnatiuk