wen EIP-4844 by Ansgar Dietrichs (@adietrichs) at @ETHDubaiConf

ETHDubai 2023 · 16 Mar 2023 · 29:12

Ansgar Dietrichs examines Ethereum scaling through EIP-4844, danksharding and layer 2 systems, discussing the path toward deploying blob-based data availability.

Speakers

Topics

From ETHDubai 2023, hosted by DeFi Dubai.

Transcript

one of our stars of the show hello everyone um yeah my name is anska I'm at the ethereum foundation and I was basically just wanting to take some time explain a little bit how we think about blockchain scalability especially kind of my perspective on on things and then how erp4 which I think has had a little bit of publicity over the last few months how that basically fits into the picture and why we're doing this in the first place um and so the idea is I want to basically first kind of give a general motivation of why exactly do we have this roll-up Centric roadmap right how does that fit into our scaling um Vision then specifically talk about the data availability side of things with what you might have heard like kind

of the term dung sharding how how this fits into into the plan and then round it up with like a long-term vision of of kind of the uh the chain architecture we are we are going towards there um so let me start uh why Roll-Ups right why do we basically need them in the first place and I want to kind of start a little bit abstractly by talking about what I like to call like execution chains but it's basically this user-facing blockchains application facing blockchains right in the very first one we had was Bitcoin of course um it's special purpose the very first blockchain ever then we then ethereum came on the scene first general purpose execution chain and basically with all of these chains I mean of course there

have been thousands sins and the goal is always to you know to have maximum functionality and maximum throughput but at the same time and this is kind of where the fundamental tension with blockchain comes from you always need to ensure security right and so I think one one way to illustrate this really well is um with this graph this is of course a little bit of a silly toy graph but just to get you the intuition um so basically um the the the fundamental trade-off here between the cost to run a full node for the network was the throughput you can achieve right and so you can put Bitcoin and ethereum roughly in these positions in the graph so Bitcoin you know very very limited minimal requirements around a node but also very

limited throughput ethereum was willing to trade this up a little bit more but you know the goal was always even with ethereum that you have to be able to run your full node at home without too much effort like on Raspberry Pi right and everyone can run it locally um and the problem though is that that means that basically everyone in the entire network validates everyone else's transactions right and that is fundamentally of course cannot scale with billions of humans on Earth you can't validate everyone's transaction on the other side of the world if they want to buy a coffee right so naive kind of iterations on this of course what you could do is like what if we just keep going up this diagonal right and then it's just this is kind of more with like a you know uh don't take this as

seriously I just put this like a logo just for example purposes right that they are chains that are basically just are willing to say okay what if we just increase keep increasing the requirements for running a full node right and I mean that's it's in a way perfectly legitimate right it's just another place in this trade-off space the problem here is if I don't run my own full node at home and there's ever disagreement about the state of the chain right I basically only have two choices I can either just you know look what the majority of node loans claims and I just go with it that means that if ever the majority votes to you know steal all my coins I would go with that because again I just follow the majority so all of a sudden I basically lose these the trust

guarantees that I that I get with with locally verifiable chains of course the alternative would be you know if there's ever disagreement at a stop and I go on Twitter and I see you know basically who claims what was the problem and I just wait until basically there's manual social resolution so now basically where on this graph what is the problem here like where would we want to end up on and of course this this place you know this ideal mythical unicorn place that we want to end up in is kind of this upper left um um corner here where the cost to run a full node for this kind of network is still very low but at the same time we somehow get supply throughput and in practice actually like the way ethereum in the roll up space goes this doesn't

have to actually be one roll up this could oh like one sorry kind of one step ahead of you one that um blockchain this could also be like just multiple kind of parallel ones with lower each of something doesn't really matter the pop the thing is how you do basically with only running a small full node get a total throughput like that that is very high right so how can we do this and the intuition in a way um is if we just go back briefly here to this other one right the the problem here was if there was a disagreement and I don't want to trust the majority I basically have to always stop and then manually socially recover on Twitter someone explains to me what was the problem how you know who was right and these kind of things so the the idea is

just what if we you know automate this step what if we find a way with like a chain that I can't necessarily directly locally verify what what if computationally there was a way for me to basically check Integrity right to either if there was a problem you know to to to to have the trustless way to resolve this computationally or maybe even you know do One Step better and check the Integrity from the first place and this is kind of exactly where we get to roll ups so the idea for Roll Up is you have a chain that um in this case of course I kind of want to explain both optimistic and zika roll up so you have you have a chain but you just you know you don't have to run a full note for that necessarily you can just apply all the changes

optimistically that are that you know you're just like someone tells you you know this latest block made these changes you just trust them but then this is the important thing with optimistic grow-ups anyone whenever there's a disagreement right as long as one person notices something went wrong they can submit what's called a fraud proof and instead of having to go on Twitter and having someone explain this to you your computer just automatically resolves the challenge for you right so as long as you always wait for the settlement period even if you don't actually run the chain yourself you always can trust that whatever you see on it like as the latest finalized change state is actually valid and computationally with computational Integrity right so this is basically this is an amazing trick for basically

trusting chains you don't verify yourself and the only thing that needs is of course it needs a settlement platform where you can actually run this proof right and so then the same thing with CK rollups basically the only Small Change there is that it's you know using fancy cryptography so you don't even have to wait for a challenge and run up for proof it immediately comes with what's called even validity proof so it it checks it it ensures the computational Integrity right when you when you make the kind of the state transition in the first place but basically same idea you don't have to run the system to trust it that's basically the magic key of roll ups as long as you have a settlement chain that you you can rely on there's one small asterisk and this is kind of what the

the kind of the motivation for the stock came from and that's why we have to talk about dung shutting in a second there's one really important asterisk and that is data availability and data availability is unfortunately like a topic that's not obvious to understand and so basically I I gave two examples here on both sides but like the problem is and I want to just take a second to make sure like if if you take one thing out of the stock then ideally it would be to really understand why data availability is so so crucially important so with any roll up right if you do not you basically if if um if you have if you have a system a layer two something like optimism or so and it commits onto the base chain right

the the idea is anytime there would be fraud you can detect it and then submit a fraud proof there's one assumption here the assumption is that anytime they make an update they actually tell you what the update was right and this is crucially important if they if if they don't do this right if they say oh I made an update and now you don't have any balance anymore and you know you didn't actually send a transaction right there's no way for you to to prove a fraud if they don't actually tell you what supposedly happened right so basically if they only give you the update without explaining what supposedly happened there's no way for you to challenge this and similarly um with a validity proof it's not quite as bad with ZK Roll-Ups because as we're

saying this cryptography that always checks Integrity so they can never steal your funds but if they don't tell you what actually happened you have no way of of knowing what the current chain state is and so you only know it is a valid state but you don't know what the state is and so you cannot no longer use the roll up so they can lock you out of the roll up so if physically if if they don't actually and what I mean by basically telling you what actually happened it's just basically giving you what you know from ethereum like a list of transactions right every block update that they do they basically have to actually tell you the list of transactions they supposedly run otherwise this entire system doesn't work so basically making sure that the transaction data was actually published this is at the very core of of data

availability and what we need to make this entire system work um and so not only do we need settlement the settlement layer which I don't know tried to put emojis on everything here um but we also need this kind of data availability layer um and our approach for scaling this of course is dunk sharding and so now I basically want to transition that into talking a little bit about done sharding so so so what exactly how exactly is State availability scalable so the first thing there is I think it's really important to understand the difference um between the different types of data right

um today on ethereum we only provide one type of data and we call this call data I'm not sure like most of you I'm not sure how technical you are but if you've ever seen a transaction on ethereum basically if you look into the details at metamask or something if you send a uni swap Traders also it always sends a little bit of data with the transaction that actually tells you in swap what it is supposed to do right like which token you're supposed to swap with which other token and that is what we call call data right because it's this context for the call you want to do and for this type of data that we process on on the base chain um there's two really important properties here the first one is that doing the execution of the chain if I'm running a ethereum node I actually need

the entire data locally because you know again I have to if I want to run the transaction I have to actually know what unit swap is supposed to do so I need this data locally and then also after I execute it I actually store it you know in my history file like for now ethereum if you're a node you literally store all the history from the beginning of the chain in the future there's an Erp called 4444 don't confuse it with four eight four four and unfortunate naming Collision there but basically in the future you'll only keep like the last years of history but it's still quite a bit of commitment of keeping the state around for a long time now roll up data for now basically what rollaps do if you actually ever want to you look at Unis and optimism like ZK

sync one of these roll-up systems and and you actually go on chain on ether scan or something and you look what actually happens whenever they they publish a Blog you will see that they literally just take a lot of this data that they want to you know improve availability of and they just all but like put it into like a huge chunk of call data and but it turns out we can do better and so why can we do better because roll up data actually fundamentally different in nature here as we were saying we only need to guarantee data availability like this is the crucial Point here we already talked about this but the transactions don't actually need the data right as I was saying like units unit swap actually needs the data because it needs to know what what you're supposed to do but the

rollout never actually processes the data on the layer one right like the layer one is only you know a very dumb simple settlement layer so it only actually needs a point it only needs to know data with this hash or with this you know like commitment was made available it doesn't actually process the data so so it it is like a different type of availability it needs and also once we have ensured that everyone had access to the data you know the layer one can forget about it it's not something you have to actually store on your history right you you just know if everyone you know agreed back in the day that it was available you don't care anymore you don't have to store it so this is two very different types of data and so the idea is we want to give it its separate form and

we want to then use that form to really scale the throughput for for only for only the right side of data the left side of data will not ever fundamentally scale on ethereum the right side will this is this is basically the crucial Insight here and I just do kind of hammer this point home a little bit basically what actually is data availability again there's a lot of confusion around this it is only the insurance that the data was not withheld at the time the availability guarantees were made and that basically that the data was indeed successfully and widely published and importantly this does this means that it is not some sort of long-term storage it is not some sort of forever continued availability right it

is a one time you can think of it as a message board you put a note on there at that moment in time the data was available so then how are we going about actually you know giving it its own type of data and starting to scale this and this is basically a two-phase approach and the first of these two is um the Erp 4844 that I was mentioning that you probably have heard about uh also known as proto-deng sharding we like having fun with naming so um I guess this happened um and fundamentally what does the Erp do it's actually not that complicated and then I kind of I apologize for not having pictures for this but uh and a more text kind of person uh so what it does is basically it introduces a new

type of data right and we call this data blobs um just because fundamentally from the layer one perspective it's just like a huge chunk of data we don't care what's in it we don't actually ever look inside right so it's just a blob of data and um we collect multiple of those just per per each block that we that we produce on ethereum right and so right now the the choices are although these parameters can still change the Erp is not yet lied live so right now parameters um uh 128 kilobytes per blob um and basically every block that that that that they that ethereum producers will come with a separate section right

so there's the main block and then there will be a separate section that just basically is only only like a list of raw blobs and for now we're kind of thinking up to four blobs per block so it's like up to half a megabyte per block but again you know in the these numbers can change and then we also introduce a new way of actually using this data we call it a blob transaction it's very simple the only important thing you have to kind of understand is um and it's called commitment hashes but basically the transaction doesn't actually include any data of its own it only includes like a pointer right it only says I want basically only use only put this transaction on chain if you've at the

same time also you know have a blob that has this hash or something and then when you send the transactions to the network you just send the blob separately um and and and then basically the the person that actually creates the block just takes the blob puts it into this little blob section and puts the main transaction into in in into the main um transaction section right so this is basically it's it's starting to really separate the data out from the main transaction and importantly uh there's like a point that's often overlooked and that's actually where my involvement with this Erp was um we want to start making kind of this useful for Roll-Ups as soon as possible and as you see we will bring this Erp to

the chain later this year um and what is the most important thing for users of course price you know how how expensive it's cheap is it to reuse my rollup and so what we are going to do is as a first step in making this data more useful is we will price basically give it its own pricing market right so this means right now when you use a roll up and on the main ethereum chain there's some sort of nft drop or a usdc DPAC or you know all these fun things that happen from time to time basically Roll-Ups have to compete with all this normal layer 1 activity in the future they will no longer have to do that right they have their own little section The Blob section and we will have our own erp5059 style mechanism that just you know keeps track of how

much demand there is for these blobs and it gives gives these roll ups their own blob price and so on the main chain there could be an inferno of activity and you can still you know publish your roll up data just fine so this will make fundamentally make data much cheaper for roll-ups um as a first step and make make rollups who uses um more useful and and again later this year already and then why is this basically just the first step what we what do we have to do to get to full uh done sharding and I mean this is of course like this is a million miles uh kind of summary right this is not I was tempted to go into more detail here but kind of I think basically this is really kind of the the tldr that that you need

to understand so we still you know we split out these blobs but they still come with every block right if you run a node you still download the entire blob section and of course this still limits scalability right if I still have to download everything there can be maybe four blobs there might be eight blocks 16 blobs but they can never be like 100 blobs right it's just too much data for me to download and so this is kind of where the fundamental scalability of the system will come in and this is by taking this the section we will Erasure code it right if you if you're like technical basically no non-technical this just means we give it some extra information just to make it more redundant and then nodes will start to only sample sample the section this is

really important again if you don't understand that it's fine but but the idea is basically that in the future you you still download the main block of ethereum but you only sample The Blob section and this means that the blob section now can grow in size much quicker much faster to much higher degree because nodes fundamentally basically it we are no longer you know when I I don't want to go back to the very beginning of the presentation but we were talking about the limits of what an individual node can verify and because the individual no longer has to download the entire thing we can basically now start really scaling the throughput of the system the problem here is just that you know as with any research topic It's tricky to get right

and so there are quite a few open network networking topology questions like how do you exactly set up the sampling who is responsible for which part you know how does everyone come to agreement on what was available what was not so it's still a research project it's already pretty Advanced I mean dangshotting the term has been around for over a year so um so I think we are pretty far along on this way but what we expect is that we will basically roll this out over time in the next few years like maybe an initial version with still limited throughput and then as the network gets more robust keep increasing this throughput so basically but this is the road right left is the erp4 is a one-time gain and then the right is the roadmap that will get us step by step as

the demand overlap grows this will get us to you know the full super high scalability that we all deserve on ethereum um and this again this kind of like was more trying me trying to like have a little kind of explainer for for why data availability is so important and what we're planning to do about it now I want to kind of take some time towards the end and give a little bit of an intuition of like more abstractly again like what does this mean for the ethereum chain um and and and how does this the the kind of I'm sure you've heard the term the modular Vision basically where are we are we headed here um

again I want to start like this just the picture that we already know from the beginning just like it's a simple execution chain ethereum Bitcoin whatever right it comes with its own security that's what the little box and with the with the line saddle on top right and so this is exactly what they're going to do so now in this picture we have something that all of a sudden now we call a roll up but in a way the roll-up is also just a blockchain right but the roll up now in this picture it's an enshrined roller because there's only one roll up for one settlement chain right you could also call it the other way around you could say it's an enshrined settlement chain um and up in what you know people used to call the multi-train vision I think these days it's a little less popular

and I would say for good reasons but basically this is in principle a perfectly viable picture so every chain does its own little enshrined roll up trick to to gain scalability everyone does their own settlement their own data availability scaling and you end up in this picture and the important Point here though is that a as you can see everyone has their has to provide their own security so all these logs are pretty small you know everyone has relatively small security because it's fractured across the system and you know the dotted lines the bridges between independent chains are very brittle because you never have shared security so you basically always get the any any interaction of two two chains you always get the worst security of the two and if

you have like interaction between 20 chains you get like the worst security of all 20 basically and of course again duplicated complexity you have to basically re-implement these scaling solutions for every blockchain so what is the alternative that's that's the alternative here is what we call a shared settlement chain so the idea is that instead of having every chain slash roll up live on their own settlement layer we just put them on top of the same settlement layer and what else gives us is two things one is we have now shared security all of a sudden like as long as the settlement layer here settlement chain is secure all these roll ups are secure I mean you know borrowing small contract bugs or something and

and of course this doesn't mean you get security for free that's why I call it pooled security to basically briefly mention uh what we would expect is that like in practice we would of course see some sort of hybrid right we have several settlement chains with some maybe even still monolithic chains and they all interact but our thesis is that basically this will over time be the most popular model and basically most activity will accrue on top of one base settlement chain um and then with that kind of like how does ethereum fit into this just to kind of briefly walk through these pictures as well so ethereum started out as a pure execution chain um with proof of work uh security before roll up so even a thing

um then and this is you know I always like to do a little bit of ethereum history archeology right and so um this if you see April 2019 this is pretty pretty amazing like we um uh kcd Trio was one of the researchers back in those days and this is three and a half years ago and he was already basically talking about using eth2 as a data as a pure data availability engine this was the first time someone basically conceptualized this and put this into into these terms right like instead of doing these shards with execution environments what if we just use it for data and then of course a year and a half later vitalik had this pretty famous article about roll-up Centric ethereum roadmap and um just a little

shout out a former colleague of mine and he's now at the guest team Matt who also like talked about how basically our original is two plans were like a roll-up system from the very beginning so whether that happen mean basically we started having uh Roll-Ups so so we basically started giving settlement and data availability functionality to ethereum but as you can see the data availability symbol is very small right it's only very limited data availability so we could we could put like a few Roll-Ups on top but it's pretty pretty expensive then we introduce the beacon chain of course as you can see now the sudden with full of steak we get like really good security but first we had to merge so we merged so now we get this amazing security of the proof of stakes chain but still very low data availability so

what our next steps Next Step proton sharding yeah before it before as you can see now all of a sudden our data availability symbol is a bit bigger you know good but only the first step in order to really get to this amazing High throughput settlement layer we need for dunk sharding and so once we have full tank sharding we can basically go to this picture that's where ethereum you know wants to end up as you can see there's like a little wrinkle because our settlement chain will not be a pure settlement chain we will still have execution if you really want to you can still use uniswap or whatever D5 you want on the base chain itself it will just be really expensive um but we will be able to have you know whatever High throughput system we want

on top this could be a billion Roll-Ups this could be like a few really high scalable Roll-Ups basically this gives us all the scalability we ever want and need and with that I hope that kind of gave a little bit of an intuition I'm not sure if I have time for questions do we have any questions anyone want to raise your hand thanks for two minutes being here anyone all right let's go for it um thanks for the great talk asgar token specifically about 4844 um and the observation are there any unresolved problems with that EAP or is it ready to be shipped oh this is a great question so basically

are there unresolved questions is it ready to be shipped um and indeed the kind of the the the the good news is that it's all basically ready there's some um tiny details that are right now being worked out around um how exactly are these blob is these blob section transmitted through the network initially we wanted to literally just shove it attach it directly to the block now we want to transmit it separately so this is implemented right now but there's no open research needed whereas with full dunk sharding there's still a bit of a way to go got it thank you so much that was awesome yeah absolutely um great explanation great visuals through the entire talk do we have any other questions I could probably take

one more hi uh so is part of this product and sharding like can we have a data availability of the ethereum as well like is that part of uh this work as well like has has that thought been put into this yeah so the question is can we have data availability off of ethereum as well yes so um actually this is a really good point and if I just briefly go back to this picture basically it of course it assumes that we always you know have settlement and data availability in one place and actually I was in in my longer talk on this specific kind of way of thinking about things I also had a

picture where basically there are alternative approaches you can take the data availability and you can separate it out and for example systems like Celestia um are basically doing exactly this they only focus on being a pure data availability layer and so if you're a roll up on top of ethereum and you want to use Celestia data Maybe you even want to use Bitcoin data you know segwit data for data availability you can do that there's one asterisk though and that is that now basically your trust assumptions are that both the settlement chain so ethereum and the data availability chain Celestia or Bitcoin or whatever else both of them have to be secure and hold in order for your system to be secure right so basically now you get the weaker because basically you

lose the shared security um assumption a little bit and now if you want to have multiple interoperable roll ups basically they have to either share the same data availability layer or otherwise they basically get the minimum out of all the data availability layer security that that they that they use so basically this there's like an asterisk around shared security but other than that in principle it's possible all right uh if you want to ask unscar any questions you can catch them as he comes down from the stage let's hear it for him one more time everybody amazing talk [Applause]