Unchained - Want to Connect Blockchains? Cosmos Has Tools for Coders - Ep.117
Episode Date: April 30, 2019Jae Kwon, founder and CEO of Tendermint and president of the Interchain Foundation, and Ethan Buchman, cofounder of Tendermint and Cosmos and technical director of the Interchain Foundation, discuss t...he various technologies that form the Cosmos/Tendermint system. When the Cosmos network launched on March 13, it was built on what is the blockchain equivalent of an operating system, a consensus algorithm called Tendermint, Cosmos is like the world wide web (for blockchains) built on top, and the Cosmos Hub is a specific blockchain that exists in the system that can be used to connect other blockchains. We discuss all the above, as well as how secure the chain is, and how governance works in the system. Check out the full show notes on Forbes: http://www.forbes.com/sites/laurashin/2019/04/30/cosmos-a-world-wide-web-for-blockchains/ Thank you to our sponsors! CoinDesk/Consensus: Since 2015, Consensus has been recognized as the most influential blockchain and digital assets event of the year. Hot-button topics such as adoption challenges, privacy,blockchain innovation, capital formation and more take centerstage as experts and pioneers give voice to the new developments and innovations occurring around the globe. Don’t miss this three-day experience! Register today: www.consensus2019.com. Use promo: UNCHAINED300 to save $300 on your pass. ConsenSys/Ethereal: Head to Etherealsummit.com with my discount code LAURA20 to get 20% off tickets to Ethereal Summit New York, May 10th to 11th at Pioneer Works in Brooklyn. CipherTrace: https://ciphertrace.com/unchained Episode links: Cosmos: Cosmos.network Cosmos.network/launch Luni: Luni.io Tendermint: Tendermint.com - company and product Interchain Foundation: Interchain.io Cosmos intro/FAQ: https://cosmos.network/intro Cosmos white paper: https://cosmos.network/resources/whitepaper Chart showing number of transactions vs. validators: https://medium.com/paradigm-fund/cosmos-network-the-internet-of-blockchains-is-coming-9ce956c7b78 The Control on Cosmos: https://thecontrol.co/into-the-cøsmos-433586b82865 Paradigm’s description of Cosmos: https://medium.com/paradigm-fund/cosmos-network-the-internet-of-blockchains-is-coming-9ce956c7b78 Bitfish’s response to Game of Stakes, in which it grew to 55% of the network: https://medium.com/bitfishlabs/bitfish-response-to-gos-5-24eaeeea9876 CoinDesk on Cosmos launch: https://www.coindesk.com/a-blockchain-to-connect-all-blockchains-cosmos-is-now-officially-live Cosmos vs. Polkadot: https://tokeneconomy.co/the-state-of-crypto-interoperability-explained-in-pictures-654cfe4cc167 Learn more about your ad choices. Visit megaphone.fm/adchoices
Transcript
Discussion (0)
Hi everyone. Welcome to Unchained, your no-hype resource for all things crypto. I'm your host, Laura Shin. Unchained is now on YouTube. You can find the most recent episodes there every week on the Unchained podcast channel, and we'll soon be getting the full archive up. Also, if you're not yet subscribed to my weekly newsletter, go now to Unchainedpodcast.com to sign up.
Cipher Trace makes it easy for exchanges and crypto businesses to comply with cryptocurrency anti-money laundering laws.
Avoid illegal sources of funds and maintain healthy banking relationships.
CipherTrace is helping you grow the crypto economy by keeping it safe and secure.
Head to ethereal summit.com with the discount code Laura20 to get 20% off tickets to join Laura and hundreds of the brightest minds in blockchain at Ethereum.
The Imperial Summit, New York, the 10th to 11th at Pioneer Works in Brooklyn.
My guests today are Jay Kwan, founder and CEO of Tendermintment and president of the Interchain Foundation,
and Ethan Buckman, co-founder of Tenderman and Cosmos, and technical director of the Interchain Foundation.
Welcome, Jay and Ethan.
Hello.
Good to be here.
Thanks, Laura.
Great to be here.
Jay, let's start with you.
Cosmos and all the technology around it is just a massive system.
I was trying to wrap my head around this, and there's just a lot there.
So before we dive into all the pieces, why don't we give a high-level overview?
What problem or problems were you trying to solve with this project, and what is the vision for the Cosmos system?
Tendermint is, it's an open-source project that started in 2014, and the idea is to create a better consensus system.
It started with the idea that distributed systems, distributed consensus systems can be created without proof of work.
And it turns out if you use classical Byzantine fault-tolerant consensus algorithms that don't require mining,
you can actually address speed, scalability, and the environmental issues associated with proof of work as in Bitcoin.
So Tenderman is an open-source consensus engine that can be used to,
create any blockchain system.
And we use tendermint to create
Cosmos. So Cosmos,
you can think of maybe tendermint as an operating system.
And Cosmos is maybe analogous to
World Wide Web.
The idea is to create a network of blockchains,
where blockchains can literally
securely communicate with each other
to create a scalable, interoperable network
of distributed ledgers.
And so Cosmos, we recently launched the Cosmos Hub.
It's a blockchain power by tendermint.
It's a Byzantine fault-tolerant-based proof-of-stake system that doesn't require proof of work.
And the purpose of the Cosmos Hub is to connect to many blockchains and enable token transfers via two-way pegging.
And so this way we can create a scalable foundation for a new token economy.
Well, okay, so this was actually my next question for you, but even before we've asked it,
I realized that some of the thoughts I had when I phrased this question were actually incorrect.
So there's tendermint, the company, which is, you know, when I introduced you, that's what
you're CEO of. But then there's now also this tendermint operating system that you described.
And then Cosmos, you said, is a network that.
uses tendermint, I guess. It's built on top of tendermint. And you called that a network of
blockchains. It's sort of like the World Wide Web, you said, as opposed to tendermint being the
operating system. And then within the cosmos network, you are now also operating something
called the Cosmos Hub, which is different from the Cosmos Network. And we'll, I guess,
so we're going to dive more into that in a bit. But there's like multiple things.
where some of these names are reused. But did I get all those definitions correct?
Sure. Yeah, that's basically correct. So we use the term tendermint to actually refer to multiple
different things. So one is the company. So the company is all in bits, but it does business as
tenement. So you see it around as tendermint, Inc. And then there's tendermint, the software,
which we typically refer to as tendermint core. And this is the actual software that you would
download on GitHub, that you would run, that is the basis of this operating system that we've
been talking about. And then there's tendermint, the consensus algorithm, which is kind of the underlying
protocol that is implemented in tenement core. And so, you know, we use the word tendermint to kind of refer
to all three different layers of that. All right. So let's go back to Cosmos, which is I think what
most people think of when they hear your names. On March 13th, you guys launched the Cosmos network,
this internet of blockchains, which enables, you know, the different blockchains to be interoperable.
And so what is Cosmos and what are, what problems are you trying to solve with Cosmos?
Sure. So like Jay was saying, kind of the goal is, you know, if Tenerman is like an operating system or
it's software for basically running a single blockchain and lots of people are out there building
kind of individual, independent, you know, siloed blockchains that don't really communicate with one
another well, we felt that what we could do with Cosmos was to start thinking about how to
interconnect all those blockchains and how to design a protocol that would allow different
blockchains, even if they're built potentially, you know, with different consensus algorithms
or with different applications or different styles of managing a cryptocurrency, that we'd still
be able to have some protocol that allowed them to interoperate. So, you know, unlike, so for instance,
on Ethereum, kind of the vision with Ethereum was that you could deploy all these different smart
contracts onto Ethereum and by virtue of all them being on the Ethereum blockchain,
they'd all be able to communicate with one another.
And that's obviously led to an explosion and interest and value of the Ethereum network.
And so in a similar way, we're trying to sort of generalize that a little bit further.
Instead of saying, well, instead of having many applications on a single blockchain that are
able to communicate with one another like you have with Ethereum, we want to define general
purpose protocols that will allow many different blockchains to, you know, despite what is
running on top of them, even very different, you know, applications to still be able to communicate
with one another. And so that was really the key design goal of the cosmos network was to facilitate
many independent heterogeneous blockchains to still be able to communicate with one another.
And so kind of the founding approach to that, at least to get it started, is this idea of starting
with what we call the cosmos hub and starting with a set of blockchains that will, the first thing
they'll do is connect to the Cosmos Hub, and the Cosmos Hub will serve as this kind of router
between the first set of blockchains that come online. And so, as you mentioned, the Cosmos
Hub is online now. There's no other blockchains yet online in the Cosmos network. A lot of people
are building their own blockchains and have either in TestNet phase, or actually there is,
there's IrisNet, which is a blockchain based out of China that's built, you know,
using the same technology stack as the Cosmos Hub, but they're not connected yet because we haven't
quite finish the piece that will allow them to interoperate what we call IBC or the inter-blockchain
communication protocol, right? And so once that is actually developed and deployed, then these
different blockchains, you know, at least these two, the Cosmos Hub and IrisNet, and then
whatever others come online, will start to be able to communicate with one another. But kind of in
the long term, the idea of the Cosmos network was to roll out these protocols that would really do
to the blockchain space what, you know, protocols like TCP did to the internet, which
was to actually create the internet, create this massive network of interconnected, you know,
smaller networks, right? And so in the same way, we think about this as like, you know,
the interchain, right? So we have many chains out there and we're trying to build protocols
that will give us, you know, the interchain. And sort of right now, you know, we localize it in
this idea of the Cosmos network, which is kind of the blockchains that are building up around
the Cosmos hub, which was the first blockchain in this network. And so walk me through an
example of how it works. And I don't know if this is a good example, because these are both
proof of work. But like I was saying, you know, these are the two most popular coins. So like,
what if I have Bitcoin and I want to use it on Ethereum? Can I use? And I like I, I just mean
theoretically, because obviously, you know, you mentioned that, you know, you're only working so far
with things like IrisNet. But like if I wanted to do that theoretically, how would I use the
Cosmos Hub to do that? Or, you know, pick whatever blockchains are best for the example.
So it's proof, Bitcoin and Ethereum are based on proof of work.
So it's a bit more involved than just connecting to tendermint based chains together.
So I'll use a different example and maybe get back to the Bitcoin example.
So we have this framework called the Cosmos SDK.
A lot of projects are building on the SDK in anticipation of IBC development being finished.
very soon. So for example,
Iris was mentioned, there's also
Lino, it's another blockchain that's
up and running. They actually have
the most amount of users.
Last I heard, 800,000 users
on their chain.
And with the IBC module,
the two blockchains
can communicate securely. So
in other words, each blockchain can be
aware of the other
blockchain's latest state,
and they can start passing packets of
information back and forth.
And on top of the packet, is information encoded about how many tokens are being transferred to what blockchain and to what account on the destination.
So it's really, it can be as simple as creating a Cosmos SDK-based blockchain using that framework.
But there are other frameworks that plug into Tenderman as well.
And so it doesn't have to be the SDK.
But the idea is to create an interoperable network of blockchains that is very easy to plug into.
If you build on the SDK, it would be very easy to connect to Cosmos Hub.
Okay.
So, yeah, now we're getting into other terms we haven't defined previously.
So the Cosmos SDK, which I think is, that's a way that you guys, like, provide tools for other developers to build their own blockchain.
Is that correct?
Yes.
Kind of like Ruby on Rails is an easy way to build.
a new website, the Cosmos SDK is a framework for developing a blockchain application.
That also includes Tendermint,
so Tendermit is very agnostic to how you develop your blockchain application.
You can develop in any language, such as Python, Java, or Go.
And the SDK, the Cosmos SDK is currently the leading framework to build on Tendermit,
and it's a Go framework.
Go is the language developed by Google.
It's a great language for developing a secure, complex application that is very efficient and fast.
And when I was learning about this, there was something that seemed somewhat similar to substrate from the parity team.
Is that correct?
There are a lot of analogies.
Maybe one way to describe the differences, maybe the way that Bitcoin is maybe the way that Bitcoin is,
to Ethereum, cosmos, maybe to Pocodot.
So if you're referring to Pocodot, then it's, yeah, in substrate.
Yeah, yeah.
Yeah.
So we like to keep things very simple and modular.
For example, our detendment consensus algorithm is, it's a state-of-the-art consensus system,
but it's all based on very rather simple concepts.
And we try to keep the consensus algorithm as simple as possible,
because it's quite complex.
Consensus systems, I think,
is definitely one of the most complex things I've ever had to develop.
And it's really important to keep such a complex algorithm simple
so that people can understand it.
So there are similarities,
but maybe one large difference is that we don't start off,
for example, with the assumption of complex cryptographic primitives,
like BLS signatures.
We don't have a virtual machine,
on the Cosmos Hub, although you can develop your own virtual machine on the Cosmos SDK.
The idea is that the Cosmos Hub is there to be a conservative set of features required to scale
the cryptocurrency ecosystem by enabling inter-block chain token transfers.
And really, that's all we want to solve.
But there's a lot that you need to build in order to solve that well.
For example, we had to implement a governance system so that the blockchain can decide on what to do in the case of various failures.
So there's a novel governance system built into the Cosmos Hub.
Recently, the network passed a proposal to upgrade the Cosmos Hub to enable token transfers.
So that's governance and action there.
And we had quite a bit of participation from the stakeholders.
But there's also a lot more that you need in order to make a good proof of stake system.
So we have the pretty advanced or maybe the most advanced proof of stake delegation system so that you can take your staking tokens.
Anyone can delegate to any of the validators or you can run a validate yourself and earn a proportion of transaction fees.
And there's a commission system built in.
Recently, there was a blockchain, I won't name it, but they had a delegation system that allowed the validator or designer to run off with the earnings and the fees from the delegators.
But we've implemented a novel and a very efficient system that automatically handles transaction fee distribution on chain.
So there's just like, yeah, there's a lot of components that need to come together to make this all happen.
So one thing that is not clear to me is why would I use Cosmos rather than simply exchanging the tokens on an exchange or using an atomic swap?
Well, you can use, if you use an exchange to swap tokens, let's say you have bar coins on bar chain and food coins on food chain.
And you have bar coins, but food chain has the functionality that you need, because,
it has the smart contract system or the privacy features that you want that bar chain doesn't,
then you would have to trade bar coins for food coins.
But with the Cosmo system and via two-way pegging and IBC connections,
you can use the same tokens on any of the chains that accept them.
So you're essentially using the same tokens, although it's two-way pegged,
and that opens the door to a simplified model for everyone,
so you don't have to keep track of different tokens in all those different chains.
I think maybe a good analogy for, you know,
that question is, it kind of sounds similar to me saying like,
you know, why would I use the internet when I could just use AOL?
You know, so the internet opens up a whole new host of possibilities,
both for people building applications and for people using them
that aren't really accessible through the kind of centralized gateway,
of an exchange or even just like a, you know, a two-way atomic swap.
And so the kind of goal of the Cosmos Network is to really blow open the design space of
possibilities for building new kinds of blockchains that can communicate with one another.
And, you know, we're only, we're at the very beginning of that experimentation.
Here's maybe some, just one more analogy.
So let's say you want to scale Ethereum because a single Ethereum chain can only process
so many transactions per second. Once we peg, once we connect to the Ethereum Mainnet,
you can send your ether tokens to any number of EVM-based chains. So there could be
100 EVM-powered blockchains, all connected to the Cosmos Hub. And so now we have an overall
throughput that is 100 times greater than a single Ethereum chain, all using the same token.
All right. And then one other thing I feel like I need to understand here is, so the Cosmos Hub is one of the blockchains that will exist in this system. And hubs have zones that are associated with them. So what are the zones and who builds the zone? Like, is it you guys that build the zone? Because like, so like for instance, you know Z-Cash could have a zone. Would it be that Z-Cash could have a zone? Would it be that Z-Cash-
developers would need to build that? Or like how does it how do you get these other chains to
you know, build these zones on your network? And also what, what happens in the zone and how
does it relate to the original blockchain? So zones, zones and hubs are just kind of
relativistic distinctions between different blockchains that more or less refer to the connectivity
between them. So a hub is a blockchain, just like a zone is a blockchain. And anyone can build,
you know, these kinds of blockchains and permission.
permissionlessly connect them.
That's kind of the key goal, right?
So the Cosmos Hub is up and online,
and anyone who wants to,
who has built a blockchain on top of tendermint
and that implements, you know,
the IBC protocol, which they would get for free
if they use the Cosmosis SDK,
but they could implement themselves
if they were using a different system,
would then be able to, assuming they have
a set of validators running their blockchain,
you know, whatever that set might be,
they would then be able to connect with the Cosmos Hub
and engage in, you know,
in these kind of one-way token transfers and data transfers through the cosmos hub.
And so just so I'm clear, so the cosmos hub only supports blockchains running on the tendermint
consensus algorithm.
In the short term.
Oh, okay.
So then at some point you'll build out support for other types of consensus algorithms?
We would like to.
So really what this comes down to is the IBC protocol, right?
And the IBC protocol has a number of requirements for, you know, a consensus system and for a blockchain to be able to utilize it.
And right now, we are, you know, tenement is our main reference point for what that should look like.
But we're trying to design the IBC specification to be generalized enough so that any other kind of blockchain consensus system that satisfied the same kind of guarantees that tendermint does would also be able to participate in this kind of IBC ecosystem.
And then one other thing that I've seen is that in order to connect to Cosmos, blockchains, it's best if the blockchain has fast finality rather than probabilistic finality.
And Bitcoin and Ethereum have probabilistic finality, and they're the most popular blockchain.
So can you define fast finality versus probabilistic finality?
Let's start there.
Just define the difference between the two.
Sure.
And so this is exactly the kind of property I was talking about with with respect to IBC that tendermit provides.
So any other, you know, consensus algorithm that would provide this kind of fast finality and a few other things would fit within the IBC framework.
Basically what fast finality means is that the protocol is designed such that within the assumptions of the protocol, which are, you know, which tend to be that, you know, less than a third of the participants or of the voting power are malicious.
So within those assumptions, when a block is created and voted on and committed, it's finalized.
And that happens very quickly.
And what that means finalized is that it will not later be reverted.
There's no way within the protocol for a block to be undone once it's been committed, right?
And so that's kind of what we mean by fast finality, that this finalization process whereby
you have a strong guarantee within the protocol that the block is committed, it happens
very quickly, right? And we can contrast that with this kind of probabilistic finality that proof
of work-based blockchains offer like Bitcoin and Ethereum, where technically, theoretically,
and also in practice, blocks can actually be reverted at any time as part of the protocol,
right? So in the Bitcoin protocol, you know, blocks can be orphaned, which means a minor
mines a block sends it out to the network, but another minor mine a block at the same height
and other people built on top of that one. And so one of the blocks, you know, even though it was
created and people saw it and even if, you know, possibly a few blocks were built on top of it,
it still gets reverted, right? And that's part and that's part of the protocol where you have to
wait some number of blocks, you know, in Bitcoin they typically say six before the probability
that it will be reverted is low enough that you can have enough confidence to, you know,
continue on with your economic or commercial activity, right? And so dealing with that kind of
probabilistic nature of the commit of a block makes it very difficult to build these kinds
of interoperability protocols because you don't know, once a block has been committed,
you don't really know when that commit has happened or if it's going to be reverted and you
don't get the same kind of guarantee.
So that's basically the difference is that in a probabilistically final protocol, blocks can be
reverted, like undone as part of the protocol, whereas in something with fast finality like
tendermint, once a block is committed, you know, it's never reverted.
Of course, if the assumptions of the protocol fail, like, you know, maybe more than a third
of the validators happen to be malicious,
then the guarantees, at least some of these guarantees,
you know, could fail and then blocks could be reverted,
but that would be considered a failure state
rather than just like a normal occurrence.
And once it fails,
there's a way to figure out which greater than one-third
of voting power is responsible for it and recover from it.
And just one thing I wanted to mention is that it's fast finality
in a sense also that blocks can be committed very quickly.
So in the Cosmos Hub, for example, blocks are committed once every six seconds.
Okay.
So, yeah, I actually wanted to ask about validation in the Cosmos Network.
So you guys only have 100 validators to start.
Is that really sufficient to secure the chain?
Like, how can you be sure that?
Because as far as I understand,
So if, as you mentioned, it can go into a failure state if more than a third of the voting power is like is not there.
So and that's all that's necessary, I think, to create a fork, right?
So that would be 33 validators.
How like it just feels like it's so easy that it's going to fail.
It's actually much less than 33 right now because it's, it's 33% of the, you know, it's one third of the total voting power.
Right.
And so I think right now that's about five validators.
If they got together, they would control more than one third of the voting power.
So obviously it could be much better than that.
And we would like to see it decentralized far beyond five.
I think it's important to note that a few things.
First of all, the faults are attributable, which means that if this one third or more than one third gets together to maliciously fork the blockchain or revert blocks or whatever,
They can't, that them doing that is attributable.
So anyone else looking at that will know who was involved, right?
And so, you know, the community then can say, okay, well, these guys are untrustworthy.
We know that they're the bad guys because there's, you know, irrefutable proof that they did it.
And so we can, we'll make a new blockchain and, you know, and fork them out.
So to some extent, you rely on these.
I mean, but they could just like change their identity and hook up to the new blockchain.
It would be like not exactly a simple attack, but do you know what I mean?
They could, but they wouldn't necessarily have stated.
in the new blockchain because the new blockchain can say, well, we're going to eliminate all those validators
stake and kind of start again over here, right? So, but I mean, okay, but they could obtain stake again.
Absolutely, absolutely. And you wouldn't know that it was the same entity. You wouldn't. You could, though,
right? Because part of part of the proof of stake system is that you have to attract valid,
you have to attract delegators. And part of doing that is establishing, you know, a robust public
identity. And so if you look at the top validators, at least on Cosmos, they're all publicly
identifiable, publicly recognizable entities who have significant reputation on the law. So to some
extent, at least there is this kind of, you know, business relationship or business offering
that these people are positioning for. And that helps to kind of secure this in a way that, you know,
is maybe blasphemous in the eyes to say a Bitcoin maximalist, but I think it's part of the
reality of the next generation of blockchings. If I may, I'll try to draw an analogy to
to Bitcoin.
So in Bitcoin, there's a lot of miners, but there's only so many mining pools within
the top 99 percentile.
And even to get to 51 percent of proof of work voting powder is only a handful, maybe even less
than five today of mining pools.
Imagine if, so in Bitcoin, if the mining pools were to get together and, you know,
and conduct a 51% attack or a double spend,
then they would lose the energy that they spent for, say,
the one hour or however many hours, however many blocks,
just a handful of blocks.
That would be lost, but they would not lose their mining infrastructure.
But in a proof of stake system, they would lose all of their stake.
So it's as if the miners were to lose all of their,
it's as if their mining equipment were to blow up.
So it's potentially, significantly even more secure.
That's interesting.
And also, earlier you were saying that essentially you would just fork the system.
So, but then you still have, oh, well, no, I guess at that point you would solicit new validators because otherwise then you have like even reduced a reduced number of validators.
Do you know what I'm saying?
Like if you fork and you get rid of the bad actors, then you're starting off.
with a pool of validator sets even smaller than before and is even more gamable?
Well, but it's likely that the distribution of stake will be a little bit more uniform,
right? Because if it was before concentrated in the top five and you've gotten rid of the top five,
then your new validator set is going to be more evenly distributed.
Now, there's a lot of parameters around how this would actually shake out
with respect to the new token that would be created by this fork and what the value of that token is
and how much would actually be at stake.
So, you know, you're right that there are significant concerns
and security issues around this.
But, you know, we believe that this is an alternative system
to what exists with proof of work
and that it is more secure in many respects.
And at the very least, there is significant skin in the game.
There's a lot more at stake for people participating.
And there's kind of this new opportunity to build, you know,
resilient, fault-tolerant networks with certain, you know, very strong guarantees that you can
actually at least look at and understand the guarantees and understand the failure mode and what the
risk is, right? And in the same way that there are risks that the banks collude or that in existing
systems, you know, things will go wrong, but it's all, you know, behind closed doors and there's not
much transparency and you can't really, you can't really analyze the structure of the system in the same
way. At least here, all of that is kind of out on the table. You know, there's a lot of encouragement
for the identities of the validators to be public and so on.
All right.
We're going to discuss more about security after the break, but first a quick word from our
fabulous sponsors.
Ethereum Summit returns to New York City this May 10th to 11th to kick off blockchain week
and offer you a chance to go deep into the heart of crypto, blockchain and Ethereum.
Ethereum is where you can get up close with the builders of blockchain and Ethereum,
including many guests from Laura's podcasts, like Amber Balday,
Tushar Jane, Amin Soleimani, Chris Berniske, and Mike Novagrats.
Head to EtherialSummit.com with the discount code Laura 20 to get 20% off tickets to join Laura
and hundreds of the brightest minds in blockchain at Ethereum Summit, New York,
May 10th and 11th at Pioneer Works in Brooklyn.
Did you know that if money laundering were an economy, its GDP would be the size of Canada's?
Large volumes of tainted crypto assets move through financial networks, often below the radar of banks.
Cybercriminals use unregulated crypto exchanges to avoid detection.
No wonder governments around the world are rolling out tough new anti-money laundering laws for cryptocurrencies.
Complying with those laws isn't easy.
Banks and exchanges need the best cryptocurrency intelligence available to avoid penalties.
Now you can use the same powerful AML and compliance monitoring tools used by regulators.
CipherTrace is securing the crypto economy.
To learn more, visit ciphertrace.com slash unchained.
Back to my conversation with Jayquan and Ethan Buckman of Tendermint and Cosmos.
So, I mean, you guys admit already that, you know, right now the system is not very secure.
what's your plan to get more, well, I don't even know how you would do it, but it sounds to me like you would need more validators. Am I right?
I'm sorry. I don't know that it's fair to say that we admit the system's not very secure. I mean, security is a very, very dense, complex topic and there's a lot of dimensions to it. And in some ways, well, I mean, but earlier when you said that it would only take five validators because of the way things are delegated to have 30 free. Sure, but it only takes like three mining pools to, you know, to collude.
to have a 51% attack on Bitcoin.
So it's already more decentralized than Bitcoin.
Okay.
Okay.
So you feel comfortable with where you guys are at?
You don't feel...
We're sure that this is the right way to do it.
And here's one more example.
Well, okay, first I want to address your point earlier.
Once there is an attack, those validators who conducted the attack and they're greater than
one third of the total stake that was bonded would disappear.
they would get slashed out.
And there would be, say, 95 or 90 validators left,
but more validators can enter,
and the delegations would change to accommodate.
But, okay, so that's one aspect.
But I think the more important aspect and the greater purpose
or the reason why this is necessary for a scalable cryptocurrency ecosystem
is because with proof of work,
you're relying on miners who are so anonymous that it's really easy for a small chain or any chain that say not Bitcoin to get 51% attacked.
And like I mentioned earlier, the miners would not get punished much.
I mean, they would not be found.
Their energy would be wasted.
But that opportunity to cost is small compared to how much they might gain.
And so with a proof of work system, or if you only had proof of work, you can't really have more than one secure blockchain.
With proof of stake and tenement Byzantine fault-tolerant-based proof of stake, especially,
the security of one chain is independent of external actors, no matter how much computation power a nation state may have,
if one blockchain and their validators didn't want to double spend the chain, then they will remain secure.
There's just no way for an external actor to affect a security of a chain in a proof-stake system.
Okay.
And what you mean by that, because that was a question I was going to ask you later on.
So what you're seeing is a nation state can go to a miner on a proof of work,
blockchain, and shut down their mining equipment or cut off their access to electricity.
But here, they can't force somebody to unbond their state.
I don't know if I've used the terms correctly, but they can't force them to move the coins out of their stake.
Is that what you're saying?
I mean, any actor, including a colluding set of powerful miners with powerful electricity and mining infrastructure,
could attack any other chain as long as their mining equipment and a proof-of-work algorithm or, you know, compatible.
And largely they are.
Whereas in a proof-stake system, you can't attack that externally with proof-of-work.
or computation power.
So even if, no matter how much money an organization or even a nation state were to have,
sure, if they were to cut all the access to, you know, the global internet infrastructure,
or then, you know, everything's off the table.
But, you know, beyond that, it's a very secure system.
Okay, this is interesting.
But one other thing I wanted to ask about the number of validations,
you have. So in your white paper, you showed how with 64 validators, you can get about
4,000 transactions per second, or it was in the single digit thousands. But it wasn't tens of
thousands. And, you know, over time, you guys plan to increase to like 300 validators. So would that
then decrease the amount of transactions per second? Because in the white paper, the graphics show that the more
validators you have, the fewer transactions you get per second, like when it's, you know,
four or whatever it was like in the tens of thousands. But so how, how do you plan to, you know,
kind of increase the number of validators, but then also keep the throughput high? So that paper
was describing the performance characteristics of tendermint. And largely, the biggest thing that happens
with many, like a lot more validators, say a thousand validators versus 100,
is that your block commit time gets, gets slower.
So as opposed to say five second blocks, it might take 15 seconds.
But the reason why is because this kind of consensus system that we're building
classical Byzantine fault-tolerant algorithms that tendermens based off of,
requires quite a bit of communication overhead.
So that's why we limit it to 100 validators today.
But I would say that a blockchain, you know, a public blockchain especially,
should really be a ledger, an application that can run on any laptop.
It should be able to run on a typical workstation.
And so because otherwise developers don't have access to it, right,
the blockchain should be accessible,
anyone should be able to sync with it.
So I would say you don't want that many transactions per second on a single blockchain.
Instead, what we focus on is providing horizontal scalability by allowing coordination
among many blockchains in order to get overall higher transaction throughput.
And by that you mean, like you'll have multiple hubs that are working within the Cosmos network.
And so people can, if one hub is kind of at its max, then they can just go to another hub.
Is that what you're saying?
Primarily what I mean is having many zones or many blockchains connected to a hub.
So by virtue of, say, having 100 blockchains connected to the hub, you get 100 times a throughput than having a single blockchain.
But you can also have a hierarchy or it doesn't have to be a hierarchy.
you can have a network of hubs as well.
Okay.
That's interesting.
So one other thing I want to draw out not only for the listeners, but also for myself,
because I've heard this term so many times.
And I think I sort of understand it, but I could not explain it in simple terms to somebody else.
So that's why I'm not really sure if I understand it.
So when describing your consensus algorithm, you're always talking about practical Byzantine fault tolerance.
what exactly does that mean?
Practical Byzantine fault tolerance was a consensus algorithm that was described, I believe, in a 1999 paper.
So I'll just give a really brief history of these non-proof of work, classical Byzantine consensus algorithms.
It started with in about the 70s or so.
So in academia, into papers, in literature, there had been a lot of research into Byzantine fault-tolerant consensus algorithms that don't use proof of work.
And then, of course, in 2008.
But can you describe what Byzantine fault-tolerant means?
Okay.
Byzantine means arbitrary or malicious behavior.
So in a public blockchain, because it's an open system where,
anyone can participate, you need to be able to tolerate arbitrary behavior, especially
behavior that is malicious in trying to attack, say, fork the blockchain. So Byzantine fault
tolerance means the ability to tolerate malicious behavior. And there's always a, there's always
a limitation to how much fault tolerance, a consensus system can tolerate. And in proof of work,
that's 49% of malicious proof of work mining power.
And on the flip side of that, okay.
But in tendermint, it's 33% of voting power.
The reason why it's 49 versus 33 is because in tendermint,
we designed a system to be fast.
So it's based on what consensus literature calls a partially synchrony,
model, which just means essentially you're trying to make progress as soon as possible,
and you're acknowledging that the network might have some delays.
Bitcoin can tolerate slightly more, 49%, but it's also slower.
Block times are 10 minutes each, and you have to wait an hour.
And all of that is because it makes the assumption, it makes less assumptions,
or actually stronger assumptions about the network, and it requires
that much time to ensure that blocks can fully propagate.
Does that answer your question?
I think so.
So Laura, can you explain to us now, what Byzantine fault tolerance is?
So basically, it's a way of designing a system where the system can still be secure,
even if there is some threshold of, or under a certain threshold of bad actors.
Is that?
That's right.
That's right.
That's basically right.
So the industrial context for this, the reason academics started working on it is because
humans decided they wanted to use computers to fly airplanes.
And when you put a computer on an airplane 30,000 feet in the air, it's in a very hostile
environment.
There's a lot of incoming radiation and the bits could arbitrarily flip and the computer
could fail in weird ways or not just crash, but explicitly do something that it wasn't programmed
to do, like some incorrect behavior, right?
And so the challenge that was posed to the researchers was, how can you build a consensus
system between the computers that are on an airplane that is fault tolerant, not just to some
of those computers crashing, but even to some of them doing something incorrect. And, you know,
as part of that, it meant, well, there had to be some kind of a voting algorithm in there so that
you would need a quorum, you know, like some kind of supermajority or something. And so that
you would only say that, you know, something happened once that large set had agreed on it.
And even if some of the computers, you know, are failing in arbitrary ways and telling
you incorrect information, you know, the system would still be okay and your airplane would still
fly straight. And so that was kind of generalized over time to, you know, how can we build
these systems that operate over the internet with many different stakeholders that are
participating where they all can stay in sync. They're basically sharing a database, even though
some of the participants might be explicitly malicious or adversarial. And the word Byzantine
has come to represent any kind of arbitrary, you know, non-proticle following behavior, right? So
anyone that's acting incorrectly according to the rules of the protocol is effectively
Byzantine.
And so what's unique about the Cosmos Hub and where its security comes from and so on is
the fact that it's really the first system to use classic Byzantine fault-tolerant
consensus protocols on the public internet with real economic value at stake.
And to even have, you know, only, quote unquote, only five, you know, distinct stakeholders
in multiple jurisdictions across the world, you know, with more than a third of the stake is a huge
step forward for, you know, computer science and economics in some sense. So, you know, as much as we'd
like to improve that further and maybe five isn't enough, it's still a huge gap from what was previously
just one entity. Right. But so I'm glad that you circled back to this because I did want to ask also
about what happened during the game of stakes, which was this competition that you held in TestNet,
because it looks to me like there were some participants who showed how easy it would be to create a cartel amongst the validators with an incident about involving a group called Bitfish.
So can you describe what happened there?
And then just describe that story first.
Sure.
So I think it's important to understand the difference between the game of stakes test and the main net.
Right.
They're very different conditions.
And when we kind of set out to do game mistakes, you know, there were a few things we were going after.
And it's possible that we conflated too much at once and that, you know, in future iterations of a game mistakes-like thing, you want to disentangle the different goals.
And so one of the goals was really to prepare validators for, you know, adversarial scenarios and staying online and securing their private keys and, you know, actually operating the network, right?
Because we want experts, basically, to be involved in this.
And so game of stakes offered people a real ability to do that.
The other thing we thought we'd be able to test,
but I think probably turned out not to be the case,
was the actual economics of the system.
And the reason it wasn't an accurate test of the economics
is because it was just a short-term game
with a minimal amount at stake, right?
So no one had to pay to actually participate.
You know, there were expenses to running servers,
but no one had to pay an entry cost.
And there was nothing, you wouldn't lose anything, right?
So because you weren't putting anything up,
if you did something wrong, you weren't going to lose any money.
There was some reward on the table, you know, in the form of Adams.
But it's very, and it was a short-term game where your reputation wouldn't be damaged
if you attack the system maliciously.
So the game mistakes context is very different from Mainnet.
And so it's hard to really draw too much learnings on the economic side from game
mistakes and apply them to Mainnet.
What did happen on Game Mistakes, which was, you know, it was very interesting to see is that,
so first of all, to participate in game mistakes, you had to,
to complete a K-YC process, right? So we collected quite a bit of information about the participants,
and that was required for participation and to actually potentially receive the reward.
And so what happened was-
And just a curiosity, why? Why? If there wasn't real money? Oh, oh, because they were being
rewarded at the end? Yeah, the reward was in Adams, right? And so basically the foundation,
who, you know, the Interchange Foundation, which coordinated the game of stakes process,
said that of its allocation of atoms in the Genesis block,
it would recommend that some of those go towards the winners of game mistakes,
but in order to do that in a regulatory compliant manner,
it collected KYC information from all the participants and so on.
And we also expected that by collecting KYC,
it would prevent anyone from mounting a civil attack on the system or on the game, right,
so that no one would just be able to kind of knock out the game
by taking over with 33% of the vote.
But what ended up happening was there was a civil attack
where some group, this Bitfish group,
ended up collecting, you know, signing up,
using a large number of their relatives and friends and so on
to actually register in the process
and completed the KYC for them,
but thereby ended up controlling a significant amount of stake.
And this was actually a number of people
claimed to have detect this very early on
when they saw, you know, a bunch of nodes come online at the same time
and so on.
And I think people were really curious to see
how it would play out. But what ended up happening was they basically came to control
quite a significant portion of the state on the network. And so the rest of the, the rest of the
validators, the rest of the participants basically coordinated to have them removed, right? So they
basically mounted a hard fork to remove that cabal from the validator set and to move on
without them. Yeah. Did I read that they eventually collected 55% of the voting power? I think
I think that's about right, yeah. Wow. So do you feel like the resolution that the remaining validators came up with is something that would actually happen in, in, you know, a normal situation, not in a test net situation?
It's conceivable. I don't know. I think a single validator collecting that much. So there were also some parameter changes on the game of stakes that made accumulation of stake in the large validators happen a lot more quickly.
and so, you know, that's not the case on main net.
So attaining that much stake in one validator is probably, you know, far less likely to happen, if at all.
If it did happen, I don't know how the rest of the network would respond.
It's possible they would do that.
It's possible they would start by, you know, petitioning online to say, oh, you know, you should decentralize,
reduce your stake.
It's kind of like what we saw with, I think it was gigahash, the mining pool a few years ago.
In Bitcoin, you know, they had close to 50%, or at one point over 50%, and there was a large
social effort to have people, you know, point their mind or somewhere else to reduce their
stake back down. And so, you know, it's possible the same kind of tactics could be used here.
So let's move on because we're running out of time. One other thing that I was curious about.
So, you know, I totally get how Cosmos is interesting because it enables this interoperability
between chains. But in a way right now, we have something like that on Ethereum with all these
decentralized apps being able to interact with each other. So why should a developer build a
blockchain using Cosmos rather than just launching a decentralized application on Ethereum
where they can tap into this whole ecosystem that's been built there?
So the main difference here is the developer environment, right? So on Ethereum, you're confined
to the Ethereum virtual machine, which is a very limited and almost a toy version of an execution
environment and you're stuck with the languages that were built for that virtual machine,
which are very young at most a couple years old. And they're maturing and everything's improving
over time. But compared to a well-established language like Golang or Rust or JavaScript or anything
that people have been writing in for a decade, if not longer, the Ethereum development environment
just pales in comparison to that. So if you want to be to free yourself from that and to use,
you know, mature language tools and developer tools that you've been using potentially for decades,
and build a blockchain application in that, you know, kind of much more friendly and mature development environment,
you know, Cosmos offers the opportunity for that.
I want to be fair to the Ethereum system in that there's definitely a need for a scripting system,
say a flexible way to upload arbitrary logic onto a chain.
And so I think that is a fantastic idea.
It allows for interoperability within a single chain.
So that's great.
that will remain, and I believe solidity will remain a useful and an important part of the cryptocurrency
ecosystem.
But there are some limitations to this.
One is you're reliant on, as of now, a single chain.
So there's only so many transactions per second that the Ethereum main net can handle.
But also, in the case of, let's say, conflict, right?
So if you remember what happened with the Dow hack and the hard fork that happened from the Dow hack,
there was a lot of discussion and contention about what to do about that situation.
So in that case, what happened was the chain itself split into two because there wasn't a good governance system built in.
But you can see how, in the case of contention for all,
kinds of issues in the future day will be more issues like this in general as as cryptocurrencies and
blockchain ecosystem matures and grows it's necessary to have to provide sovereignty to a collection of
a community that wants to run their own chain so by having the cosmos network and allowing any
blockchain to have their own validator set and their own application logic and their own rules and their own
governance. We believe this is necessary to accommodate everyone in a large new token economy.
And so there is this proposal for something called Etherment, which is Ethereum running on
tendermint. So it's not clear to me how, like, how would that be different from Ethereum?
Like what could people do in Etherment that they couldn't do in Ethereum? Or like, why would
they prefer that environment over Ethereum. And also, is this like something people are actually
working on? Or is it a proposal? I couldn't figure that out either. So it is, it is a real project.
It's in, you know, it's in, it's in development. It's still in, you know, it's still kind of alpha software.
I mean, everything is still kind of alpha software, but Etherment, Etherment in particular.
We've, we had an initial version, you know, a couple years ago, and we've rewritten it to use now the
Cosmos SDK so that it can integrate very nicely into the Cosmos Network. And the idea there is
kind of like Jay was saying, you know, as much as as as kind of young and novel as the Ethereum
Virtual Machine is, it's still extremely valuable to have that kind of a scripting engine where
you can just like upload code on the fly. And, you know, there's a huge developer community there
and there's a ton of interesting work happening, you know, being built on top of the Ethereum
version machine. And so, you know, what we built with Etherment was basically a way,
to support anything you might build on the Ethereum virtual machine, but now running on,
instead of it running on proof of work like it would on the Ethereum mainnet, it can run on top
of tendermint, right? And so, you know, you can do anything you could have done on Ethereum,
but now you can do it faster and with lower latency and on a, you know, on a blockchain
where the validator set of that chain kind of has more sovereignty compared to the rest of the
Ethereum network. So, but the one thing you can't do if you're using Etherment,
is communicate with all the other smart contracts that have been deployed on the Ethereum
Mainnet because you're on a different blockchain.
Of course.
Oh, you can't.
Oh.
So not immediately.
If you stand up in Etherment.
Right.
So anyone could take the Etherment software and run an Etherment blockchain with some
validator set and they could deploy, you know, they could take any contracts that
they've written for the Ethereum Mainnet and they could run those on their Etherment deployment,
right?
But it's an isolated blockchain.
And so unless it's connected up through the Cosmos Network to everything else, you know,
it kind of stands on its own.
And even once it is connected up,
it won't have the same kind of access
that a contract on Main Net Ethereum
would have to the other contracts on Main Net Ethereum.
So we're working on that interoperability piece,
but it's still a little bit away
and it'll be a different kind of interoperability
than you would get if you deployed directly to Main Net.
So if you want to talk directly to other contracts
on Main Net Ethereum,
you pretty much have no choice but to deploy a contract
to Mainnet Ethereum, right?
Okay.
So it's not like you would create like MakerDow on
etherment and then suddenly like people would be using the etherment die to you know i guess take
out loans using dharma or or put that money into compound and earn interests like so it would
basically you'd have to create that whole new ecosystem exactly so you could replicate all of that
defy stuff on top of etherment on cosmos the benefit of doing that would be that there could be
a much higher throughput right because you could have well first of all it's running on tendermint so it would
be much faster than on the proof of work public Ethereum blockchain, but because we can also
have the vertical scalability through having multiple Etherment blockchains that are able to connect
to one another, you could get, you know, you could overall run more, you know, they wouldn't
have to contend with, say, Cryptokitties say, right? The CryptoKitties transactions could be on one
Etherment blockchain and a bunch of the other DFI stuff could be on another and, you know,
and that way you'd be able to have higher throughput through the system. Well, I just wanted to add here that
we're focusing on token interoperability to start, but we will be designing our tech so that eventually
it will be possible to also make cross-chain smart contract calls.
But our focus with the Cosmos Hub certainly is just to focus on the token economy to start off with.
but IBC Peggy, which is our IBC equivalent to connect to Ethereum, eventually can be used for any kind of cross-chain interoperability.
All right. And actually, I'm glad you brought up tokens again because I did also want to ask about atoms.
So what do atoms do in the cosmos network? And for at this moment, if I own atoms, what can I do with them?
Adams are, we call it a staking token.
So it's not meant to be a currency.
It's certainly not a stable coin.
It's not meant to be something that you transact with regularly.
But it's maybe analogous to virtual Bitcoin miners in that it gives you a voting power on the Cosmos Hub.
So when you stake, your staking tokens, your atoms,
You can participate as a validator or you can delegate your state's tokens to any other validators.
And that gives you access to governance.
You can vote on proposals.
It also gives you access to transaction fees.
So you can earn transaction fees and any block rewards in the future.
Yeah.
And since you also mentioned governance, I mean, you did mention it earlier as well.
It sounds like it's done on chain.
Can you describe how?
that works? Yeah. So it's a very simple government system where you can make any proposal you want.
So the last proposal that passed was just written English. And the idea is that as long as
more than 51% of the bonded stakeholders vote in favor of that proposal, it passes. So there's
a social consensus layer too. And so you can imagine there being an implicit constitution.
that's also implemented in a code.
There's also a bit of a twist in that a one-third minority can also veto.
So even though a proposal passes, it's possible for it to be vetoed in case there's a small
minority that is strongly not in favor of that proposal.
But that's the basic idea.
And soon we will have parameter changes as well.
So through governance, you can tweak the parameters of this blockchain.
And certainly you can upgrade a chain through plain English proposals.
But in the future, you can imagine we'll also implement automatic upgrading as well.
And then earlier in the podcast, we talked about some of the other, I guess, these are blockchains that are building zones.
I think I'm just blanking on the names.
The Cosmos SDK.
There's short names.
There's two.
Like Iris and Lino.
Yeah, yeah, exactly.
Lino.
Yeah, yeah.
So, but I think there aren't there other ones that are using tendermint as well?
Like, isn't Binance decks using tendermint?
Yeah, and we believe a variant of the Cosmos SDK.
So there's actually a very large number of projects building either directly on
tendermint, or using the Cosmos SDK. For instance, Lume, which is a project that's built around
pegs to Ethereum, is built on top of tendermint. And then, you know, there's many others as well.
So there is this kind of... So in the short term, like, which would be the chains that would be
interoperable? Well, it's up to them. So the ones that are using the Cosmosis SDK will get the
interoperability kind of out of the box when that, when those features land in the SDK. And others would
have to kind of either pull them in or make it work within the framework they used to build
their blockchain application. But they would, you know, the goal of the IBC specification is to
make it general purpose enough that anyone would be able to implement it, you know, and be
compatible with it regardless of what, of how they built their application on top of tendermint and
down the road on top of other consensus algorithms too. And there are other frameworks besides
the SDK that people are using as well. So there's lotion, which is, um, which is, um,
an SDK for JavaScript.
And some projects are even implementing their own or foregoing any frameworks and building
directly on top of tendermint.
So, for example, there is the Thailand National ID project, which is built directly on
tendermint.
And in the future, they can also interoperate with the Cosmos Hub through IBC.
All right.
And so now Tenderman, the company, has launched Cosmos.
but you guys also recently raised $9 million led by Paradigm,
which is the crypto VC firm that was launched by Fred Erson,
the co-founder of Coinbase and Matt Huang,
formerly of Sequoia Capital.
So what's next for you guys?
Like, what are you focused on?
Just a bit of clarification.
Tendermint is the software provider,
and it was the Interchain Foundation.
Technically, that launched a chain.
Oh, okay.
Yeah, but no problem.
it was the community that launched the chain
let's be real here
it wasn't decentralized
neither the company nor the Interchain Foundation
were actually running validators
so the network launched completely independent of
those entities which I think was quite cool to see
in case anyone from the SEC is listening
or anyone else who's interested in this decentralized
launch of cryptocurrency networks
We're currently focused on completing the infrastructure, so IBC is a big one.
Peggy is the next.
But tenement to companies also soon after we're done with all of this.
We'll be developing actual applications.
So looking for a sustainable source of revenue in two prongs.
One, something into financial space and something else that's a little less financial
that we can't talk about yet, but would love to discuss as soon as you can.
Okay.
Well, I guess maybe I'll open with that the next time I have you guys on Unchained.
So where can people learn more about you and Cosmos and Tendermint and the Intertained Foundation and et cetera, et cetera?
Lots of respective websites.
So the main cosmos website is cosmos.network.
And especially if you check out, you know, cosmos.
dot network slash launch.
There are a list of block explorers there where you can go, you know, there's a whole bunch
of community built block explorers where you can explore the network, see the validators.
There's also Looney, which is listed there, loony.io, which is a wallet system that was built
for interacting with the Cosmos network and exploring it.
And then Tendermint, of course, tendermint.com.
And that's a site both for the company and for the product, Tendermint.
And then for the Interchain Foundation, there's interchane.io, which is just the home page
for the Swiss Foundation.
Great. All right. Well, thanks so much for coming on Unchained.
Thank you so much for having us.
Thank you, Laura. It's been a pleasure.
Thanks so much for joining us today.
To learn more about Jay and Ethan and Cosmosin, Tenderman, and the Interchain Foundation,
check out the show notes inside your podcast player.
If you are not yet signed up for my email newsletter, go to Unchainedpodcast.com right now
to get my thoughts on the top crypto stories of the week.
And be sure to check out our new channel on YouTube.
Unchained is produced by me, Laura,
with all from Rayleigh Gallup Holly for actual recording, Jenny Josephson, Daniel Ness, and Rich Struffolino. Thanks for listening.
