- November 29, 2019
Chain Reaction #1: Launching Inter-Blockchain Communication (Agoric and Cosmos)
This article is a transcript for the IBC chain reaction #1. It was a zoom video session about the updates on the status and journey of IBC, the ecosystem and development pipeline for the next few months. You can find the video link here:https://youtu.be/pWsy0BD3DnY
We think it’s very important let people know the details and history of IBC and we’ll be providing transcripts on our blog for future Chain Reaction videos.
Zaki Manian (Head of Research at Tendermint), Dean Tribble (CEO at Agoric), Michelle Leech (PR and developer marketing at Cosmos)
Leech : We got Zaki from devcon and Dean from SF. We’re doing the first chain Reaction, basically the first IBC update for the community. We’ll keep going hopefully for next couple of weeks.
Zaki : Hi,I’m Zaki Manian. I’m Head of research at tendermint, working on IBC and getting interchain connectivity out into the world.
Dean : Dean Tribble, CEO at Agoric, work with Cosmos folk to design and build IBC, use it as an underlying layer and build a smart contract platform above that.
Leech : This is the first one so let’s set the stage for what is IBC and where was your vision for IBC, independently?
Zaki : Let’s talk about what is IBC. I will start with “All blockchains are interoperable”, blockchains are public databases. You can always read from one public db and write to another public db. All blockchains are also not inherently interoperable as blockchains tend to be designed to make it pretty easy to generate proofs, inclusion of transactions or state within the blockchain. This enables what we call light clients, originally defined in Satoshi’s White paper as a way for large users to be able to use blockchain without needing to run a full node. If you have a good light client, you can run an on-chain light client where each blockchain can respect proofs of other chains. Tendermint sort of built one of world’s first, perhaps the world’s first fast blockchain with fast consensus, fast finality and high throughput. What we are building with IBC, is a mechanism by which the very fast blockchains that are coming into existence in wake of tendermint built with tendermint-cosmos-sdk, emerging platforms like Substrate, Libra etc can all exchange information with each other. Right now the state of blockchain interoperability is, we have to write a sort of custom adapter for every blockchain so that if we want one smart contract on one blockchain to communicate with other blockchain, you have to write a custom adapter between these two blockchains, where IBC is a standard adapter between these two blockchains and software that runs on blockchains allowing them to inform one blockchain to other and have that connect and be able to exchange without need to write adapter softwares. Essentially we get to write it once and then it will connect all the chains.
IBC is a standard adapter between these two blockchains and software that runs on blockchains allowing them to inform one blockchain to other and have that connect and be able to exchange without need to write adapter softwares.
Dean : It’s so important that for us a lot of blockchains articulated themselves that it will be the only blockchain, all things will be this blockchain, there will be only one winner. Just doesn’t seem likely. Because lot of use cases have different requirements and in particular geography there might be one money you might use, but there’s lot more than money that you use. So for technological reasons, social reasons or political or decentralisation reasons, it made lot of sense to not expect there might be one blockchain and so people started to realise that internet was pretty awesome and idea of island networks before internet was not as good. They see they want something like internet of blockchains. They were experimenting with various approaches and relays and should be able to have limited bridges.
So one of the ways I think is, in the IBC design, there are bunch of good ideas. Let’s pick and hold together and abstract across some of the best ones so we can use one solution for how to do relay with enough flexibility to recover the various scenarios so that we can raise the level of people building interoperability. They got low level interoperability the same way people had thought about doing it and now we can talk about using that to build fungible and non fungible token transfer, interesting application things or in our case distributed object messaging buses or ten more different things. We never thought of how you would like to be able to interoperate across these different watchings.
Leech : So basically IBC is an adapter across multiple blockchains, that would be summarising it.
Dean : IBC is the protocol and the lot of design work is the implementation technique to be able to straight forwardly use that between your blockchains.
Leech : Why did Agoric get involved? Walk through the process how it came to be Cosmos-Agoric-Tendermint.
Dean : We have in Agoric, a layered stack up to how you write smart contracts in a large scale distributed system where some systems happen to be blockchains. We have been doing smart contracts before blockchains. Blockchains are just new kind of machines that all of the smart contract technology that people had built and thought about and used before, unicorns like e-bay, Paypal, Uber. You can reproduce on blockchain where blockchain is a much higher integrity machine. We already were thinking, we should be able to bridge the communication layer between these blockchains, doing work about that looking at what people thought about, we knew that cosmos were doing stuff that lined up well both philosophically with the goal: we want lots and lots of chains to be able to talk to each other and technically with the approach they were taking and so forth, and so we currently have our initial protocol to being able to do that. It’s clear we want something more robust and more directly and easily supported on other chains and so everything that we were doing, we wanted to be able to integrate with stuff that Cosmos was building. That’s my half of that, let’s go back to what Zaki and Cosmos were thinking.
Zaki : So I told this story many times, what is true about IBC is in many ways idea for IBC is not mine or Jae’s or Ethan’s. It was Dean, Mark and all their collaborators’ idea. It’s a privilege that we get to work on it. What the history of this is, I’ve been talking about scalable blockchains with community for almost 5 years now. It’s a weird, like a hobby couple of people had. I used to talk it with Dominic over at Dfinity, Vitalik and Vlad over Ethereum, Jae and Ethan at Tendermint, we were like can we imagine a future where people want to use public blockchains and can we imagine future where there’s demand for scalable platform and how would such a thing work. Both ethereum and Dfinity were going on a path what they call sharding. Sharding is all about this approach that has many of same problems and challenges of IBC. You need a fast consensus mechanism, you need changing validator sets, you need ability to send messages across chains. Sharding is about this additional challenge, which is you have to be able to create situation, there’s thing that can happen in sharding where one of your shards becomes evil and can be taken over by an evil set of validators and this evil set of validators can break the rules of blockchain and send messages based on broken rules to rest of the shards and essentially with this corruption and mutation, the blockchain no longer follows it’s own rules. This spreads to entire blockchain, there’s literally nothing you can do except halting the entire system, stopping everything and rolling back to before evil validators took over blockchain shard. The enormous efforts on eth 2.0 side, Dfinity side and many other projects working on different sharding approaches has been, how do I make this terrible thing that could happen, never happen. I’ve always been really worried about it, it seemed like huge systemic risk. When I was thinking about all of this. One of the things I do when I come in and learn about a space, I go back to the history of it, who were the first to work on it and all of Dean and Marc’s work on it, basically originated the idea of smart contracts, read all the erights.org. All of this is pre-blockchain, makes a bunch of assumptions that don’t work on public blockchain computation. But there’s a core set of ideas that give you the ability to have blockchain to blockchain communication in a world where one chain gets corrupted if a blockchain is evil, if a blockchain makes a governance decision that is more difficult, you can reason about and analyse to make a governance decision the rest of world doesn’t agree with, all other problems you can reason about how that blockchain’s casualty from a particular blockchain out into the ecosystem and it will be possible for users to make sense of what just happened what went wrong etc. Rather than trying to take down a giant system that global economy is running on, halt the entire thing and roll it back which seems impossible to me. This is core insight behind Cosmos, Jae and Ethan came to me with, you know an earlier design that thing they called super tanker. I told them super tanker won’t work because of evil validators. They accepted that and there’s a website from the 90s that has some ideas on how to sort out this problem. We came back and that’s the origin of idea of building Cosmos. We knew all of those ideas can do general purpose, interoperable, composable smart contracts but we didn’t know how to port them to the world of blockchains in public communication. So in first version of Cosmos we said we’ll do just token transfers because that was really simple and easy to do. And then may be a year later Zooko introduced me to Mark and Dean. We started talking and they said they founded Agoric and after launch, we were in a position to bring them into this process and now we get the version of IBC which should have always been this general-purpose interoperable composable IBC and that’s where we are starting the launch right now.
Leech : I was about to say, it’s cool when you guys talk about it. We’re talking about updates in this story but it’s how exciting this is. In not too long, this vision will become a reality. So maybe in the last couple of minutes, what’s happened over the last couple of months with different release candidates, what will be happening over the next couple of weeks and what should people know as we are launching towards it.
Dean : First of all, something from outside we get to working for Cosmos and in particular Chris goes doing specification for IBC and Joon doing the implementation. There’s other people involved on our side and at Aib and ICF, but those two guys are really the heroes of this. So we produced a version 1, proposed release candidate, we went through 4 rounds of release candidates with reviews with some internal and external folk. Now it’s been handed off to security auditors to do a first round of security review on the specification and at the same time, you know, the implementers are hard at work to make it work. So Zaki mentioned earlier, just today the implementation that’s intended for being used and first implementation of v1 actually succeeding past its first test of having two chains, you know with a client, make a connection, channel and send some messages and see them actually get queued and observed and responded on two different chains, so things are moving full speed ahead here.
Zaki : Yeah absolutely, today is a really exciting day to do this first chat with Dean and purpose of what we’re gonna do with these chats is sort of similar to how Jack and I did the whole chat series that brought us from Cosmos testnets to the launch of Cosmos hub. Dean and I are gonna talk through this whole process of getting IBC from the spec to running testnets and being built upon by in hackathons and projects starting spin up around it and eventually a governance proposal on cosmos-hub to launch of hopefully many Agoric chains that run Agoric network, Agoric smart contract system and like this massive world of IBC sort of starting to unfold.
Leech : So Zaki, what should the Cosmos ecosystem anticipate, now we have today’s launch, maybe what’re the next two items that we have to achieve in order to get to the governance proposal and also get to the DeFi, hackathon IBC situation?
Zaki : So, where we are is, you know it was like Cosmos is this creation story over last 3 years, in order to have IBC, we first had to build the first byzantine fault tolerant consensus algorithm that could be deployed over the public internet. We had to build this framework for building blockchains with provable data, we had to now write the spec and implement it. Now we’ve a whole testing process and we’re gonna build stand up blockchains that’re gonna be able to start experimenting with connections with each other, we’re gonna be able to start implementing application layer protocols like token transfers and Agoric’s ERTP on top of this and we’re gonna onboard developers onto this experience. We’re gonna have a Game of Stakes environment so that people can learn about protocol and the relayers system and all of that can all start coming into existence and you know over next couple of months we’re gonna create the first ecosystem of interoperable blockchains.
We’re gonna have a Game of Stakes environment so that people can learn about protocol and the relayers system and all of that can all start coming into existence and you know over next couple of months we’re gonna create the first ecosystem of interoperable blockchains.
Leech : So we will continue to try and do these sessions but also if you have questions put them in the chat and we’ll address them in next round and will also put probably a link to newly released integration below, so thank you everyone for joining. If you have suggestions or things you want to talk about let us know them, we should probably do one next week.
Dean : Looking forward to it, thanks for your attention.
Zaki : Thanks.
Instructions to test IBC : https://github.com/cosmos/gaia/tree/joon/ibc-gaia-interface/cmd/gaiacli
IBC Demo Test Video: https://youtu.be/S6DKib4jINk