sunnya97.com

BUIDL ASIA 2019 (Day 1) : Presentation by Sunny Aggarwal

The vision of Cosmos aims to create an interchain ecosystem that combines the sovereignty of independent blockchains with the interoperability and composability of a unified network.

Summary

In this presentation, I explored the vision of the Cosmos ecosystem, emphasizing the importance of creating a decentralized network of sovereign blockchains that can interoperate without the need for mass political integration. I began by discussing the evolution of human coordination, from villages to empires and finally to nation-states, drawing parallels to the development of blockchain technology. I outlined the progression from generation one blockchains, which lacked interoperability, to generation two with Ethereum, which enabled composability but faced governance and scalability issues. Our goal is to create a third generation that combines the best of both worlds—sovereignty and interoperability—using tools like Tendermint, the Cosmos SDK, and Inter-Blockchain Communication (IBC). I highlighted how these tools facilitate faster finality, ease of application development, and scalable blockchain ecosystems. By integrating these technologies, we aim to achieve a sustainable, efficient, and interconnected future for blockchains, allowing diverse applications to thrive while maintaining their independence.

Key Takeaways

  • The Cosmos ecosystem aims to create a third generation of blockchains that combines the sovereignty of generation one with the interoperability of generation two, facilitating a decentralized and efficient environment for blockchain applications.
  • Tendermint serves as a foundational technology that provides fast finality and scalability for blockchains, enabling efficient consensus and reducing bottlenecks in transaction processing.
  • The Cosmos SDK simplifies blockchain development by providing a modular framework that allows developers to focus on business logic rather than the complexities of building a state machine from scratch.
  • Inter-Blockchain Communication (IBC) is a key feature that enables seamless asset transfers and interactions between different blockchains, enhancing the overall interoperability of the Cosmos ecosystem.
  • The vision of Cosmos is to create an interconnected network of blockchains, akin to the Internet of blockchains, where different hubs can offer specialized services and enhance economic integration without centralized political control.

Detailed Analysis

In the presentation, I delve into the vision of Cosmos, positioning it within the broader context of human coordination and blockchain evolution. The central theme revolves around the idea of creating a decentralized ecosystem of sovereign blockchains that can interoperate without the need for centralized control. By drawing parallels between historical models of economic integration—from villages to empires and nation-states—I illustrate how Cosmos seeks to achieve a similar evolution in the blockchain space. This interchain vision is not merely about launching the Cosmos Hub, but about fostering an ecosystem where diverse blockchains can communicate effectively and serve specialized functions.

As we look at the current trends in the blockchain landscape, the challenges of interoperability and scalability stand out starkly. Many existing blockchains operate in silos, limiting their utility and hindering the potential for innovative applications. Cosmos proposes a solution through its Inter Blockchain Communication (IBC) protocol, allowing different chains to interact seamlessly. This aligns with broader trends in technology, where integration and collaboration are key to unlocking new possibilities. Just as the internet revolutionized communication and commerce by enabling diverse systems to work together, Cosmos aims to create a similar paradigm for blockchains, facilitating a more interconnected digital economy.

The implications of this vision are profound. By enabling sovereign blockchains to coexist and interact, we could see a dramatic shift in how digital assets are managed and utilized. This could lead to greater efficiency and customization in applications, as developers can build tailored solutions without being constrained by the limitations of monolithic chains like Ethereum. Moreover, the emphasis on sustainability and scalability in blockchain design speaks to the growing awareness of environmental concerns and the need for more efficient systems in an era of increasing digital transactions.

However, while the vision is ambitious, there are strengths and limitations worth examining. The strengths lie in the modularity and flexibility of the Cosmos SDK and the robust consensus mechanism provided by Tendermint. These tools empower developers to create customized blockchains that can cater to specific needs, enhancing both efficiency and user experience. On the other hand, there are challenges associated with achieving widespread adoption of IBC and ensuring that these diverse blockchains can maintain security and reliability as they interact. The complexity of integrating multiple systems could also pose hurdles in terms of user experience and governance.

This presentation is particularly useful for developers, blockchain enthusiasts, and those involved in the crypto economy. It provides a clear framework for understanding the potential of interchain communication and the tools available to build on this vision. For anyone looking to innovate within the blockchain space or seeking to understand the future of decentralized ecosystems, the insights shared here are invaluable. The call to action encourages engagement with the Cosmos community, making it clear that collaboration and shared knowledge will be essential in realizing this ambitious vision.

Transcript

Speakers: A
**A** (0:23): So everyone please welcome Sunny to the stage with a big round of applause. Hi. Hey everyone. Thank you guys for coming. My name is Sannyagarwal. I am one of the research scientists at Cosmos at Tendermint and working on a lot of core development stuff as well. I also run a proof of stake validator called Sitka and I'm one of the co hosts of the Epicenter podcast. And so today I'd like to talk to you guys a little bit about telling you a little bit about the vision of Cosmos. Jae Kwon was here last year at Biddle and he talked a little bit about the Cosmos SDK. And I came here again this year to talk a little bit. Last year Cosmos Hub hadn't launched yet and now that the Cosmos Hub is launched and stuff that was really our focus at the time, now we're ready a little bit more to share with what the larger vision of the Cosmos ecosystem as a whole is beyond just the launch of the Cosmos Hub. So we're going to explore into the interchain before we go even talk anything about blockchains or anything. We're going to start off by talking a little bit about the evolution of human coordination. I would say the first stage in human coordination is villages and kingdoms where you had these small entities that really didn't scale very large. At the best maybe they could do like they could trade with their close neighbors and whatnot. And because of this, they just couldn't really grow. So that's why humanity invented empires. We basically realized that, that through mass political integration we can achieve massive economic integration. How do you, you know this is. Empires is how you get people in Italy to trade with people in Persia, right? It's like by putting everyone under a common regime, we can get everyone to trade with each other. Now at the same time, there are a lot of flaws with empires which, you know, just open up a history book of the history of the like, you know, the 19th and 20th centuries. There's a reason we moved away from empires and we moved into a world of nation states and city states. Basically the greatest innovation of humanity in the last hundred years is we've learned how to do economic integration without mass scale political integration. We still have a amazing thriving world economy. Global economy, but we still have our own sovereignty. South Korea is not dependent or subservient to any other group. They have their own control. There's a number of technologies that enabled this for humanity. One is the free trade zones. Through free trade zones, we allowed it to increase the ability for the Economic integration without the political. We had containerization. Containerization. We basically standardize all shipping containers in the world. So any cargo ship, any trading port, they're all designed to handle these same shipping containers. And so I like to think of this as ibc. I'll get to that in a bit. But standardized the system so that we can send goods from any port in the world to any other port. We had institutions like the United nations where it's not a world government but it's a place for the sovereign governments to come together and sort of discuss and try to work out their problems. And we had the Internet, we don't have to explain the Internet. I can do business with anyone on the other side of the world. The communication and maybe blockchain as well will hopefully be another technology that will help lead to this more economic integration without political integration. So I'm going to make the claim that we can view the evolution of blockchain development in a similar stages. So in stage one, we had generation one blockchains, like you know, sovereign blockchains that were, you know, didn't have really any interoperability. You had things like Bitcoin, which was the first one, but you had name coins for domain name DNS, you had SIA for storage. But I couldn't use my Bitcoin to buy a namecoin name and store a SIA file on that DNS on that domain name. And there's no interoperability there. So then Ethereum comes along and builds an Ethereum empire where basically it said that look, we can put everything under a common political regime into a single blockchain and you can get high amounts of interoperability and composability with your applications. I can, you know, trade my cryptokitty for Dai on 0x. Right? Like this is like what Ethereum enables. It enables this mass integration. But it comes with many cons as well. Many of the cons that you get in empires, namely, you know, there's no social scalability. The governance problem of Ethereum is, you know, it's, it's an undeniable one where you have different stakeholders of many different beliefs and opinions and you know, incentives all trying to coordinate how to govern a common system. And they just can't figure out how to do this. You can go on the Ethereum improvement proposals repo and there's like, you know, so many different EIPs that are often contradictory with each other or conflicting. Another thing empires do is they charge taxes on their citizens. Right? Just like that. Ethereum requires you, if you want to use Ethereum, you have to pay your gas in eth. You're not allowed to pay in anything else. It has to be in eth. And you can't use your own protocol's sovereign token to do this. No, you have to use the Empire token that's given to you by the Ethereum foundation as the ruling faction. So we propose a third generation of blockchains where we go back to this world where we have sovereign blockchains like we had in generation one, but still have the composability that we Learned in Generation 2. And so this is the world that we want to create for this is the vision of cosmos, this interchain idea. And but you know, explaining it like that, you know, why do we want this Generation three? Well, I think the best way to look at it is what were the benefits of generation one and Generation two? You know, in generation one we had that sovereignty that we mentioned. We had the efficient state machines. You know, if I want to build a payment system, you know, Bitcoin is more efficient as a payment system. Like, you know, there's a reason it does bit made as UTXOs because people, because Satoshi realized that the UTXO design is a much more efficient design for building payment system. But Ethereum is designed for the average use case, which is nice, but you want, just like in the world of nation states today, where we have specialization, right? Not every nation state participates in the same piece of the economy. We want specialization of blockchains which will give us more efficient state machines. And you get that, more customizability. You couldn't build zcash on top of Ethereum because you just don't have the cryptographic primitives that are needed to do it. You don't have the customization to put into your blockchain in order to do this much faster and rapid iteration and innovation. Meanwhile on Generation 2, what we got was the interoperability of applications. It's easier to develop. Before, if you wanted to build something on Bitcoin, basically your choice was to go fork the Bitcoin code base because writing blockchains is hard and it wouldn't turn out that well. Namecoin is really badly designed because it's a fork of the Bitcoin code base and it wasn't designed for that purpose. Bitcoin's code base was designed with a single purpose in mind, never meant to be customizable. And so Ethereum solidity is not the nicest language in the world, but it's way Better to develop on than trying to develop with that spaghetti code C that is bitcoin core. And you get that one click deploy where you know it's easy. You know, you press a button and you know you have your thing is there. You don't have to go find miners and whatnot. It's just already there. So could we, my claim is, can we create this Generation three to encompass the benefits of all of both Generation one and generation two? But while we're at it, let's see if we can add any more benefits while we're here. While we're working on building generation three, what else can we add? When you're looking to design new distributed systems, the best source of inspiration in my opinion is to look at the largest and most successful distributed system in the world, which is the Internet. So this is from Rob Kahn, one of the co creators of the Internet. This is his list of what are the three goals of the Internet. And I think our goals for an Internet of blockchains are pretty similar. We want to connect multiple blockchains, we want our ability to scale in terms of throughput and geography. And we want to tolerate and recover from failures. So scalability and fault tolerance. Okay, let's add those two to our list. This maybe is a personal one. I guess this graphic's a bit old, but we see the bitcoin energy consumption and while we're at it, let's also add sustainability onto this because we want these systems to last hundreds and thousands, hundreds of years. We need to make sure these things are sustainable. And there's a last one which is privacy, which I think is a very important aspect. But I'll admit that's not our team's specialty. I think we have a lot on our plate right now and so, but we help fund a lot of research and people we're very close with UC Berkeley and so we fund a lot of Alessandro ts work on zk snarks and stuff. But so for now we're just going to ignore privacy a little bit. So yeah, these are the goals that we want for Generation three. And so what are we going to do to build these? So the team that I work on, Tendermint Inc, We've built a number of different tools to make this vision of cosmos reality and to achieve these nine goals. And so the tools we created are, you know, we have a multitude of many, many different tools. But really I want to focus on the three, highlight the main ones which are, I think Tendermint, the Cosmos SDK and ibc. And then we have a bunch of, you know, secondary ones as well. So I'm going to go a little bit fast just because, you know, this presentation was originally designed to be a two hour presentation, but I'm going to make it work in 25 minutes. I'm going to give you a good summary of what these tools do. And if you're interested in learning the details, I'll have some links of what you can do to learn more. Tendermint, what is it? Well, if you read this diagram, you'll understand Tendermint inside out. That's all you need to know. But in summary, basically it's one of the first blockchain based BFT protocols. We basically took PBFT and made it work for a blockchain context. It gives you one block finality. So you get very fast finality. No more waiting for confirmations and whatnot. It is much better designed for a blockchain setting. Unlike pbft, we can rotate the proposer easily and it just gives you way faster finality and than Bitcoin. And so this I think is important for the ux. And an important thing to know is that it is safe in asynchrony and live in partial synchrony. Why this is important is it, you know, why are the bit. Have you ever wondered why the bitcoin block times are so high? Why they're 10 minutes? It's because if the network delay becomes longer than the block time, the system will fail to ever reach consensus. It will go split brain and will never reach consensus. Nice thing about Tendermint is if the network delays become higher, the block times automatically adjust to deal with it and fit it. And so this is why we're able to push our block times as low as we want without fear that unexpected network delays will cause the system to go haywire. So this is why we're able to go for like two second block times in Tendermint bft, which we couldn't do in Nakamoto consensus. And so we get the tendermint, we get the scalability and we get higher fault tolerance because. So this is helping with those two of those goals. And if you're interested in learning more, here's some good reading resources on Tendermint bft. So next we have Tendermint Core. So Tendermint BFT is a consensus protocol that we invented back in 2014. Tendermint Core is our implementation of this consensus protocol and it is essentially the first production grade BFT consensus engine. What this means is there was this Question for the last 20 years of can BFT consensus actually scale over the public Internet? And people thought it couldn't, but you know, I'm gonna say that the reason people thought it couldn't was all the implementations were like Python done by like grad students for their theses or something. Not really coming at it from an engineering approach. So Tendermint Core is written in Go, makes use of actual like, you know, concurrency paradigms that we have today. And it's actually, you know, reasonably scalable. It can handle hundreds of validators at sub 5 second block times. And it's a piece of software that basically handles all the P2P and consensus logic for your blockchain and lets you worry about the application. You don't have to worry about how consensus works. These are some really old numbers that we have almost from like 2015 or something where we pushed tenement, we pushed transactions over a Tendermint chain with 64 validators in different continents and data centers. And so we got these numbers, 14,000. These numbers are kind of old. But essentially what Tendermint Core allows you to do is your bottleneck no longer becomes your consensus anymore. Your bottleneck now becomes your state machine. That's why we see when we take the we put Tendermint is giving us 14,000 transactions per second. As soon as you put a state machine on there, like the EVM, it drops it down to 200. So it removes that. And so it's not the end all be all solution to scalability, but it is a step and incremental steps, it's helping solve the vertical scalability, how much one blockchain can scale for long term scalability we need horizontal scalability of many blockchains interoperating, which is where Cosmos idea comes in. But we'll get to that. And so one of the nice things about Tendermint Core is you can write your own state machine in any language you want. We have had people write in every single language from practical to ocaml to write state machines on top of Tendermint Core. And a number of different people are using Tendermint Core. We have, you know, projects from like, you know, Hyperledger, Burrow, Loom, Tezos is not using Tendermint Core but they're working on shifting toward using Tendermint BFT. They're writing it themselves in OCaml. So we have a number of different projects where foam is using it amongst their location beacons. Number of different projects are using Tendermint in their stack now. So what does tendermint give you, it makes it easier to deploy your application. It gives you much more customizability because you can write in any language. You get that sovereignty, get scalability. So yeah, you can learn more from the docs over here. And so, okay, Tendermint doesn't care how the validator set is chosen. It actually lets the application tell the system how to choose the validator set, which is nice because that means you could use it with like proof of authority or proof of stake, or even proof of work technically if you wanted to. And you know, like I said, we care a lot about sustainability. And so what we've designed is a really well designed proof of stake system using delegation. It has a lot of great features that are not really available in any other proof of stake implementation right now, such as, you know, instant read allocation, automatic fee distribution. And so, you know, I don't want to spend too much time on this, but if you're interested, you know, there's a lot of great reading resources you can learn about how we, how we do this. Proof of stake. I gave a whole, you know, the top slide is the talk I gave at a conference at UC Berkeley last year where I kind of deep dive into the proof of stake system of Cosmos. So if you're interested in learning about that, please take a look at that. But you know, the proof of stake, it helps more with the sovereignty. You get a chain that's controlled by your community, by your token holders, and you get a much more sustainable system than proof of work. Next up is the Cosmos SDK. So like I said, you can build applications on top of Tendermint in basically any different language you want, but then you have to handle all of the, you know, you have to write a full state machine. What we realize is a lot of people don't want to do write the full state machine. They want to focus on their business logic, not on the entire state machine as a whole. And so the Cosmos SDK is essentially a, you know, one second, it's a simple, easy to use framework written in Go, and it handles all of the stuff that you really don't want to worry about when you're writing. Your business logic handles like the storage, the merkle trees, the signatures, authentication, whatnot. It tracks it all away for you, it connects to Tendermint automatically for you. You really only have to worry about your chain's business logic. And we want to make it as simple as possible. It's designed to be a modular system, kind of like Ruby on Rails, where we have these Gems that you can import. We want to build something similar where there's modules that people are able to use. And so the idea is that you can, let's say for my application I wanted to build, I needed an auction system for my application and so I built an auction module. And the nice thing is I can open source this module and then another chain, maybe with a completely different application, might also need an auction module for their system. And the Cosmos SDK is designed to make it very easy, but at the same time secure to import modules from other people's open source module repositories. And you know, for example, we've even built an EVM module on top, or we're building an EVM module on top of the Cosmos SDK collaborating with Chainsafe. And so, you know, there's a number of different projects who have been building on top of the Cosmos SDK. Once again, this is a little bit of an outdated slide. There's even way more today. But some of the most well known ones are projects like the Binance Dex Terra Kava is another stablecoin. There's a number of different projects who are building on stuff and you can even build very complex stuff. Like Fourth State Labs is a couple of my friends at Berkeley, they're working on a plasma implementation using the Cosmos SDK. So it's a plasma sidechain to Ethereum, but still built on the Cosmos SDK. And so the Cosmos SDK I think is a really easy to use customizable framework that makes it very easy for people to build very complex and diverse applications on top of. And that's not to say that the Cosmos SDK is the only framework in the world. We don't think so. There's going to be many more frameworks that exist and we've built another one called Lotion js. We just did a hack Atomic, this past weekend and I think almost half the projects actually decided to use Lotion instead of the Cosmos SDK, which is really cool. And so we encourage people to use different frameworks, whether it's lotion or substrate, if you're interested in using Rust. But really we want the idea to be frameworks are good and we want customizable frameworks that make it easy for people to build their own blockchains. So, you know, Cosmos SDK, it makes it gives us much more easier to write an efficient state machine than you know, your chain will be much more efficient than running on top of the EVM or something. You get much more customizability. It's easier to develop and you get much more scalability because you're building a custom blockchain. Your transactions are the only one. The transactions from your application are the only things going down this pipe and you're not competing with anyone else with throughput. You'll get much more scalability, some more learning resources, and finally the last one is Inter Blockchain Communication or IBC for short. Essentially, what is ibc? Ibc in simple terms, it's a side chain protocol. It allows chain A to prove something about itself to chain B. And you can use this to do many different things. Here's some technical diagrams that we have for how it would work, but the key thing is you can use it for many different use cases. We're starting with token transfers because it's probably one of the most high value and easiest to implement, where I want to be able to send tokens from chain A to chain B. I want to use my Bitcoin in Defi on Ethereum and I want to be able to move my Bitcoin onto Ethereum and use it to collateralize a maker cdp or I want to move it into the Kava chain and collateralize a CDP there. I want to be able to use different assets on chains other than the ones that they originated from. You can also extend IBC to work with things like non fungible assets, data, Oracle Data, Smart assets. There's this great project called Agoric which we collaborate very heavily with on IBC and I heavily recommend checking out some of their stuff. And you can even send EVM smart contract calls across ibc. And we're even in talks right now with the Ethereum foundation to potentially use IBC as the interconnection framework for ETH 2.0. It's really designed to be a highly customizable and generalized and abstracted framework protocol that will allow us to do all sorts of different interchain or inter shard communication over this IBC protocol. Yeah, so there's a number of people in our IBC working group who have been working very closely with us on this. You know, Tendermint Inc, but you know, a number of other projects including Oasis Labs, IOV, the Interchange Foundation, Prismatics Labs is one of the Eth 2.0 developers. And Agoric, like I said, I don't think this would have been possible without them. So they've been working on JavaScript and smart contracting for like 20, 30 years. And so they really know how to make this stuff work. And so yeah, some more information about ibc. It helps us on the interoperability and the scalability side of what we're looking for. Generation three. And essentially I'm going to skip over the Cosmos Hub, but essentially the Cosmos Hub helps provide. There'll be many different hubs in the Cosmos ecosystem. The Cosmos Hub is not the singular hub in the ecosystem, but it helps provide services. It's kind of like, you can think of it like in the Internet of blockchains. Hubs are kind of like ISPs and there's not going to be one ISP and they're kind of going to specialize in providing different services. So, you know, Cosmos Hub could be a hub. There's already another hub called the Iris hub. Ethereum can begin to develop into a hub, maybe specialized on plasma. Polkadot is a hub, maybe specialized on shared security. And so this is really the vision of this interchange ecosystem. And so using all these technologies together, we've essentially hit all the nine goals that we wanted in this Generation three blockchain. So I hope you guys enjoyed and I hope you guys have learned a little bit more about the vision of the interchain and are interested in learning more. And so if so, you can check out tendermin.com, cosmos.network. you can follow us on Twitter Osmos or you can follow me at sunny A97. Thank you. Oh, one last thing. If anyone is a delegator to Sitka, my validator, I have some coins for you guys. So if you want to come get these, let me know. Thanks.