Privacy in Cosmos Live: Billy Rennekamp (Interchain) - Sovereign Interoperable Privacy
5 May 2022 · 16:12
Recorded live in Amsterdam at ZKValidator's Privacy in Cosmos event, Billy Rennekamp of the Interchain Foundation presents on sovereign interoperable privacy across the Cosmos ecosystem. He examines how privacy-preserving, zero-knowledge techniques can work across sovereign, interoperable chains connected by IBC, rather than being confined to a single chain.
Speakers
Topics
Transcript
thank you very much thank you for having us uh good morning everyone i know it's early so uh try to make the talk very simple friendly lots of emojis um don't be frightened by a very long title sovereign interoperable privacy um let's get started so quickly about me my name is billy renincamp um from louisville kentucky the home place of yeah hell yeah one place of bluegrass music thoroughbred racehorses and bourbon whiskey so if you'd rather talk about that today instead of cryptography or crypto come find me i'm the cosmos hub lead at interchain so i lead the development of the cosmos hub previously i was developer relations at tendermint uh did a lot of work prior to that in the ethereum space on bonding
curves nfts did web development and a background in electronic art so again you know we have a chill out zone come talk to me about any of that independently i have a nft gallery called folio.app and a generative nft project called clover's network but today i want to talk about the cosmos philosophy and why it really makes sense for building especially privacy suited blockchains uh but what is the cosmos philosophy oh wow we've got the android emojis this is going to be exciting so cosmos is all about sovereignty and interoperability and i'll go into more detail about exactly what that means and why it really works but before that i thought i'd give a little bit of a tour some of the other philosophies from other blockchains so uh bitcoin you can think of uh as in
some ways doing well on the sovereignty front uh you know they do one thing and they do one thing well and so that means that they have sort of uh everybody sort of on board for the purpose of this blockchain you know it's just meant to be a store of value it's gold what's missing here was the little uh emoji with the british guard because as sort of like solely focused on one thing they are quite insular they don't really care about the rest of the world they say this is the only blockchain that matters is the only thing that matters and so interoperability bridging to other blockchains you know interoperating was never really part of their their goals so they do sort of well on the sovereignty part you know it's their blockchain doing their one thing but they really fail on the interoperability
aspect um ethereum you know they do a lot of things they they try to make everything happen at once which is great you know you've got like a stadium where you can all get together and when you're all in the same space it's really easy to interoperate you know you have access to smart contracts from smart contracts atomic transactions between them but it doesn't really scale i mean you you know the sort of disaster zone when you have a stadium that's filled with too many people how bad it gets and the other problem with that is that unless you're in the stadium you don't really have access to the other people and the services that are happening there and when you try to scale that you get overcrowded block space and the missing emoji here of course is a gas canister that's sort of the the fallout that what
happens when you're all trying to do the same thing at the same time whereas cosmos we try to hit the sweet spot of sovereignty and interoperability and quickly i'll talk a bit more about sovereignty so sovereignty means that you have sort of uh an application specific blockchain it does the one thing that you want it to do and it does that really well you're not sort of dictated by the other users on your blockchain who want different things from you in ethereum of course back in the berlin hard fork last year all of these aragon smart contracts broke because they changed the hard-coding gas costs for one of the transactions because it was just one user amongst many and they thought yeah this change is going to be better for everybody but if you're a small fish in this pond you kind of get wrecked
inoperability of course is when you have an application specific blockchain you don't have shared smart contract zone in which everybody sort of has immediate access to each other and so you need to create protocol which we have is ibc in order to talk to other blockchains so this little diagram you can go to see bitcoin kind of has sovereignty lacks interoperability ethereum lacks the sovereignty everybody's trying to do their own thing but they're using the same space they do okay on interoperability as long as you're inside of their walled garden whereas cosmos prevents presents and promotes sovereignty as well as interoperability why this matters for privacy sovereignty is a stand-in for privacy when you have sovereignty you can change
your blockchain in any way that it needs to and that's especially relevant when you want to introduce privacy to different levels of the stack so you can think of the cosmos sdk as this modular framework that's separated between the application layer the consensus layer and the networking layer if you want to add privacy to the application layer you're able to do all these sorts of fun things that we see from different projects talking today like penumbra enoma secret network and nem they're able to sort of design their blockchain to have the features that they need specifically they can customize it you know so it meets the needs of their application it's application specific it does just what they need you can also add privacy to the consensus layer so there's ongoing work at osmosis to add um encrypted mempool so that you can
prevent minor extractable value this is where you have the transactions themselves are encrypted until they're included in a block and only then do they get decrypted so you don't know what the other transactions are inside of the mempool this sort of modularity allows you to make changes at each levels of these stacks you can introduce this kind of customization there's also networking where nim and palumbra have different aspects of cloaking or interacting at the network level adding cryptography and celestia doing uh god i just forgot the word erasure encoding uh not exactly at the networking level but relevant to that sort of aspect of the stack so all together cosmos is sovereignty plus interoperability sovereignty being a stand-in for privacy
allows you the customization to sort of build your application specific blockchain to your needs and your users needs so how does that look here it's modular all the way down uh just a bit of an overview how do we achieve this it's it's the cosmos sdk is the application framework where you can see the stand in for the cosmos hub it has a protocol between that and the networking label called abci and so this is a separation between what your application does and how the consensus is achieved and the networking operates and because all of these separations means that you can make changes at one without having to make changes at every single level so it allows you to jump in just where you need to as well as ibc um ibc we have a talk later today as well there's sort of a
possible future development introducing zero knowledge proofs at that level as well so each of these pieces are sort of ripe for for targeting and elaborating extending and adding different privacy capabilities and then so uh this is the way the world works right now you can jump in and do any of these sorts of things but what i'm really excited about coming next that offers another sort of interesting configuration is interchange security so entertain security is basically a separation of concerns from the uh validation and block production of your network from the application layer interchange security means that you can take a blockchain like the cosmos hub and use the same validator set there and the way that this works is basically every blockchain looking back to
this set uses abci to communicate with the consensus layer abci says hey who's allowed to produce blocks on this network inside of the application state typically you'll see proof of stake module that says oh i've got a bunch of stake representing these different validators they're the ones who are allowed to produce blocks that's great but if you don't want to build your own validator set you don't want to worry about that part of your application say your application is extremely focused on just one very specific thing you're like okay i don't really need a token for this or hey i don't really need to introduce this whole validation system or recruit all these people to operate it you're able to use the same validator set of the cosmos hub use the staking module of the cosmos hub that says these are the ones who are
allowed to produce blocks and instead of using abci to talk to your own state machine that says these are the validators use abci to talk to the cosmos hubs set of validators they're the ones who are given permission to produce blocks on your blockchain so your blockchain just does what it's supposed to do at the application layer that's interchange security that was kind of fast um do we have any questions here please yep
is what exactly you had um your unboxing and you wanted to uh actually maybe not share default validators with the possible setup but like have multiple instances of your own changes would that also be reasoning yeah actually uh so that's yeah so the question was um restatement of basically entertained security but the question was if i have my own blockchain can i have multiple instances in my own blockchain with the same validator set is that kind of being able to have validators work on both instances of the chain yeah so we like to say there's two ways to scale a blockchain
there's vertical scaling and there's horizontal scaling vertical scaling is where you basically make changes in order to increase the number of transactions per second you know there's all sorts of tricks bells whistles and band-aids to sort of maximize the number of transactions per second that we've seen across the entire blockchain space there is like a physical limit you know to how many transactions a single state machine would eventually be able to do even with all these improvements and so at that point we like to think that horizontal scaling is the way to go and horizontal scaling is essentially taking one blockchain and just redeploying it you now have two instances so it can process twice as many transactions however traditionally if you launch another blockchain who's producing blocks on that network you know you need to start a whole new staking token you
have to raise value for that if you want to have the same security and so instead of having to rebuild that aspect of the blockchain you can replicate the validator set with interchange security and that's basically how we're approaching the cosmos hub right now so a couple of the first projects launching with interchange security later this year are projects which could otherwise be deployed directly to the cosmos hub um now one nice aspect of that is now that you have two instances of these blockchains running you know you sort of double the capacity for the block space but the other really nice thing about that is that it decreases the surface area of complexity and faults on the cosmos hub so if the cosmos hub needs to be this super secure blockchain that's never stopping running you know atoms need to flow all day long how do you add
more and more features without introducing more risk of a maybe there was a bug there maybe we're going to have a chain fault you push it off to a separate blockchain so the cosmos hub all it needs to do is just export the validator set over ibc to this other blockchain and if that blockchain has a bug it stops maybe something bad happens doesn't affect the cosmos hub it's able to continue producing blocks continuous shipping you know this is the validator set once this other blockchain comes back online it's able to get all the sort of updates and keep running but it's it's uh sort of created fault tolerance around the sort of application state which is a really nice feature and exactly why we're sort of approaching it because we do think cosmos hub needs sort of the highest integrity of security should not
be introducing unreasonable risks and pushing it out to interchange secured zones as a way to sort of be much more adventurous on the features that can go on the cosmos hub without introducing extra risks and this same concept can apply to any other blockchain it's a bit like multi-threading for a blockchain you sort of are able to separate the concerns and maximize the throughput as well as uh yeah like i said separate the concerns question from will so one of the main reasons you would expect chains to uh continue to uh like launch with their own validator set as opposed to like inherit whichever one is the largest like the cosmos hub sometimes the validator set does more than producing blocks and um you know i
can imagine that offers a level of complexity that they might decide oh my validators need to be much more than just block producers they also need to be x y or z and when those concerns overlap really well then i think it makes a lot of sense uh sometimes there's aspects of the token economics that really you know demand or or make sense when you have an independent validator set um one aspect that i like that i think is going to become more visible is actually the separation of concerns for what the duty in the job of a validator is so right now on cosmos chains the validators produce blocks yes but they're also governmental representatives when you delegate stake to your validator you sort of give them the ability to vote on your behalf now
we have liquid democracy so if you ever disagree with what your validator is voting for you can put in your own vote that goes against it so you always have access to your own tokens to vote in part of the protocol but generally most people just let their validators represent them we've got a lot of feedback from validators that they actually feel conflicted about this you know they're top of their game producing blocks running infrastructure uh but that doesn't mean that they necessarily have a really well informed decision or opinion about like the application that they're running the d5 protocol itself you know they don't know necessarily the parameters for the inflation et cetera you know let them do the one thing that they're really good at running infrastructure and let the other people who are you know informed in the application perhaps be more present and
active at the at the governance level and when you have a separation of concerns with interchange security you're able to sort of say okay cosmos validators you're you know the longest validator set you've been sort of the oldest the best you've you've made the trail you've made learned all the lessons like do the thing you're really good at produce blocks but let's have a separate governance token on my interchange secured zone and you're able to reproduce basically the same governance system except for instead of being a block producer and a representative it's just representatives when you enable that you're actually able to expand the set of validators on that consumer chain is what we call the sort of chain that's consuming security um in order to have way more than you know 100 200 300 which is sort of the
maximum set of validators we see in cosmos chains today because it doesn't have the same implications you know when you have massive massive validator sets you potentially have slower block times there's more network congestion but when their only job is to be governmental representatives you know it can be sets into the thousands or more any person can say hey you know what i'm really active i really understand what this project's trying to do i'm gonna register as a as a validator you know it's in quotes because they're no longer asked to produce blocks they're just asked to produce governance votes and hey delegate to me let me vote on your behalf because you know that i'm spending every single day in the discord i'm spending every single day on crypto twitter and i'm really really excited about doing this work and what's kind of interesting is when you reproduce the
governance system that we currently have these purely elected individuals are able to charge a commission on the block rewards you know they actually have a really interesting way of earning money for being active and part of the validator set you know hey let me charge 10 of every block award because i'm going to do a great job making this network valuable i'm going to make sure that we continue to sort of improve it in the right way they can get the delegations they can earn an income for this and all they have to do is just care about the protocol they don't have to care about producing blocks because i think if you look around there it's actually really hard to produce blocks and you know we see protocols who are launching with thousands of validators or have goals of millions of validators and there is sort of this question like
can you expect millions of people to be able to run really high quality infrastructure because it's not uh it's not nothing to produce blocks so um it's another sort of nice nice characteristic that comes out but again there are certainly lots of value in launching the traditional way it's new technology you know i think everybody's always a little bit nervous about trying things out new but i think we're going to see a nice sort of testing ground where those new ideas show their value any other questions that went way faster than i thought i'm really sorry i uh didn't get we're on time look at that amazing
cool um well thanks very much i look forward to the other talks today and all the other projects coming up thank you