**Speaker A:**
Foreign.
**Speaker B:**
Hello and welcome back for another.
**Speaker C:**
Episode of the Strange Water Podcast.
**Speaker B:**
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.
**Speaker C:**
But this comes at the cost of.
**Speaker B:**
Being inaccessible to more and more operators.
**Speaker C:**
To put it frankly, the higher the.
**Speaker B:**
System requirements, the higher the costs. Now, there's a lot of reasons why.
**Speaker C:**
I'm about to say this, but let's.
**Speaker B:**
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.
**Speaker C:**
Happy to say that we have a.
**Speaker B:**
Strategy and we call it Dank Sharding. Dank Sharding is a complex and a very technical upgrade coming to Ethereum. It not only represents cutting edge cryptography, it requires incredibly nuanced engineering work. Fortunately, we have the perfect guest to walk us through Dank Sharding Carl Beekhuisen. Carl has a long history with Ethereum, but his leadership of the KZG Trusted Setup Ceremony, which is a critical component of Dank Sharding, makes him the perfect person. During the next hour we talk everything from Dank Sharding and why Dank Sharding to coordinating the 140,000 person ceremony to how to prepare builders for a Dank Sharding 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.
**Speaker C:**
Carl, thank you so much for joining us on the Strange Water podcast.
**Speaker A:**
Thanks for having me on, man.
**Speaker C:**
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 KCG ceremony. And you know, I've just, I've been watching your work for a while and was so, felt so honored to be able to convince people to contribute. So, so excited to talk to you, so excited to see how big of a success it is and just I guess on behalf of the Ethereum community, just thank you.
**Speaker A:**
Yeah, no thanks. And thanks for directing people towards the ceremony for sure.
**Speaker C:**
Okay, so before we get to that, you know, I'm a big believer that like there's no point in having a conversation without understanding who the people in it are. So 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 with your whole like reputation and work and everything and not, you know, run away in fear?
**Speaker A:**
Yeah, so I kind of discovered Ethereum when I was in college, but I guess less from what you probably have from other guests here. A few. A friend, a friend of mine had like bought some early bitcoin and tried to try to get me into 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 I guess the time that would have cost hundreds of dollars on a GPU just to get some of this random thing. This doesn't make any sense anyway. 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 coins be mooning and all of that. So I was like, oh, okay, maybe I should be paying a bit of attention here. And so I started digging in a little bit. At the time I was very into machine learning and artificial intelligence, so. And I was viewing this period as like a financial thing. So I started building trading bots that, I mean they try 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, sort of on the 30 second scale kind of things. Those didn't do particularly well. Never lost any money, but certainly was not getting me anywhere. And I was very boring, like waiting for trading runs to complete and that kind of thing. 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. Some of the problems that are trying to be solved here are actually genuinely hard problems. Like what is this whole like super resilience things and what's the double spending problem? All those things that you'd like start off with. And so I got more and more into that and that was interesting to, to me and like I thought there are lots of fun problems. And then that sort of continued on for a while. And then there was an early EIP, EIP 1011, which was the original attempt at switching over to proof of stake. And at the time you needed 1500 ETH to become a validator. And I did not have that kind of money, I was still a student. And so I came up with a complicated system which is I guess what we call decentralized staking pools at the moment. I came up with a solution for that, which was splitting up between myself and some friends so that we could all shared like the risk and whatever and put in some money together and then act as a single validator, which turns out you need to solve a bunch of consensus problems because everyone needs to come on to agreement and lots of interesting networking problems. There's economic incentives you need to. And I was like, hey, I'm just designing a mini protocol, just one level abstracted. And then there was 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 through completely new design. I was like, no, like all this work I've been putting in is just certainly not, not, not worth anything. But 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 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 it just felt like lots more. The research has already been done, so the improvements are far more iterative, whereas this is like foundational stuff that was being solved. And from there I just got more and more involved and started contributing towards the specifications for what we now call proof of Stake Ethereum and sort of fell down from there.
**Speaker C:**
Before we kind of get into your contributions to Ethereum and kind of dank charting and everything you're working on today, I guess. So I like, you entered this space through the Lens of finance. 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 you know what? I. About six 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 seems 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 like really computer science and really about changing something about the way we coordinate? Or was that just kind of a gradual process that you can only say today?
**Speaker A:**
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, like a technological. Solving some small isolated technological things. Like an entire way of restructuring the way we think about coordination problems and some of the issues we face as a society. Like this fundamentally reframes a lot of those problems. That was, I think, more sudden, although I not sure what exactly was the impetus for that at the time was just doing a bunch of reading of pretty much any resources that I could, I could get on that. But I mean, I think about two or three years ago, Virgil wrote a blog post on how this is all about like a coordination game and how this really solves coordination problems between, between many parties. And whether you want to view that as a finance thing or when you want to view that as like far more complicated, intricate, like human level resolution things. I think that's a really nice lens and it's a lens I still carry with me today when I view all these things we're doing. And that's like, to me more exciting is like how we can solve this more generalized class of problems because that's applicable to so many things.
**Speaker C:**
Yeah, I think we can go all day on that theoretical level, but let me just move us along. So what I would love, especially just for my own, 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 to basically like, let's get to the start of the KZG ceremony where you're, you know, like a true leader and a mnemonic shelling point and like all of these things where it's like, I think of Carl as the KZG guy. Can you talk a little bit about your journey of kind of integrating more with the core Ethereum team? And like, what does it take to, to become a core Ethereum contributor?
**Speaker A:**
I mean, so initially like I decided to actually set myself a goal of like trying to get closer to this process. So 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. Because that's where I saw the interesting thing is happening. And so I, I, it like I basically just started speaking to the people involved, reading what these people are doing. The crazy thing about the way development and all the core Ethereum stuff happens, this is 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 you want to see the discussions, but they're in public, they're in the GitHub issues, they're out there. So it was mostly like reading those and then texting people and being like, hey, what about this? Or how does this work? And they'd be like, yeah, but you don't need to text me, put it out there, just suggest your idea. And so that actually took me a little while to get my mind around this crazy idea of like, hey, this really is truly open source and it's not like it really is properly decentralized. Like other people's opinions are, are valid. Like the now this is all done on like the, the Eth R and D discord channel. But it really, all the discussion happens there and between, between that and sure there are discussions that still happen like one on one between people, but it's not like they're these like large institutions in 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 periphery to get more involved it's just like starting to read these things and then giving my opinions in public. And so that got me started on lots of the early pre merge specifications for the consensus layer and I did a bunch of work there. And then after that, after the merge happened and all of that, I started focusing more on like my, my specialty has always been more special side projects, less the core thing and more like these other sort of mini things that take a few, take a few months or a year or so to execute and then we can, we can return back. And so like I did a whole, my next little arc was on the deposits deposit contract and the launch pad, which I know is not everyone's favorite interface, but it's, it really is that way for a reason. It's, it's, it's, it's. The trust assumptions really are minimal and we can make it a lot easier if we were to like violate some of the principles we hold in the space. But we really are protective of people's data and that kind of thing. So that was sort of the next one, was working on that. And after that I've been working on the KCG ceremony with Trent. And that 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. There's so much research that's left to be done. So many things meant to be thought through. Even things which sound like they're solved are probably very far away. Unless those are in concrete, like PRs to specifications or some of the clients, there's probably still a lot of research to be done. So it started off as like, oh hey, this is what we need to do and it seems easy. And then it's like, okay, we actually need to dig in and someone needs to execute on this. And so then that was the, the next one I did being the KCG ceremony.
**Speaker C:**
So promise to the audience that throughout the next 15 minutes we'll make sure you understand like what the point of the KCG ceremony is and how tank sharding works. But as part of that conversation, 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 sharding, which I want to talk about, but I could be referring to A lot of different things. And so I think like, can you talk a little bit about the journey to realizing what know, the dank sharding is the solution and like what that was like to experience from the inside of basically this change from execution sharding, which is like a well understood thing in traditional computing, to dank sharding, which is named after a guy and doesn't really have that much to do with sharding, but like, might be the answer to. Will be the answer to how we scale blockchain.
**Speaker A:**
Yeah, so, and I think, I think you hit on a very important point here and that's that we are very willing to change things as a community. And so we've had many false starts at many times along the way. And as I was saying, the original proof of stake plan with the IP 1011 was one of them. As you're talking about now, the execution sharding was another. The idea there being that, hey, if our blockchains are running too slow, we can just split them up into sort of many sub blockchains and handle that. But that was also sort of a fake solution because then you have many complex problems between, okay, cool, you have now one mini shard handling one thing and another one handling another. But how do you fuse those things? Like how do you have. One of the terms we were throwing around a lot was composability. Like, how do we compose things? Like, is it actually that helpful? Do you, do you really get these, these speed boosts? Or is it just like the chain where Uniswap or pick your favorite project is on is the chain that gets all the action and all the other shards are just useless and pretty much dead. 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'd need all sorts of complicated bridges and whatever. But we had solutions for that and we actually designed a lot of the consensus layer to look like that. So lots of the design was focused around having these committees that needed to be shuffled around to assign who's looking after which shard to do which computation. And that was all fine, but there was a lot of complexity carried around in that. And then around Eth. Sorry, around Devcon in Tokyo, sorry, Osaka, there was an alternative idea that came up, was like, hey, what if instead of we start charting the execution is that the execution is actually fairly easy. 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 some optimistic stuff was already around out there like that. But the kind of easier 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. And so we need to provide a space for that to happen and ultimately always going to be computing over data. And so the sort of brilliant insight was the idea we can switch to like only worrying about computing over data and we only have to shard data then as opposed to worrying about sharding all the execution and then how you handle sort of the other problems around the interfaces between execution kind of can go away and like very rapidly. We switched to this idea of an L2 centric roadmap and this allowed us to 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 crazy parallelizable chains, we can do that, but we need like the execution is a whole separate thing. And so then we just started thinking about scaling the data. And Vitalik and Mustafa had a paper that they co wrote together about a year prior to all of this on data sharding pretty much and how you can do erasure encoding in this weird two dimensional thing, which is basically a way of being, hey, how can we ensure that we have these guarantees about the data without everyone having to need all the data? Because if everyone has to download all the data, you haven't gained anything. And then like fusing this with some of the mathematics behind KZG and some cryptography. Dunkrad, one of my fellow researchers came up with the idea of what we today call dunk sharding, which is like a radically simplified thing where we have this data, it's external to the chain, like it's not accessible normally to the normal ethereum chain as we know today. But we have these sidecars of data that are referenced and in this data we can have all these in the space, we can have all this data associated to L2s. And so this was the shift we went through in thinking. But even that wasn't final. Like this was great and all, but it was still a very complicated thing because we needed to do all the sampling to check all this data is available and that kind of thing. And so it was a radical simplification, but it was another at least merge level complexity change that we need to the chain and we'd just learn from the merger how long that took, actually takes and what that means. And so Proto Lambda, who was working with us at the time, not optimism 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 get the scale we need. And so it's really stripping out any of the fancy networking things as much as possible. And just the minimum of hey, we have this data, we provide the space and you can put whatever you want in it. We have this fancy cryptography called Kate Commitments or KZG Commitments, which we can use to prove things really nicely and efficiently about the data. And we don't care what people do with the data, but we can do it in a way that's a relatively simple change to the Ethereum chain as we have now, and that allows us to get it out there soon enough that the L2s can start using it and then we can sort of like free the L2s to scale as they need to do radically on top of this by having all the space for them.
**Speaker C:**
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 the idea with what you're saying here is that 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 like that is just an incredibly hard things, 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 around devcon Osaka, Dankrad 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 that's what roll ups are. They go and do all the work and then they put just the results on Ethereum. 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 I guess do you take any issue with how I just explained it and then.
**Speaker A:**
No, I think that's, that's, that's, that's, that's a very good summary.
**Speaker C:**
Yeah.
**Speaker A:**
Yeah, cool.
**Speaker C:**
So, so I guess like let, 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 Eli 5 level, right like without using any advanced technical terms. But like I guess let's start with like what is a roll up without dank sharding and like then how does dank charting enable more roll ups?
**Speaker A:**
A roll up in like the most general sense is the idea that you do the computation somewhere else. We don't really care where that is from from the perspective of Ethereum. But then they, they put the, the answers to that computation back on chain and so it's basically like if we, we, we, we change the paradigm. We're currently in Ethereum. If we, if we have a, for every, every transaction gets executed, we have to show all our working out with a roll up. We only show like here's the question, here's the start of what, what we started with, here's what the users wanted, here's the transactions and here's the answer. We don't care about how we got to the answer. And the idea behind a rollup is we just put like the answer and like the questions that were asked, the transactions that people wanted to do 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 zkrollups where we can like, just like we can guarantee that it's done correctly. We don't need to show the working out because the cryptography can prove that the working out was correct. Or we do it optimistically is where we say we trust the person running the rollup or the entity running the roll up 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 the courts of Ethereum. We like basically ask them the roll up sequence is hey, show me you're working out. I think you did something wrong here. And then they provide that and then we go into this game where it's like okay, cool, I think this is where you made a mistake and we eventually find the source of the disagreement and we can say because we have proper execution in the Ethereum, the base chain, we could really prove things right. Down to the base level of who was right here. And so that's how we hold these optimistic rollups accountable. But now we get this dramatic speed up because all we care about is the inputs and the questions we ask in the transactions we're running. And then what's the answer to what we're doing here? What's the output of the chain after this we don't care about the working out.
**Speaker C:**
When I'm explaining Ethereum to people, I always like to say, you know how we like to say that the Apollo 11 spacecraft computer was less powerful than your TI84 calculator, right? Like that is the state of Ethereum. And what the roll up 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 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 is wrong, wherever that record exists, like that's where the settlement happened. And so anyway, I don't think we need to beat this point over and over. But I guess my question to you 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 sharding or proto dank sharding?
**Speaker A:**
So I mean this is the original L2 vision of just doing, doing these things. And it already gives us tremendous speed ups 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 day to 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 net people don't have issues. And when you do have issues, you do need to resolve them. And so we already have dramatic speed ups just by switching to this rollup idea of scaling. But the thing is like, hey, if suddenly we don't care about executing things anymore, what happens if we can scale by just focusing on providing more space for the rollups to put their transactions? What does that allow? We need like it's much easier to write the code around this. It's much easier to compute if we don't care about what's happening. If we don't care about the working out. We just allow it like a bulletin board to place the questions and answers and then that's that. And so dunk sharding is like the minimal version of like hey, how can we massively provide data for this? And then the idea there is for the roll ups to provide the inputs and outputs to all their blocks and 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. They put them in these blobs and then dunk sharding and KCG is just a fancy way of dividing up these blobs in a way that everyone's responsible for a little bit of it. So we can break it up into small components such that if everyone just had to download all this data then you're not going to scale the, I mean geth database is what, somewhere around a terabyte at the moment I think if you run a recently pruned node, so if we limited by that, that's not very helpful. But if we can somehow split it up such that 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 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 we're never going to lose any of these transactions and that kind of thing. And that's the idea behind dunk sharding is that we provide this 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 what we need is a place where if something goes wrong, like we can, we can figure out in the courts what, where this transaction went wrong and handle that. But after that's handled, we don't actually need to store the inputs and outputs anymore. We only need the latest version. We don't need the historical data be stored forever on these blobs. And so what we do is we say that nodes running the chain don't need to care about data that gets really old. And so you only need to care about the latest stuff which would be relevant if you have a dispute in these courts. And to give everyone enough time to look over things, make sure everything seems fine, have your nodes like validate all the data and then afterwards we can just for the average node get rid of it. And then people like block Explorers or the people running the L2s, that's different. Like, then they want to store all the data for you with your accounts. You're going to need to store your own account keys if you don't trust the, the sequences running this. But that's a separate problem because you personally care about your account, so you're incentivized to do it. 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, if you pay for cloud storage, they're like, okay, cool, you happily let you 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 data when you pay to put it on chain. It's enough storage that enough people can download it and we can prove things about it and handle any resolution, any conflicts and resolve them. But beyond that we don't have to store it. And that like radically frees up the amount of data we can store and therefore throughput we can have.
**Speaker C:**
Yeah, so let's. Let me repeat back what I said, what you said as a five year old and you tell me if I'm wrong, but okay, essentially. So going back to the calculator metaphor, what we've realized is that, okay, it is underpowered, but if we're just putting, 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 less, less access. Like that breaks it down. So instead, and what dank sharding is, is let's use this magic of 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 Tetra node 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 you know, in that, that that's like the model for scaling. Right. So I guess first let me pause there. Is that sound about right for what we're trying to do here?
**Speaker A:**
Yeah, totally. I think, I think that's a good summary.
**Speaker C:**
Okay, cool. So let's talk a little bit about. 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 construction? And look man, I don't want you to 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 KZG commitment?
**Speaker A:**
So like we, we need to be able to summarize this data we have now. This crazy amount of data, it's too big to go on the normal Ethereum chain. And so we need to summarize it somehow and we use a general commitment for this all over the place. So we hash things all the time in Ethereum. Ethereum is like, I think the vast majority of work that's been done when you're running a node is hashing things or finding out what was hashed somewhere, looking up another hash. So we have this weird commitment thing that's already very fundamental and that's a nice way of summarizing things. And KZG commitments are a different type of committing, a different type of commitment device with really cool benefits that we can do fun cryptography about so we can combine different commitments together and really efficiently do that. And so because we have this idea where we like taking this data and splitting it up and we need to be able to recombine it really easily if something goes wrong and that kind of thing. So we need many of these properties which we haven't had from like a traditional hash type commitment. And so KZG is this really cool way of committing to data in a way where we get many other benefits along the road and help reduce the load. Because there's fun cryptography things we can do in the background with these commitments.
**Speaker C:**
And I guess again without getting technical, this is tough. But the only thing that I would add to that is that all a commitment scheme is you take a bunch of data and you transform it into just one single tag. You can say with this tag, this Tag represents this data. This data is committed to this tag. The cool part about KZG is using the tag, you can verify not only the whole data set, but individual pieces of it.
**Speaker A:**
I think maybe a nice analogy here to think about is the way folders and files work on your computer. A folder is a summary. You might give it a name of documents or something that tells you what's in that folder. 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 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 a really efficient way that we can like prove things about your documents and also your photos and something else and like combine them in any way we want if we need to or not. And we just get these really nice benefits. And the benefits are complicated and cryptographic, but they just give us nice ways of talking about this. And particularly in this model where we're going to be recombining and splitting up data and doing all sorts of fun things like that, we need these mathematical benefits that we can do fun tricks with to get more speed ups.
**Speaker C:**
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 in order to use a KCG commitment?
**Speaker A:**
The KCG commitment, A trusted setup, we call it this because a KCG commitment basically has a secret in the very core. And the secret allows you to make all these proofs. It's the fundamental thing, it's a number. 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. And that's really nice and really we need this. We need this mathematical structure, this number. But that's what allows us to do all the math. But we have this problem is in a decentralized, trustless system, who comes up with a number? I could just come up with it and everyone would trust me, but no one would do that. That's crazy. I like to think I'm a trustworthy person, but I would not ask the community to trust me. As the one arbitrary. Here's the number. Because if anyone knows this number, then we no longer have guarantees that the things you say are the documents in the documents folder are actually the documents. Like we lose that promise.
**Speaker C:**
Let's unpack that a little bit. Right. So if I know the secret number, essentially what I can do is you asked 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 the reality 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?
**Speaker A:**
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 roll ups, we no longer have guarantees that the data that was posted, that 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'd have no way of being like, hey, that wasn't my account balance, that wasn't correct. Because as far as the cryptography is concerned, it is correct. Basically it's this master key that allows you to unlock all of the security. It is the core thing. And so it's super important that we can never discover what this number is.
**Speaker C:**
Okay, so let's recap for a second. So in order to scale Ethereum, we've decided we are going to offload execution and key 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 basically what the KZG ceremony is, is the way to generate this secret in a way that maintains at least some modicum of trustlessness and like removes the ability of someone to know that secret and therefore compromise the system. Does that sound good?
**Speaker A:**
Yeah, that's, that's, that's the basic idea. And the name trusted setup is what this has been called in the past because this has been something that has been done. I mean, I think the first, like really public one was the zcash, original zcash setup. And that was literally six people blocked in a room 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 layers 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 fought, like, 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. The particular requirements of the secret for the KCG ceremony 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 a process where everyone can, like, add their own little bit to the eventual Ethereum secret? That's like, at the core of kzg. And instead of having to trust like one of six people in a room, you now have to trust one of a thousand or ten thousand people. And it's like, hey, if there's only, like, if one single person, like, didn't compromise their secret, didn't remember their secret, write down their secret out of this 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 find the secret.
**Speaker C:**
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 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 does that sound Right. In terms of, at a super high level, what the process is.
**Speaker A:**
Yeah, yeah. Basically it's this like, idea of like, you form a chain of like passing around this, the secret number. And when we're passing around like, it's not that the secret number is freely readable or whatever. As soon as you pass it on, that's like fully encrypted in a way that like is protected by the number itself. And all of the math we're using elsewhere in Ethereum, this is just normal elliptical cryptography. So we have this way, we've hidden it such that when I hand over my secret to you, there's no way you could know what any of it was so far. And then you add in your bit. And so everyone forms a chain of sequentially adding a little bit more secret, like a little bit of their secret into it. And as long as not everyone in this chain is actively malicious, there's one single good person, then the chain is broken and we no longer can go from where we started. Which was the secret when we started was the number one. Right. 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 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 secret is safe.
**Speaker C:**
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 himself, like what the process was like. From everything from deciding what the tool would show a user to what the individual points of entropy would be, to even how do we communicate this out to everyone and get as many contributions as possible. And I want to save you from talking about the special contributions. We'll get to those in a second. But can you just talk a little bit about like, designing the process and why you made the choices that you made?
**Speaker A:**
Yeah. So I mean, our fundamental thing is that we're trying to have it be as easy as possible 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 is like that many bad people are like colluding together. And so every decision sort of came down to what that is. And this chain exists in 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 you may not have a hundred thousand people, but there's one bug and everything comes all tumbling down. So there are many other ways this chain can be broken. And so it was trying to optimize for as many different ways of having this done as possible. So many of the previous ceremonies that have been done have been here. This is the piece of code you need to run and if you do that, you'll have contributed. Whereas 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 your contribution will be valid. And this is the same. It's a thing I took from the way we have the specifications for Ethereum clients. That's the reason we have many Ethereum clients, whereas in Bitcoin there's only one client that everyone runs. We have to trust the one client. When Ethereum, we have many things is because we start with the specification and from there people write many implementations. And so we did the same thing there, where I wrote a specification, I kept it as simple as possible. There are many times where it's like we could have made things easier or like it feel more streamlined, feel more streamlined to contribute 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 write the software. And that was like really important to us because we assumed we'd get enough people, but we're like more worried about, like, hey, we don't just one piece of software, we want many. And so that was really what we're optimizing for. So from there we had that specification and then we had some people write out the sequencer, which is basically the person who decides who's going to be the next person in line whose turn it is to go next to add their link to the chain. And they wrote that. And 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. And then we had the target was many ways of implementing this as possible. And so the primary way I think most people contributed would have been the website@chetem.ethal.org and that was designed to be really simple. It was. Trent did the design here, Trent Van Epps, I believe he also had him on recently and he did a really fantastic job of like looking at some old manuscripts and some of the ideology there about this, like really lean to idea of this being a ceremony that we're all participating in together. But there it was like, how can we 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, but also we can make sure the cryptography is done in a decent manner. And so that was like, I think we had probably 70% of contributions come through that method. And that was really good. And there, there's this idea where it's like we want to collect as many ways of being random as possible into it. So the contribution process there was. You'd have to type a secret and we were like recording A what that secret is, but like B, then the number of microseconds between how long you're pushing each of the keys, even if you typed it twice, it would be like another thing. And you're not going to know that it's a number of microseconds. At least I'm not, I'm not a robot. Then we're also like, 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. And then 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. It's what we call keys. Like a key is just another random number. 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 website most people use was mixing in your. Your secret. Which means for the people who did this process, even if they were a robot who knew exactly how they typed and could perfectly mimic the way they move the mouse down to all the speeds and timing, their computer still would have generated more randomness in the background to add to their secret. So there's no way that even you as a 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.
**Speaker C:**
That's incredible. So, yeah, I was, I was going to try to get you there and you beat me to it. But so, like, just to be clear, like when we were talking about Carl 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 that my contribution was a combination of a password that I put in 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 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 Carl is trying to do is create nigh impossible ability for all of the secrets to be gathered and then the ultimate secret number to be revealed.
**Speaker A:**
Yeah, so like in the chain analogy, it's like, not only that, like, you'd 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, 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 that.
**Speaker C:**
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? Like, what are they and why does that add like the final nail of the coffin to security?
**Speaker A:**
Yeah, sure. So like, we had like so many people contributing, right? We, we had in the end, 141,000 people contributing, I believe. And so it's very unlikely that all of those people came together and, and did something malicious. 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, you know, that's really, really good. That provides us with this really crazy long chain. 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 extra effort that goes into creating a story and being able to like, prove things that like this, this, 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. And so like, we put out some, some blog posts and that kind of thing, asking for people to submit ideas. We got lots of crazy ideas involving explosions and shooting things and recording all sorts of things from nature, 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 just adds more of these crazy ways that things that have to have gone wrong together. Every single one of these has to have gone wrong. And so this was the additional ways that was needed. And so these special contributions, we actually had two phases, which is like we were paying people to write more implementations, which is just like more versions of the code. As I was saying, it came from specifications. So it's like, hey, let's make sure that there are even more ways you can contribute. So I think at the end we had 12 different clients or ways of interacting with us. So it's like really cool with like seven different cryptography backgrounds. It was like, all really like, well done there. And then it was like, okay, we're gonna have people be able to, 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.
**Speaker B:**
It.
**Speaker A:**
It's becoming like the security comes from the mathematics and from having140,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 and, and have convinced the world of that.
**Speaker C:**
Do you have a favorite one that you can share just so people understand how like, wild. What we're talking about is.
**Speaker A:**
I mean it in terms of favorites. I think they're, they're. That they're maybe the less wild ones. But I think my favorite was there are some that were like, related to animals. So there were some people scattered a bunch of food on the ground and like recorded how their dog ate the food and walked around that. There was a whole project where they created a ball for cats to play with. 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. 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 what people like up there, like hacking the satellite. This is just like another level of like crazy ways of things that have to go wrong for that to happen. And then like, there was also some really fun ones around. Explosions, recording explosions, and like the vibrations in the earth and the sounds the explosions make and then just like blowing up all the equipment at the end. So, yeah, I mean, it's like, it's hard to pick a favorite because they're all like, contribute in different ways and have like, really fun and important, like different aspects of why you should trust this. Like 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 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 told a lot of interesting stories there.
**Speaker C:**
Yeah, man. Again, yeah, I think, I think it's really cool to think about how the shared secret that comes out of the KZG ceremony will be like critically important to Ethereum. And that's why I'm so excited to contribute to it. Like, I'm part of Ethereum, but because of just the scale and the what it is. Like, it's just so clear that this will be used for so many other 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 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 I guess at the end of the day that's really all you were trying to achieve.
**Speaker A:**
Yeah, at some level. 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. It's not a thing we could know.
**Speaker C:**
Yeah, cool. So with the last few minutes here, 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 Dank Sharding? And how do we go down the Ethereum roadmap map? But 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 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 infrastructure that you're in the process of building. So can you talk a little bit about kind of what you're working on now and how it relates to the KCG ceremony or I guess to Deng Sharding?
**Speaker A:**
Yeah, sure. So like we have all of this like promised scale and the protodank Sharding is going to go live on chain most likely early next year. And so. Yeah, exactly. Touchwood. And so like we have all of this but it's like what are people actually going to do with this? And we have a bunch of roll ups. They've been doing incredible work. There are like many already live, as many already or soon to come live. But it's hard for them to come to agreement on things. So we've seen them, they all have great ideas on how to implement something and often end up wanting to implement something and then not doing it because they don't want to do something that is different from Ethereum main chain. That's really hard to think. And now they got to maintain all these differences and they're also there's a lot of competitiveness between them but I mean they're businesses so that's natural. But they also don't want to end up in this thing where it's survival of one and everything else. There is a lot of energy to want to collaborate, but they just haven't been able to find a means to do that and a way of channeling that. So myself, Anska Dietrich, who's a fellow researcher and Joe Vice, who's also with Ethereum foundation, we've started an effort that we've been calling Roll Call, which is the idea that like, hey, can we Provide a platform for these discussions to happen, to allow these, these, these, these roll ups, these layer twos to reach new standards such that they can like start making their own changes and their own improvements in ways that are common to all of them. And that will allow them to, to start innovating on the execution side of things and on the user experience side of things. Because we all know there's a lot of work to be done there, like how can we enable them to do that in a way that makes a lot of sense and is going to be future proof? And so we're trying to provide the platform for that to happen. So it's a multi phase thing or multi pronged effort. We have roll call, which is just this call we have where we just get everyone in the same room and talk. There's been no easy way to do it because rollups 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. And so that's the idea there. And then the other thing is the way we make changes to the core Ethereum is via a process we call EIPs Ethereum improvement proposals. And those are just technical specifications of like, hey, I want to make this change, or like I want to do this, I want to add this feature and if we reach agreement, we put it on chain. And so the idea here is to have a similar process which we've been calling RIP or roll up improvement processes, which is like a proposal. Sorry, which is where you put out a proposal here and it's like hey, like as roll ups. 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 based chain 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, there's so much energy to get stuff done now and it's like a lot easier because of the, the way that they're structured and the way that they're written and they only have to worry about one sequencer and that kind of thing to do. And so it's like trying to provide this, this platform for them to iterate and improve the functionality and the user.
**Speaker C:**
Experience together without like putting anyone on blast or using any names. Like what are the types of issues that you were seeing roll ups go in diverging and like problematic directions that you're really trying to address with the roll call.
**Speaker A:**
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 roll up standard. It's like, hey, like if you are going to have a standard, let's try doing 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 the cryptography is not favorable and other things are like, oh, this is really easy to do where on the ZK side of things where it's like hey, that's like really like relative. That's really expensive to do. An optimistic side. So they're like some issues there where there always going to be like some compatibility things. But we've seen for example some of these roll ups have their own wallet info like infrastructure and ecosystems. And it's like, hey, now there's like a crazy new set of wallets. 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 whatever your favorite wallet is, be the like one wallet you need to interact with everything that's Ethereum related. That would be a huge boon. And so can we not fracture this ecosystem? Because hey, there's definitely features everyone wants to add. Account abstraction is something people are very excited about. But hey, if we do this, let's not do this in a way where we have five or six different flavors of account abstraction and they work slightly differently. And as users you have to learn, hey, how does this work? Oh, when I'm interacting with Uniswap on X rollup or Y rollup, that's a completely different process. Like that's insane. That's, that's not going to work. So like, hey, how can we come up with a process where it's like, let's come up with one way of doing wallets or account abstraction or whatever or as few ways as possible Such that it makes sense that we can just like have one standard and that makes it much easier for users and much easier for developers which like the people building on, on top of all these chains and hopefully you can then like seamlessly deploy one thing on one roll up or on another and that should like speed up innovation as well.
**Speaker C:**
Yeah, and I think, 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 Bass kind of come out of nowhere and I think that this world where just like their standards for everything. And like none of the questions on how to create a roll up are really questions anymore. It's just about like why to create a roll up and like what is going to happen on it just is like a whole different like that, that's what base was able to do. Right? Because there was just so much work already done. Whereas you know, the three years before that was okay, is, is this company even a roll up? Like okay, can they like are they actually settling? It's scared. This, this, this, this. It's. Go to l2b.com there's like 15 different definitions of roll ups based on like which tokens you like. And so I guess 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 impacts of like the work that we're building. And so 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 corralling 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 man, Carl, every time I see you or talk to you or whatever, I'm just like so impressed by 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 everything you've done. And before I let you go, can you share with the audience just where they can find you, where they can learn more about kind of anything from dank sharding to Roll Call?
**Speaker A:**
Yeah, sure. I probably easiest place to find me is on Twitter at Carbique, and I'm on most places under the same handle. And in terms of finding out more on these things, again, I've recently posted all the information about Roll Call on. On my Twitter. It's also in the Ethereum PM's repo, which is how we attract many of the. The common calls. And if you want to get more involved or understand, like a lot more in depth, I highly recommend joining the eth R D Discord, or any discord for a project that's relevant to you and finding your own niche and just like contributing, reaching out, speaking to people, 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 and then, like, the whole ecosystem can grow together.
**Speaker C:**
And 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, like, what makes this space so cool is that, 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 Vitalik. Like from Bitcoin magazine to Godfather of Ethereum.
**Speaker A:**
Yeah, just like, get out there whatever impact you can, think you can have, whatever shortfalls you see, whatever that is, voice your opinion. You're probably right in some way and certainly wrong in others. I know I am all the time. And yeah, that'll help out everyone in the long run because we're building this together.
**Speaker C:**
Well, being wrong has never stopped anyone on Twitter, so don't let it stop you.
**Speaker A:**
That's true.
**Speaker C:**
All right, Carl, thank you so much and I'll catch you on Twitter or whatever social media feedback space we find ourselves in six months, but thank you so much and have a good rest of your week.
**Speaker A:**
Yeah, thanks for having me on. R. Cheers.