Back to Course

3. Advanced Course

0% Complete
0/0 Steps
  1. 1. What is Taproot?
  2. 2. Blockchain bridges – what are they?
  3. 3. What is Ethereum Plasma?
  4. 4. What is Ethereum Casper?
  5. 5. What is Zk-SNARK and Zk-STARK? 
  6. 6. What is Selfish Mining? 
  7. 7. What is spoofing in the cryptocurrency market? 
  8. 8. Schnorr signatures - what are they? 
  9. 9. MimbleWimble - what is it? 
  10. 10. What is digital property rights in NFT?
  11. 11. What are ETFs and what role do they play in the cryptocurrency market? 
  12. 12. How to verify a cryptocurrency project – cryptocurrency tokenomics 
  13. 13. What is the 51% attack on blockchain?
  14. 14. What is DAO, and how does it work?
  15. 15. Zero-knowledge proof – a protocol that respects privacy 
  16. 16. What is EOSREX?
  17. 17. What is Proof of Elapsed Time (PoET)?
  18. 18. Mirror Protocol – what it is? 
  19. 19. What are synthetic assets? 
  20. 20. How to create your own NFT? 
  21. 21. Definition of DeFi, and what are its liquidations?
  22. 22. New identity system - Polygon ID
  23. 23. Ethereum Foundation and the Scroll protocol - what is it?
  24. 24. What is Byzantine fault tolerance in blockchain technology?
  25. 25. Scalability of blockchain technology - what is it?
  26. 26. Interchain Security - new Cosmos (ATOM) protocol
  27. 27. Coin Mixing vs. Coin Join - definition, opportunities, and threats
  28. 28. What is Ethereum Virtual Machine (EVM) and how does it work?
  29. 29. Soulbound Tokens - what are they, and how do they work?
  30. 30. Definition of LIDO - what is it?
  31. 31. What are Threshold Signatures, and how do they work?
  32. 32. Blockchain technology and cyberattacks.
  33. 33. Bitcoin script - what it is, and what you should know about it.
  34. 34. What is zkEVM, and what are its basic features?
  35. 35. Do confidential transactions on blockchain exist? What is a Confidential Transaction?
  36. 36. Algorithmic stablecoins - everything you should know about them.
  37. 37. Polygon Zk Rollups ZKP - what should you know about it?
  38. 38. What is Web3 Infura?
  39. 39. Mantle - Ethereum L2 scalability - how does it work?
  40. 40. What is the NEAR Rainbow Bridge?
  41. 41. Liquid Staking Ethereum and LSD tokens. What do you need to know about it?
  42. 42. Top 10 blockchain oracles. How do they work? How do they differ?
  43. 43. What are Web3.js and Ether.js? What are the main differences between them?
  44. 44. What is StarkWare, and recursive validity proofs
  45. 45. Quant Network: scalability of the future
  46. 46. Polygon zkEVM - everything you need to know
  47. 47. What is Optimism (OP), and how do its roll-ups work?
  48. 48. What are RPC nodes, and how do they work?
  49. 49. SEI Network: everything you need to know about the Tier 1 solution for DeFi
  50. 50. Types of Proof-of-Stake Consensus Mechanisms: DPoS, LPoS and BPoS
  51. 51. Bedrock: the epileptic curve that ensures security!
  52. 52. What is Tendermint, and how does it work?
  53. 53. Pantos: how to solve the problem of token transfer between blockchains?
  54. 54. What is asymmetric encryption?
  55. 55. Base-58 Function in Cryptocurrencies
  56. 56. What Is the Nostr Protocol and How Does It Work?
  57. 57. What Is the XDAI Bridge and How Does It Work?
  58. 58. Solidity vs. Rust: What Are the Differences Between These Programming Languages?
  59. 59. What Is a Real-Time Operating System (RTOS)?
  60. 60. What Is the Ethereum Rinkeby Testnet and How Does It Work?
  61. 61. What Is Probabilistic Encryption?
  62. 62. What is a Pinata in Web 3? We explain!
  63. 63. What Is EIP-4337? Will Ethereum Account Abstraction Change Web3 Forever?
  64. 64. What are smart contract audits? Which companies are involved?
  65. 65. How does the AirGapped wallet work?
  66. 66. What is proto-danksharding (EIP-4844) on Ethereum?
  67. 67. What is decentralised storage and how does it work?
  68. 68. How to Recover Cryptocurrencies Sent to the Wrong Address or Network: A Practical Guide
  69. 69. MPC Wallet and Multilateral Computing: Innovative Technology for Privacy and Security
  70. 70. Threshold signature in cryptography: an advanced signing technique!
  71. 71. Vanity address in cryptocurrencies: what is it and what are its characteristics?
  72. 72. Reentrancy Attack on smart contracts: a threat to blockchain security!
  73. 73. Slither: a static analyser for smart contracts!
  74. 74. Sandwich Attack at DeFi: explanation and risks!
  75. 75. Blockchain RPC for Web3: A key technology in the world of decentralized finance!
  76. 76. Re-staking: the benefits of re-posting in staking!
  77. 77. Base: Evolving cryptocurrency transactions with a tier-2 solution from Coinbase
  78. 78. IPFS: A new era of decentralized data storage
  79. 79. Typical vulnerabilities and bridge security in blockchain technology
  80. 80. JumpNet - Ethereum's new sidechain
Lesson 52 of 80
In Progress

52. What is Tendermint, and how does it work?

Without further ado, today’s lesson begins with our main topic.

Tendermint is software designed to replicate applications consistently and securely across multiple machines. It works as long as about 1/3 of the machines running the software are down. Consistency is the process of every machine seeing the same transaction log and calculating the same state without failure.

Security and consistency is even a fundamental problem in distributed systems. Yet, it plays a key role in fault tolerance.

You have already seen the connections, have not you? The ability to tolerate machine failures, even malicious ones, is called Byzantine fault tolerance (BFT). The name itself derives from the way transactions are clustered in blocks. 

We have written about Byzantine Fault Tolerance (BFT) here.

Tendermint itself consists of two components – a blockchain consensus engine and a generic application interface.

The consensus engine is called Tendermint Core. It ensures that the same transactions are recorded in the same order on every machine.

The application interface, the Application BlockChain Interface (ABCI), is responsible for passing the transactions to the application for processing. Developers therefore use Tendermint to replicate the state of BFTs in applications written in any software language and development environment.

Tendermint is easy to use, simple to understand, efficient and especially useful for many distributed applications.

The solution has two programming approaches. The first is via distributed key-value stores: Zookeeper, etcd and consul. These use a consul other than Byzantine Fault Tolerance (BFT).

The second way is simply the blockchain. This group includes cryptocurrencies (Bitcoin, Ethereum) or alternative distributed ledger projects, such as Hyperledger’s Burrow.

Another example of an application built on Tendermint is the Cosmos network.

Architecture of Tendermint

We have already mentioned that Tendermint consists of two key components: Tendermint Core and Application Blockchain Interface (ABCI). Let us now take a look at these components.

Tendermint Core

This is the core element of the entire protocol architecture. It serves as a consensus mechanism. It monitors the recording of transactions on different machines simultaneously. Through the Tendermint Core, we can record transactions on the blockchain and ensure their immutability.

The consensus mechanism of Tendermint Core is Proof-of-Stake (PoS). Randomly selected validators verify transactions across the PoS ecosystem. Blocks are only added when consensus is reached. However, we will dedicate a separate paragraph to validators in this lesson.

Application Blockchain Interface (ABCI)

ABCI is one such bridge between Tendermint and the developers who use its functionality. The Application Blockchain Interface serves as a translator for the Tendermint Core. This allows developers can build applications on the protocol in any software language.

Interestingly, developers can build projects on the Cosmos network using Tendermint Core as a bridge between Tendermint Core and the Cosmos Software Development Kit (SDK).

Tendermint-validators

The way Tendermint works is simple and easy to understand. It is an asynchronous consensus protocol with Byzantine fault tolerance.

The participants in the protocol are called validators. They take turns proposing and voting on transaction blocks. The blocks are naturally passed in a chain, with one block at each level. If a block is not included in the chain, it goes to the next ’round’ and new validators receive the proposal for that block for that height. For a block to be added to the chain, Tendermint requires two phases of voting: pre-vote and pre-commit. A block is added if more than 2/3 of the validators vote for the block in the same round.

Now you need to focus on the advanced functioning of the protocol. The validators, i.e. the checkers, are not allowed to cast their vote. They may be offline at the moment or the network may simply be slow. In this case, Tendermint allows the network to determine that the validator may not be present.

Validators wait a relatively short time until they receive a complete block from an applicant before voting for it to go to the next round. This time limit makes Tendermint a less synchronous protocol. But only in this situation – the rest of the protocol is asynchronous. Validators only move forward when a block gets 2/3 of the votes.

However, Tendermint has a simplifying mechanism. What does it refer to? It uses the same mechanism to validate a block and move it to the next round.

In this situation, we assume that less than 1/3 of the validators are Byzantine. This means that Tendermint guarantees us security – blocks are not tampered with, i.e. two blocks of the same height are never added to the chain. To achieve this, the protocol introduces several blocking rules that modulate the flow. When a validator declares a block, it is blocked at the same height as the declaration. The block in question is then voted on.

Scalability and flexibility of Tendermint

The advantages of this protocol are numerous. We will now add another one, namely its high scalability. Depending on how many transactions it supports, it can expand or scale.

You have already learned at our university that many blockchains and protocols have a scalability problem. Congestion occurs when the capacity of the network cannot keep up with the amount of activity. As a result, the network becomes more and more congested, transaction speed decreases and costs increase.

Tendermint achieves its scalability through sharding. The protocol’s transactions are executed on shards or smaller databases.

Now, let us talk about flexibility. Tendermint has more flexibility than the average blockchain. All because of its modularity. This allows us to easily separate the consensus mechanism from the application interface. Developers do not have to bootstrap the ecosystem – they interact with the application interface and ABCI.

Modular architecture

We have already mentioned that Tendermint is unique, right? We add another advantage to that – modular architecture. By default, blockchains have a monolithic structure. This means that the elements of this structure are both independent and interconnected.

A modular architecture makes it easy to update one aspect of the system without disrupting the entire system. It also allows developers to create custom programs without having to run the entire network.

Tendermint Core, which we wrote about a few paragraphs above, was designed as a modular system with an application layer. On this layer, developers build and integrate their applications. Independent of the network and consensus layers. This functionality allows developers to implement code without having to worry about side elements.

The positive elements of the Tendermint architecture are:

  • Simplification of the application development process.
  • The ability to develop applications in different languages.
  • Seamless onboarding of different, decentralized applications.

Summary

Tendermint is a passionate protocol. At the same time, it is innovative. We can confidently say that it is an engine for blockchain that allows developers to do many interesting things. One of the most important is to create applications in any programming language.
Tendermint Core and ABCI are the core components of Tendermint. The ecosystem itself is highly scalable, integral and modular.