Danksharding and the KZG Ceremony w/ Carl Beekhuizen (Ethereum Foundation)
9 Nov 2023 · 1:10:35
Strange Water host Rex Kirshner talks with Carl Beekhuizen of the Ethereum Foundation, who led the KZG Trusted Setup Ceremony, about Danksharding, a scaling upgrade aimed at increasing Ethereum's data capacity without raising the computer requirements needed to run a node. The conversation covers the cryptography and engineering behind the upgrade and what it means for decentralization as Ethereum scales.
Speakers
Topics
Transcript
[Music] hello and welcome back for another episode of The Strange waterer podcast your support means so much to me and to this show I just want to thank you once again for joining us for another great conversation let's start with the core decision at the foundation of ethereum decentralization increasing the minimum requirements of the physical computers running the software that makes up ethereum inherently centralizes the system on the one hand the higher the requirements the more transactions each computer can verify and therefore the
more capacity ethereum will have the lower your gas fees the more ethereum can do but this comes at the cost of being inaccessible to more and more operators to put it frankly the higher the system requirements the higher the costs now there's a lot of reasons why I'm about to say this but let's just sum up the last 15 years of conversation and theory about crypto with this decentralization is the most important property of the systems we're creating and so while we must accept the ramifications of our decision the choice is actually pretty easy we must keep the system requirements of running an
ethereum node as low as possible and as a consequence ethereum capacity remains extremely scarce now sitting here in November 2023 I'm happy to say that we have a strategy and we call it dank sharting DK sharting is a complex and a very technical upgrade coming to athere it not only represents cuttingedge cryptography it requires incredibly nuanced engineering work fortunately we have the perfect guest to walk us through dank sharding Carl beisen Carl has a long history with ethereum but his leadership of The kzg
Trusted setup ceremony which is a critical component of DK sharding makes him the perfect person during the next hour we talk every everything from dank sharding and why dank sharding to coordinating the 140,000 person ceremony to how to prepare builders for a DK sharting enabled world we keep things super accessible but by the end of this conversation you'll have a much better understanding of how things are going to work of how ethereum continues evolving into the world computer one more thing before we begin please do not take Financial advice from this or any
podcast ethereum will change the world one day but you can easily lose all of your money between now and then all right time to start the show Carl thank you so much for joining us on the strange water podcast thanks for having me on man I'm I'm so excited for this one I mean I think that we've had a lot of interactions via Twitter or like Discord or something especially around the kzg ceremony and um you know I've just I've been watching your work for a while and was so felt so honored to be able to uh convince people to contribute so uh so excited to talk to you so excited to see how big of a
success it is and uh just I guess on behalf of the ethereum community just thank you yeah no thanks and thanks for directing people towards the ceremony for sure okay so before we get to that um you know I I'm a big believer that like there's no point in having a conver ation without understanding who the people in it are so um with that as a background can you tell us a little bit about like who you are and really how you found ethereum and what about ethereum like made you decide to like commit uh with your whole like reputation and work and everything and not you know run away in fear yeah so uh I kind of discovered ethereum when I was in college um but I guess less from what you probably have some other guests here
um a friend a friend of mine had like uh bought some early Bitcoin and tried to tried to get me into to bitcoin and I was like no that just seems super weird he was like I'm doing this thing called Mining and I'm like I don't have a gaming computer I'm not spending um I guess the time that would have cost hundreds of dollars on on on a GPU just to get some of this random thing this doesn't make any sense um anyway um and then I sort of caught up with this guy a few years later and he was like oh yeah like I've done really well off of this like uh coins be be mooning and and all of that um so I was like oh okay maybe I should be paying a bit of attention here um and so I started digging in a little
bit um at the time I was very into um machine learning and artificial intelligence um so and I was viewing this period as like a financial thing so I started building trading Bots um that um I mean they Tred to take sentiment from Twitter or whatever otherwise like short-term stuff that was trying to match like micro movements in the in the market um sort of on the uh 302 scale um kind of things um those didn't do particularly well never lost any money but certainly was not getting me anywhere um and it was very boring like waiting for trading runs to complete and that kind of thing um and so while that was all happening in the background I was like well I may as well read up about all this the stuff that's that
that's actually happening I was like oh okay like hey this is this is actually a little interesting like some of the problems that are trying to be solved here are actually genuinely hard problems of like what is this whole like simple resilience things and what's the double spending problem all those things that you like start off with um and so I got more and more into that and that was interesting to to to me and like I thought they're lots of fun problems um and then um that sort of continued on for a while and then there was uh an early EIP EIP 1011 which was the original attempt at switching over to proof of stake um and at the time you needed 1,500 eth to become a validator and I did not have that kind of money like I was still a student um and so I
came up with a complicated system which is I guess what we call um uh uh um decentralized taking pools at the moment um I came up with a solution for that which was uh splitting up between myself and some friends so that we could all share like the risk and whatever and put in some money together and then act as a single validator uh which turns out you need to solve a bunch of consensus problems because everyone needs to come on to agreement um and and uh lots of interesting networking problems there's economic incentives you need and I was like hey I'm just designing a mini protocol just one level abstracted um and then um there was uh Danny put out a blog post Danny Ryan put
out a blog post one day I was like Hey EIP 1011 like this is not happening it's way too complicated we're going to go with a completely new design I was like no like all this work I've been putting is just certainly not not not worth anything um but uh from and like at that point I was completely hooked like there were just so many interesting problems to me that were like hey this is like actually really uh like intellectually stimulating far more so than I was Finding from the machine learning side of things which to me felt like just like picking a bunch of parameters and hoping something would be a little bit different and um it just F like the lots more the research has already been done so the improvements are far more inative whereas this is like foundational stuff that was being solved um and from there
I just got more more and more involved and started like contributing towards the uh um the specifications for for for uh what we now call proof of stake ethereum um and uh sort of fell down from there before we kind of like get into like your contributions to ethereum and kind of dang charting and everything you're working on today I guess so I like you entered this space through the lens of Finance um sounds like you were kind of thinking about this from Trading and I was thinking about it as like you know I came from corporate finance and this is just going to replace everything and kind of the the deeper I fall down the rabbit hole the more convinced I am that ethereum and crypto are like
special and incredible and amazing but not because this is a story about Finance like Finance is just one application that like may or may not be relevant to what we're building like the the true story here is a story about decentralized computing and um you know what I about 6 months ago I started telling everyone who listened that like I don't really think the point of ethereum is defi I think it's that was basically a fad and then I stopped saying that because it kind of seemed so obvious to me so anyway I guess my question to you is do you remember feeling that moment when your understanding of what we're doing here shifted from Finance to um like really computer science and to really about
changing something about the way we coordinate or was that just kind of a gradual process that you can only say today so I mean in terms of the like the interest side of things that was definitely a gradual process in terms of the like hey wait this is actually far more than just a um a like a technological solving some small isolated technological things like an entire way of restructuring the way we think about uh coordination problems and some of the like issues we face as a society like this the the the this funil frames a lot of those problems that was I think more more sudden although like I not sure where what exactly that uh was the impetus for that um at the time was
just doing a bunch of reading of pretty much any resources that I could uh I I could get on that um but I mean I think about two or three years ago Virgil wrote a blog post on um how this is all about like a coordination game um and how this really solves coordination problems uh between between many parties and whether you want to view that as a finance thing or when you want to view that as like uh far more complicated intricate like human level uh resolution things I think that's um I think that's a really nice lens and it's a lens I still carry with me today when I like view all these things we're doing and that's like to me more exciting as like
how we can solve this more generalized class of problems because that's applicable to to so many things yeah I think we can go all day on that theoretical level but let me just move us along so um what I would love especially just for my own um I guess development in this space is to hear a little bit about your journey from somebody completely on the outside of like core ethereum who realized that there was something cool here and was building on top of it but really wasn't part of the growth process uh to basically like let's get to the start of the kzg ceremony where you're you know like a a true leader and a nemonic shelling point and like all of these
things where it's like I think of Carl as the kcg guy can you talk a little bit about your journey of kind of integrating more with a core ethereum team and like what does it take to to become a core ethereum contributor I mean so initially like I decided to actually set myself a goal of like trying to get closer to this process so um I decided I'd stop all the other stuff I was doing and just focus on ethereum things for a while and try move myself towards the core cuz that's where I saw the interesting thing is happening and so I um I it like I basically just started speaking to the people involved re reading what these people are doing um the the the crazy thing about the the
the way development and and all the CH theem stuff happens is it's all in the open and people think like oh no that like we say this and there's but like actually there's like it all happens in like secret telegram chats or something like that's not how it works like want to see the discussions they're in public they're in the GitHub issues they're um they're out there so it was mostly like reading those and then texting people and be like hey like what about this or like how does this work and they'd be like yeah but like you don't need to text me like put it out there just suggest your idea um and so that like actually took me a little while to get my my mind around is this like crazy idea of like hey this really is truly open source and it's not like um like it
it really is properly decentralized and like other people's opinions are are like um the now this is all done on like the the eth R&D Discord channel uh but it really all the discussion happens there and between between that and sure there are discussions that still happen like oneon-one between people but it's not like there these like large institutions of the background that actually make decisions it's more just hey what do you think of this idea the like formalizing your idea and then you just put it out there and so that was sort of how I went from being on the the the periphery to getting more involved to just like starting to read these things and then giving my opinions in public um and so that got me started on lots of the uh um early uh pre merg
specifications uh for the for the consensus layer um and I did a bunch of a bunch of work there um and then um after that um after the merge happened and and and all of that um I started focusing more on like my my Specialty's always been more side projects um less the core thing and more like these other um sort of Min things that take a take a few months or a year or so to execute and then we can we can return back um and so like um I did a whole my next little Arc was on the um deposits deposit contract and uh the Launchpad uh which I know is not everyone's favorite interface but
it's uh it really is that way for a reason it's it's it's it's um the the the the trust assumptions really are minimal and we could make it a lot easier if we were to like violate some of the the principles we hold in the space but um we really are protective of people's data and that kind of thing so that was sort of the next one um was was was was working on that and after that um I've been working on the uh the kcg ceremony with with with Trent um and there was also just sort of a thing where there was this need where like there are so many problems in this space they're basically Limitless um there's there's so much research that's left to be done uh so many things thought like meant to be thought through even things which sound like they're
solved are probably very far away um unless those are in concrete like PRS to specifications or some of the clients um there's probably still a lot of research to be done so it started off as like oh hey like this is what we need to do and like it seems easy and then I was like okay we actually need to dig in and someone needs to execute on this um and so then that was the the the next one I did being the kcg ceremony so promise to the audience that throughout the next 15 minutes we'll make sure you understand like what the point of the CG ceremony is and how dank sharting works but um as part of the that conversation um one of like the more from the outside one of the more interesting things to me to watch through this process is that
ethereum is truly a community that will chase an idea realize it's bad and like completely drop it and go find something better and I could be referring to the switch to proof of stake I could be referring to how we're doing like scaling and starting uh which I want to talk about but I could be referring to a lot of different things and so um I think like can you talk a little bit about the the journey to realizing what you know the DK sharting is the solution and like what that was like to experience from um the inside of basically this change from execution sharding which is like a well understood thing in traditional Computing to dank
sharting which is named after a and doesn't really have that much to do with sharding but like might be the answer to I will be the answer to how we scale uh blockchain yeah so uh and I think I think you you you hit on a very important Point here and that's that uh we are very willing to change things um as a community and so uh we've had many false starts it many times along the way um and this this this the the um as I was saying the the original proof of stake plan with the IP 1011 was one of them um this as you're talking about now the the execution charting was another um the idea there being that um hey if our blockchains are running too slow we can just split them up into sort of many
sub blockchains and and handle that um but that was also sort of a fake solution because then you have many complex problems between okay cool you have now One Mini Mini Shard um handling one thing and another one handling another but how do you fuse those things um and like how do you have one of the terms of throwing around was composability like how do we compose things um like is it actually that helpful do you do you really get these these speed boosts or is it just like the chain where um Unis swap or pick your favorite project is on um is the chain that gets all the action and all the the other shards are just used useless and pretty much dead um and so like that seemed like there was a lot of research still to be done there but it
seemed like solvable problems it wouldn't be pretty You' need all sorts of complicated Bridges and whatever but we we had solutions for that um and we actually designed a lot of um the the consensus layer to to look like that um so lots of the design was focused around having these committees that needed to be shuffled around um to like assign who's looking after which Shard um so to do which computation um and that was that was all fine but there was a lot of complexity carried around in that um and then um around eth uh sorry around Devcon in Tokyo uh sorry Osaka um there was uh like a an alternative idea
that came up was like Hey what if instead of we start charting the the the the execution is that we we we like the execution is actually fairly easy um your computer can execute things really fast and we don't need to work really hard to have everyone verify all this contribution all the time we have other ways of handling that things like ZK proofs or uh some the optimistic stuff is already around out there um like that bits the kind of easy easiest side of things but like the actually hard bit is we need to come to agreement around what we're Computing and why we're Computing it um and so we need to provide a space that that for that to happen um and ultimately you're always going to be Computing over data and so the the the
the the sort of brilliant Insight was the idea we can switch to like only worrying about Computing over data uh and we only have to sh data then as opposed to worrying about char all the execution um and then how you handle um sort of the other problems around the the interfaces between execution kind of can go away um and like very rapidly we switch to this idea of an an al2 Centric um road map um and this allowed us to um like free ourselves of worrying about the execution like as as as an L1 researcher we're much less worried about speeding up the execution if people want to build these uh crazy parallelizable chains we
can do that um but we need like the the the the execution is a is a whole separate thing um and so then we just started thinking about scaling the data um and vitalic and um Mustafa had a a paper that they co-wrote together um about a year prior to all of this um on on um uh data Shing pretty much um and how you can do eraser encoding in this weird two-dimensional thing uh which is basically a way of like being like hey how can we ensure that we have these guarantees about the data without everyone having to need all the data because if everyone knows has to download all the data you haven't gained anything uh and then like fusing this with with with some of the um the the
the the uh mathematics behind kzg and some cryptography um dunrod uh one of my my fellow researchers came up with the the the idea of what we today call dun shotting um which is like a radically simplified thing where um we have this data it's external to the chain like it's not accessible normally to to the normal ethereum chain as we know today um but we have these these side cars of of data that like are referenced um and in this data we can have all these like in the space we going have all this data assoc Associated to l2s and so this was the shift we we we went through and uh but even that wasn't final like this was this was like great and all uh but
it was still a very complicated thing because we needed to like check for all the uh do all the sampling to check all the data is available and that kind of thing um and so it was a radical simplification but it was another like uh at least merge level complexity change that we need to the chain and we just learned from the merge how long that actually takes um and what that means um and so uh protol Lambda uh who was working with us at the time not optimism um then came up with even more simplifications which is basically like what is the minimum viable product we need to be able to supply this data to to to get the scale we need um and so it's really stripping out any of the
fancy networking things um as much as possible and just the the the minimum of hey we have this data um we we we provide the space and uh you can put whatever you want in it uh we have this fancy cryptography uh called K commitments or kcg commitments um which we can use to prove things really nicely and efficiently about the data um and we don't care what people do with the data but we can do it in a way that's uh a relatively simple change to the the ethereum chain as we have now and that allows us to to get it out there soon enough that uh the l2s can start using it and then we can sort of like free the l2s to to to to to scale as they need to do um radically on top of this um by
having all the space for them yeah so I think like the most important thing to understand really what we're talking about here is like to pick apart the difference between execution and I guess settlement we can call it but um the the idea with what you're saying here is it originally when we're like okay we need to scale ethereum it's just how do we make it faster how do we allow more things to happen through it and we realize over like that is just an incredibly hard thing like the more you try to implement it the more you realize like it's hard it's doable but it's hard and then uh around um Devcon Osaka danrad says like okay I have this idea like what if instead of focusing on
making ethereum a faster computer what if we just said we're going to keep a record of whatever's important but then like actually do the work externally to ethereum and so um that's what rollups are they go and do all the work and then they put just the results on a and like this is our new kind of concept of scaling it's it's not that ethereum is doing the work it's that ethereum is recording the results and then we're going to use the magic of zero knowledge cryptography and like you know Advanced Computer Science and blah blah blah to make sure that whatever was put on ethereum actually corresponds to the actual work that was done outside of it so um I guess do you take any issue with
how I just explained it and then no I think that's that's that's that's that's a very good summary yeah um yeah cool so so I guess like let uh with that is kind of the background like let's really unpack like how dank sharding achieves This and like let's try to do this at the eli5 level right like without using any um Advanced technical terms but like I guess let's start with like what is a rollup uh without dank sharting and like then how does d sharting enable more rollups uh a rollup in like the most General sense is the idea that uh you do the computation somewhere else um we don't really care where that is uh from from the P perspective of ethereum um but then they they put the the answers
to that computation back on chain um and so it's basically like if we um we we we Chang the Paradigm we're currently in ethereum if we if we have a for every ex every transaction gets executed we have to show all our working out with a rollup we only show like here's the question here's the start of what what we started with um here's what the users wanted here's their transactions and here's the answer we don't care about how we got to the answer um and the idea behind a rollup is we just put like the answer and like the the the the the the the questions that were asked the transactions that people wanted to do um onto onto ethereum and then we sort out the
working out elsewhere and we have two major ways of doing that we can do it with fancy cryptography which we call ZK rollups where we can like just like we we can guarantee that it's done correctly we don't need to show the working out because the cryptography does the like can prove that the working out was correct um or we do it optimistically is where we say we we we trust the the person running the rollup or the The Entity running up the rollup we call the sequencer we trust them to have done a good job here and if not we're going to have to resolve it in like the courts of uh of E and we we we we've like like basically ask them the the the rollup sequence is hey show me you're working out I think you you did something wrong here um and then they
provide that and then we we go into this game where it's like okay cool like I think this is where you made a mistake and we eventually find like the source of the disagreement and we can say like because we have proper execution in the ethereum um the base chain we can like really prove things um right down to the the base level of like who was right here and so that's how we hold these these optimistic rollups accountable um but now we get this dramatic speed up because all we care about is the like the the the inputs and the the questions we asking the transactions we're running and then like what's the answer to to what we're doing here what's what's the output of the chain after this we don't care about the working out like the anal like when I'm explaining ethereum to
people I always like to say like you know how we we like to say that the Apollo 11 spacecraft uh computer was less powerful than like your ti84 calculator right like that is the state of ethereum and what what the rollup Paradigm allows us to do is instead of trying to jam like complex derivative calculations into your calculator you just say here are the inputs and I promise you we did the outputs elsewhere and we're just going to put the outputs on and then that's that's what we mean by offloading execution and then what settlement really really means is that when there's an
issue like the record that is used to adjudicate like what should happen and who was right and who was wrong wherever that record exists like that's where the settlement happened and so anyway I I don't think we need to beat this point over and over but I guess my question to you um is okay super cool makes a lot of sense like let's move all of the execution off chain we'll just put the answers why do we need dank sharting or Proto dank sharting so I mean this is the original L2 vision of just doing doing these things um and and it already gives us tremendous speed UPS um if we don't care about the intermediate steps and we only have to deal with things when things go wrong which is how we
conduct Our Lives dayto day right I we we handle things like we may write contracts sometimes but we don't resolve these contracts in court we just handle them like normal people because on on on net people don't have issues and when you do have issues you do need to resolve them um and so we already have dramatic speed UPS just by switching to this this rollup um idea of scaling but the thing is like hey like if suddenly we don't care about executing things anymore like what happens if we can scale by just focusing on providing more space for these for the rollups to put their transactions um like what is what does that allow uh we need it like it's much easier to write the code around this it's much easier to compute
um if we don't care about what's happening if we don't care about the working out uh we just allow at like a bulletin board to place the questions and answers and and that's that and so uh dunk sharding is like the minimal version of like hey how can we massively provide data for this um and then the the the the idea there is for the the rups to provide the the the inputs and outputs to to to all their blocks um and they they put them in what we call blobs which is just like a generic word for space that we have that no execution will ever happen on um they put them in these blobs and then dunk shotting and kcg is just a fancy way way of dividing up these blobs in a way that everyone's responsible for a little bit of it um so
we can we can break it up into small components search that like if you if everyone just had to download all this data then you're not going to scale um the the the the the I mean gu database is what's somewhere around a terabyte at the moment I think if you if if you if you run a a recently pruned node um so if we if if we limited by that that's not very helpful but if we can somehow split it up such that like everyone who's running a node only needs to worry about a little bit of it but we can use fancy cryptography to make sure that uh like have guarantees about hey if everyone cares about a small bit of it together we're going to care about everything in ways that we can prove really cool properties and make sure that uh we're never going to lose into
these transactions and that kind of thing and that's the the idea behind dunk shotting um is that we provide this um and then there's this like further crazy realization we had which is that hey we don't actually need to store this forever so um what we need is a place where if something goes wrong like we can we we we can figure out in in in in the courts um what where this transaction went wrong and and handle that but after that's handled we don't actually need to to to to store the the inputs and outputs anymore um we only need the latest the latest version we don't need like the the the historical um data be stored forever um on these blobs and so what we do is like we say that nodes running the chain don't need
to care about data that's that's that gets really old and so you only need to care about the later stuff which would be relevant if you have like a dispute in these courts and to give everyone enough time to like look over things make sure everything seems fine um have your have your nodes like validate all the data and then afterwards we can just for the average node get rid of it um and then people like block explorers or the the people running the l2s that's different like then they want to store all the data um for um you with your accounts you're going to need to store your own account keys if you don't trust the um the sequences running this uh but that's a separate problem because you personally care about your account so you incentivized to do it uh whereas like in the current state of ethereum we
have this like we're promised to store everything forever which is like a crazy promise to make like where else do you like you you if you pay for cloud storage they're like okay cool you happy let your store your stuff here but if you stop paying us we're going to throw it away and that's not how it works in ethereum right now and so we're transitioning to this model where it's like you only get temporary storage for your for your data when you pay to put it on chain um it's enough storage that enough people can download it and we can prove things about it and handle any resolu uh any conflicts and resolve them uh but beyond that we don't have to store it and that like radically frees up the amount of uh data we can store and therefore throughput we can have
yeah so let's let me uh repeat back what I said what what you said as a 5-year-old and you tell me if I'm wrong but essentially essentially so going back to the calculator metaphor what we we've realized is that okay it is underpowered but if we're just putting uh you know the inputs and the solutions on there we can like effectively increase the amount of like data that it's stored and the first thought is like okay great but if we're going to start jamming it up with data eventually it's going to run out of space and like what we can do is just like force our calculators to be bigger to have more space and like that honestly solves the problem but that fundamentally breaks
like what we're doing with ethereum because like more powerful computers means less decentralization more powerful means more expensive means Le less access like that breaks it down so instead and and what dank sharting is is let's use this magic of um kzg commitments or zero knowledge cryptography to like make sure that all of the data across the entire network is like unabashedly 100% for sure there but not force every single computer in that Network to store the entire set and that's how like so now Carl has a graphing calculator I have a graphing
calculator and tetrode has a graphing calculator all of us don't have to have the full set of data we can each say like have a third or a half and um you know in that that that's like the the model for scaling right so I guess first let me pause there is that sound about right for um what we're trying to do here yeah totally I think I think that's a good summary Okay cool so let's talk a little bit about um this is going to be a tough one to do quickly and easily right but like what is a kzg commitment and how is that enabling this um construction and look man I don't want you get super technical I'm just trying to get to what is the kzg ceremony but in order to understand why we needed to
do that like what is a kg commitment so like we we we need to be able to summarize this data we we have now this crazy amount of data it's too big to go on the normal ethereum chain um and so we need to summarize it somehow and we use like a general commitment for this all over the place so we hash things all the time in ethereum ethereum is like like I think the vast majority of work that that that's been done when you're running a node is hashing things or finding out what was hashed somewhere uh looking up another hash so like we have this like weird commitment thing that that's already very fundamental and it's a nice way of summarizing things um and kcg commitments are a different type of
committing a different type of commitment device with like really cool benefits that we can do fun cryptography about So like um we can combine different um different uh commitments together and really efficiently do that and so because we have this idea where we like taking this data and splitting it up up and we need to be able to recombine it really easy easily if something goes wrong uh um and that kind of thing so we need we need many of these these properties which we haven't had from like a traditional hash type commitment and so kzg is this really cool way of like committing to data in a way where we get many other benefits along the road um and and like help reduce the load because there's like fun
cryptography things we can do in the background with these commitments and I guess like again without getting technical this is tough but the only thing that I would add to that is that like all a commitment scheme is is you take a bunch of data and you transform it into like just one single tag so you can say with this tag uh this tag represents this data this data is committed to this tag and the cool part about kzg is you using the tag you can verify not only the whole data set but individual pieces of it I I I think maybe a nice analogy here to to think about is like the way fold and files work on your computer um so like a folder is a summary like you might give
it a name of like documents or something that tells you what's in that folder um and so you don't need to think about what's happening in that folder you have this like nice efficient representation but obviously I could just lie I could just tell you that this the documents was not actually the documents so we what we call commitments in a cryptographic sense is like a cryptographic way of saying like hey the name documents like we can guarantee that this is the data in here and so kzg is really efficient way that we can like prove things about your documents and also your photos uh and something else and like combine them in any way we want if we need to or not um and we just get these really nice like benefits and like the the the benefits are complicated in cryptographic but like they they just
give us nice ways of talking about this and particularly in this model where we're going to be like recombining and splitting up data and doing all sorts of fun things like that we need these we need these uh mathematical benefits that we can uh do F fun tricks with to to to get more speed UPS so all right and this is a tough one that I'm just going to throw right in your face so without getting too technical like why do you need a trusted setup um in order to use a kzg commitment the kzg commitment a trusted setup we call it this because a kcg commitment basically has a secret in the very core um and the secret allows you to to make all these proofs um it's the like
fundamental thing it's number um and this number is like at the core of all the math we're going to do when we're like proving things about all these folders I was talking about earlier um and that's really nice and and and and really um like we we need this we need this like mathematical structure this number but that's what allows us to do all the math uh but we have this problem is like in a decentralized trustless system who comes up with a number like I mean I could just come up with it and everyone would trust me but that's no one would do that that's crazy um I like to think I'm a trustworthy person but I would not ask the community to like trust me as like the one Arbiter of like um here's the number because if if anyone knows this number then like we no
longer have guarantees that the things you say are the documents in the documents folder are actually the documents like we we lose that promise let's unpack that a little bit right so if I know the secret number essentially what I can do is you ask me for the document and I say hey here's your document and here's the proof that shows that this is your document and that proof will work but I the reality is is that that wasn't the original document I was just able to generate this fake proof because I knew the secret number is that right yes so if anyone knows the secret we know like nothing is Promised anymore and so tying that back to the way ethereum is going to work this means that like rollups we no longer have guarantees that the data that was posted that the the the inputs and output
transactions and all of that actually is what happened because anyone could make prove anything you could just arbitrarily change people's account balances or whatever and we' have no way of being like hey that wasn't my account balance that like that wasn't correct because as far as the cryptography is concerned it is correct we can um it basically it's this like master key that allows you to to to to to um like unlock all of the security like it is the core thing um and so it's super important that we can never discover what this number is okay so let's uh let's recap for a second so in order to scale ethereum we've decided we are going to offload execution and keep the data in order to do that we've created a
paradigm built around a specific type of cryptography scheme called a kzg commitment in order to execute the kzg commitment we need this secret number that if compromised ruins everything at all and so that's the background and um basically what the kzg ceremony is is the way to generate this Secret in a way that maintains at least some modum of trustless and like removes the ability of someone to know that secret and therefore compromise the system does that sound good yeah that's that's that's the basic idea um and the the the the the name uh trusted setup is is is is what this has been called in the past
because um this has been something that has been done I mean I think the first like really public one was the the zcash original zcash setup um and that was lit six people blocked in a room um together and then that really was trusted like they came up with a secret together and they took videos of themselves doing it and like they really made a very good effort to like show that hey we really like we don't know the secret and like we rolled dice to come up with some of it and we destroyed the computers afterwards so the computers couldn't know the secret there's like many LS of of abstraction they tried to like build around this but fundamentally there were like six people in a room that you had to trust and so they were they like formed the setup they for that they
decided on the secret together not that they they knew any of it but you had to trust them that they didn't know any of that and so we've been using the term ceremony to refer to this because what we did is like try scale this up dramatically um the the the particular requirements of the secret for the kcg ceremony uh were actually pretty low relative to some of the other fun things that are happening in the cryptographic world so it means that we could have lots of people contribute and the idea is like hey can we come up with um a process where everyone can like add their own little bit to the the the the the the eventual ethereum secret um that's like at the core of kzg and
instead of having to trust like one of six people in the room you now have to trust one of a thousand or 10,000 people and it's like hey if there's only like if if one single person like didn't compromise their secret didn't remember their secret write down their secret uh out of those 10,000 then we know it's safe like you literally need everyone to come together have written everything down like do all the math together and like recompute it to be able to to to find the secret so I guess just to like for people again who are not in this world just to like help you understand how 10,000 people can create one secret it starts like let's say Carl starts the chain he creates his secret number and then he passes it
along to me and I take my own secret number and multiply Carl's number that he gave me by my secret number and now the next person gets this like construction and here's the thing the next person they don't know what my contribution was they don't know what Carl's contribution was that all they know is what they've been given and that they are going to add more of their own secret into that and the idea is that if you get 10,000 people to do this and even just one single person is honest and you know takes their secret number and throws it away or forgets it or in some way doesn't collude with everyone else you'll never be able to unpack what the secret number actually is and so um
does does that sound right in terms of like at a super high level what the process is yeah yeah basically it's this like idea of like um you form a chain of like passing around this the secret number um and when we passing around like it's not that the secret number is uh freely readable or whatever as soon as you pass it on that it's like fully encrypted in a way that like is protected by the number itself um and all of the math we're using elsewhere in ethereum this is just normal eliptic cve cryptography um so we have this like way we've hidden it such that like um when I hand over my secret to you um there's no way you could know what any of it was so far and then you add in your bit and so everyone like forms a chain um of like
sequentially adding a little bit more secret like a little bit of their secret into it and like as long as not everyone in this chain like is is is is actively malicious there's like one single good person then the chain is broken and we no longer can go from where we started which was like the secret when we started was the number one right um so and now it's some random thing which I don't know I only know like we only know the encrypted form of it um at the output and there's like a chain between these and as long as like not every single person in this chain between these was malicious then we know that the the the secret is safe cool okay so I think that's as good as we're going to do for explaining like what what's going on here but so let's let's
talk about the actual ceremony that you created so I would love to just hear from from the man himself like what the process was like from everything from deciding what the the tool would like show a user to um how you know what the individual points of entropy would be to even like how do we communicate this out to everyone and and um you know get get as many contribution as possible and I I want to save you from talking about the special contributions we'll get to those in the second but can you just talk a little bit about like designing the process and and um why you made the choices that you made yeah so I mean a fundamental thing is that we're trying
to have it be as easy as possible to to participate so we can have as many people right the the thing here is we need a chain that's so long that it's just like inconceivable that that's it's like that many bad people are like cluding together um and so every decision sort of came down to to to what that is um and this chain exists in like more than just people so it's like we don't just care that the people because if there's just one piece of software that everyone's running then like you may not have 100,000 people but like there's one bug and everything comes all tumbling down so like there there there are many like other ways this this chain can be broken and so it was like trying to optimize for like as many different ways of of having this as uh done as
possible so like many of the previous ceremonies that have been done have been like here this is the the piece of code you need to run um and and if you do that you'll you'll have contributed whereas like what what we did was a fundamentally different approach is like Hey we're going to write a specification and as long as you follow these specifications then like your contribution will be valid and this is the same like it's it's it it's a thing I took from the the way we have the the specifications for ethereum clients it's the reason we have many clients whereas in Bitcoin there's only one client that everyone runs uh we have to trust our one client in ethereum we have many things is because we start with a specification and from there people write many implementations and so we did the same thing there is where I wrote a
specification I kept it as simple as possible uh there many times where it's like we we could have made things easier or like uh it more feel more streamline feel more streamlined to contribute um and maybe have the queue work a bit more in a friendly manner but by doing that we would lose out on how easy it is to Rite write the software and that was like really important to us cuz we assume we'd get enough people but we're like more worried about like hey we don't want just one piece of software we want many um and so that was really what we're optimizing for so from there uh we we we had that specification and then um we had some people write out the um the sequencer which is basically the person who decides who's going to be the um the next person in line whose turn it is to
to to to to go next to add their link to the chain um and um they wrote that and like even in there there are two cryptographic backends like it switches like it calls out to two different libraries and asks them both for the answer and only if both of them agree do we continue um and then we had um uh the the the target was many um ways of implementing this as possible and so um the the primary way I think most people contributed would have been the website at ceremony do.org um and that was designed to be really simple um it was um uh trended the design here trend for naaps um I believe you also had them on recently um and uh he did a really
fantastic job um of like looking at some old manuscripts and and some of the ideology there about this like really lean to the idea of this being a ceremony that we're all participating in together uh but there it was like how can we um do this in a way where it's nice and it's easy for people to understand why it's needed and what's happening uh but so we can make sure the cryptography is done in a in a a decent Manner and so that was like the I think we had probably uh 70% of contributions come through that method um and that was really good and the um there we there's this idea where it's like we want to collect as many ways of being random as
possible into it so um the the the the the the the the contribution process there was um you'd have to type a secret um and we were like like recording a what that secret is but like B then the number of microsc between like how long you pushing each of the keys so even if you typed it twice it would be like another thing and you're not going to know that there number of microsc um at least I'm not I'm not a robot um then we're also like um we asked you to move your mouse around a bunch and we're like tracking where the mouse is and like how long it took and its speed and all sorts of things like that um and then uh the the final thing we did is we just asked your computer for some Randomness which like your computer is very good at like
all the cryptography that secures your Banking and all of that relies on coming up with random Secrets um it's what we call Keys like a key is just another random number um and so your computer comes up with a final random number and we mix those all up into a secret and like that was how the the the the website which I think most people use was was was mixing in your uh your secret which means like for the for the people who did this process like even if they were a robot who knew exactly how they typed and could like perfectly mimic the the way they move the Mouse um down to all the like speeds and timing like their computer still would have generated more Randomness in the background to like add to their secret so there's like no way that like even
you as a contri contributor using this could have remembered your own secret because you don't know all of the components of your own secret your computer was doing a lot of that work in the background too that's incredible so yeah I was I was going to try to get you there and you you beat me to it but so like just to be clear like when we were talking about car starts with the secret and then I get it and add my contribution what this actually meant in practice for about 70% of contributions is the my contribution was a combination of a password that I put in um the the microseconds between the character of the password that I put in I had to probably spend about 10 to 15 seconds just moving my mouse tracing out
whatever random patterns I wanted and then my computer also gave random information directly to the the client and all of those together form my secret and so the idea is that even like if all the humans involved were maliciously colluding like there's so much computational stuff there's so much stuff that is like Beyond human perception that it is you know what what Carl's trying to do is create ni impossible ability for all the secrets to be gathered and then the ultimate secret number to be revealed yeah so like in the chain analogy it's like not only that like you would need everyone to be malicious You' need everyone to be malicious and like super
technically Savvy to like open up the code for this website and like figure out exactly how it all works uh extract all these sub Secrets combine these sub secrets and like figure out how all that works like it's like another several levels harder than than that so okay and with with in mind that you need one person to be honest in order for the entire secret number to be secure and by honest we just mean doesn't share the secret with everyone else can you talk to us about the special contributions it's like what are they and why does that add like the final nail of the coffin to security yeah sure So like um we had like so many people contributing right we we had in the end 141,000
people contributing I believe um and so it's very unlikely that all of those people came together and and did something is um that's that's that's super unlikely but like as I was mentioning most people are using the same website so like there's this issue of like the secrets they were getting were like limited by how good the website is in effect as opposed to like the number of people because we already know that's really really good that provides us with this really crazy long chain um and so we had this this idea of special contributions which looks more like some of the traditional ceremonies we've seen in the past where there's like this uh extra effort that goes into creating a story and being able to like prove things that like this this the the the secret that people came up with is
not something they can know and like it's done in a way that truly is random um and so like we put out some some uh uh blog posts and that kind of thing asking for people to submit ideas we got lots of crazy ideas involving explosions and um shooting things and uh recording all sorts of things from nature um uh doing contributions from space all sorts of weird and wonderful things where it's like this is just like more ways where it's like all of these have to have gone wrong it's it just adds more of these like crazy ways that like things that have to have gone wrong together right every single one of these has to have gone wrong and so like this was like the the the additional ways that that was needed um and so the special contributions we actually had
two phases which is like we even we we were paying people to write more implementations which is just like more versions of the code as I was saying it came from specification so I was like Hey like let's make sure that there are even more ways you can contribute so I think in the end we had like 12 different clients or ways of interacting with her so it's like really cool um with like seven different cryptography backgrounds it was like all really like well done there um and then it was like okay we're going to have people be able to to to contribute and like I think this is also really important because at some level this is starting to get to a thing where we can't comprehend it anymore like this is a it's it it's becoming like the security comes from the mathematics and from having 140,000
people do it and whatever but it's like there's there's a human level of like how do we trust things as well and I think having stories around that is more tangible so we had these other special contributions where it's like how can we have people contribute in a way that they can tell an interesting story about how they did things in a secure way and came up with really random randomness um and and have convinced the world of that do do you have a favorite one that you can share just so people understand how like wild what we're talking about is um I mean it it in in terms of favorites I think they the they're they're maybe the less wild ones but my my I think my favorite was there there some that were like uh related to animals um so there
were um some people scattered a bunch of food on the ground and like recorded how their dog ate the food and walked around that um there was uh a whole project where they created a uh a ball for cats to play with um and the cats like knocked around this ball and like by knocking around this ball it was like collecting a bunch of data about how the ball was rolling and that kind of thing and I was like hey if like the cats are also in on this then like we've also got so I think those were really fun um there were also some like really epic things involving we had a contribution from space like literally satellites like around in space like that's pretty pretty mad like what people like up there like hacking the satellite like this is just like another level of like
crazy ways of things would have to go wrong for for that to happen um and then like there was also um some really fun ones around explosions recording explosions and like the vibration in the earth and the sounds the explosions make and then just like blowing up all the equipment at the end um so yeah I mean it's like it it's hard to pick a favorite because they all like contribute in different ways and have like really fun and important um like different aspects of why you should trust this like the the satellite one you should trust because it's like hard to like go out into space and do this but like the cat one you should trust because the cat's probably not in on those the whole revealing the secret to everyone and also can't remember how it hit how it hit a ball so it's like just
really different ways of doing this and I think they they told a lot of interesting stories there yeah man yeah again yeah I think I think it's really cool to think about um how the the shared secret that comes out of the kzg ceremony will be like critically important to ethereum like and and that's why I'm so excited to contribute it to it like I'm part of ethereum but because of just the scale and the um what it is like it's just so clear that this will be used for so many other um circumstances right there's no reason if you have a good shared secret there's no reason that it's dedicated to ethereum and so like because of its ethereum and because it has potential for so much
more it's just so important uh that that not only is it secure but like we believe it through these like you know we're humans we tell stories and whether that's like 140,000 people did it and there's no way for them to collude to a cat was involved and there's no way for the cat to collude like in order for this to have value we need to believe and um I guess at the end of the day that's really all you were trying to achieve yeah at at some level and and like what we're doing right now is also a part of it right is like helping people understand exactly what happened and like why this isn't a scary thing like there's a secret but like honestly really no one knows it and it's not a thing we could know um yeah cool so with the last few minutes here um I think we
could talk about like okay we have now our shared secret the kzg ceremony is over like what are the next steps to implementing dank sharding or Proto Dan sharding and and how do we go down the ethereum roadmap map but uh we spoke for a few minutes before we started recording and what I think is so cool is that you've kind of shifted your attention away from how do we continue down the implementation uh Road and you've shifted towards like how do we help and Empower and educate people that are going to be building because of the uh infrastructure that you're in the process of building so can you talk a little bit about um kind of what you're working on now and and how it relates to the kcg ceremony or I guess to D shardan
yeah sure so like we have all of this like promise scale and the the uh uh Proto dang shotting is going to go live on chain most likely early next year um and so yeah exactly touchwood um and so like we have all of this but it's like what are people actually going to do with this um and we have a bunch of rollups they've been doing incredible work um there are like many already live as many already or soon to come live um but there's um it it's it's hard for them to come to agreement on things so we've seen them um like they all have great ideas on like how to implement something and often end up um wanting to implement something and they're not
doing it because they like don't want to do something that is different from ethereum main chain like that's hard to to to think and now they got to like maintain all these differences um and they also like um there's there's uh a lot of a lot of competitiveness between them um but like I mean they're businesses so that's that's that's natural but they also don't want to like end up in this like thing where it's like survival of like one and everything else like there there is a lot of like energy to want to collaborate uh but they just haven't been able to find a means to do that and and a way of channeling that um so myself uh ancar Dix who's a a filler researcher and Y Vice who's also with eum Foundation uh
we we've started an effort that we've been calling roll call um which is the idea that like hey can we provide a platform for uh these discussions to happen um to allow these these these these rollups these L twos to reach new standards such that they can like start making their own changes and their own improvements um in ways that are uh common to all of them and that will allow them to um to to to to start innovating on the execution side of things um and on the user experience side of things because we all know there's a lot of work to be done there uh like how can how can we enable them to do that in a way that's like makes a lot of sense and is going to be like future proof and so we're trying to
provide the platform for that to happen so um it's it's a multiphase thing or multipronged effort uh we have roll call which is just this this call we have which just get everyone in the same room and talk uh um is there there's been no easy way to do it because like they rollups like message each other like hey what do you think about this and what do you think about that but it's not like hey let's get everyone in one room and let's talk about it um and so that's the idea there um and then the other thing is uh the way we make changes to to like the core ethereum is via a process we call eips ethereum Improvement proposals um and those are just technical specifications of like hey I want to like make make this change or like I want to do this uh I want to add this
feature um and if we reach agreement we put it on chain um and so the idea here is to have a similar process which we've been calling rip or R rollup Improvement processes um which is like or proposal sorry uh which is where you put out a proposal here and it's like hey like as rollups what like what if we implemented this and that's like a place for standards for rollups that might not be applicable to the ethereum base chain um for whatever reason or like may eventually become applicable but like the rollups are trying to do stuff now and that's part of what I'm so like what I find so appealing is there's uh there's so much energy to get stuff done now and it's like a lot easier because of the the the way that they're uh structured and the way that they're
written and they only have to worry about one sequencer and that kind of thing um to do and so it's like trying to provide this this platform for them to iterate and improve the the the the functionality and the user experience um together without like uh putting anyone on blast or using any names like what are the types of issues that you were seeing um rollups going diverging and like problematic directions that you're really trying to address with the roll call so I mean first of all it's it's it's not something like I think it's important to note here it's not something we're enforcing it's a little bit different to some of the other standards we have where it's like not like this is the rollup standard it's like hey like if you are going to have a standard let's try do it in a way that
works for everyone and sometimes it's not going to be possible so like there are lots of issues where it's like it's just very hard for the ZK like because of the way the cryptography works a lot of hard it's very hard for the ZK people to do certain things like it's just theography is not favorable um and other things are like oh this is really easy to do where uh on the ZK side of things where it's like hey that's like really like relative that's really expensive to do in the optimistic side so there like some issues there where there always going to be like some compatibility things um but we've seen for example some of these rollups have their own wallet in like uh infrastructure and ecosystems and it's like hey now there's like a crazy new set of wallets um and I'm like I'm sure some people are used
to this from dealing with multiple chains that have different wallets but it's like really nice when you can just have like your Ledger that does everything or whatever else like if we can keep uh whatever your favorite wallet it is be the like one wallet you need to interact with everything that's ethereum related that would be a huge Boon um and so like can we not fracture this this this ecosystem because like hey there's definitely features everyone wants to add like and there account abstraction is something very people are very excited about but like hey if we do this let's not do this in a way where we have like five or six different flavors of account abstraction and like they work slightly differently and as users you have to like learn like hey how does this work um like oh when I'm interacting with Unis swap on X rollup
or Y uh rollup that's a completely different process like that's insane that's that that's not going to work so like hey how can we come up with a process was like let's come up with one way of doing wallets or account exraction or whatever uh or as few ways as possible such that it makes sense that we can just like have one standard um and that makes it much easier for users and much easier for developers which like the people building um on on top of all these chains and hopefully you can then like seamlessly deploy one thing on one rollup or on another um and that should like speed up Innovation as well yeah and I I think um you know I just said you don't have to call it any names but I will but it's a positive thing which is like we just we saw base
kind of come out of nowhere and I think that this world where just like there's standards for everything and like none of the questions on how to create a rollup are really questions anymore it's just about like why to create a rollup and like what is going to happen on it uh just is is like a whole different like that that's what Bas was able to do right because they there was just so much work already done whereas you know the the three years before that was okay is is this company even a roll up like Okay can they like are they actually suddenly it's scared this this this this it's um go to L2 be.com there's like 15 different definitions of rollups based
on uh like which tokens you like and so I guess um I I'm just the biggest possible believer that ethereum is the ultimate Perfect final manifestation of Open Source and that's simply because it's open source but has found a way to capture the economic uh impacts of like the work that we're building and so um half of it what's so important is what you did before actually creating the technology doing the ceremony making sure that we have the infrastructure but the as we anyone who has any experience with open source knows perhaps the more important part is just coring the community to
standards and to something that we all agree on as the base case so that we can all focus on like actually building things that bring new people in or like change the experience of people that are already in here or like really change ethereum from like a passion project from a lot of people like you and me who own tokens to like a real piece of infrastructure that changes the way the world works so um man Carl like every time I I see you or talk to you or whatever I'm just like so impressed by um your story because it's not only the story of ethereum but it's the story of like making sure that the community of ethereum is moving in the same direction as the technology so just man I really
appreciate this conversation I really appreciate uh everything you've done and uh Before I Let You Go um can you share with the audience just uh where they can find you where they can learn more about kind of um anything from DK sharding to roll call uh yeah sure um probably this easiest place to find me is on Twitter uh at call beak um and I'm on most places under the same handle and in terms of finding out more on these things um again I've recently posted all the information about roll call on on my Twitter um it's also in um the ethereum PMS repo which is how we track many of the the common calls um and if you want to get more involved um or understand like a lot more in depth um I highly
recommend joining um the the the the um uh e R&D Discord um or any Discord for a project that's relevant to you um and and and and and finding your own Niche and just like contributing reaching out speaking to people um finding like whichever way you if you feel like hey this seems like a silly way of doing things it probably is we can probably fix it and so like Reach Out make those changes um and then like the whole ecosystem can grow together and and my one my piece of advice for those that don't have the technical skills or the confidence to feel like they have an opinion that's worth contributing you're not ready to get there yet like ethereum has the answer for you just create content like create content create
explainers have an opinion put it out there like that's that's the story of um like what makes this space so cool is that uh you know we have just as much need for Education as like building as like Theory and if you have any question about that just look at vitalic like from Bitcoin magazine to uh Godfather of ethereum yeah just like get out there not what what whatever you what whatever impact you can think you can have whatever short fors you see what whatever that is voice your opinion you're probably right in some way and certainly wrong in others I know I all the time uh and uh yeah that'll that'll help out everyone in in in the long run cuz we're building this together well
being wrong has never stopped anyone on Twitter so don't let it stop you that's true all right Carl thank you so much and uh I'll catch you on Twitter or whatever uh social media space we find ourself in six months but thank you so much and have a good uh rest of your week yeah thanks for having me Onre cheers n