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]