New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

An Overview and Wishlist for Rollup Escape Hatches by Jan Gorzny | Devcon Bogotá

DevconSat, Oct 7, 2023, 12:00 AM

Speaker

Jan Gorzny

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. https://archive.devcon.org/archive/watch/6/mev-capturing-ammsmcamms/ Escape hatches are meant to be a way to exit assets or state from a rollup in the hopefully unlikely event that sequencers are offline. In this talk, we review which projects have these hatches and what plans are publicly available for future rollups or versions of these rollups. We list some ideas that these, and other rollups, may implement or adopt in the future, for more robust and secure rollups. The suggestions will be rooted in our concern for security and the issues presented by bridges. Speaker(s): Jan Gorzny Skill level: Intermediate Track: Layer 2s Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

Transcript

foreign [Music] I'm really interested at and I think a lot of people in the security field sort of should be as well and that's Escape patches for Roll-Ups you've heard a lot about Roll-Ups uh so let's give a brief introduction about what they are and then we'll talk about the specific feature I care about and then we'll talk about some features that those features should have so what a good roll-up might want so this will be sort of similar to my colleague's talk from earlier except not Bridges but okay so what is a roll-up well if you you know attended a lot of these talks here at Defcon or elsewhere you know you see a bunch of more or less you know mutually consistent definitions but essentially it's some sort of layer to scaling solution or maybe layer three or layer four if you're really Forward Thinking um and it's some system that just takes transactions and executes them off chain and then batches them and compresses them and does something to get you some sort of savings and pushes some data onto layer one and so essentially it's a system that's replicating your layer one blockchain like ethereum but it's doing it elsewhere with some nice advantage that gives you you know scalability in in some sense or or savings and so how does the system work well usually you get some transactions and then your system design is very dependent on the implementation but typically there's something called a sequencer that gives an order to the transactions that are taken and then this order of ordered set of transactions is executed in some State transition function the state is updated and something gets pushed to your layer one chain where it's you know eventually considered final but uh this is great when everything works but what happens when things don't work in particular if your sequencer goes offline or some other component possibly but typically these Escape patches are discussed in the context of sequence or failures what happens because if you had a bunch of money or assets or tokens locked up in one of these Roll-Ups and suddenly the transaction that says give me my money back is no longer sequenced you're kind of screwed so uh the functionality of an escape hatch is some way to get program state or digital assets because you know tokens nucleus program State off of this roll-up system even when your sequencer or some other component has failed now obviously there's some sort of caveat some things probably can't fail and always work with an escape hatch right if you have a bug in your smart contract maybe no Escape patch functionality is going to work because maybe that's what's broken but we'll talk about that uh and and some people have actually started to look at this uh this this list thanks uh to l2b but Rewritten for our paper um they'll suggest that that various roll-up projects right now are thinking about this and uh trying to implement the solution now some of them have the none there we're not going to talk about the specifics and I'm also unfortunately not I don't have enough time to talk about even one of these approaches but if you are interested let me know or go contact the projects and say Hey how do you do this uh but even when they're implemented they're often not exactly done in some cases the design is not well understood in some cases the code is literally a stub and it says you know hey it's going to come later but now that the rest of the roll-up functionality is done you know like ZK parts are all coming together and everyone's got roll up State working it's time to start thinking about this feature that you sort of kept pushing off and you know into the future because ultimately while I hope this feature is never used by any roll-up ever we would like to see it exist so that if someone does have any issues you know you get your funds back and things work out in the user's favor and then you know ideally you fix it and your rollout gets back up or whatever so it's being done but maybe not done all the time or entirely correctly and so I'm going to discuss you know what I think some nice features would be in a roll-up now these would vary and just like in the cases for bridges for features some functionality is probably contradictory and you can't necessarily do all of these at the same time but there's some things that probably should be nice and obvious first um you know they should be well engineered components of the system uh they that usually means you know very modular and in case you need to upgrade your roll up you can upgrade part of it or all of it or just this part maybe this is the only part that's concerning because if you saw on that list some people just force a transaction whatever that means others suggest proposing new blocks whatever whatever that means but you know this should be a full-fledged feature not an afterthought second it should be secure you know big we always think about security at Quantum and certainly you know a roll-up is essentially a bridge that's even more complicated and we don't want to have to you know deal with exploits that arise for the roll-up because of this functionality if you do this do it right and you know make sure you test it and out of it and all that and finally it should be correcting you shouldn't really have to use consecutive Escape patches this is a bit confusing but I have heard some people say uh well our plan for arola escape patch is to just migrate the state to another copy of our roll up and then everything will work but as a user am I going to be you know really trusting of the same type of roll up that just went down on me I'm not so sure that that's going to be the case so ideally something that gets you sort of out of the system maybe crafting is not the best name is something that I'd like to see personally but beyond that we can think a little bit deeper about what it means to escape from a roll head rolling in particular if you're taking assets out that's pretty well understood and a lot of them do have functionality for forcing transactions for erc20 tokens for example but what do you actually really want to escape maybe you want to escape more than just a year or 20 tokens uh you know the obvious case is what if you have an nft minted on your roll-up obviously you probably want that back too without having to go through extra Hoops uh this also very much depends on the actual bridging that's being done but you know maybe there's some other things you want that are valuable to you they should be built in if you have adapt that you have on L1 you should sort of migrate it to L2 and sort of expect minimal extra friction introduced by this feature so in particular if that dap is supposed to escape some some State as part of this functionality it should come for free in air quotes because uh doing extra work sucks and finally it should be transaction efficient on the layer underneath if you escape from a layer or two roll-up and everyone else is trying to do this there's going to be a gas war and things are going to get expensive and things are going to get messy if you can do this in a nice way that Aggregates you know many user state or does something clever I think that's that's really the way to go now I'm not saying I have solutions for these but that's just what I want to see uh some other properties would be really nice be Global so in particular if you call an escape patch functionality you don't have to do it for every dap that you've deployed on that L2 so if I'm using uniswap and something else on some roll up I want to just say Escape everything not Escape uniswell then and also Escape whatever the other dap is that would be ideal I'd make my life a lot easier and it should be automatic and live ideally it's always available because who knows when the system could go down hopefully never but you know if it does we don't know when it'll be and it should be triggered hopefully automatically so we're not depending too much on social consensus I mean it might be unavoidable but it should be you know very clear when you can trigger this functionality and when you want to do that it should be available to you or at least the community should be able to make the decision but automatic would be you know ideal so that's what I think they should do have I missed anything please let me know do you disagree please also let me know uh you can contact me um email or Twitter there find me around here and we do have a write-up of this at um a non-blockchain conference uh so I can send you some papers about that thank you [Applause]

Automatic transcript — names and jargon may be misspelled.