A Great Explanation of Tendermint and Cosmos!
We have transcribed the really exciting speech of Gautier Marin-Dagannaud, product engineer at Tendermint, during the CryptoMondaysParis from 23/07/18 at Station F in Patis!
Gautier: So, hello everyone, my name is Gautier, I'm an engineer at Tendermint, and today I'm working on a project called Cosmos. So I know that it is not necessarily well known in the French-speaking ecosystem. Who knows Cosmos, or has already vaguely heard of Cosmos? Not that bad. I'm going to talk about the Cosmos vision, which is an alternative to the vision of smart contracts and decentralized applications today, which are mostly developed on blockchains virtual machines, blockchains that run a virtual machine like Ethereum.
The vision of Cosmos is based on three points, and the first point, was to allow developers to develop their own blockchain, what we call our application specific blockchain, that is to say, an application for a blockchain. Unlike on Ethereum, we will develop its smart contract, then deploy it on Ethereum, that is to say full of applications that run on the same blockchain. We propose an application per blockchain. I will explain later why we chose this design.
The second is that we want all these blockchains, which are now easy to develop, to talk to each other, that is, to exchange tokens and data. This is the problem of interoperability. This is the second thing we try to solve.
And the third thing we try to solve is the problem of scalability, that is to say, the rise to scale, which today is almost all blockchains we have problems of scalability, we try to solve this problem.
I'll explain a little bit how we get to that.
The first point is to allow people to deploy their own blockchain easily. And so here is where the Tendermint product comes in. For that, we need to come back in 2014. In 2014, if we wanted to develop its decentralized application, we did not have much choice. Most people, what they were doing was either they were deploying something on the protocol, on Bitcoin directly, which was quite limited, or they were rebuilding a blockchain from the beginning, which was very hard and very long. That's why qu'Ethereum worked well, they came up with a new value proposition where they said now, it's easy to deploy decentralized applications. That's why today, almost everyone deploys on Ethereum.
Tendermint started in 2014, so at the same time as Ethereum started, we started thinking about another vision. We said, instead of making a single blockchain on which everyone will build its application, we will create an engine that will allow everyone to create his blockchain easily, which was not possible before.
To understand how this engine works, we must understand how a blockchain is constituted. Basically, there are three fundamental layers, there is the network layer, which is the layer that propagates the messages, there is the consensus layer, which allows the nodes to agree on the same state at the same time, and the application layer, which in fact gives meaning to the message and depends on the use case, what is called business logic. For example, for Bitcoin, it is accounts with scales, for a governance application it would be the rules governing governance.
And so Tendermint will propose, as engine, the network and consensus layers, so that the developer only has to focus on the application layer. And these network and consensus layers are both difficult to develop, and we propose a powerful engine and the developer can then really focus on the application layer.
In addition, Tendermint has a lot of advantages. The first advantage is that this application layer can be developed in the programming language you want. We are not limited to Solidity, we can develop it in C, C ++, Go, whatever we want. The second advantage is that Tendermint is a very powerful blockchain engine, in the sense that it is called Byzantine Fault Tolerance, BFT. For the little note, today, BFT is a word that comes up quite often in the world of blockchain. In 2014, Tendermint's CEO, Jae Kwon, was the first to return to the 1980 papers, and bring this BFT research back into the world of blockchain, which is today, and which Casper of Ethereum and others for the Proof of Stake.
Tendermint is a BFT engine, it has two interesting properties among many, which are instant finality, once that a transaction is included in a block, it can not be canceled, and the second is the light client which is very easy to implement on Tendermint. This is not the case on the Proof of Work blockchains. Another interesting point is that Tendermint allows you to develop applications, blockchains both public and private. So, whether your application is for a public blockchain in Proof of Stake or a private blockchain in Proof of Authority or others, you can do it on Tendermint.
So, now, we have plenty of easy-to-develop blockchains with this engine. But the fact that all these blockchains are developed on an engine that has the property of instant finality as already said, it allows to connect them together. We developed a protocol called IBC, Inter Blockchain Communication Protocol, which allows to connect these blockchains that have this property of finality between them. In a decentralized way, obviously. Today, we already know how to connect blockchains centrally, what we do not know is to connect them in a decentralized way.
So we have this protocol, now, IBC, which allows to connect blockchains that have finality. All blockchains developed at Tendermint have it, but for example, other blockchains like Casper also have this finality property.
Now we can connect the blockchains together. How do we go to a network, to a blockchains internet? This Cosmos, basically, is a network of blockchains, an internet blockchains, that is to say an ecosystem where blockchains can talk to each other. The naive solution is to connect all the blockchains with each other, but that does not work very well, because the internet has not been built like that for obvious scalability issues. If we have M blockchain in the network, we will grow in M squared. It does not take very long. In fact, what Cosmos does is that we have a hub and spoke architecture, that is, we have hubs and zones, and hubs act as routers.
If I want to develop my blockchain in Cosmos, I use Tendermint in a few days and I develop a blockchain, and then I put an IBC connection with the hub, and I'm connected with everyone. There may be several hubs, of course, but there will be many more areas than hubs.
So the Cosmos Hub is what we are developing today at Tendermint, and it will be the first blockchain in Cosmos, and that will mark the launch of Cosmos. For those who follow a little closer, it should happen very soon, in a few weeks.
The third problem I'm going to talk about is scalability. How do we get there? In fact, there are two ways to achieve scalability, the first is that Tendermint alone can reach several thousand transactions per second, and if Tendermint reaches its maximum, that is that our application has too many transactions, too many transaction requests, what we can do is put multiple strings in parallel, with the same application, and resolve via IBC so that they understand each other. It's called vertical scalability, and it will not be until 2019. But theoretically, it's feasible.
Here is. These were the three points of Cosmos to understand. Now, I'm just going to finish on the vision, because for those who have entered the blockchain and actually know that smart contracts and decentralized applications on Ethereum, it may sound a bit weird to say, "Why would I go to develop my application as a blockchain, with my own blockchain, rather than developing it on a smart contract? " So, there are several reasons why we think it's a better design in the long run, the first is that, for performance reasons, how to lift the virtual machine between the application and network layers or consensus, we gain in performance, as most languages that compile directly are more efficient than languages that run with a virtual machine. Performance.
The second is flexibility. We can develop its application in the language we want. But that's not all. When we have a blockchain that is a virtual machine, by the virtual machine imposes limits on the application. And these limits are perfectly justified because there are many applications that can come, so you have to put limits to guarantee security. An example, on Ethereum, it is not possible to have automatic code execution. Any code execution must be triggered at the base by a Hedge-user. And that makes sense, on Ethereum, if we want to guarantee safety.
But if you have an application for a chain, then security issues evolve and you can have automatic code execution. Which unlocks lots of use cases. We, for example, for the Cosmos Hub, use a lot of automatic code executions. Just be careful, like any program, that you do not have an infinite loop and so on. But if we have a problem, and we have an infinite loop, it does not matter because we turn on our own blockchain, we can completely go back, and other blockchain will not be affected.
And that brings me to my third point, which is, like me, the most important, and that is often not mentioned much today and for me, the reason is that it is a very black point on the blockchain, virtual machines like Ethereum et cetera, that's the issue of sovereignty. That is to say that when one deploys its application on a blockchain of the Ethereum type or virtual machine in general, one has a very limited sovereignty. The two very well known examples on Ethereum are the DAO Hack and the Parity Hack.
DAO Hack, there was a bug, a lot of money was lost, what did we do? There was governance that was not enough. The governance of the DAO was not enough we needed to spend on the governance of the network, and there was a hard fork. I think we will not see a hard fork anytime soon, considering the scandal it has done.
There was the Parity Hack, there was also a lot of money lost, there was no hard fork. Why ? Because the Parity governance, of the Parity application, is not aligned with the governance of the protocol below, which runs the application.
What we want is to realign the governance. That is, an application for a blockchain. If the application has a problem, we can go back. This is not a problem because this governance is limited to the blockchain. The other blockchains will not come back if a BK goes back. And we keep this compatibility via Cosmos. So the general idea is to say: "Everyone has his own sovereignty, his own independence, but is still able to discuss with others and scale."
That's the vision for which we think that in the long run many applications will come on their own blockchain beyond scalability issues, beyond the issues of flexibility, there are also issues of sovereignty which are very important.
Finally, where we are today, we hope to launch in a few weeks. Cosmos is an ecosystem, it's a decentralized network, it's a blockchain network. Anyone today can come and build their own blockchain in Cosmos. The Cosmos Hub which is developed by Tendermint, which is also a company, will be the first blockchain that will mark the launch of Cosmos, but today you can come and develop on Tendermint, whether you have a private project or a public project, for Proof of Stake, for Proof of Authority, today you can build on Tendermint, it is a stable product that has been developed since 2014, it has been audited many times.
The Cosmos tool kit is a little more recent, a little less stable, but we approach the stability and within a few months, we can have an ecosystem that will develop it. I finally add that we have more than fifty projects today that are developing on Cosmos today. We hope that many more will join them quickly. Here. Thank you.
Posted from my blog with SteemPress : https://www.blockchains-expert.com/en/tendermint-cosmos/