ZKV presents Privacy in Cosmos: Scalability Edition - Celestia

14 Jan 2022 · 14:30

John Adler of Celestia speaks at ZKValidator's Privacy in Cosmos: Scalability Edition, an online event supported by the Cosmos Hub. The talk covers scalability approaches within the Cosmos ecosystem, including Celestia's data availability layer, and how they relate to privacy-preserving techniques in modular blockchain design.

Speakers

Topics

Transcript

so welcome or hello everyone my name is john i'm here to talk about uh an introduction to module blockchains and the modular blockchain architecture uh this will be a very brief introduction but if you haven't heard of this before well first of all you've probably been living under rock but also there's a huge amount of uh writing out there over the past few months on this topic uh but okay let's start a bit about me i'm john adler i'm one of the co-founders of celestia labs and we are developing the celestia blockchain previously to this i was a scalability researcher at consensus where i created the optimistic role design paradigm and my interests in the space are

primarily focused on blockchain scalability and especially roll-up constructions of various flavors and varieties and techniques all right a little bit about celestia celestia was previously known as laser ledger until we rebranded a few months back and it was the first blockchain specifically designed with a modular architecture in mind and we'll cover in a bit what this modular architecture means and in this modular architecture stack uh celestia is a general purpose data availability layer which we'll also cover a bit what each of these words mean okay so first of all what is data availability before we recover what is a

general purpose data availability there what is data availability uh period uh and this is actually a topic that uh confuses a lot of people because it sounds like it could be something intuitively but it's not so what is it uh data availability or unavailability is not uniquely attributable so you can't really say that say some piece of data is not available because one particular party individually is at fault uh you could say that a group of people potentially is at fault but you can't really say one particular party is at fault uh there's

uh and there's kind of two properties that it has uh so data availability is that uh the claim or the property that some data has been published to the internet and if we assume that the internet never forgets about interesting data uh then the data will never be erased you could recover it later or so on but there's no person who's responsible for storing that data it's simply has it been published to the internet at some point in time and as it's applied in consensus protocols it's if the data has not been published we have this nice security guarantee that a huge bond will be slashed so there will be a penalty that can be applied and this penalty is potentially

enormous if the data has not been published then we can verify that it hasn't been published so what isn't data availability it isn't data retrievability and isn't data storage so once something has been published to the internet we assume the internet never forgets and you can retrieve it even though it's very cumbersome but you don't provide any mechanism and trying to retrieve it it's also not data storage uh and this is important because there's a variety of data storage protocols like cya coin there's our weave there's file coin there's other variety of things there's also time stamping protocols like open time stamps i don't know there's a whole bunch of these but these things aren't fundamentally fundamentally data availability because

they do not give you the guarantee that if say some file is not available or some piece of data is not available there will be a huge penalty uh just as an example let's consider file storage protocols not every file coin user every person who runs a file coin full node downloads every single file that's available on filecoin right they only download some set of subset of files they're interested in if they're providing storage they only provide some small amount of storage that they themselves provide but no one actually downloads all the data that is what data availability is okay now let's kind of do a case study and an over hypothetical of one blockchain some

constant cost to verify blockchain and see why is data availability even important okay so let's consider a blockchain with uh recursive zero knowledge proofs for state validity so each proof attests or proves rather that some block is valid and more importantly the it builds you know if you do this recursively that means uh by induction that's building upon a block so the whole history is valid uh if you do this with certain nice techniques you can potentially get uh you can get it that the entire blockchain history can be verified in constant time with a single proof that's proves things recursively but there's a problem with this hypothetical construction which is well what happens if let's say you're using

proof of stake you know two thirds of validators or if using proof of work 51 of the miners they decide to finalize a block but they don't reveal the data that went into creating the zk proof they don't reveal the transactions for all intents and purposes in that case no one actually knows what the state is so you can't produce a new block now because data withholding or data unavailability isn't a uniquely attributed attributable fault you can't really tell or warn nodes hey these validators produce a block and it's unavailable because the only way to check that a block is unavailable in the in the naive case we'll cover some more advanced techniques there

but the only way in the native cases well the node that has been warned of this event just has to try to download the block and if it tries to download the block congratulations you don't have an of one blockchain you have a blockchain that requires you to download all this blocks uh so data data availability is key for all blockchains if you want a system that is fundamentally permissionless and not permissioned like channels for instance are permissioned you don't need data availability for channels but if you want a system that is permissionless that anyone can enter or leave at any time and that provides the guarantees of this decentralized blockchain you need all the block data that goes into the that goes into the state essentially that all the state transitions need to be

available okay how can i do with this without downloading all the blocks because that's a naive technique it's not exactly very good there's a paper on this fraud and data availability proofs uh it was authored this is co-authored by mustafa al-bassam one of my co-founders at uh at celestial labs and also vitellopederin back a few years ago it essentially uses erasure coding and random sampling uh razer coding is used in error correction and so on quite often and random sampling essentially uh allows you to instead of trying to download the whole block you download specific chunks of the block and then you use the serrature coding to try an error corrector to try and reconstruct the entire block so it transforms a

problem of having to download an entire block to having to randomly sample some constant number of shares or little pieces here in the square and it's secure under an honest minority assumption which means you don't need say two-thirds of validators to be honest to always commit to a block for the scheme to work because that would kind of defeat the purpose this scheme is secure if you have like a handful a few dozen maybe a few hundred nodes not validators but a few hundred nodes in the system that are performing these checks and most importantly it requires sub-linear work with respect to the block size as opposed to linear work so the block is let's say you know 10 000 bytes it would only require 100 on the order of 100 bytes as opposed to all 10 000. so this is a

sublinear in particular the cost is the square root of the block size uh so it's a very powerful scaling technique okay we know what data availability is what is a data availability layer uh it's a blockchain that only orders data and makes it available it does not execute this data and for how this works intuitively we actually go back to the original bitcoin design paper by satoshi nakamoto where he says right here and the first page i think no maybe the first page maybe the second page very early on in the paper he describes how to solve the double spending problem which is we need a way for the payee to know that the previous owners did not sign any earlier transactions this is you know we need to see there's no double spending for our

purposes the earlier transaction is the one that counts so we don't care about later attempts to double spend the only way to confirm the absence of a transaction is to be aware of all transactions so this is where bitcoin's implementation is an artifact or sorry the way people currently do blockchains where they tie together execution and data availability into one layer is an artifact of bitcoin's implementation but what satoshi here describes is actually the minimum requirement to solve the double spending problem which is you just need to know all the transactions take the first one ignore the rest he describes it right here plainly you do bitcoin however does not tell you all the transactions it only tells you all the valid transactions so it doesn't do this

bitcoin actually does not allow future attempts of double spending into the bitcoin blockchain they're invalid transactions but if even if they were in a hypothetical blockchain like bitcoin users could just run a node and discard those transactions even if they were invalid and this is the fundamental thing that a data availability layer does it allows data in without executing it so the data could be invalid it doesn't care and the nice thing about this is that blocks are valid if and only if they are available since there's no execution here there's no state route or anything and we just saw in the previous slide you can verify the availability of a block with sublinear work as opposed to linear work uh and even zero knowledge

proofs do not give you this property right the zero knowledge proof like we saw in the example before you still have the download in the worst case all the blocks so i mean this can be combined with zero knowledge proof so that the execution on top of a data layer can be made cheaper but you still need a data layer you cannot have a blockchain without this and have that blockchain be permissionless okay now what is the general purpose data layer how does it interact with this thing notion of sovereign roll-ups uh roll-ups as uh zaki just said not too long ago and i tweeted about jokingly robs are just blockchains they're blockchains like any other they need a data availability solution uh and roll-ups on ethereum roll-ups on

a world computer uh a lot of people think that's the only way to have roll-ups and they have certain restrictions but they don't roll-ups have certain properties but there's a lot of things in the design space that don't have to be the way they are in ethereum and on ethereum you implement a roll-up with a smart contract bridge and this roll-up cannot the logic execution of the roll-up and consensus rules can't be upgraded without a multi-sig or an on-chain vote so there's no soft fork there's no hard fork you have to do something like an on-chain vote and that could potentially be captured by the plutocracy roll-ups on celestia are different you can have a native bridge where the logic to verify zero knowledge proof or the logic to do a fraud proof for instance

is done natively you have native rest code go code whatever or whatever you use to code your your node and that is the thing that adjudicates that is the thing that verifies that the execution was done correctly and you can upgrade these rollups with soft and hard forks without affecting the data availability layer so this is where the notion of sovereignty comes in this ability to hard fork without requiring permission without requiring plutocracy where users can go just the node runners can go overrule you know rich whales they can overrule them and do whatever they want to the chain uh and this is you know fundamentally what all their one blockchains give you and this is what cosmos zones give you right the reason cosmos owns the

sovereign is because you can hard fork them without having to hard fork every other zone simultaneously because they're not in a world computer model but if you took a cosmos zone and posted a state on top of celestia you could get shared security so this is what you get the good thing you get out of sharding but without all the complexity of shouting and these zones will still remain sovereign because there would be a roll up on top of celestia and this gives you certain things like ibc without an honest majority assumption which is very powerful okay so to stay up to date uh here are some links so first one's me the second one is the uh celestia labs official twitter account then our website and finally a github organization all our code is free and open source

uh both the celestia full node various data availability sampling libraries and oracle tree libraries and so on it's all available on github okay so i see one question which i guess i'll try to answer but then not go over time too much uh can you explain why a da layer makes the data available but a d a layer does not make data retrievable okay so a d a layer what will provide you there will be an attestation by two-thirds of validators potentially billions of dollars of stake that this data is available you can then go and perform data availability sampling and verify yourself and everywhere in the world can do this for very cheaply to see is this data available or not and if it's not

available you and everyone else in the world can get together and a hard fork to slash those validators and potentially burn millions billions of dollars but outside of this the validators themselves and the nodes in the network do not provide any guarantees that you can go for instance to this particular validator and say give me this block in its entirety right they might serve you individual shares they might serve those requests but there's no guarantee that you can go to any particular node and say give me the entire block in its entirety and i'll give it to you if that makes sense yeah i i think it does make sense um

it's it's just it's a super it's a super subtle topic so we there's you know there's definitely uh more room for discussing this particular topic you know at a later time but it's a very subtle it's a very subtle and non-obvious topic well maybe it can be discussed a bit further in the in the panel that's coming up just now