Scaling Ethereum Panel: Optimistic Rollups
ETHGlobal·Sat, Oct 9, 2021, 12:00 AM
Join Patrick McCorry (Pisa Research), Karl Floersch (Optimism) & Harry Kalodner (Arbitrum) as they discuss various approaches to scaling via optimistic rollups.
Transcript
um with that said um those were some amazing points that both carl patrick and harry uh brought up so what i'd like to do is just ask everybody to turn their video on and and we'll have patrick do a quick panel on uh or just moderate a quick q a session uh with uh arie and carl so i'll let patrick take it from here and we have a 15 minutes for questions uh we did get a lot of questions on the chat so we'll be relaying them here directly and then uh i'm sure patrick also has a handful of questions themselves so i'll let him take it from here yeah thank you very much for that part take um so this is the first question that i basically got from the chat um so the question was more to do with the evm and to the evm and layer one how interoperable will it be with the evm on layer two and this also sort of leads to my next question that's around this because you both mentioned that your roll-ups are good for experimenting so how easy is it that she ins the introducing new evm change on your on your roll-up let's say we wanted to experiment with eip-3074 could that be implemented on your rule out before it hits me in chin ethereum so um i'll let when you guys go first maybe maybe carl i guess because looks really excited uh full of energy that that may always be the case though um yes definitely you can 100 experiment with various uh eip changes um and there there are there are specifically certain things that are easy easier to experiment than others um but uh for the most part yeah yeah what about what would you harry uh yeah i you know i i think i could basically second what carl said i mean that's like one of the one of like cooler things about roll-ups is basically kind of like how much it opens up the design space now you know the the caveat to that is like once there's like launched roll-up chains that have a lot of money and users we're probably not going to want to get like too crazy um and we're gonna want to like run test nets and kind of innovate you know reasonably slowly over time but essentially kind of you know spinning what up kind of your own roll-up chain essentially that isn't kind of part of the main one and doesn't like synchronously communicate with the main one but like is sort of your test bed environment is like you know something that's like really awesome so i would for instance like really expect over like a couple of years from now when a new kind of piece of when a new you know eip is proposed there'll be like a roll-up chain that's launched on mainnet you know with the full economics that's kind of running with that with that eip and added in so that kind of rather than just having like a separate test net we can get like a much more kind of authentic um test of uh of the new tech awesome so that also leads to my next question on the evm so how vanilla will your evm be when you launch your initial roll-up are you gonna have any like custom features in your evm or is it going to be uh complete vanilla upon lunch you know so are you going to experiment right away um yeah uh sure yeah um yeah so um we're gonna ours is gonna be kind of mostly vanilla um but with a few exceptions um kind of the two biggest ones that come to mind um is with kind of supporting alternate transaction formats and so the biggest one there is with support for bls uh which is kind of uh awesome awesome efficient signatures that are going to be able to cut down the uh the call data usage of roll-ups even more um another area where uh where kind of arbitrary we've done a fair amount of work um is on the kind of gas pricing and economics uh it turns out that kind of for a roll-up chain there's a kind of a fairly kind of different set of concerns compared to ethereum's l1 um in sort of how the economics of the chain work um and so we've kind of done a lot of work there like very like very inspired by eip1559 um and kind of trying to achieve sort of the ux improvements uh that are kind of given that are given by that eip so uh so yeah like kind of around the edges basically sort of trying to innovate but like with the core model essentially as similar as possible so that we're not like the thing we don't want to do is confuse people too much um or cause things that would work on ethereum to break um and so kind of those are the areas we're staying away from and the areas kind of that don't have those risks so the areas we're trying to push the envelope a little bit so i can also second a bunch of that however one thing i will get into specifically is like what it really means like what have we done with the evm right we are literally running an evm in geth and what we're doing is we're actually intercepting the calls to a smart contract in that evm and then hooking that like kind of creating a precompile for that contract and hooking into the guests internal storage so when you say like are you making modifications to the evm like the only modifications that we are making to the evm are actually how the smart contracts are structured but we're using the evm vanilla evm software to support those features so it's it's this very interesting like you know we are as tightly integrated and kind of along for the ride in that sense as you know i can imagine you actually just reminded me yeah i mean optimism definitely you're dealing with the evm because you i think at one point crash school ethereum has also impacted the fuhrer and by the way the reason why we did that i mean the reason why we did that i mean the reason why we found that vulnerability was because we are working with the evm at such a low and insane level that we are using pre-compiles that just don't make sense in normal context there is the identity pre-compile where you call it and it just returns what you called and no one uses that like that's some crazy stuff but we had to use it for part of our software and it's like oh of course there's a bug in that pre-compiled by the way if you want to find a hardcore vulnerability look at the pre-compiles exciting so i'm going to move on to the next question then um this is also from the chat so one thing i mentioned in my in my talk was like you know withdrawal integrity how do we guarantee someone can withdraw their funds you know if the sequencer disappears and their question was what's that interaction like going from an l2 transaction to the l1 transaction so do you guys just want to give us an overview of what it's like on your systems sure um so an l2 transaction is you know you're sending directly to the sequencer but an l1 transaction is essentially an l1 to l2 message and now notably that l1 to l2 message can be anything it can be for instance a fully signed valid l2 transaction and so everyone on l2 has a kind of smart wallet it is implemented as a contract wallet which actually you know you can then upgrade to you know whatever you really want but the the kind of general sense is you would essentially be sending a meta transaction-esque thing which is a message into l2 that is eventually you know run in the l2 system of course with higher latency harry do you want to give us an overview as well yeah yeah and i think you know for for our for arbitrary the story is relatively similar there's some differences there um in that like our our kind of l2 accounts are our kind of relatively or basic eoas so basic kind of like we don't have like kind of smart contract wallets by default we just have sort of regular regular accounts and so for kind of in our system basically that l2 that l1 to l2 transaction um just basically sort of puts a submits a regular transaction um from that user um but you know these are these are kind of like technical details so i think sort of in practice that'll end up feeling pretty much the same awesome well also what i want to ask is you know we're at a hackathon full of newbies you're really excited to get involved with this can you give like a woman an overview of what it's like to get started on your on your on your layer 3 system what would the dev developer experience be like um anyone can go uh maybe carl do you want to go first okay um so the developer experience we are trying to keep it as minimal as possible so the uh we have a tutorial that you can uh check out on our github like optimism tutorial and essentially you take a for instance a hard hat project and you add a couple lines in and then you run your tests and it you know it should it all it all passes and so that is very similar you the generals the the general format is you you know uh add the optimistic ethereum network to your meta mask and then you can start interacting with it and sending transactions deploying contracts whatever you know whatever you made whatever you want so it's just essentially just think of it as a change to your provider um there are a few oddities around fee payment you know there's there's some caveats here and there but um that's at least where we are headed um yeah for us basically um and i think i showed on one of my slides there's uh there's a kind of a little landing page testnet.oh um really all it is is kind of if you have a truffle project a hard hat project um where you have kind of where you fill in your provider there's an arbitrary network um there's a url there's a chain id um it's it's a public test net and so you can just kind of take your existing project no need to do anything um and deploy it there are a couple corner cases and a couple edges you can hit um and we have kind of you know a little more there's a little more detail in there but if you if you try that out chances are pretty good that it'll just work um so awesome so the next question is also from the chat and i guess there's two variants of this the one in the chat was you know why do we have to use a theorem for data availability can we use like i know ipss foul coin etc so what do you guys think about that does it are we ethereum xe's definitely you go oh sorry oh no go for it go for it you go go carl you go yeah oh okay no no ethereum maxis here we gotta be we're blockchain maxis uh but anyway uh the the thing that i was talking about in the pre in my presentation was availability is like the pipes right it's not the storage so ipfs just doesn't really do the same thing as data availability that we're coming to consensus on the reason why availability on ethereum is really nice is because it's really confusing for developers to have tons of different security models for your different information right if i'm using the trusted internet it's just easier for my brain if it's all trusted at the same level or a similar level there will be gradients i'm not saying there won't be but generally speaking for mo many applications of wide variety it's just going to be nice to have a homogeneous trust trust model awesome about yourself harry yeah no i mean that's you know i think you know it's interesting how this will uh will expand over time like i think you know it's like ethereum is the place to be right now and it's the place to be hopefully forever um i think there are there is some kind of interesting work going on here i mean state channels for instance have their own solution data data availability which is just the people involved agree that it's available um there there's also kind of there's all sorts of you know i'm sure there'll be some discussion i think a little later today about the the cool stuff that uh that some of the dk roll-ups teams are doing there's like some terms bouncing around zk porter volition um there's there's a lot of really cool stuff here so kind of there's a lot of there's a lot of ongoing work like i totally agree with carl that like i think that like you know simplicity here is king um in a lot of ways um but there's kind of there is there are a lot of really cool kind of research directions here that do the same thing as roll-ups which are kind of like modify the security model of ethereum a little but like probably within enough constraints that like the systems are still sort of reasonable to use um so yeah you know we'll see where we are in five years um awesome so i'm gonna ask two more questions one's again to do with the day availability so as we know and you've both alluded to this in your presentation the real bottleneck to these uh roll-ups is ethereum's bond with you know call data how much data can you send etc and so that's gonna be the main gas consumption for the layer one uh so i'd actually like i don't know if you have any numbers handy you might not have numbers handy but do you have anything example applications that use your service and you're like oh they were using five million gas and ethereum but now they're using x gas on the roll-up you know like how good was that improvement if you don't have a number just fine it's just uh this is interested uh do you want to go first harry i guess um yeah yeah i mean so i think you know we've had a bunch of different applications deploy on our test set normally the way we figure this is we just sort of compare the we have our block explorer just kind of displays bl1 costs associated with the transactions and we compare it to what it would have been or what it was if they're also already launched on layer one so i think we've seen kind of anywhere between like a i think in in the worst case a like 10 or 20 x in the best case 500 x improvement um i think kind of like our our go-to like a while ago i think kind of one of the basically the first uh the first thing we did uh on on kind of the arbitration test that ourselves and we got it working just because it's like so core to ethereum was we uh we tried out launching uniswap b2 and i think the and if i remember correctly the transactions there were coming in at uh at around um 1900 gas per uh per transaction um assuming kind of the batches of transactions were specific of a sufficient size um which kind of there's this interesting thing which is like there's a fixed cost for the batch and then there's the variable cost per transaction uh but one of the really cool things that optimistic roll-ups have um is the batches don't need to be that big and so for arbitrome i think it's kind of like 50 000 gas um fixed cost and then we divide that over all the transactions in the batch so you can kind of still be very cheap even with not very many transactions cool uh go ahead carl very similar but the uh uh maybe one thing i'll shout out is synthetics in particular has a bunch of transactions that are like 2 million gas on l1 and you know we reduce that less than you know like 5 000 gas on l2 of course you know caveats batch sizes etc so like that is some applications are going to be crazy gas savings now just one extra note is that the more we can the more like uh people use the system the more our compression techniques and like the more mature we get we can actually offload more of that availability off chain and we can improve those uh uh performance characteristics even more so it's pretty cool awesome exciting so i hope all of all the jobs out there realize that you're going to get like 100 x savings if you use the optimistic rule ups so my final question is it's a very quick one you know as i think carl lewis is in this presentation we're one big community we're all bffs you know you're building competing products but you know what you're all like you know good good good community so my question is um what's your favorite thing about the other project and what gets you excited for it that's a nice very end nice um who gets to go first ever wants to go first i'll give you a second to think about it if you want [Music] i mean so i i have a i have a joke answer and a real answer my joke answer is you guys have the best beans like seriously like your meme game is like so close you know i i got to give it to you there um no no and you know and and the more serious answer is like you know the way the way they kind of be able to like you know use use geth um is is really cool um and like kind of reuse reuse those existing components is you know super super cool i will my answer is since i learned about arbitrarium okay the first thing was i was like okay ben tell me how arbitrarily works it is like i do not know but it sounds crazy cool like what is how do you have a virtual machine that like traverses a tree literally it traverses a tree that is legitimately like the coolest mind expanding thing and y'all are always at the kind of forefront of just you know mind expanding uh uh kind of designs and design spaces so it has been really inspiring to like understand all of the trade-off spaces or all of the kind of trade-offs that you all have made and also the i mean man i just can't get over the fact that y'all's vm just like goes up a tree and like trevor goes down and it's like yeah wow i feel like one of the kind of beautiful things has been like that like both projects are just making each other better like i know that like you know for instance like kind of the like evm compatibility a year ago we didn't we hadn't focused anywhere near as much and like kind of like seeing kind of where you know seeing you know with like the work you were doing and i think you know in a lot of ways inspired us um in terms of like pushing for that sort of like let's make let's make this look and feel as much like ethereum as possible which is like clearly you know in hindsight the right thing to do and it seems like kind of you know one of the one of the awesome things about optimistic rollups in general awesome so i'm going to finish there guys just for the time so uh i'll hand them back to cardig thank you very much for answering our questions gary carl thank you so much for that and patrick thanks so much for asking that uh question and ending on a really positive and wonderful note so thanks again and now we
Automatic transcript — names and jargon may be misspelled.