Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Ethan Frey: CosmWasm – The Smart Contracting Platform for Cosmos

Episode Date: August 19, 2022

CosmWasm is a smart contracting platform built for the Cosmos ecosystem. It's the Cosmos (Cosm) way of using WebAssembly (Wasm). CosmWasm is written as a module that can plug into the Cosmos SDK, mean...ing that anyone currently building a blockchain using the Cosmos SDK can quickly and easily add CosmWasm smart contracting support to their chain, without adjusting existing logic.We were joined by the project's founder, Ethan Frey, for a deep dive into what WebAssembly is and the benefits of its integration with Cosmos SDK, its interaction with IBC and use cases for other cross-chain apps, and the roadmap ahead.Topics covered in this episode:Ethan's background and how he got into crypto and in particular CosmosWhat Ethan worked on during his time at TendermintWhy CosmWasm was createdWhat is WebAssembly and what are its advantagesHow does WebAssembly compare with the EVM?What are the pros and cons of developing Cosmos SDK modules vs building things in CosmWasm?How CosmWasm interacts with the IBC moduleThe roadmap for CosmWasmPotential use cases on cross-chain CosmWasm appsThe CosmWasm AcademyEpisode links: CosmWasmCosmWasm AcademyWYND DAOCosmWasm on TwitterJoin the Epicenter team!Sponsors: Tally Ho: Tally Ho is a new wallet for Web3 and DeFi that sees the wallet as a public good. Think of it like a community-owned alternative to MetaMask. - https://epicenter.rocks/tallycashThis episode is hosted by Brian Fabian Crain. Show notes and listening options: epicenter.tv/457

Transcript
Discussion (0)
Starting point is 00:00:00 This is App Center, episode 457 with guest Ethan Frey. Welcome to App Center, the show which talks about technologies, projects, and people driving decentralization and the blockchain revolution. I'm Brian Crane. And today I'm speaking with Ethan Frey, who's the founder of Kausen, the founder of Confio. And we're going to get a lot into what that is and impact it has had. Before we do that, just a brief word, from our sponsor. So we have Tally Ho. Tallyho is redefining the wallet as a public good. You can think of it a bit like a community-owned alternative to MetaMask. Tally-O offers smooth user experience compared to other wallets, impressive UI. Users can easily see all of their
Starting point is 00:01:02 accounts at once and swap between assets within the wallet at a much lower price. And they also have a great ledger integration, ENS support, and UNS domain name support. They also recently added Polygon, so as a first side chain, and it's easy and ready to use on there. And with Tallyho, you can also enter the Metaverse with a Web 3 wallet that's fully community-owned and operated. And it's controlled by the Tallyho Dow. And their commitment to community ownership goes pretty far. So including that they became as first sponsor. of EtherJS, an open source JavaScript library to help develop us connect to Ethereum.
Starting point is 00:01:48 And they pledge some of their tokens to a Gitcoin Aqueduct. So go to tally.cash slash download to check it out and, yeah, get involved in Talley Cash. So with that, let's go to Ethan. It's great to have you on. Yeah, it's great to be here. Thank you for having me. Yeah, absolutely. So Ethan, we haven't known each other for quite.
Starting point is 00:02:12 a while, it's been, I don't know, five and a half years or something. So we were both, we both joined the tendament team around the same time at the like very start of 2017. I think we were something like there was maybe three or four people before us and then there was basically two of us at the same time. We were both in Berlin and sort of this was what I said the inception of the Cosmos Network. And so yeah, and of course Ethan has gone on to do lots of of work, especially in the cosmos ecosystem that has, you know, gotten to much, much traction and much impact as well. So I'm excited to, you know, finally have him, you know, have you on. But maybe you can just hear a little bit like sort of about your background, like,
Starting point is 00:03:03 how did you end up getting involved in the crypto space and in the cosmos ecosystem them more specifically. Yeah, cool. Yeah, thanks for that intro. And it was actually really cool, 2017 remembering those days. And I think going out to some meetup back January 2017. I know the first time I met or like second time I met in a cafe before that.
Starting point is 00:03:28 But with Gavin Wood and Jayquan talking about multi-chain, Pocodot and Cosmos and Vitalica's audience. And it was like this early day of crypto in Berlin. It was pretty cool, cool times. But yeah, I got into, I don't know, crypto kind of found me. Like, you didn't let me alone. And I remember someone was, like, pitching Bitcoin to me back in 2010, right? And or 2011, it's 2011, I guess. As like the new money. And, yeah, it's 2011. And I just didn't, I don't know. Like, I saw the thing. Oh, that's kind of cool, but like, I don't know. It doesn't do anything different than gold. So, like, that's not cool. I don't know. Like, I was not looking at an investor. I'm like, I have a worst investment mind. Do not accept any investment advice I give you of what's valuable, not it's valuable. But, like, I was like at the tech of it. And I was kind of like, like, looking at, you know, thinking about actually community currencies and, like, you know, postmodern money and what the next generation, information money is when there's no scarcity and, like, concepts like this before that, because it's kind of my, I don't know, hobby. I don't know, side projects. And Bitcoin for me is like, wow, you can make money on the internet that's really stable and it's real, but it's like gold. And like, well, gold's a bit like, you know, old. And then I heard ripple sometime. And they're like, oh, like 2013 to something. 14, 13.
Starting point is 00:04:44 13. I was actually some squat near Barcelona. And this guy was trying to turn me on to ripple. and they're like, oh, that's like just a decentralized IBAN, you know, Swift network, something like that. It goes really fast. And like, so you can swap currencies. I'm like, I don't do foreign exchange trading. I'm not a trader. Like, what can I do with it? He's like, you can swap currencies.
Starting point is 00:05:03 I'm like, okay. And they actually get into that all. And it was some time around, but they kept coming back. People kept trying to like pitch this stuff to me, right? And believed, like, the technology, but not like the, I didn't see it because I'm not a trader. I didn't really get the, get it from the money aspect. and I wanted something new. And so, like 2014, I was at a workshop in Berlin on Sociocracy, which is interesting.
Starting point is 00:05:27 And this guy came up to me, the only guy in a suit in the whole place. And we started talking, and he was trying to invent, like, a new progenital money. And it was like, you know, on blockchain, progenital money with the wallets holding all the assets. And, like, you could have different community-based rules, the governance creating this stuff, right? This is stuff that isn't exist now. He's kind of this visionary. And I got very, very intrigued what he was talking about, because he said, you know, you could have basically community governed rules on the money. The money actually has rules, bring out of money, the idea.
Starting point is 00:05:57 In 2014, which is pretty new for me. It was like, oh, that's cool. It can actually behave differently. That's interesting. We can invent our own money. So that kind of got me hooked on idea of it. And so he showed me what Ethereum was, like around the ICO time, the world computer ideas. And, like, pointing me to ERIS Industries.
Starting point is 00:06:16 which was, you know, Bilevican Monax, which was like this incubator of tenement somehow, and I don't really know how this stuff is feeding together. But somehow through that, like, should be air? It's like, that's cool. Like, you know, and then you saw this go stuff. I'm like, looking at this kind of makes sense. And I started just like, as someone like, oh, I can be a blockchain tenement. I like this tenement idea.
Starting point is 00:06:35 That's really cool idea. So I went and taught myself go and got a job programming go. And sometimes 2016 started trying to build my own app on tendermint. You know, this is, and there's something like to do a little Slack group of a bunch of other people trying to build apps and tenement. And I was like, you know, I still have that somewhere in GitHub is like React sign posts. I was like trying to make like a basically a blog post that would just be whatever, you could blog on the on the blockchain something with a React app and trying to figure how to do that and started like, yeah, it started working on this as like the first step of building
Starting point is 00:07:04 for a gallon money on my own tenement chain back in 2016 because I thought that would be, you know, easy, right? And and somehow I started going on there and filing a bunch of bugs and tendament and then patching bugs and tendament because that's what I did. I was doing web data. for a while and contribute heavily back to open source projects like Mongo and Postgres and stuff. So, you know, you just patch bugs and you upstream them. So I started doing that and somehow Bucky's like, who are you doing here? Who are you working for? I'm like, no one. I'm trying to build my own money. This is cool stuff we got going on. He's like, work for us. I'm like, I'm happy my job right now. And then like two months later, like I got anger and boss, well,
Starting point is 00:07:41 who's making work weekends and nights. I said, I wouldn't do that. So I said, I'm quitting. if you make you work nice and weekends. So, yeah. Then I said, hey, guys, I'm open. And met them in, met them in Zurich, November 2016, and they basically red-pilled me. Red-pilled me on IBC, on Tendermint, on POS, on everything.
Starting point is 00:08:01 And, yeah, I can't leave it since then. Cool, amazing. I wasn't actually aware that you kind of, like, found it through Aeros Industries, which is the company I was also working for in 2015 and 16. So that's... And maybe talk. a little bit about what did you work on in the time when you were, you know, at tenement or like at
Starting point is 00:08:23 the company back then? Yeah, so the first thing I did was really work in the IVL tree and try to speed it up. So I did some benchmarking, early benchmarks and tests on it and then try to speed it up, which was like then, um, things are too premature. We don't need to speed up anymore. So I guess it's true at the time early 2017, but like now is these bottlenecks. And then moved on to try to build like apps. So I actually basically took. what was base coin was this little app that had demo app and try to make a real app clean it up i so i turned into i started doing the first uh prototype of i bc based on the very vague spec in the white paper um i then made said hey this laps are limited let's build something real so i built the um
Starting point is 00:09:06 the first person of cosmos sdk 06 or 7 is 8 it's basically me building it out uh over the of the summer with help from rijal a bit um i built that out heavily i came up with the whole idea of the rest client LCD was like we're trying to sign it I was working with um was Matt and Judd from nomac now they're working there and they're trying to build front in apps and they couldn't actually sign amino transactions so I'm like okay let's make this like little small little rest server app that like helps you do the cryptography on the server side until we have a proper js amina library six months from now um so yeah I did this stuff so I'm sorry sometimes because that got legacy code but whatever it was in advance the time to
Starting point is 00:09:47 allow that whole LCD rest server idea. I built SDK out there. And then that was kind of frozen for a lot of internal discussions. The SDK was put on basically a hold to be considered and reconsidered. And then meanwhile, I basically wrote the IBC white paper. So if you saw anything obviously in 2017, that was like I wrote a whole spec out of it, which is now, I just 20s. So obviously got bigger and bigger, like the concept got bigger. The initial time was basically token transfer. So I basically speced out token transfer with the idea of acknowledgments. and timeouts, cleanups, stuff like that, rather than just having these fire and forget messages. So I wrote a bunch of stuff, Merkel proofs, ICS-23.
Starting point is 00:10:27 I wrote the Light Client Proofs and stuff like that. It was really, really in IBC. And some of that code is still around. It moved up four times. All the Light Client Proof stuff moved up four times in repos, and I think it's in tenement now. But yeah, if you look way, way, way, way back once I was the author of that. Cool, very cool. And then how do you end up working?
Starting point is 00:10:49 on Carsen-Walsam? Yeah, so I basically, first I'm a little frustrated at the pace in AIB, because there's a lot of decisions being made, and they're all pretty much made in California time, which is like, you know, my evening. And if, you know, by 11 a.m., their time when they're waking up, I was pretty much clocking out of work, usually. It was 9.88 p.m. in Berlin. So I was not really involved in decision-making and in fact no one in Berlin was really and it felt like this is really made somehow and anyway the SDK was basically put on hold indefinitely I had nothing really could work on and a few other things got blocked on working on so I said this is kind
Starting point is 00:11:33 boring I want to build something so I said I'm going to build my thing so I found another company that was offered to hire me and said cool I want to build another SDK so I basically took the idea I built the first SDK built something called weave at Iov and it basically had you know so in early 2018 I had above going on there. I had a JavaScript front end. They was talking directly to it. So you had basically, you know, CosmGS, talking with no like client directly per to have signing messages and calling them. We had multi-sigs in there. Yeah, in 2018, kind of built out the basic stuff. Some basic groups governance modules and stuff like that were in there as well and a lot of the, and some basic
Starting point is 00:12:11 swap token stuff in there. That was, I did the 2018. And then towards the end of that year, I realized that like there was not really a business going around with this stuff. It was cool. We had a nice team. We were building his stuff up. We had a business case. Wasn't really maturing. And there's a little, yeah, internal issues that say. And so I got a little, I don't know. I watched SDK go its own pace and go its own pace and then like, you know, get more, more and more dives. And then it showed up at Interchain. That's a really fucking awesome. Sorry, I should leap that out, but awesome. conference there 2019 and pretty sure there too
Starting point is 00:12:51 of course one was like yeah the entertainment conversations in Berlin that's really awesome really awesome like everyone from the cosmos came the causal hub had been launched like three months earlier and like I don't know everyone show up there like is everyone right and like no one even had their own blockchains then it's kind of like all these people had
Starting point is 00:13:07 the little projects small projects right and it's an amazing group of people show up there three demos of conversations and discussion and then a hackathon at the end of it and in that I met a lot of cool people and we kind of come together it's like let's build something and I realize it like you know
Starting point is 00:13:23 yeah no one's going to take weave and I'll drop it and they'll use SDK again but I'm not really want to hack in S2K so much but let's do something and then I was sitting around on this table and we kind of got a bunch of people that are floating around anyway it was like me
Starting point is 00:13:38 Aaron Regen Yehan who's now informal from Otea Shane who's now at Stargays and then somehow Pedro from Wallet Connect showed up there. And we ended up like, so let's make a team and let's build Wosom contracts. And let's build Cosmosom smart contract or wasum smart contracts in the SDK. I'm like, sure, why not? It's two days. And the end is basically three of us working on it. Like they also built the groups module kind of in the way, multi-stakes
Starting point is 00:14:06 stuff at the same time, Shane and Aaron. And then basically it was like, yeah, kind of me building that and and Pedro from Wollett Connect on the front end. We just knocked it out on the weekend. I didn't sleep. I kind of closed my eyes for an hour. And yeah, I learned a lot of Rust and you know how it's doing amazing stuff there too with and Rust. And we knocked it out. It was awesome. We got contracts working. It was crazy. We uploading contracts and running them. So it was like, you know, don't push it falls over. But like, if you do it right, it ran. So it's pretty amazing for us, actually. And I got super excited for that. I said, like, yeah, this is awesome. It's the most awesome project I've worked on
Starting point is 00:14:42 in years. And like this greenfield. field of like building something new. And it's compatible with everything else people are using already. So that was really what I learned. It's like, you know, don't want to fork this to get and go off my own way or make my own version and compete. Like really like everyone wants to use this tooling. Let's build the tooling and add power to everyone can use it and be compatible with everyone. So that was really cool. And I said, I got a grant from that. One of the prize got a relatively small grant to follow up on it and said, let's all build it guys. I know we'll let's do a few hours a week. And everyone else is too busy. They're all CTOs. It was like a team of CTOs. And I was only one that
Starting point is 00:15:14 said, okay, I quit my job and start doing this. So yeah, I did. And three years later, it's it's where it is. Cool, awesome. Well, maybe we can take a zoom out a little bit because so WebAssembly, right? I think a lot of people have heard of WebAssembly, right? WebAssembly is often being kind of touted as, oh, it's this like, you know, powerful platform. Ethereum, I think at one point was like thinking of adopting WebAssembly. You know, there was some other projects that were like very heavily, uh, emphasizing web assembly.
Starting point is 00:15:50 I think especially I remember DFINITY was always like web assembly, web assembly. Can you, can you tell us like what is web assembly and like what's interesting about web assembly? Web assembly, it's a funny history. It was originally trying to the web faster, which is called web assembly,
Starting point is 00:16:07 but it's nothing really due to the web anymore, except that it can often run in the web. Um, there's some project called ASMGS that, from a Zillow that was trying to like optimize JavaScript so they could pre-compile up JIT or ASD faster. Anyway, then they basically
Starting point is 00:16:23 may think a web assembly, which is a VM. And I think Ethereum had done two or three layers years later would have used it. It's a very, very simple virtual machine. It's a 32-bit processor with some stack calls that has like 150 operations.
Starting point is 00:16:40 It's pretty simple, relatively simple architecture. It involves no runtime, no system. There is, I think, a way of allocating memory. And, like, no garbage collector. Just like allocate blocks of memory. Like, expand the memory space I want to have access to.
Starting point is 00:16:59 See how much memory space I have access to and expand it linearly. Right? Like, that's all it has. And everything else is added as an optional import or export. If you want to expose something, you make an export. And if you want to call into external system import. And you have to assume you have this dynamic, like the system approach. didn't they have access to files, no access to network, nothing.
Starting point is 00:17:19 And I think if you consider the JVM, which is the first real popular VM there, Java Virtual Machine, that came out there, and that was basically like at a whole runtime. You have like the virtual machine, which has a 32-bit architecture with the stack and pushing stuff on it and how it worked, but also the system library of how to interact with the system and how to interact with the files and how to interact with its whole post-eac compliant system, as much an operating system, basically not just a virtual machine. And this defines a processor And it finds a processor, nothing else And anyone can plug any system they want to
Starting point is 00:17:49 Like there's a product called Wazi WebAssembly system interface Which is kind of a POSIX-like interface Which it says We expose exports into it So they can use it And then you can say, okay, we only give you access To these be files
Starting point is 00:18:03 And that's all you see in the whole world And you can control it somehow If you compare it with, you know, like a VM That people are kind of like familiar with in the blockchain context, it's, you know, the Ethereum virtual machine. So what are the advantages or maybe disadvantages that this virtual machine has versus the Ethereum version machine? So I said the first thing is this general purpose, which is a good and a bad thing, right?
Starting point is 00:18:31 The EVM is built for Ethereum blockchain or a blockchain. And it comes all these pre-compiles for computers. And it comes to a whole lot of understanding of like where things are called and the interaction of calling it other functions. It's very, and these call methods which require blockchain. It's like the virtual, the language of VM is tied to a blockchain. You have call functions, create functions, like with bytecode. Like it's tied to itself. It's ties this concept of the EVM. It's not separated from the runtime. It's like the EVM is not just a machine. It's the runtime. Which means it's like very, like the JVM is for one use case, right? And it's, it has use case. And it's very tailored, which can be
Starting point is 00:19:11 very good, because it's tailored to. it. The bad thing is you have no tooling around it and you have no optimization around it. And I think we see it as being slow. We see it has issues. And I think what happened with WebAssembly is it's a very generic one, it's very general purpose one. And so suddenly a lot of different languages start targeting it. They said, oh, we can write C and compile that to WebAssembly, right? We can compile C++. We can compile Rust. We compile the web assembly. There's a project called TinyGo. They call go to WebAssembly. There's a bunch of other projects that are in progress for lots of other languages. It works best for static type languages, low-level languages right now. But a lot of different
Starting point is 00:19:54 languages being compiled like Haskell. There's some Haskell to the WebAssembly thing. So you can take all these using language you compile it to as a back end and they can run out of it. Like they run on an Intel architecture, they run on a Mac M1 arm architecture, right? They run on some older embedded CPUs, they can run on a WASM, a WebAssembly VM. So I think that fact, first of all, allows those whole tooling of lots of different front-end coding. You have to build your own language and your own stuff. You can use existing codes. And the second thing you do is, because of that interface, no one else tries to build. Other people try to build the VMs. And so people just just interpreters for it faster and faster, right? So there's like an interpreter built in your browser. There's probably
Starting point is 00:20:35 two or three of them out there, right? One from Google, one from Mozilla, I think one from Safari. There is a Wazi, which is in particular at Pocodot, which is intrepenter, which is not legit. A lot of them will take that Wazi code and compile it into optimize local code and run it there, sandbox local code. So it makes it much faster. It's like an optimization called just-in-time compilation. There's WazWASM which we use in WOSM time, which are two kind of competing things, which also do either pre-compiling or just-in-time compiling of the code, native code, and run it to get really fast compilation. There's some other ones out there, too.
Starting point is 00:21:10 So there's a bunch of smart people doing it, and you're not tied to one project interpreting it. You're not tied to one project building tooling around it. You're leveraging five, six different language ecosystems. The entire tooling of Rust you can use, just out of the box with WebAssembly. And then you have like five or six different backends you can choose from and who's going to write the VM. Who influence a VM that runs this was a. So it's a standard, basically. It's a standard middleware.
Starting point is 00:21:32 And it's not really tied to a blockchain or anything else. People are running Redis in WebAssembly system interface, right? So you can do anything in it. And that allows you leverage this huge amount of tooling. And people are working optimizing it as fast as they can. So Russ is really heavily optimized, amazing compiler engineers. And in Wausum time, they're compiling WOSM to like the most efficient bytecode they can. And they gain some really, really impressive stuff.
Starting point is 00:21:56 They have really impressive compiler low-level designers working this full time that we're not paying for. That like multiple people are paying for and like top of line stuff that you're not trying to recruit them as your own blockchain project. You just like leverage them. So I think it's because it's a whole ecosystem and it's so compatible and so generic, it allows this huge ecosystem of many companies to build to collaborate, which is powerful. At the time, the EVM was launched. It was not around. It was not available. It was kind of in some way idea stage.
Starting point is 00:22:27 It was, I understand when they built the EVM. They had to. That was the best of the time. They could have done. But like now I see that came out later and they say, hey, this is a whole ecosystem. We can use it. And then we just customize a few things on it. Like the entry points, we expose the contracts, and we can run it.
Starting point is 00:22:42 So Pocodot is running all completely in WebAssembly as well. Thanks. That's very helpful. When you, now, now let's talk about Cousin wasom. I guess one thing that probably a lot of people are not aware of, and maybe you can talk a little bit about it, right? But is that in the Cosmos SDK, right, you have this concept that there's like different plugins, right? So you have these different modules.
Starting point is 00:23:09 and then there will be like a module that's like a staking module or the IBC module. And you have these different modules. And then the different SDK blockchains can say, oh, we use some of them. We develop some of our own. And then, you know, Cosm wasn't right basically means like, okay, you're taking this web assembly and you're putting it as a module inside the Cosmos SDK. Is that correct? And like what are some of the, what are some of the, what are some of the, what are some of the
Starting point is 00:23:39 you know, the consequences of like putting the web assembly inside this Cosmos SDK framework. Yeah, yeah. It's a kind of funny question, actually. So like, you're right. There are these modules. And so SDK is pretty amazing plugin set. So you can add different modules. And it's easy to kind of like import code from here, add your own code and extend it.
Starting point is 00:24:03 It's meant to be extensible. It is. It's very extensible. What it does require, though, is a hard fork every time you want to change it. So if you write it, it's meant to. like you deploy a new AMM module, right, and you want to add it, then you have to basically get that merged into the main code base of the code and then get the entire blockchain to stop, switch out the binaries out there, run some script. Now it's a little more optimized.
Starting point is 00:24:25 Before that was like a whole dump state restart, like three hour issues. Now it's down to like five, 10 minutes, but still do record the entire block is stop or just restart and come with the new code to add the new module, remove module, update it, right? And that is a lot better than working on like Bitcoin when you try to change it, right? The core logic of Bitcoin or Zcash, but it's still not like the smart contract development speed. So it makes sense for core functionality like governance and staking. But we said, hey, for smart contracts, a lot of things, just like add them on top. They don't really matter. You want to deploy them quickly. So what we did is we don't store the WASM inside of it. You store the WASM VM VM. So we wrote this entire, like,
Starting point is 00:25:03 we took the WebAssembly virtual machine from Wasamer. We wrapped it with some standard callbacks. So it basically explained its place in the world, how it can talk to blockchain. So a program can also say, hey, acquire this other part of the blockchain or send tokens over here or call this other contract, right? We exposed some functionality to it in a certain function, in a certain functions to it. It's okay, these are your extra special functions for a causalm contract on top of a normal wasom contract. And so we built the virtual machine and the rust into basically a library, which is embedded in a module. so it's a bit crazy. We built basically a RustM library and a DLL and then embedded that into a Go binary.
Starting point is 00:25:45 So it's running here. And the WASAM code is never actually not binary. The WASM code you upload in a transaction, just like in kind of Ethereum when you upload code. So the actual, the virtual machine and the runtime is in this module, which then actually calls into every other module of the system. But the actual, the WASM code upload a transaction, it stores it in. in state, other state, other thing, and it just loads that code when needed. Yeah, so that's an important thing, right? Because yeah, in the Cosmos SDK paradigm, right, like somebody wants to modify some
Starting point is 00:26:22 plug in some module and then that requires changing this code, new binary, you know, like all the validators have to change it. It's a lot of friction. And here the thing is I can write a bunch of code. I put it into a transaction. the transaction gets sent and then this wasom vm kind of like unwraps that and then it has that code right and so nothing has nothing outside has to change but now all of a sudden you have like that code in there and i guess that's particularly attractive if and then i guess that's also
Starting point is 00:26:58 where cosom wasm has been has found a lot of usage in the cosmos ecosystem is like oh i want to create a general smart contract chain, right, where everyone can sort of put their own contracts on that because that's something that calls us SDK without something that calls them Wilson doesn't really support well. Yeah, and a lot of things do move faster and they don't want the whole chain. Like a purpose chain to be a decks. I think they built really good decks on osmosis. They base on balanced ideas and some curve and they basically, I think it's solid.
Starting point is 00:27:30 It's well understood question, right? But now when you try to build stuff on top of it, like, okay, a lending protocol and you want to do some leverage option stuff on it. They're like, okay, we actually want the faster, cause them awesome on it. NFTs are moving too fast. Like people trying to coach them go NFT thing, but it's like it's months behind the space. So like I think things that move faster, it's essential. And so contracts only the privilege of a user account, external account. They have no more privileges than another account than you do, what I do. It's on their code. They have their own, the logics on the blockchain. But they have no more privileges. They can
Starting point is 00:28:00 hold tokens. You can move tokens. They have different rules. So it's great for things. like that, which is simple app logic that people want to add. And I think the SDK is amazing for things like, oh, we don't change our fees are handled. We don't change our consensus works and government votes work. We need to change our like, you know, a spam middleware protection and we need to implement IBC as native control, which is totally trusted, 100% trusted verified code on here, which is stable and not changing the foundation of other things. So SDK is a great way of composing lots of different projects together to build foundational levels, right? Whereas Cosmwasam said, okay, if you want to do just like business logic, app logic, not foundational blockchain stuff. Let's do it there. And I think it's a great combination.
Starting point is 00:28:40 So you have five, six different teams composing stuff and adding things in there as modules so they can build this SDK base layer and cause them awesome. So, okay, now all those hundreds of devs that want to run on top of a chain or thousands of devs now that want to run on top of a chain, you can just do it. Right? You don't worry about that platform. You don't worry about who's paying what consensus and what the gas fees are. You just worry about like running your logic. So I think it allows these two things to the side by side very well. Yeah. But then like you mentioned, osmosis,
Starting point is 00:29:10 uh, like osmosis, right doesn't have generalized smart contracts, right? It's not like anybody can just go and like put some stuff on, on osmosis. But they are also, I think leveraging cos and was in some ways.
Starting point is 00:29:25 Can you talk a little bit about like, because on the example of like generalized smart contract chain, right? Like, Juno is one example, uh, probably the best known example in the cosmos ecosystem, right, where you have this cosom wasn't chain and like, you know, lots of different people are building like lots of different stuff on that. But can you talk about the other example, right, where you're using cosom wasom in a more controlled way or in a more permissioned way? So a number of chains have actually adopted a little more conservatively than Juno has.
Starting point is 00:29:56 So there's, you know, early adopted like Juno and Bo Strom from Cybercongres or some early. I mean, before that was actually Terra and Secret, the first ones. as permissionless. But the, yeah, the first one, modern IBC one is, you know, I guess. What they doesn't ask most of the same thing in Stargays, which is basically permission to contracts. It doesn't mean that it allows you dynamically upload code, requires governance vote to allow you to use your code, right? So they basically want to vet all the code on their thing. It's a way of saying, hey, Stargays only wants NFTs on there and stuff. So if you want to upload a project with NFT, you basically say, hey, I'm building a project with the FFT. I want to launch at your chain. They say, yes, okay.
Starting point is 00:30:33 and they say, hey, no, this is some like D5 product you don't want in a chain, don't come to a chain. So they control that first step of being able to upload that contract to instantiate it. Once the contract's on the chain, it's permissionless, right? Like, you know anything you want with it once it's on the chain. You basically just have to ask to get in the front door. And after that, runs just like any other contract, any other chain. So it's most of the same thing. They kind of wanted to have a, like, if we can experiment on Juno and do stuff in Juno
Starting point is 00:31:02 and anyone can do anything in Juneau, they wanted more like a app store feel for Asmosis. They wanted to have like, you know, five protocols maybe on there, the building on there. They can integrate into an ecosystem there, slowly allow them in there, which allows them to scale out, not like his general purpose, but they say, hey, we can have five different dev teams building different projects. And they don't have to get in the core code base. They can't break their code. They can't break the rest of the chain. They only can build their own little project.
Starting point is 00:31:26 So actually they basically just make agreements with projects beforehand. Like if you want to run asmosis, talk to them. And if they like your project, they say, cool, when you finish it, we'll let you go on there, more or less, right? It's like you basically get permission first. And once you do that, you just write your code like you do and do you know. You go through a process to get approved to get on the chain. And once it's on the chain, then it runs like anywhere else. So it's, um, except you have actions of decks on chain, which actually pretty cool.
Starting point is 00:31:53 So some people leveraging it for lending protocols, et cetera, et cetera. I think it's, um, I think that's an option we came early on. And we put that early on as an option and it's really being used this year. So people being like, I want to have Cosmossum, but I want to control an app chain and Cosmossum chain. They want to actually have them both, best of both worlds. Like, yeah, on a curated set of applications on my chain, but allow third-private devs to easily extend it. And yeah, I guess you mentioned Terra, right, which is actually important because probably a lot of people, another way that, you know, Terra was also using Cosmwasum and, you know, all these things that were being built on Terra.
Starting point is 00:32:30 I mean, I guess again, with the exception of a bunch of foundational stuff that was like part of the chain logic, but the applications people were building on terror were built in in cosmosum. They were the first adopter of cosmossum. I want to say, though, I want to say one thing, UST was not cosmossum. UST was not built cosmossum that pre-deed Cosmosin the chain. They had a chain with the UST, the UST Luna whole thing, Treasury. I didn't understand it, but that was existing beforehand, but all the other protocols, so TerraSwap and even Anchor and MIR protocol, B-Luna, and then the whole series of Lovana and Mars
Starting point is 00:33:11 and all these other protocols pumping out, and they were all in Cosomaso. They were the older version, they upgrade actually to recent version. But yeah, it was its own Cosmolome ecosystem, except then have IBC support. That kind of actually ties into my follow-up question here. So Cosm wasom, you have this basically kind of, you know, separate container, right, where like code lives and you can kind of like things happening there. And then you have like, you know, other Cosmos modules. Like, you know, for instance, there's an IBC module, right, which is like sending transaction to other chains. So I guess, you know, the Cause and Wasam contracts have to somehow talk with these other modules or, so how does that interface work? And are there like some limitations around this?
Starting point is 00:34:01 Yeah. So we basically expose some modules. What is actually JSON. It passed JSON basically because we so easy to debug and else, you know, if you can play on JSON being there not Protobuff, talk to you, Gehan. He can even see JSON's the best way because you easily debug it. And dev tooling, but basically pass between that. It calls an system with the JSON blob, says, hey, talk the bank on it.
Starting point is 00:34:23 And we define an interface for the contract. They can call the bank module to mint and bird tokens. They can call into the staking module, the stake tokens, and delegate and claim the rewards. They can call in to the governance one to vote, for example. They can call in the IBC module to send tokens. We also allow custom IBC callbacks. So you can actually have an IBC protocol built as a contract. I want to get that later.
Starting point is 00:34:45 And we allow people to have custom callbacks, right? The thing called custom. So basically you say, okay, we give you a standard set of things, but chains will all want to tie their own ones in there. So we have an extension point that you don't have to fork Cosm-Wosom-Wosom to anything. You don't want to fork WSOM to do anything. You can use a whole framework. And this is an early thing we did early on to make sure people not fork it. And say, if you want to expose the Dex Asmosis, you can add a special callback to take a we have a new structure here, which can add embed into the other message called Custom. And our custom type is Asmosis message, and it runs here and allows you talk to the decks. So it basically defines a format, a JSON format that you can use for
Starting point is 00:35:24 for defining call back to your native module, and then on your on your blockchain, you basically interpret that to do those things. So you invent your own message API between a contract and your native blockchain. And a number of people have used that. Quite a few have used that as an extension point. And I want to actually mention this not just in Cosmwasum. Cosmwasum is not just in Cosmos anymore. It is running on a substrate chain, which I think is a pretty impressive engineering feat. So Composable Finance has launched a Pocaut Parage. chain and they have Cosamoza running in substrate. And it's integrated with a bank module.
Starting point is 00:36:00 It's not, I think, tied to the sticking module, IBC, they have an IBC yet. But they just run it on, you can run contracts like a CVE20 contract and you can an FFT on it. You can use the same contracts there. They have a different JS front end, but like the back end runs the same. They uploaded actually unmodified contracts onto it and running in substrate chain, which is pretty cool. And what's the, what's the benefit of that if, you know, as you said that, uh,
Starting point is 00:36:21 poker dot already uses web assembly? So why port Cozum wasam onto Pocod? Yeah, I don't know why Pocodot uses WebAssembly, honestly. They use WebAssembly as a base layer. The whole chain is running in the WebAssembly, but the same way everything's written in Go,
Starting point is 00:36:37 it's Rust and Composal WebAssembly. So, but you have to upgrade it in a hard fork of the chain. And I guess in theory, you can hard fork the chain without a restart or like automatically restarting it, so you upload it. But it's all permissioned. It's a very complicated thing.
Starting point is 00:36:51 If you recompile the whole thing and then you upload these pieces, and I still have yet to see it be done flawlessly, but the idea is basically allow easier upgrades, but still government permissioned. And basically you have one new WebAssembly binary you're switching out to, right? Like, it is a giant WebAssembly project, not a smart contract. They have, but it doesn't allow with third parties, just the chain developers. Same with SDK does it, they use it as a target. They also have something called Inc, which is smart contract language,
Starting point is 00:37:21 which compiles to WebAssembly, and they upload that and run that as user-controlled things. But it's not really caught on. It was actually existing before Cosmossum was dreamed of, right? Like, I saw demos of it. Like, when I wrote Cosmossum and they looked over, I saw like they had done something similar. But never really took off. I think it's overly complicated, but I don't know. I don't really know why. The truth is, ink has never taken off over three years, all the funny about Web 3. And there's a project composable, which is really tied into the polka ecosystem that had tried ink and were frustrated with it, so frustrated they decided to port Kosovozum into a substrate
Starting point is 00:37:57 crate, a palette. They're called, I think, like a modules. The VM and talked to us to figure it out and then, you know, make it compatible because they thought Kauselmalsam was such a nicer target than writing ink contracts. So I don't know. I don't know why. I don't know if that's good business choice, but they did it, and they're happy with it and they're running their stuff on it. And they're trying to work IBC as well. So that's cool.
Starting point is 00:38:17 But I think the point was it was designed actually the same way that the web assembly virtual machine is not tied just to blockchains or Ethereum blockchain. The cosmwasam virtual machine system we have runs great. We have a binding into cosmos. We love to embed into cosmos. But like they have embedded somewhere else and it can be embedded other places as well. So it's actually relatively, um, um, relatively universal, uh, target, which I think might hopefully in the next few years extends. I'd love to see it like an avalanche or near something like that, also running cosmossum. Yeah. Maybe that ties into the question of kind of where do you see Kosovozum going? Is there a lot of what does development roadmap look like? Yeah. So our original goal released one zero back last fall and fall 2021. And I think our goal is then to get change using it, right? All upgrading.
Starting point is 00:39:18 to use it is an IBC enabled version of it using Stargate, IBC, all that stuff. That took some months, and this springtime, it was amazed. Went from like, you know, four or five chains using it to like, you know, 13. Now it's over 20 chains using this, right? So we first was like, actually, let's get people using it. And the second thing I were working on is getting more devs on. And Tara did a great job getting devs on it. Do you know, Osmosis, they're getting a lot more devs on this stuff.
Starting point is 00:39:42 And we're working on a thing called Academy, academy.com, and we want to train up devs. So right now what we're doing is basically trying to build the ecosystem. So we got the change running it. You have 20 chains plus running it now. We're giving free classes, free tutorials, free tooling for devs to learn it to really build the day ecosystem from several hundred, maybe a thousand devs into far many more, like Ethereum. It's a huge number. We want to build this out.
Starting point is 00:40:07 And what I really see is differentiator and what I want to work on and what I am working on besides like helping people, building tools and tutorials for people, is. is IBC. So inner chain contracts. It's like I did this thing, Seol and the hack at them. A demo day. Some people hacked on it and like Jake did some guy from Tai Chi from Japan did another one. It's pretty awesome that you can basically deploy a contract on two different chains. They talk to each other with like no trusted bridges, no multi-sigs. Nothing can be hacked in the middle of them. Just like pure guaranteed message passing with complete security of IBC. And the contract should hold the app logic. Like if you're saying message says mint token or minst token or not, I don't know, or make a governance vote or control this Dow or or change the threshold of my, my LP pool thing or whatever you want to do, it's kind of interchain accounts, but like so much more powerful because you can actually write contracts on both sides. And that was not possible until you actually had multiple important chains running Cosmosa 1-0. And we were waiting for like three, four months ago. It was like actually, okay, great. Like Juno Secret. Juno's Moses are now 1-0 and Secret.
Starting point is 00:41:15 upgrading very shortly. I think those are three of the top change behind the hub on the ecosystem, in terms of market cap, at least. And they're already, injective also is another big chain. They're also running it. So like a lot of people are running it now. So most of the changes at the hub are running cosmossum, which means you can actually build a protocol that spans three, four, five chains using IBC messages and write an entire, not just your app logic, but actually the protocol communication there. That's like writing your own API servers. And talking blockchain and blockchain, no bridge hack. involved. And that's really why I see the future. And that's really where I'm going to
Starting point is 00:41:49 put a lot of work into not just building it, but also documenting, try to explain it, but also try to build these things out there because, hey, I'm trying to build something doesn't exist yet. So it's hard to teach people tutorials something that doesn't exist. So I've got to build this stuff first and then show you how to build it. But I've just built some prototypes out there. And it's amazingly fast. So I think one thing we did talk about before on this podcast, maybe some people have heard or are aware of is in Cosmos, this concept of interchain accounts, which basically you have like an account on one chain and then you can control it from another chain. So let's say, for example, there's a project Quicksilver, right? And they're doing
Starting point is 00:42:27 liquid staking with that. So that this Quickserva chain can control an account on Cosmos. It can, the Cosmos hop, it can, you know, stake atoms, broken governance, you know, claim rewards, you know, do all those things. And then, but it's controlled by another blockchain that, you know, could then issue like a liquid saking token. So that's like an example of interchained accounts. There are obviously many examples. Now what you're describing, right, is basically goes even a step further, right? Because you basically have like contract code on both sides.
Starting point is 00:42:57 Whereas here it's kind of like, let's say in the quick save example, it's kind of like contract code on the one side, right? And then the other hand, it's just like a normal account. Can you talk a little bit about use cases? What are some of the things that, you know, you could, like, you'd be interested in building or you can imagine people building, you know, these cross-chain, cause and wasom apps. Yeah, I will, I will. So I think in some theoretical way with token transfer, I know, and account,
Starting point is 00:43:32 you may be able to build anything, may be able to. And in your chain queries, if you add that, like, those might be fun of the principles. Say these are wholly principles, we can build anything with them. But they're inefficient to build off things. So I think for staking is fine because you don't have to stake that often, right? Like you can just every 12 hours, maybe pull out your money and restake it, right? It doesn't have to go so much. But let's say I have a lending protocol that's liquidate and decks another chain, right?
Starting point is 00:44:00 The current way of, let's just say this, just right now the existing protocols, assuming these all exist, interchained accounts, interchange queries and token transfers. If I have a protocol here that wants to liquidate on a decks over here, right first i move one message move my tokens over here i wait to go response right now i actually get callback on the response you need a doubt to control it and we're working with the i g team to like you actually triggered a callback when it finishes then you say okay now make a swap with this um internet accounts to make a swap of that money to send over here for the other token right it may have succeeded or failed if it succeeds then i query to see actually how much did i get right
Starting point is 00:44:39 the full amount I got, okay. Then call over key engine accounts, you trend the tokens back to get the tokens back, right? And that's a lot of, like here, make a request, get response, make a request, get response. These are all slow requests, right? In here, it's orders that whole thing. Now let's say, hey, this is actually a common use case. This is not something you do once. This is something you're doing all the time. It's your huge business case. I want to employ that optimise that. I want to deploy a contract here and a contract here that what they do say is they have their own protocol, which is move tokens swap them at this price and sending all the results back. If the price, if you don't make that price, if the money is too low, right, the price is, if the market won't trade at this price,
Starting point is 00:45:20 they return my original funds back, right? That's a really simple logic. A lot of people might want that. So, but we're not going to wait for like go code six, eight months, 12 months to build some new go logic with this very specific use case integrated to some decks on this one chain. You say, no, we want to launch it now. So we get it now. I wrote a query right now. We could do this. very quickly and basically say this, now we write these two contracts here. They do that. If you trust it, so we'll say, okay, here, liquidate at this price. It will send one message back, and then you get a call back, you know, whatever, one IBC message. It will do this logic. And then you get a call back saying, okay, I liquidated this price, great stuff, or I failed to liquidate,
Starting point is 00:45:59 and here's your money back, right? Like, you get it right away. That, I think, will allow people to do integrations that you couldn't even conceive of. That's like, that's faster, right? This is faster. But then actually, under conceive of, I'll give one more. So I'm working something called Win Dow, um, W-Y-N-D-D-D-D-D-D. And we, I think the second stuff might be like that first one, I'll throw us a demo. I'll throw it's a prototype and give it to y'all. It's free stuff, right? We're doing this for you, everyone. Um, I have a query, like, uses obviously price oracle osmosis is like implemented. Um, I'm waiting for T-WOP out there to be finalized. But, um, the next one is this, I think, to next level of really,
Starting point is 00:46:39 deep integration. So imagine you have a dex on one chain and you want to make another decks and another chain. That dex wants to launch a subdex in another chain, right? The subdex its own separate liquidity, right? So it's going to have its own issue of liquidity and it's small is not really that popular. But actually I have all liquidity on the chain. But maybe I could actually not make a generic protocol that works for anyone, but I will make a special contract between my sub-parent decks and my child decks, which is like a permissioned IBC con, like an encrypted or authenticated IBC connection that just runs from my parent decks to my child decks, right? And I will move 1% my liquidity over here, but I will keep the entire
Starting point is 00:47:21 price information of all the rest liquidity over here. So here's actually the reference price. The reference price is here, right? And you actually have the full reference price here, and that's actually what you use. Over here, you will assume that you have that, value and you can trade a little bit of liquidity very quickly, just like an ATM or branch bank. And so maybe it's a minute out of date of the actual price over here, right? And so you have a little slippage here. You can maybe, but you only can move a 1% liquidity. You only can pull a little liquidity out here. You can't pull too much out anyway, right? Like you can't pull too much over here. So if you run in it, you run in it and they get a new price update. But in the meantime, while things
Starting point is 00:47:58 are not moving too heavily, you basically get immediately access. You don't have to call IBC swap. immediate access, like a local decks, like immediate swap response right away, immediate responses from a decks locally, with the same liquidity effectively as the parent decks. So they basically shifted this as a branch bank that's able to provide virtual liquidity at much higher amounts and still safeguard against bank runs, which I think is pretty amazing. And like this idea of like protocols are not just like copying themselves over chains or they're just like, okay, we're like kind of like something like that. like we've moved collateral over chains, but actually integrating operations over multiple chains is, I think, a revolutionary concept that no one has really grasped or able to build out yet.
Starting point is 00:48:43 So I think one project I'll be doing besides knocking stuff out, like, you know, here's how you swap on a Juneau osmosis, you know, swap on the osmosis deck from Juno with the IBC message. And, you know, this has been in discussion for a while now since Lisbon. And besides that kind of stuff, I want to work on basically building out next level integration. of multi-chain applications are truly multi-chain that live on multiple chains and like balance banks between multiple chains. Thanks so much for that explanation. That is very cool.
Starting point is 00:49:14 And like, yeah, it's just amazingly powerful, right? Like, that's where you really see the kind of like multi-chain. I mean, already the cosmos ecosystem has like had such an explosion of activity. And, you know, we've seen IBC be so powerful just with token transfer. And I was always, the thing that shocked me the most with IBC, or surprised me the most, which is like how actually good the user experience was. You know, I think Osmosis did like really great job at that. And I mean, not just asmosis like others, but now I think having all of these more advanced things, right?
Starting point is 00:49:53 With, you know, more powerful IVC stuff with causal awesome. It's going to be really like weird and mind bending. I think Windows come come out You're getting multi-chain wallets I think wallets have to adjust I think there's an amazing job they did in osmosis I agree it was an amazing job they did for
Starting point is 00:50:14 UX like when it came out they basically listed all of your accounts on 10 different chains or 20 different chains right like on one little board you get deposit withdraw like you don't have to go to some other account and do some thing and then like sign into other other blockchain app over there go to a bridge
Starting point is 00:50:31 wait whatever no he's like on usmosis app it shows you when you click the button deposit like it actually under the hood calls another chain to tell you the transfer it signs a transfer message it waits a really to move over there and 10 seconds 20 seconds later it's in your account like with almost no fees like that's super fast it super cheap and you only have to worry about it all you remember is like oh my ledger i see a different chain ID on this thing I'm signing it um but like it's really like so transparent and that was amazing to really make that whole like you can bridge liquidity it's transparent. I think once you build these things I'm talking about behind the scenes and the back ends like this, what are the front ends? They're so transparent, right? Like, they just are smooth. And I think they did a killer job in the UX and love to see what, you know, have those people also involved in these next level discussions and see what kind of UX they can
Starting point is 00:51:18 design for these multi-chain world. One question I have here is, you know, one of the big arguments that Ethereum has always made and that some other chains like social. Lana for example was also emphasizing a lot. It was this idea of like, you know, composability and it's such an advantage to have, you know, contracts that are in the same VM, you know, where you can, you can like make like atomic transactions, right? Like make like one transaction that affects like, you know, different contracts in the
Starting point is 00:51:56 same transaction. And you know, it all executes at the same time or it fails. how do you see that? Because that was often also one of the criticisms, right, of the kind of Cosmos IBC concept is because, you know, you have like a transaction happening on chain A and then it triggers something on chain B. But, you know, you can sort of make the transaction to like trigger something on chain A and chain B like simultaneously.
Starting point is 00:52:26 Now talk a little bit about like how do you see this issue and how do you think that What's the impact of that going to be when you actually have interchain applications the way you described? I think it's a good point. And I think this basically is harder. It's not worse. So it's easier to call it locally. And I think the idea of the app chain where every app had one little use case, right? Like one is just a Dex and one issues tokens and one is NFTs and one is a lending protocol and one is like this other little piece.
Starting point is 00:52:57 And you actually need five chains to make any useful defy ecosystem is kind of limited. Right. So I think the extension of the Daptain, if you're going like, app chain maximalist, everyone like little little things hit the limits. However, a lot of the new architectures are going for this thing, like near, sharding already. It's like a sequence calls anyway between of it. And they realize that they can't scale up. And like, Ethereum hit the limits and they have roll-ups.
Starting point is 00:53:20 And so effectively like, yeah, okay, you can pose on Ethereum, but like everyone goes to Polygon or Arbitrum or something like that, optimism. And like, uh, Phantom and they're like just throwing somewhere else because they can't. Now there's, like, crappy bridges between them that are, like, hacked all the time because actually, like, composed really hits limit. And salon's like, we're vertically scale, but, like, we're centralized VC chain that, like, halts every, you know, every two weeks. So, like, they have limits here, right? And so clearly, like, having not just vertical, but horizontal scalability gives you so much more resilience, right? The problem is how do you do it?
Starting point is 00:53:52 So I think you want to have, like, a useful modicum. If they have four apps always working together all the time, they should be in the same chain. They should be composed really nicely. they're really tightly integrated. They should integrate one chain. But there are there apps that we don't integrate with all the time. We integrate them occasionally, right? Or every few hours or like we don't call all the time. So like in Quicksilver, Quicksilver's on one chain and it stakes on that hub. And it doesn't need to be there like every single transaction. It just needs to know how to like deposit, withdraw, handle some stuff. It does its own things. But they don't have to be like this. They just have
Starting point is 00:54:23 to be able to securely be able to act operations. So I think it's a whole class of of things. they don't need this immediatency of that composability. And then it just comes to the point of design, a protocol design. So, I mean, a lot of devs come from JavaScript and have issues with this stuff. But, like, you shouldn't be coming. If you come from JavaScript, don't bill IBC straight up, right? Like, come from, like, a serious, like, background in distributed systems or, like, architectures, like, protocol design.
Starting point is 00:54:51 You must have wrestled with, like, actually, like, okay, what's a master slave and, like, multiple master database systems or, like, message cues and, like concepts like this, backend concepts that like I don't need PhDs. I'm just saying that like someone's wrestled with a lot of these stuff that have actually large scale backend web systems have distributed natures and you have to learn this stuff anyway. So like once you've dealt with this stuff, microservices, you kind of get some ideas, okay, how to architect stuff. And these ideas are the same idea for IBC. So it's just like a different concept. So I think a lot of it's training a mindset of how to design them. But once designed properly, it takes more time design.
Starting point is 00:55:29 It should be easily implement and they can be able to do most things. As long as you can wait a little bit and you don't need that. You can even compose it. So like I do action. I hold it like a token transfer. If it fails or returns your money, it is atomic. It's just atomic over a longer time span. So you can build all of that functionality.
Starting point is 00:55:46 It's just a little harder to design it. That's all. And so clearly if you want to have things always together, you stick them together in the same chain. It's great. But like if they need to be a little looser coupling, you can get very secure loose couplings over multiple chains. Cool. Yeah. Thanks so much. And yeah, I think the near point was interesting because I did the podcast with Elia and Alexander like a few, I don't know, pretty recently, two months ago or something like that. And that was this thing we talked about there as well. And I thought it was very fascinating how they are, you know, chose to do, to have this kind of asynchronous nature, even if contracts are on the same chart, you know, because they were like the benefits away.
Starting point is 00:56:30 having this composability because it allows them to, you know, move contracts between different charts and the developer sort of it doesn't have to care, right? Like where they are because they behave the same way. And so I thought that was a very interesting, yeah, like different perspective. Yeah, I like near. They're smart guys. Yeah, absolutely. Governance.
Starting point is 00:56:53 You wanted to talk about governance as well. What's on your mind when it comes to governance? Yeah, I think governance is like the un-sforged territory. And I mean, you were also around when you were trying to design the POS governance for that. And I think in 2017, actually having some like on-chain vote control critical blockchain features was like this crazy idea of heresy almost. But, you know, hard folk was the only way of voting, right? Like, so it's normal now that there's on-chain governance doing things like switching parameters and, you know, releasing funds and, you know, controlling upgrades. That's normal now these days, right?
Starting point is 00:57:28 But that was kind of like five years ago was like crazy. And like POS was like this crazy invention that no one trusted would actually work. And P.W's only way. So these have proved themselves. And I think you've watched that same evolution. The same way that DAOs have now come mainstream, suddenly they've realized, okay, open up this up. And now people's rusted in full head.
Starting point is 00:57:46 Like let's run everything as Dow, throw tokens on there, lock them, they're great. And I think it's a problem because the same people that were naysaying it for years didn't really learn. Just how it governance works. Let's use it. Copy it. Blindly copy paste. And are now presented. a lot of bad designs actually of governance designs. He's never really understood why it worked
Starting point is 00:58:04 in the first place. So there's some doubt I think they work quite well. A lot of those are membership-based ones, where it's actually like one person one vote and they actually have like kind of trusted ones. Those can work amazingly well, right? Like Molok Dow or something. And or even nouns, I think are interesting. A lot of these other ones are just like one token, one vote, stake it, pump and dump things. Like people, they flash loan borrowing token to take over the governance. This happened before, right? And I think, you're like, wait, you can't have a flash loan be able overrun the governance
Starting point is 00:58:36 of your protocol. It's not secure anymore. It's like given up. You've overfinancialized your protocol. So the thing is any safeguards there. So I've been thinking about this, like, since the hub launched and since like, you know, stunning his famous 0% attack, commission attack, attack, whatever, on the hub. Like, they're issues with this governance.
Starting point is 00:58:53 Like, you can do a lot of things with it. It's very powerful, but it has limits. You have to understand the limits. You understand when it works or what doesn't work, right? really understand this this year. And I've been like, I felt like I was doing a voice in a wilderness for a long time because like everything, no, no, it's work rate. It's just the hub. It works. And like, it works for the hub. It's not work for your little chain that has a 10 million market cap or five million market cap. It might not be secure. It's secure the hub that has a
Starting point is 00:59:12 real community. And it's proven a lot of these dows of small market caps are insecure with their logic. And I think it wasn't until I pushed out a POE, actually at the talk I did at Interchain Foundations without proof of engagement, which was like a proof of authority and proof of steak mixing, it got like no traction, and I wrote a white paper in it next year, and we built it for T grade. So I'm, you know, if someone's a lot of proof of engagement, look at T grade, have a medium article explaining technically how it works. It's like proof of authority and proof of stake together in a mixing function, which I think has interesting privileges. I could go on for a long thing. But it's one piece of experimentation, right?
Starting point is 00:59:51 Of this, of what you have, pure proof of stake, daily proof of stake, authority, you can design other systems. And I think we really need to experiment, understand limits of the systems we have, understand where they work well and where they don't work. And it was really like Vitalik last summer in summer 20, 21, he posted beyond coin weighted token weighted governance, I believe, and the DGov and where the limits are. And it's kind of theoretical thing. He's talking about soulbound tokens now. And for me, that's like, okay, sure, that's where I was pitching 2019, that we have soul-bound tokens, which are basically proof of authority, which you have engagement, who reputation? Put your reputation as token, which cannot transfer.
Starting point is 01:00:33 Okay, clearly you cannot transfer reputation, sell it. So you have your reputation on the chain which you cannot sell or buy, which is your time in the chain, and give your money. So if you're like the old time that's done stuff, but don't have any money on the game, you shouldn't have any vote. And you have a bunch of money, but no, say, the doing thing, who are you? So it's like this mixture of, like, actually having done work and actually having money on the table and, like, putting your money where their mouth is. So I think that combination is what experiment in proof of engagement and T grade. And it's just one experiment, right? It's one experiment here.
Starting point is 01:01:01 And it's not the answer. I think it's an interesting space we opened up. And I think I look at Dowdow, which is a really, really cool project on Juno. So, you know, big out to Jake Hartel for doing that one. They've had like no raise, self-organized community, just doing their things. They've gotten like over a dozen devs, I believe, without funding, just believing in Daos, which is, I think it's the most successful. is the most successful non-DFI project built on Cosmossum. So Dowdow. Zone. And you can launch your own
Starting point is 01:01:31 Dow like that. And so they have, you know, multi-s type DAOs, like you vote people in. It's just, you know, who knows who. You have DAOs based on tokens, just like the standard DAO's just in Ethereum everywhere. You have DAO's based in NFT holding. You have DAO's with mixed token waiting. We're building a module to extend it for wind Dow, which is using like curve style multi-level token waiting. And I'd like to take that one. And then they have sub-dow's workflows between like you can partially delegate authority of sub-dow, which has these people, it's projected here, they can overridden. And these larger stuff like Aragon is building back on Ethereum before they kind of died out or petered out. They're building all these cool tooling out there.
Starting point is 01:02:14 So I think it's a great toolkit because they're building a lot of components to allow people to mostly point and click on the web interface, build their own DAOs, but access to all kinds of different models, all kinds of different rules. And I built a lot of this early contracts in 2020, 2020, 2021 is like demo contracts and multi-sigs and voting stuff. And they took this stuff and built UI and they just went with it. They've gone way beyond why I built. So I'm really, really impressed with them. And I think it really shows that Cosmos is not Ethereum. It's Cosmos is really the forefront of governance. And it has been. I mean, like, what was launched the hub was already cutting edge, like on-chain governance and POS, was cutting edge in 2019, right? In 2017, no one
Starting point is 01:02:57 believed it would work in 2019. It was launched and made it. It was cutting edge. And I think Dowler's bringing this, like the next level of this really bringing new ideas of governance to a new level. Yeah, no. I mean, I think that's something, I think also, you know, we talked about mentioned this on this podcast before. But that's just like, out to me so much. Like actually I remember when you know when we were like working on Cosmos in 2017, I mean there were others right who were basically like other blockchains, proof-estake blockchains. They were also, you know, I think specifically tasers and Pocodot right, they also had their kind of governance mechanisms in there.
Starting point is 01:03:37 And they talked a lot about like, oh, you know, how they have this like elegant, powerful complex governance scheme. And I feel like for Cosmos it was more like, yeah, we're going to have this governance, right? But it wasn't so much at the front and center. And it was also kind of simple in comparison. But, you know, I think it has ended up. Like, I mean, I think polka dog governance is just like very confusing and I think too complicated.
Starting point is 01:04:05 And I was like reading at some point that they were actually moving to a more Cosmos style model. I'm not totally sure if this is true or not or if I misread that. But and then Thaisers, I think the big issue was that, you know, only validators could vote, which is not ideal, no, like, I mean, I should, I think. And I think the cosmos model was really, like, just very nice, right? That you have, like, validators vote by default, but then individual token holders can override it. And what I think has been just amazing is, like, the amount of adoption that has gotten, right? Where you have, like, on the cosmos hub, you know, often, like, you know, 80,000 accounts.
Starting point is 01:04:45 hounds or somebody like that or, you know, voting and, you know, same as Moses is like huge participation. But then, of course, you're totally right, right? Like, this is just one form of governance. And it makes sense for some forms, but like it's, it's, there's obviously also downsides there, right? That you have, okay, someone with a million tokens and there's someone else with a hundred tokens and the person with a hundred tokens may be like super engaged and know a lot.
Starting point is 01:05:10 And, uh, so that's, uh, you know, it's a hard. problem. But at least I feel like to, yeah, the cosmos models already gotten, uh, gotten pretty far and works pretty well and has gotten surprising amounts of engagement. And I'm, you know, I'm excited to see, like the kind of daw, daw and like the other models that can be built. Yeah, I think that causal small actually works quite well for most cases. If there's engaged community, like, you know, if, if, if most token holders care about the chain, right, and are, right, you actually have engaged community and you have like, solid market cap. Like it works pretty well actually.
Starting point is 01:05:48 But those are ifs. So like when you see a chain with not much usage and the market cap drops to one or two million in this bare market, which has happened, it's a problem. And what happened in Terra? Like when they emitted five billion lunar or five trillion lunar, I don't know, five quadrillion lunar, I'm not sure how many. They halted voting because it's a attack. Like some random person that just bought this for like 0.00001 cent has now owned 50%
Starting point is 01:06:12 of our governance. They could delegate their thing and take over the whole chain. Right? Like, like, they realize the limit of it. And so this is, I'm just saying there's failure modes in it, right? There's failure modes, if you're aware of. And that is extreme failure mode. But I think any of these small chains is under 5 million, 10 million market cap and it has low engagement.
Starting point is 01:06:31 It's just basically waiting for it. And so if they were ever actually had a higher value at one point and then went down to this level, that means someone's going to snap them up, right? So I think it means, it's like the POS works well if you say, hey, token proposal is actually engaged. And there's a sell the market cap. No random Schmo hacker can just buy up a bunch of tokens and take over because, like, you can't, right? You can't buy them out because people care about stuff. But yeah.
Starting point is 01:06:57 Yeah. And I think it works well in the sort of like, you know, the decision about, or should we go there or should we do this, right? But what it doesn't really work well for is a sort of, you know, organizing work. and collaborating to do stuff. So, for example, I think the whole mechanisms of like using governance to, you know, for proposals for funding proposals, I think is not worked. I mean, it sort of works, but it's not ideal, right?
Starting point is 01:07:33 Because I think then, you know, someone proposes something. People are like, all right, that sounds reasonable and they defund it. But like, was that the best thing to fund or like maybe something else that like, or in a different way or someone else had the same idea. And like, so I think that's, for example, one thing where, like, the existing governance, I feel is, isn't great. Yeah. I mean, I think there's a cool thing Dow does work in sub-Dowels. They actually can, like, take the staking vote as, like, the basis of who is voting power and have your own different logic on it. Or, like, subgroups of them can vote on it. So they were like, not even no tokens, actually using the staking token on the native
Starting point is 01:08:08 thing. And then also allowing sub-dowls, like, okay, this Dow is appointed by the main, the main governance can now point this Dow to do certain things like vote and funding with some sort of budget, right? And they, but the apparent governance can revoke them. Hey, this committee is not working very well to get rid of these guys. You know, they just waste the money. Like, but so you'll have to have the 80,000 people involved in every funding discussion, negotiations. You can actually have negotiations with a counterparty. And they can spend, you know, a million or two a month maybe on funding projects and ecosystem. And if the money is going to bad places, you just basically swap them out with someone else. right so like and that might make sense in a way of more decentralized than saying you have a foundation this in transparent foundation funding stuff right like it would actually allow a decentralized way of doing it it's actually control about engineering governance but still you're right like you don't need 80,000 people in discussion when someone's starting negotiate like a funding I will do this feature for your chain and then like you're like okay I'm waiting two months in public discussions to figure out whether
Starting point is 01:09:05 I got funded or not I'm going somewhere else it's a little faster but I think you can definitely do it and I think yeah data allows you add it on to existing governance and kind of not replace the standard one, but like extend places with this. Cool. Well, thanks so much, Ethan. It was really, really great to have you on. Like you mentioned, you know, the Kausen Wasam Academy. Maybe that's something some people may be interested in.
Starting point is 01:09:30 Can you tell a bit more about that? Like, you know, if people want to kind of get started and developing on top of Kausen wasn't, like where should they go? And like, what's the kind of offering that Kossum Wosom Academy has for them? Cool. So, yeah, the Cosmolome Academy Academy.com is, you can sign up now. We'll be opening up, I believe, early September, maybe mid-September. Let's see how the times lines are. I'll slip a little bit. Working out for quite a while. We have quite a few videos online. The platform's already online. We're trying to finish up the first version of it. We had a preview already in Seoul. But yeah, in a few weeks, early mid-September, we have it going on. Sign up there. You will get, basically bottom and top rush courses, explaining how to build contracts in Rust from an expert trainer at Confio who's working a year and a half now with us, building all kinds of Russ contracts and building a cosmossom and multitests and lots of
Starting point is 01:10:29 these tooling you've used, going through how to build contracts, explaining Russ, explaining contract logic, explaining how to build everything up there. So if you have basic Russ knowledge, sign up for that class and it will take you into like advanced cosmossum development. I think this is really a way we want to do to democratize people. so really get the skills of how to build good cosom awesome contracts out there and complex cosmolson contract how to compose contracts how to build these systems out there and when everyone it's for everyone it's free so yeah it's basically us trying to train out a whole new generation of really skilled cosomelmasom developers that's amazing cool and how long is the course uh the course is 10 weeks
Starting point is 01:11:05 it's 10 classes they're one week long uh there's some take home work for you to do with them um you probably could do it faster if you're skilled already but yeah it's a 10 to 1 week things. Cool, fantastic. That sounds like a great experience. Yeah, yeah. No, it should be. And definitely it's for everyone. It's for the people. And feedback's welcome. Please give feedback out there. If you have stuff, we want to make it better. We'll have other stuff on Cosm.js and front end stuff coming later as well. Other courses. We have also some full-stack courses coming up, lined up for you. I also wanted to mention Wynn Dow briefly. And so there's, I mentioned earlier, it's basically a Dow we're launching or have launched on Juno for doing IBC-based contracts.
Starting point is 01:11:47 I think it's going to be the cutting edge of a lot of this stuff, scaling out protocols both horizontally, not just vertically, but horizontally. I think it's very interesting stuff we're building out there to reach huge scales and really push what IBC can do and how it can make like an actual intertainative protocols. There is an air drop out there. I want to say if you get this before end of August until August 2020, We have an airdrop, airdrop.wind, Dow.com, Wind with a Y. And check out more there.
Starting point is 01:12:14 For all, do you know Osmond region stickers? Okay, I'll check that out as well. Cool. Well, thanks so much, Ethan, for coming on. It was really great to have you on the podcast. It's amazing, like, all of the work you've done and the way you've contributed to the cosmos ecosystem. And I'm super excited to see, like, you know,
Starting point is 01:12:34 what are people going to build in this, like, you know, next generation of stuff that's going to come with, you know, Cosm Wasam and mixing that with, you know, to new IBC capabilities. And then with all these people, they're going to be trained through Cosom Wallson Academy. Yeah, I'm excited. I'm excited. I was dreaming of IBC since, like, you know, five years now, six years now of, like, what we can do. So we're ecosystems here.
Starting point is 01:12:55 Everything's ready. The tools are ready. The infrastructure foundation's ready. And, like, let's just build. Build guys. Cool. And, yeah, check out Cosmwasam. Check out chat, discord website.
Starting point is 01:13:05 Everything is on their chat. com. For Discord, lots of good help there. Yeah, come on. Cool. Thanks so much, Ethan. And of course, we'll include links to all of those in the show notes. And thanks so much for our listener, for once again tuning in.
Starting point is 01:13:21 If you want to support the show, make sure to leave us an iTunes review. Let us know what you think of the episode on Twitter shared with people you think would be finding interesting. And yeah, we look forward to being back next week. Thank you for joining us on this week's episode. We release new episodes every week. You can find and subscribe to the show on iTunes, Spotify, YouTube, SoundCloud, or wherever you listen to podcasts.
Starting point is 01:13:45 And if you have a Google Home or Alexa device, you can tell it to listen to the latest episode of the Epicenter podcast. Go to epicenter.tv slash subscribe for a full list of places where you can watch and listen. And while you're there, be sure to sign up for the newsletter, so you get new episodes in your inbox as they're released. If you want to interact with us, guests, or other podcast listeners, you can follow us on Twitter. And please leave us a review on iTunes. It helps people find the show, and we're always happy to read them. So thanks so much, and we look forward to being back next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.