Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Ethan Frey: CosmWasm – The Smart Contracting Platform for Cosmos
Episode Date: August 19, 2022CosmWasm 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)
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
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.
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.
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,
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.
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.
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.
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.
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.
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.
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.
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
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,
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.
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
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
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
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.
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?
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
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
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
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
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
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
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
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
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
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.
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,
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
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.
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.
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.
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
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
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?
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
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
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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,
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.
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
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
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.
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
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.
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,
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.
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.
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.
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
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.
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.
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.
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
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?
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.
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.
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
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.
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,
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,
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.
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,
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
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.
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.
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.
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.
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.
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
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
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.
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,
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?
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
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,
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,
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,
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
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
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.
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.
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?
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
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
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
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
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.
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.
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.
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?
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
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.
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.
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.
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.
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.
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?
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.
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
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
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.
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
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?
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.
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.
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
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.
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
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.
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.
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.
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.
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.
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%
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.
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.
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?
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
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
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.
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
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
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.
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.
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,
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.
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.
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.
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.
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.
