I am Carl flourish and I am here to talk
to you about not just optimistic things
but optimistic roll up
this is aetherium layer to the last talk
very inspirational talking about how we
can make aetherium great and you know
not suffer from the massive economic
divides and I'm just going to tell you
how to make the user experience a little
better but I think it's very important
nonetheless
so of course PG that's plasma group
shout out represent don't forget about
aetherium layer two it is extremely
extremely powerful so first i'm going to
talk about trees I recently started
growing plants and by that I mean I
recently started killing plants and it
has been a wonderful experience every
time I look at my plant I see
mathematical constructions with you know
the golden ratio and these you know
fractal branching patterns and just
unbelievable unbelievable complexity
emergent complexity in fact you know
that that whole emergent emergence thing
was definitely not planned and very very
convenient it's because it's about
self-organization all of these things
coming together all of these different
pieces you know adding up and emergent
complexity I had it in my slides the
growth of a plant from the you know the
soil that you place it against the wall
you watch it grow it's like this
incredible thing and of course as I'm
staring at my plant I start to see
crypto economics I'm like wow it's the
same thing it's like you're planting the
soil you're fertilizing the ground
you're writing your smart contract that
says hey if you wear a hat I'll give you
a token and then people start wearing
hats as long as you positioned your
plant right and you've you know watered
it correctly so it's this it's this
emergent phenomenon both of them and
this entire community is this emergent
phenomenon it's really quite amazing and
so this is my plant is very this is all
what I do to think about how how to not
think about this this very sad dying
plant but nonetheless nonetheless we
continue on very sad so as I was you
know preparing for this talk of course I
stumble across a Vitalik presentation as
I often do and one thing that he said
was javascript was the foundation for
innovation he was introducing his new
JavaScript framework you know he was
introducing solidity and smart contracts
this etherion blockchain and he said you
know that is what I hope to bring to the
world of cryptocurrency I want to set
the foundation by creating smart
contracts the ability to program smart
contracts and use that to grow an
ecosystem and so you know Vitalik and
many others worked really hard to bring
us smart contracts and it has birthed
this incredible community so many people
that I am you know I you know uh
everyone in this conference is so great
anyway getting choked up about how great
people are but you know it inspired me
to talk about crypto economics right in
my DEFCON 3 talk I was all about crypto
economics I was describing these
mechanisms which we can create hopefully
you know driving good incentives and
avoiding the bad ones and and and
building the you know just the right
mechanisms and learning how to you know
design them in such a way that we
actually promote good outcomes and in
fact the the kind of subject of my talk
was was you know swap because it felt
like a very good
you know crypto economic mechanism that
would drive economic behavior and you
know thankfully that that seems to have
panned out reasonably well but the dream
right this dream of crypto economics and
building building systems with with you
know cryptography and economics and
giving us all superpowers that we can
all program our smart contracts that
dream became a little bit a little bit
of a nightmare right because when we you
know when I actually used our systems
unfortunately I would be presented with
these like very you know 69 digit you
know expansions and in this you know
crazy thing where we approve all of the
tokens to be transferred on you know on
our behalf for a random smart contract
that we don't really know about right
like these crazy user experience
problems and pending you know we're
waiting for our transaction to go
through and waiting waiting and no
matter
how much I'm madam asked I press speed
up it never gets faster than 15 or 1
minute or even 10 minutes sometimes is a
horrible horrible situation which I you
know hope to remedy anyway all of this
to buy my Krypto Kitty and spend 30
cents on gas right this is this is the
experience the plight of the incredible
dream that we have and really honestly
we have come so far like this is you
know no shots against it but a lot of
you know this is this is it's tough love
anyway so so this caused me to kind of
talk about scale and how do we solve
some of the big problems that face crit
you know the the etherium ecosystem
today and like how can we build
solutions which scale up and resemble
you know the quote centralized the great
experience that centralized systems can
give you because they don't have to deal
with all of this you know complexity
about you know ensuring user safety and
all that kind of stuff that's an
afterthought and so how can we actually
build our systems so that they resemble
those and we can get that mass adoption
that we need and so of course you know I
myself and a few others you know Jing
and and Ben are in the in the audience
here today foreign plasma group and you
know try to solve this solve this
usability problem using etherion layer
to right and so we could upgrade
aetherium using layer 2 using only smart
contracts the actual like ability that
you have to you know impact change with
smart contracts is massive and so just
superpowers right these smart contracts
are incredibly incredibly liberating
such power much Wow and so a couple
months later we you know released this
test net and we you know scaled
thousands of transactions per second
with plasma and it was this amazing
thing but then like an annoying parent I
would hear from people like Hayden and
others but can it run you know swap rate
you talked about you know swap you love
you know swap but can it run Yoona swab
and the sad truth is no it couldn't at
the time run eunice wah and so we went
back to the drawing board and we thought
of generalized plasma and this time it
had predicates and Platt
and just in kraid the past of the the
functionality of plasma and you know
really unlocked a bunch of you know
technically smart contract programming
you know features however yet again
Vitalik was like but can it run you know
swap and once again the sad answer was
no it cannot we did not have smart
contracts we did not have the
unstoppable smart contracts of aetherium
layer one using a developer experience
like solidity that people are familiar
with and so that was a real problem and
to kind of demonstrate this problem
here's a little graph which shows the
different ways that we solve the
validity and availability problems of
layer two I won't get into the details
because there's only there's only some
you know so much time but for those in
the know on their on the on the right
hand side you have put all data on chain
that's roll up on the left hand side you
have plasma and on the top right that's
how we provide availability so either we
put it all on chain or we use this
this this availability availability game
and on the top we have optimistic
validity proofs so that is essentially
this kind of you know the classic layer
two it's only it's only it's correct we
assume it correct if there's a time out
that we that that occurs and you know no
one has challenged it and then we can
also use fancy math to solve the ability
to solve the validity problem using zero
knowledge proof and so there's a whole
bunch of layer two solutions on this on
this kind of map and notably something
that is a little strange is there's a
little bit you know a section that's
kind of missing that was definitely
missing from my conception of layer two
and you know a very you know potentially
very interesting and so before I go into
what that section is here generalize
these are the kind of benefits of each
system so generalize computation when
you have an event when you have one of
these validity games enforced with
crypto economics you can do general
computation and on the bottom you have
objective proofs upfront that means that
we can prove to the main chain validity
a meet
because it's you know succinct enough to
be verified and here on the roll-up side
we have no data withholding which means
we don't have to deal with you know the
the same problems of a plasma operator
going offline or at you know whatever it
may be but here on the on the plasma
side we have like infinite transactions
per second because we don't have that
data availability bottleneck but of
course there is this you know this blank
open space so what is that point well
we're very clever and so we came up with
the name optimistic roll-up and so it
turns out that within this in this
trade-off space you can get general
computation and you can get the no data
withholding you no problem the kind of
unstoppable nature the liveness
properties of etherium and so that gives
you what really resembles smart
contracts inside of layer 2 and that is
a huge huge you know deal from a
developer user experience perspective
which is you know honestly a user
experience that is often neglected
especially you know especially in
aetherium and in other places now
notably this this kind of trade-off
space had not not been explored before
not not been explored before um in 2014
potala came up with shadow chains which
is essentially what this is and you know
a bunch of other people had also come up
with this and so this is he kind of work
expanding on shadow chains and so now
I'm going to give an optimistic roll
roll up overview in two minutes I was
told that my talks
they'd someone so I was giving a slower
talk and they were like I want a really
fast talk Carl and so I was like ok how
fast can I make this fast talk and it's
just way too fast so this you're not
going to understand it but you'll
experience it and you'll love it
you'll love it so BAM oh yeah I was
gonna do that BIM that's another one all
right so we have aetherium right that's
pretty straightforward we have an
etherion block we deploy a optimistic
roll-up contract to aetherium there's
our optimistic roll of chain it's
deployed we have an aggregator they are
bonded in fact we can have multiple
aggregators anyone can submit new blocks
as long as they have a bond now we're
going to you know enter the chain pretty
straightforward we can you know send a
transaction to the main chain and
deposit in
where you can just receive money on the
chain itself you know either way works
now the next thing is we can send
transactions so no remember this is that
that block down there that is an
optimistic role of blocking so we're
going to create more of those so if
alice is going to send a transaction to
the aggregator the aggregator is going
to you know creating an updated state
route they're going to calculate what
the actual saver it is notably this is
an account model not a UT Excel model
that is kind of more familiar in plasma
because we can do that with this
technology we're going to commit to
these transactions and intermediate
state routes so that we can prove
invalidity in one step then we are going
to submit that as a block to aetherium
submitting the block to etherium we're
going to create a Merkel tree of that
block which is the probably the most
confusing part because we're doing a
Merkel tree and a Merkel tree and a
Merkel tree and a Merkel tree there are
four layers and Merkel trees here we're
going to then add it to a smart contract
with a large number of blocks it is
constant sized and so we get to save a
lot of gas about the exactions actions
per second that we get later and now
we're going to submit that block great
we've done it and so we can download
that block off chain calculator off
change state and we are set and good to
go now we're going to interact with the
smart contract pretty straightforward
someone deployed a smart contract to
aetherium the same thing that you do
that there you do an optimistic roll-up
it goes off chain now someone sends the
transaction to unis WAP off chain the
unit swap balances get computed you know
any smart contract our execution gets
computed and we compute a new state
route and we're good to go
we submit we commit to that that new
state route and now we submit all of
that in a roll-up block and we are set
and we you know of course update our
balances once again now we're going to
do something bad the aggregator is going
to be evil evil malicious so now what is
going to happen well we're going to
create an invalid transaction we're
going to create an invalid state route
compute that state route and we're gonna
place it on to the main chain as a block
o is are they gonna get away with it
what's gonna happen well everyone's
going to notice that this thing is
invalid
you know from either scan to you to your
and Fuhrer to every full node that's
running in a full node optimistic roll
of chain and they're going to challenge
that invalid block notably this
challenge is not interactive that makes
it a lot easier because honestly these
programs these protocols are too hard to
build they're way too hard to build I've
done too much work and I haven't seen
enough progress but now they're way
easier cuz we made simplifications so
now we submit this validity proof I'm
not even gonna explain it because it's
just so ridiculously you know like
complicated but you can read the smart
contract and we will have it formally
verified because formal verification is
important but that verification is not
validation you should read about it now
also the you we're gonna burn the
aggregator deposit because we're this is
a totally totally attributable fault and
we all have a challenge successful so
great we can delete that block and we
can continue moving the aggregator got
screwed but there's another aggregator
to take its place anyone keeps going
great success you know it's very good so
if you don't understand what I just said
which no one did then you can just think
we put a blockchain on the blockchain
it's real easy everybody put it in the
end in there's the Fibonacci there's the
the golden ratio breathe deeply
but can it run Yuna swap yes my gosh of
course it can run you in a swap that's
why we did it it's very very hard to do
Oh oh my god I'm exhausted well okay
well not only can it run you in a swap
but we built it in the past like month
and a half or something we were very
hard you know shout out to everyone will
and and in the end the unit swap team so
sorry we collaborated with the unit swap
team us plasma group them you know swap
and we created unit pig not exchange
everyone in this audience has used it I
heard right everyone's used if you
haven't used it you have to go to unipeg
dot exchange and support the team piggy
there are two tokens one pig one uni
what you do is you get air-dropped piggy
and uni and you dump the Uni that's the
game you know I'm just kidding you can
you can you can you can dump the piggy
if you want but you know and notably
we're doing this and we're solving those
horrible UX problems that I talked about
in the beginning for instance there is
no approve all you know approve all
tokens of course you can solve this on
maintain a theorem and you should don't
don't do they approve all things it's
just very scary unless you're really
confident maybe don't do it anyway
another thing is we get you know pretty
good transactions per second we're not
at plasma infinity scale but we can get
you know easily 200 transactions per
second
put bump it up a little bit more this is
by the way based on the availability
bottleneck that I'm talking about and
then additionally we can get way we
ended 2000 if we optimize with something
like a BLS signature but that's also
pretty hard and you know I definitely
you know we'll get to 200 400 that area
and then we can hit the HIPAA BLS
optimization if we if we so if we so
choose and then we get way more with
etherium - or any availability Oracle
that we stood that we choose you know if
if we make the data available and we
trust it's available than this scheme
works
additionally probably my favorite thing
I don't know is how fast these
transactions get confirmed right we get
really really fast transaction
confirmations and this is basically you
can you can kind of like tune tune the
optimistic roll of parameters and you
know get either classic confirmations
and anyway I'll go we can go into that
in another lightning lightning section
of a lake and you know one of these
talks so this is pretty cool it is a
user experience that kind of like rival
centralized stuff in my huh in my humble
opinion and also you know is a secure
aetherium DAP I'm very very happy so
unipeg dot exchange shout it to all the
people who made it it's really really
you know amazing that it that it came
together in team piggie the all team
piggie get it get a get a get represent
so back to Vitalik right we're setting
the foundation for innovation and part
of that foundation means giving users
good user experience so that when they
use the theorem they're using the you
know hey they're feeling good and
they're not dropping off after you know
the first two minutes and we hopefully
can provide the same we can provide the
same smart contract development
experience that you know we know and
love about a theorem and we all know and
hate but like you know we'll we'll get
better we'll work together to get better
and make aetherium smart contract
developing experience even better and so
back back to the you know this this
wonderful tree I you know I don't
remember how I tied this in actually I
made these slides very recently very
recently so they're you know just pray
for my plant I just hope it gets better
I just hope it gets better grows in -
that's right it's gonna grow into this
magnificent plant because right now the
soil the lighting
you know the watering definitely my
watering is sub subpar and so you know
hopefully hopefully with the right
circumstances it will grow into this
amazing thing and so we can use
cryptography we can use economics and
really achieve the global impact that we
want and notably remember that whole the
the debt discussion and that stuff that
we're you know the last presenter was
talking about that's a very real thing
and I'm very worried about that as well
but once again this is a humble talk
about user experience thank you very
much
I technically should have a two minutes
one minute something like that for
questions if y'all want everybody wants
if they're just one argue at a given
time great question in my diagram there
was but it's a very goofy that was
accidental to be honest no so there are
different schemes but the probably the
in all of them essentially they're
multiple aggregators because we have
this property that we can detect in
validity and like attributable a destroy
it it makes it much easier for like a
bad aggregator to come in submit an
invalid block we just prune it and then
we go on with our day you know so it's
not this kind of you know you need one
aggregator one system that we have in
off chain systems often times because
the actual like the the downside of in
you know a really malicious aggregator
is is like huge right we've kind of
reduced the bad things that they can do
and that gives us the ability to have
many do you also have a denial of
service issues where I could know who I
read it is and take them down if we're
all talking to one central server could
I lost them oh yeah
100% and I heard this person say that
they feel like we think a lot about
clients who we don't think enough about
aggregators because aggregators are
going to be like real targets for denial
of service now how we solve like denial
of service of course you know there are
fees that's that's clear but also just
general like you know our traditional
DDoS vectors will have to employ you
know standard techniques and we actually
have employed standard techniques on our
unipeg exchange to kind of protect the
aggregator but don't don't mess with our
aggregator cool thing so it's a fun talk
thank you can you get that down to one
minute for next staff con i planning on
investing all of my time and energy into
telepathy so i can go on stage and i can
just go and then leave so next time
great talk man can you explain more
about the buried each book that you have
use that it is complicated
so how can I hope that the state
transition is going wrong great
so from a cancer from two perspectives
the first perspective is pretty simple
from a client perspective all I do is I
take all the transactions I run them
locally I compute the state route and I
compare the difference and I say if the
state route is different I know
something went wrong and I can automate
it you know easily send a transaction
proving fraud and delete the prune the
block now from the kind of formal
verification of the smart contracts I'd
this gets into a whole nother you know
area of how do we make sure that we
sandbox our state transition environment
how do we make sure that we don't run
into like out of gas issues how do we
make sure that we are you know doing all
blow hopefully all of the hubbub around
formal verification and of course
auditing however thankfully this is a
closed system built in a smart contract
and it so it is very isolated one of the
one of the real problems that we've
faced with like layer two constructions
oftentimes it's like how do you audit
this like multi-agent multi-party
distributed system where like everyone
is adversarial it turns out to be like
extremely extremely difficult so doing
that it's like is quite hard and doing a
you know an audit for a smart contract
state verification game is you know at
least more tightly scoped so that is the
that is the hope for why that is
significantly easier and actually in
fact we know it is significantly easier
to do the smart contracts style stuff
because if we were to think of for
instance building a you know order book
exchange right on optimistic roll-up
technically you can do that but doing a
you know doing unit swap was way easier
because everything is on chain
everything's in a smart contract there's
like you know it's much easier to kind
of manage conceptually anyway a little
long-winded but that's not you think
you