what this is is a community discussion
and we have people who are core devs we
have cat herders here we have all kinds
of people or from different
organizations to bring different skills
to this and what we're going to talk
about is theorem 1x and so this is an
open format this is a fishbowl format
and so what that means is people from
the audience can join us in the week we
have these - this chair right here in
this chair right there we're gonna try
to keep open so if you come to the front
there's someone there you can kick them
out if you would like to to join but I
expect this to fill in more as more and
more people want to participate if you
want to keep participating you can move
into one of these chairs and just stay
maybe you won't get kicked out but I
think anyone could be kicked out so
sorry but yeah just keep in mind you're
you're free to participate so we're
gonna have I guess we'll try to keep a
mic mic over here if anyone wants to
come and we'll put a mic right here and
so I guess we'll get started the key the
key to this is where we're gonna start
with what what does the community want
to talk about what - developers want to
talk about what core developers want to
talk about and then I'll I can just pass
the microphone on to you all and then
maybe you guys can get started with the
conversation
sounds great should we do intros with
some of the people up here who are core
devs and stuff just so people are
familiar well everyone in the circle
gets an intro so perfect yes if you're
gonna sit in a circle then introduce
yourself yes okay so let's kick it off
I'm Jamie Pitts I've worked with
magicians I'm also work at the etherium
foundation that's a net back there once
you introduce yourself hi guys I'm in it
and I'm working with it here magicians
and I'm helping out with operations and
organizing events and making sure that
all those people and all those the
important discussions will happen cool
so we'll leave to you Hudson you wanna
introduce so my name is Alexia Hoonah
I'm I've been working on your biggest
client which is derivative of Kosir IAM
and also the last this year i've also
been involved into research in
development of
into state rent and stateless clients so
which I'm all these things I'm still
doing hey I'm Hudson Jamison I work with
the etherium Foundation and with the
etherium cat herders I also am one of
the organizers of the bi-weekly core
developer meetings along with a few
other people who we all help out
I'm not accord EV but I try to keep up
with the text so that I can facilitate
the meetings accurately I've been doing
that for the past three years roughly so
I know a lot about the process
he's the hard fork decisions things like
that so that's how I feel like I will
contribute today I also have a talk
tomorrow on the main stage right after
Vitalik I think it's a ten on eighth one
X so if you want to see a more formal
presentation that I have slides for and
stuff feel free to come to that tomorrow
that's the end of my showing hey I'm Tim
bake Oh I work with the Pegasus team on
the hyper that year
hyper ledger basement client I'm a
product manager not a core dev but I do
attend the calls to try wrap my head
around the process and the eeap's and
I'm also part of the cat herders
I'm Rai also at Pegasus working on
hydrology Basu yeah hi I'm Martin swanda
and I work for the ethereum foundation
with security issues aetherium
infrastructure may not and also I'm one
of the coders on go with areum hey so
I'm Peter and I'm currently the lead
deaf of Goethe reom that's about it I'm
Vitalik I advised a couple ICO projects
it before never
hello technically I'm not the part of
the core team but I've since I'm sitting
here I'm doing the notes and the clients
with the nation-state cryptography for
the Russian central bank
I guess my name is Cody born I'm a
developer on the adjure blockchain team
at Microsoft hi I'm Lucas I'm just a
random software developer who worked on
depths and I'm the humbled sitting at
his magic round here okay so what do you
guys want to talk about what do you all
want to talk about if if there's anybody
who has a topic that relates to theory
m1x
please come forward with it is do we
have something okay come on down come on
down I also have a topic okay so you
first I'm worried about the scalability
of a theorem one so and we can't even
reprise up codes without breaking
anything I mean we had this discussion
with the 1283 I think it was the problem
and now we have the same problem again
with 1884 so as a developer I would be
really interested in seeing some
invariants that I can work with so that
my code that I write and deploy Andre
Ethier maenette doesn't break in the
future and I mean in the case of the
1283
the developers weren't following best
practices but now in this 1884 case yeah
people wrote code they followed every
guideline that was there and now the
code breaks so yeah I can kind of give a
quick intro to this before we have some
comment from some of the other
developers
but we had an EIP and basically in order
to make it the blockchain a bit safer to
prevent from and please correct me
because I'm gonna butcher this from like
DDoS attacks we repriced an opcode and
in repricing that opcode if you have a
smart contract that relies on that
opcode being a certain price that
contract may break there was a bunch of
contracts that have upgradability I
believe Aragon was one of them and those
are gonna be able to be upgraded but
it's a little bit annoying there's other
contracts that may have the effect of
having funds locked in them that's a
little bit scary of a term so what we
did is in order to prevent this from
being another scenario where it's like
we can't get our funds out things like
that what we determined was if people
come to us after we implement the CIP
and they say something like hey this is
you know messing my contract up we're
going to research and come up with a
solution to work around so that they can
have their contracts work again and
those limited amount of cases do I get
that I'm almost right okay yeah Martin
can also comment a little bit more on
that
yeah and you brought up two cases 1283
and 1884 and they're kind of different
because 1283 was made to improve the
life of deaf developers making it
cheaper whereas 1884 has been added as
basically a security precaution because
to rebalance the opcodes and the former
one we skip that so it's not to break
stuff it's being implemented now again
in the form of e 2200 but with a minor
modification so that it won't start
introducing new vulnerabilities into
contract and in general the idea that
has been floating around a lot is that
if we do changes to the EVM we will also
do versioning so that these new features
will be opted in however it really makes
really kind of makes no sense to have
opt-in features for security features
where we want to protect the base layer
so thus we're all out 1884 and the thing
is this will affect a lot of contracts
but in the large majority of cases it
will only mind affect them a little bit
like most use cases that are affected
can be solved by adding a bit more gas
at the beginning and I think that would
cover like 95% of all the cases where
it's going to be affected but then there
are some particular use particular flows
where it's already encoded that it's an
automated transfer into something else
and that flow between two contracts can
thus be broken in a way that is not
fixable and I mean not fixable by the
initiator of the of the transfer or the
operation and so that much has been you
know we know that this might break
things the question is how hard will it
break and and how much pain will it
bring because I think that in many cases
contracts are actually upgradeable and
if you have a set of contracts which
suffer from this you can actually
redeploy it and fix it that way which
further brings down the number of actual
broken flows and if there if it can be
evidenced later on that hey we have
actually these particular instances
which are broken cannot be upgraded and
cannot be salvaged in any way then we
can look at okay so what fixes are
needed to solve these instances and
there are a couple of ways that may help
in most of them I think in for example
if we lower the cost of a location that
will solve a lot of the issues but it
remains to be seen exactly what
kind of patches will be needed for the
yeah to get the maximum coverage or the
rescuing or what you want to call so
maybe just a step back I thought it
might be useful to just offer an
introduction as to like the specific and
if gas cost increase in some of the
security background around it so it's a
kind of general fact in a theory so in
aetherium we have different kinds of op
codes we have op codes that do
computation add divide subtract elliptic
curve pairing and so forth we have and
we have data and we have op codes that
do disk i/o so basically op codes that
read from read from contract balances
read from contract state so read things
that require basically accessing the
disk and it's been a general fact of
etherium pretty much since the beginning
that the gas costs that we set for those
out codes are for multiple reasons far
lower than they should be so one of
those reasons is that the operative to
there gas cost the op codes actually
take a fairly long time to process
because accessing disk is pretty
expensive and takes a long time and so
for example there was this recent paper
that suggest suggested that like on
their own hardware a worst-case dos
block would take like up to 80 seconds
to process and making a worst-case
tosspot is hard because you have to
outbid like whatever all the other users
but there's like it's security is still
lower than we would want it to be
especially given the people's people's
desire for more scalability in the
medium term and so from a security point
of view it's like pretty much required
to increase the gas costs of checking
contract balances reading contract code
you agreed in contract storage and my
own personal opinion is that the IP is
that we have don't go nearly far enough
but the problem is that the like this
requires increasing some gas costs and
this basically breaks some contracts
that relied I'd only assumption that
there is a fixed amount of gas within
which they could do some things
so I think I've written this opinion
somewhere but from my point of view the
the reason why the creases of the gas
ghost breaking things is because the gas
is used in two different functions so
first function of the gas is what
metallic was talking about is to
basically measure the the impact on the
system the performance impact and charge
people for the same transaction to
compensate for that and discourage the
abuse of the system but there's a second
function which also gas gas plays which
is the restriction of the things like
recursion and Kobach's and that that
second function has been on the rise
since 2016 when the especially
especially after the re-entrance e3
instance ii problems have been kind of
brought into light and people were
trying to use the second function the
gas much more to so they would allocate
a very limited amount of gas for a lot
of operations to make sure that the
recursion doesn't go deep or the
callbacks can't do things but we now see
that these two functions are becoming at
odds with each other
while you know improving one we actually
hurt in the other and from my point of
view the it is becoming worrying because
that that tells me that in the future we
need to do more of those things
in just in the gas Coast and we have to
assume that we should be doing it all
the time anyway because the hardware
changes everything changes we have to do
the way out of it is to split those two
functions and then decouple them from
each other and that does bring
complexity because we essentially will
have two gases now to gas counters one
for the one first function one for the
second function and then you need to
decide what is the gas limit and is it
the gas limit for the first one or is it
the gas limit for the second one but I
think it's solvable and more importantly
if you decouple this then you are kind
of a bit more future-proof so coming
back to your original question which was
a
like invariances an app developer like
obviously we need to change the gas cost
sometimes because security and a whole
bunch of reasons and some of which we
don't know today so I I guess it's a
question for people up here are there
like actual invariants that you can give
the DAP developers building and
aetherium or is the sort of hard answer
you know things will change they will
break and we'll try our best you know to
make that the least inconvenient as
possible but it's kind of unrealistic if
you're building an app to assume you
know there's any invariants I think the
truth is like somewhere in between but
I'm curious what people think about that
yeah I I think that the app developers
should have the mindset that things may
change there are no way variants and
they should build their systems or
deployments in ways that they can be
upgraded because it's still developing
the EVM is still developing that's my
point of view just after that I think of
for example now the important thing that
that developers should always keep if in
front of them is that every time you you
find a neat little trick that hey I can
store this data in a in a more optimal
way or sorry in a way that kind of is a
bit cheaper than storing it the other
way around our goal as maintenance of a
theorem is to make sure that everything
is priced correctly which kind of means
that storing data should cost the actual
resource so if you figure out a cheaper
way to store it then there is a high
chance that if it picks up steam then it
will get patched simply because it's out
of its not balanced correctly so our
goal is always to balance there is the
of course of the resources actually
being used and yes sometimes that means
making it them cheaper and sometimes it
means making them more expensive but all
the loopholes will eventually be filled
so I think that's a good invariant can I
ask a question unrelated can we warm
from great hi I'm Mary Emma from maker
and I'd like to discuss programmatic
proof-of-work because because I feel I
I feel like there's a big device core
devs and community in general and like
I've seen a lot of prominent members of
different projects and apps that feel
strongly against it and many quarters
apps that feel strongly for it then they
were way around and I don't think we've
ever been closer to a potential heart
Fork
since 2016 so I would like to see what
you think about it I think prog POW is
really important as an issue that we
need to decide not important in itself
necessarily I am NOT taking a position
but I'll say that because of the
politics around it it makes it really
challenging because on one side you have
you know the people like ASIC
manufacturers and users and some
investors and stuff like that who say we
don't need it the threat isn't big
enough or you know the people who made
it are unknown and that's scary and
things like that and then on the other
side you have the GPU miners and the
mining pool saying we need this
otherwise we're gonna go under and
you're going against the promise that
you made in the white paper according to
them that that there would not be a
sakra xizt insanity reom so and then
there's many many other arguments I'm
actually post Devcon going to make a
large blog post reddit post etc with
everybody's arguments and
counter-arguments so the community can
get a better idea of where everybody
stands on that from each side that's on
my to-do list and it's nearing the front
of it so that'll happen hopefully before
November and other than that I do want
to kind of hear the perspective of some
of the core devs because there you're
right there are core devs who are
supporting prog pal
from their perspective whether its
technical political or both and that's
another divide that's very that's very
naturally occurring is you have this
technical perspective where we had two
audits done a hardware and a software
audit that basically cleared prog Pao is
something that wasn't super fishy and
then you have and then you so you have
the technical perspective of it's good
we've implemented it it'll take two to
four weeks for the other clients to
implement it we're good to go and then
the political one where it's like you
know I hate Christie Christie's bad
Christie lied all this other stuff with
coarse scientific and the people who are
anonymously developing it so a long
story short a lot of politics involved
there's technical versus non technical
arguments and there is a division that
needs to be figured out in a rough
consensus style way yeah I am personally
I kind of cooled down quite a lot on
this particular issue or last few months
I did see a lot of you know discussions
a lot of people getting I hope they're
getting more informed about this so and
I really welcome the audits that
happened I read through the audit report
yeah I mean I I sort of had my opinions
I put them out there and I'm happy that
you know people were listening and there
was a discussion going on and at the
mall at this moment I'm you know I'll be
okay if it gets implemented rolled out
and I'm gonna be okay if it doesn't so
I'm not really going to worry about this
so if I'm basically something that I've
said before if I turned out to be wrong
that that's fine you know yeah just kind
of moved on so I think it's made a good
progress recently
yes I'm one of the core developers or
pro rock pal and I've written down my
reasons why I believe rock pop is the
right way forward the way I see it I
think there's very loud what I perceive
is a very loud minority who is extremely
loud and spreading a lot of fear and I
started in doubt about it
and in my view there has been signaling
taken from the community there has been
coined about there's been mining votes
and etc etc so I feel it has been kind
of there has been shown a great support
in the community and I don't think this
situation has changed from six months
ago
except that at this point in time there
has been a lot more yeah a lot more
churn from the political side and then
the fun side yeah and I from the
political side I would say that one area
that myself that I fault myself on and
others is there wasn't enough
communication people like to be heard
and this kind of got sprung on people
some people because you know who's gonna
read a transcript of the most boring
core dev meetings every other week I
mean it's not boring to everybody but
like there's a lot of you know just very
deep technical topics and the average
person isn't gonna you know realize that
so got sprung on a lot of people and
that was a communication error and so
because of that now people are upset
because they felt like they're not being
heard now they weren't being heard then
when they felt like they didn't like
Prague town they thought it was dead
because it wasn't getting implemented as
quickly cuz this has been on the radar
for how many since last don't know
before last DEFCON so since March of
2018 Prague POW has been starting to be
implemented talk
about etcetera so it's been a long time
so I think if we can have people be
heard that's going to heal a lot of the
wounds and start to get us more toward a
rough consensus and I welcome people
from the audience if you have an opinion
on this you can go sit in this chair and
like you know give your opinion or
whatnot and otherwise anyone else we can
go to another topic one thing that I'd
like to point out is um intro my name is
Dan affarin I'm picking my son up from
school one of things that have noticed
within the past six to eight months with
this is there's been a notable drop in
civility in the arguments relating to
prog pal and the problem with this drop
in civility is people start closing
their ears and there are principled
people with real solid objections to it
who get lumped together with some of
these people spouting these crazy things
and that's doing a disservice to the
dialogue to be uncivil and to be rude
and to be crude to everyone and to send
all sorts of weird veiled threats to
people that's just not cool yeah I agree
yeah I think I want to want to echo
Dinos statement I'm Adrian Sutton
work on Basu I think one of the things
that's very dangerous in this for the
whole etherion community is that if we
set a precedent where you can shoot down
something by attacking someone proposing
it personally then we're gonna see a lot
more of that in the future so I'm really
keen to hear technical concerns and that
that includes some politics of do we
actually want to be a Sikh friendly is
that that direction we want to go those
arguments I'm all for I really want to
hear but when we start diving into this
person was associated with that or
they're corrupt or their and not
actually being able to point to this is
what they're trying to do so if you've
got a problem with Proctor and you think
it's all great scam then great let's
hear exactly what the scam is not just a
vague thing where we're we're slandering
personalities because that leads to more
and more attacking people
which makes it incredibly difficult for
people to stand up and make proposals
and be involved in the community we've
lost people in the community who would
diluent great work because they've been
attacked personally in the past we don't
want to see that happening in the future
just to add my two cents this whole
proper vs. Edie Hodge discussion I think
one of the so currently my feeling is
that the whole discussion boils around a
sick whether we want to be a secure
distant or not and I think this is
something that kind of just is tearing
the whole community apart and I from my
personal perspective I don't really see
what's the whole point of office so
currently we have a few big mining pools
now if we have an ASIC friendly mining
algorithm then probably we will have
some manufacturers that make a killing
out of it and some mining pools now if
we have an ASIC resistant mining
algorithm probably there will be some
different mining pools and different
hardware vendors making a killing out of
it but essentially from my perspective
currently we're just trying to decide
who we want to give our money to for
mining or for creating that hardware now
if on the other hand we can actually
technically say that one of them is
dangerous or one of them or we can
somehow prove that yes et hash is a
security issue and we can prove that
publicly then all of a sudden probably
the entire community would shift towards
the other one so if as long so if
there's a threat to the network I think
then the whole discussion is decided and
if there's no threat to the network then
it's it's kind of just a heated
political thing of who gets to make more
money out of it and that's not going too
far too fast
I do we have a next topic or somebody
wants to discuss something yeah come on
up you can come on up before we're done
talking about the next topic by the way
and just grab a mic so we know the next
one's ready all right hey I'm Fernando
what's the deal what state rent where
are we at with that
it's council
no actually it's more the question is
the answer is more complicated than that
so our current effort is to prototype
and specify so that's my main effort
effort in my little team team so to
prototype and specify the the first
viable version of the state status
clients what's this oh yeah and so so
you might be the the the good thing to
put out there is a date of data from the
status client prototype if that would be
their proposed to Leah did that one
that's probably the like the closest one
you could if you scroll down to the
there
it describes a slightly the idea of it
go down a little bit it's very old post
but it's still relevant and it describes
what we kind of want to do and the yeah
further down to the graph to the next
one
breakdown yeah a further one further it
further okay that one so yeah so the
this is the I've done some more analysis
on this but basically there are what
we're trying to do is that we kind of
try to circumvent rent a bit because as
I said in April in our meeting in Berlin
after research in researching rent for a
bit for a few months I've realized that
it is possible to do it technically but
it would be very expensive project to
roll out practically and the reason why
it would be very expensive to roll out
right now is the is the cost of
ecosystem research which
had to be done because the the state
rent wherever however you implemented it
will change the programming paradigm in
the way that at least in a way I thought
about it because other proposals where
you have a kind of attenuated cost of
the storage which I don't call story
Brent it's a state rent because it
doesn't actually remove things from the
storage so so any any proposals in any
shape or form which will start removing
things from the state at a certain after
the state rent is not paid will
inevitably change the program in
paradigm and some of the things will
become quite a connect unexpected for
example give you example now I have a
smart contract and solidity and it has a
variable fill variable net and you
initialize it in constructor and that
variable essentially like let's say
pointer to another contract you
initialize it in contract and it's an on
now it's reference to another contract
and you can happily use it within the
contract anytime and you assume that it
will never go - it will never disappear
so you don't have to check in every
function of the contract that that
pointer is still valid that the contract
that you point you know is still there
because you're assumed that okay I've
initialized in constructor it will not
go away it's like in kind of Const
constant variable in C++ right it will
be there it's once you've initialized it
it never changes but then with the state
rent you might see that this thing can
just go under you know it will go under
the pointer so the this contract will
disappear and then your pointer will
will point to something that doesn't
exist anymore so that sort of lots of
these things have to be changed in terms
of the paradigm so and obviously there
would be some contracts that would be
suspected susceptible to some Griffin
attacks that need to be needed to be
researched as well and obviously the
number amount of resources that I
thought would be required for that so if
we really wanted to roll it out would be
you know something that I cannot afford
or maybe I'm not sure if if they are
foundation
would be able to afford that or
something like that so that's why we
started to do more emphasis on status
clients which might actually if
implemented correctly and if if my sort
of intuition is correct it might
actually give us enough runway before we
and then I've got another proposal but
which I haven't published yet that
actually introduces state rent after the
stateless clients but in a slightly
different in more surprising way but I
don't think I have time to explain it so
there basically it's postponed at the
moment until we do the stateless clients
okay so stateless clients are the way to
go until a few point oh that's what's
gonna hold so hopefully because I don't
know because the obviously the future is
hard to predict this is our current this
Alec wants to say something yeah so I
know like another reason why it's good
to go this way is because the like the
ease by far the easiest way it's our
kind of merge ease one into it the REM
2.0 is to basically turn it into a
stingless client by default because
that's just the way that state is inside
of each key works so what actually kind
of makes the the roadmap stoic fit
together very smoothly so the downside
of the state is Cline related to the
state rent is that there will have to be
no the network that still hold the
entire state but the this requirement
will not will not be for every basically
phone out so they will be still somebody
has to have all the entire state but we
hope that this is you know as long as
not everybody needs to do that it will
be better
so one kind of hard thing about
stateless clients that I think it's
important to be very transparent and
clear about is that meet the making
stateless clients work well ultimately
will require the basically the same
kinds of kind of gas cost sacrifices
that we talk that we
but in the first question but probably
to an to an even greater scale right so
for example the witness size so the size
of like extra Merkel data that you would
needs to pass for to verify a worst case
block right now is about three hundred
and thirty megabytes and that's
basically because you have contracts
calling that seven hundred gasps twenty
four thousand gasps for a contract and
then add four thousand bytes for a
witness twenty eight thousand x fourteen
hundred and like you've got you've got
your hundreds of megabytes right there
so and then there's kind of smaller
versions of this attack with things like
the balance off code SSO load and all of
those things so I think we will
ultimately need to have changes that say
like one the gasps cost for these
storage accessing of course opcodes go a
lot more to is that the gas cost for
accessing contracts that have a large
storage like what needs to go up even
further right so for example charge one
gasp provide of provide of code that you
read and if we want to make this nicer
one thing we could do for example is we
could waive the extra fee if the
contract was accessed say within the
last ten thousand blocks and that would
reflect the kind of the actual load of
kind of quote almost stateless clients
that keep stayed around for a little bit
of time so like those kinds of like that
kind of rebalancing would need to be
thought thought about as well so
basically kind of for multiple reasons
like developers should expect that kind
of IO is likely to storage reading
account reading cross contract calling
is likely to get more expensive relative
to other things just to pause this topic
for a second I wanted to introduce
somebody just got here Felix Felix take
the mic and just give a quick
introduction he works on some of the
networking stack yeah I'm Felix I work
on guest on on the networking uh I just
got here from another a I missed the
beginning so I don't really know what
you guys talking about what I hear it's
mostly been about stateless fans which
is actually which add also huge
challenges on the on the networking side
so I feel like the status lines is
basically just this unsolved is like
any other problem there has been
progress but it's not really something
that we can honestly say like it's easy
to pull off like yeah I would I would
use the same analogy as for quantum
computers I've heard like to as I've
heard about two years ago that in terms
of quantum computers all the all the
fundamental challenges have been solved
now it's the matter of engineering to
get to build one I mean it's it's so
there is no real kind of super complex
stuff in stateless Minds that the idea
is super simple you can yes there would
be more you know
shuffling that data around the network
there would be some issues with that but
I don't see them as being fundamental
can I interrupt so I I think there are
really fundamental issues there so the
problem is that the moment so currently
transactions are really tiny
the moment you start entering into
territories of megabytes and we're not
talking about hundreds of megabytes as
megabytes the whole networking layer
needs to be gutted out and retrofitted
so you cannot own you can chunk up
messages into smaller pieces that's a
lot of engineering effort research
effort let me just finish however even
if that is soft and the network data
shuffling is soft then if you so all of
a sudden you also need to store these
witnesses beside the transaction so you
implode or explode sorry the the data
usage of the immutable side of the chain
and we can say that yeah but that's
cheap to store we can put it on an HDD
sure but we're already at 100 gigabytes
150 gigs of tiny transactions now
imagine that all of a sudden every
transaction will be twice or not twice
ten times the size and maybe instead of
one hundred fifty gigs would we would
have two terabytes of immutable chain
basically is the information to give us
they was playing for syncing data yes
I'm saying like that basic like an
archive no it basically is the note the
the the no type that has like all of the
data was the ability to produce it on
demand for any transaction yeah but my
essentially without an archive node you
would not so you either need the archive
code or you need the chain of witnesses
so one thing we can agree on with status
clients is that basically it it changes
the user experience a lot where
previously handing the state was kind of
if areum's problem with stateless
clients it's a user problem no no that's
not true because I think you might be
confusing it with what I call status
contracts so they they're so stateless
contracts is the the idea it's actually
the it's a design pattern where we're by
your start instead of storing your data
inside the contract storage you store
some sort of miracle route and then you
start passing the they like you pretend
that they're the data somewhere of
change
well you don't pretend that there is of
chain but whenever your do something
with the data you start providing the
miracle proofs and these proofs are
actually inside the transaction and that
it increases the size of transaction and
so on the status client actually remove
it's not like that it moves the the
burden into the actual layer in the
protocol layer it's it's not the the job
of the smart contract developer will not
change and the user will have the
exactly the same experience apart from
paying more for the state access so as
Vitalik mentioned the call up codes will
be more expensive because you have to
load the code the S store as loads and s
stores will be more expensive balanced
the reading will be more expensive
anything that touches the state will be
more expensive to pay for the witnesses
transaction format will not change
essentially in there will be more that
data shuffling around network but not as
transactions as the as the basically
part of witnesses and of course the
witnesses we will chop them up in part
so you don't have to like to ensure the
the better propagation so that is also a
kind of pretty solvable problem but yeah
it's not okay
also in that case that that's like it's
like halfway solution basically like you
do still want to have state it's not
like status and you know like a theorem
itself doesn't have any state it's more
about so I would say this is the the
stateless client is basically approach
of of instead of asking every all the
app developers to follow design certain
design pattern you just basically solve
it for them in a generic way so if you
have a status client instead of telling
everybody poom to put merkel root in the
contract you just tell them just do
whatever you did before and we're just
gonna take care of that you're just
gonna pay for it a bit more but the
whole technicalities will be taken care
of
so we have we have the working group
session scheduled for later this
afternoon and about like 15 minutes left
for this session so maybe it makes sense
to just like have a stateless client
discussion this afternoon because I know
there's a whole bunch of new people
sitting there what time is it 3:30 to
the end of the day I don't know what
that is they have this room here to just
discuss working groups jason carver also
join give a quick intro with Felix's mic
hi Jason Carver working on the Trinity
clients that's an all Python client I
came here to talk about stateless
clients so I guess I'll save that for
him I mean we keep talking about
stateless clients but yeah yeah does
anyone have anything else they owe
hello hello could you talk about VIP one
five five nine which is the idea of
having the gas priced at the protocol
level and it's burned instead of given
two - yeah sure
so the basic kind of description of the
proposal rate is that we basically add a
kind of negative components to the block
reward so that basically says that we
have some in protocol fear and incident
you within the context of any particular
block you can think of it as a constant
but the constant adjusts up and down
over time and it's basically the minor
of a block has to pay some amounts or
alternatively the block reward is
reduced by that amount which is equal to
that fee multiplied by the number of
gwei of gas used and this obviously if
this kind of like whatever this burn
feels like it'll push up the minimum
wave or the minimum gas price that the
miner is willing to accept by roughly
the same amount right so like if the fee
goes up to ten quid then the miners not
gonna accept transactions that are less
than 10 way because they're not even
going to be not profitable anymore and
the idea would be that we would say
increase the gas limit limit of a block
from say 10 million to maybe 20 million
or more but then we would have this fee
be adjusted according to an automatic
algorithm that basically in targets the
use average usage of gas and a block to
be to be at the ten million level so if
a block sometimes blocks will be bigger
sometimes walk is always smaller
whenever blocks are bigger the fee goes
up whenever blocks were smaller the fee
goes down and so at equilibrium like
there's some kind of mandatory fee that
gets that kind of gets burns and miners
are going to accept below it but the end
like blocks are an on average gonna be a
half full or one-third fo instead of
being completely fall the reason why we
wants to do this and there's actually a
few different reasons one of them is
that but the most fundamental one is
that currently fee markets work really
horribly so one example of this is that
like on average people tends to overpay
by a factor of somewhere between three
and three and five or higher than five
for our transactions and like you see
people talking about a trade-off of like
you either pay five times more and you
get included right now or you pay like
two took the minimum and you wait maybe
a minute and maybe ten minutes but like
in reality that waiting is like
completely socially unproductive right
because it's the same load to the chain
well no matter if it happens now or if
it happens ten minutes from now and and
also just it adds a lot of wallet
complexity that people have to like
think about oh is this gonna be a solo
transaction is this gonna be a fast
transaction so EAP one five five nine
fixes it by making the calculations you
will minor much some much simpler the
calculation basically as if there is a
transaction that pays the burn like
whatever the burn fee is plus whatever
amount and it overcomes the extra risk
that my block will be an uncle and that
value has been estimated to be about one
guei that'll accept it and so clients
would just like pay like calculate the
fee that they pay based on a simple
formula and it'll reliably get into the
chain and so users will be able to get
like pretty reliable next block
inclusion of any of their transactions
even if there are odd short-term spikes
and there's like suddenly two times more
usage in this minute and electrodes I
was watching usage the next minute so
it's intended as a kind of fee market
simplification and a user experience
increase because like users just won't
happen won't have to wait anymore what
does that do for users who are willing
to let a transaction happen sometime
over the next day they're very
price-sensitive saying yeah so users
will be able to still like basically say
I want to pay a transaction I'm gonna
pay a gas price which is lower than the
let's say for example I as a transaction
sender see that the current fee that's
being burned is like pushed all the way
up to 23 way because like I know fair
one is doing stupid stuff
and I as a user know that fair ones
doing stupid stuff is exceptional and
four hours from now chances are fair one
will stop doing stupid stuff so I as a
user totally can send a transaction with
a gas price of say nine gwei instead of
twenty three and whenever fair wind
stops doing stupid stuff to get the
burns gas price we collaborate down to
below nine image production will get
included so that's like totally fine an
intended behavior that you can do so I
want to comment in this that we a lot of
times we're thinking about like the one
user sending one transaction which is
okay you know you can wait or you can do
it within like you pay a bit more but
the real problem is that for the people
or for organization who actually depend
on sending tons of transactions all the
time and for those people it's crucial
that the things work well because they
can't just say what we're gonna close
our exchange for four days until this
whole things blow over right or we stop
sometime under topics ten minutes any
topics yeah Bri I wants to bring up this
idea that in order to reduce storage
requirements on nodes we like actually
make more progress on implementing a
mechanism where we only require nodes to
store say the last year of history and
for anything older than one year we
figure out some way we're note where
each individual node only needs to store
part of that so that we basically
instead of node storage being 200
gigabytes that can just be like state
plus 10 attended 20 when you when you
say splitting it you don't mean like go
to Peter sounds like sharding kinda
is it sharding or cheney
yeah so I guess this kind of was one of
my proposals from way back in I think
last year or this year journey or last
year January so the idea was that
currently a lot of the ether ohms chain
data about one another 50 gigs give or
take is just immutable past chain for
example past transactions past blocks
past receipts and many people don't
really need this I mean yes it's nice
that you can dig up your transaction
that you did five years ago
but do you realistically want to do it
now if you don't want to do it and okay
that's that might be an interesting
thing for you to want to dig up your
transaction from five years ago I
definitely don't want to pick up your
transaction for five years ago so
essentially it's just we're wasting a
lot of space for a lot of people that
and it doesn't really give a anything
back and then the the idea was that can
we somehow say that okay we're going to
maintain the last some time frame maybe
a year and maintain everything on all
who knows but everything that's older
than one year let's try to put it stash
it somewhere else and make it available
and generally I think most of this is
doable so it it is not even a hard
problem to solve the tricky parts come
start to appear with for example logs
because they are so contracts for
contracts use logs as a cheap data
storage and then they just the Deb
filters for the logs and the issue is
that logs weren't really designed for
this but it wasn't really explicitly
said nor limited that this is not
intended use case the Internet use case
of logs was to raise events so your
smart contract does something it raises
a few events and then you react to those
events and yes it's nice that you don't
have to react immediately you can react
a day later a week later a month later
and that's perfectly fine the problem is
that for example there are Deb's kind of
like the Akasha social network which
uses logs to store the post themselves
which means that when you want to list
the post that you've written or your
feed they will actually scan the in
a blockchain for data and these are the
use cases that that gets really really
broken because all of a sudden you have
a node that wants to access all the time
the history going back to the past five
years and this is their really the
challenge that that needs to be solved
on the upside however the nice thing
about this chain Pass chain data is that
it's immutable which does mean that I
mean immutable in theory is not
immutable but in practice do the proof
of work you won't have a real that's a
million block deep and this kind of
means that you can move this data on to
an HDD so you can actually make store it
relatively cheaply however I do I still
say that if we want to enter these
stateless clients territory then well if
the blocks all of a sudden becomes a
hundred times larger than we need to
solve this because even on an HDD you
don't want to put 100 times more data so
it's an interesting problem definitely
so something interacting with the next
section of topics how does the finality
gadget figure in with a chain data do we
need to keep historical data being on
the horizon of the agreed-upon finality
and how far you know how important is
that finality gadget you mean like that
used to finality I should get one and
for consensus purposes you definitely
don't need to keep any history older
than about eight months but and like one
year was the period that I had suggested
we make kind of mandatory doubled so
sorry so so the one proposal and that ia
that I have for solving this receipt
issue is that it's actually a very nice
problem to just solve with a group to
economic light quite market right like I
want to keep a list of all risks of all
the transactions that satisfy some
particular bloom filter I asked you you
give me a complete list and you sign
that list and if it's or if someone else
disagrees they can make a miracle proof
and they can like so and they can slash
your deposit so like basic turning like
making something like that
the other benefit of that approach is
that instead of requiring like you to
scan a bunch of headers walk away it's
basically a few rounds of network
messaging so could be also interesting
to look into prototyping in the medium
term so maybe one thing we could do
because there's so many people in the
room we're just like us like a lot of
you guys are deaf developers like who
here needs access to logs from beyond
like you know last three months or
something like who's Depp's actually use
this stuff you can just maybe raise your
hand if you need access to all the
historical stuff I see about 15 hands
yeah so what about transactions who
snaps use transactions could we also get
some information on why those locks I
don't know maybe because it's cheaper
yeah but that would actually be a really
interesting question like to a lot of
client developers like which taps are
like heavy on like actually accessing
transactions like transaction by hashed
transaction by book and index who uses
those that's really dumb developer is
there and wants to talk about it please
come over
instead this circle because this those
mics has a cable so we just come free so
just for the record I saw two hands for
the transactions three okay well cool
okay so not a lot of people you actually
use a facility that like access past
transactions is what I mean getting so
from this room from this room it is not
me like not representative just to
expand the reason why Felix was asked
actually asking this question so we've
been sitting on a new feature for
example in gas that so currently all
fool knows all the theorem who knows
maintain an index the transaction index
that's simply saying that this
transaction hash is located in that
block so essentially just the hash to
block number mapping and it seems like a
stupid cheap thing except when we count
that they are five hundred million
transactions it turns out that that's
200 gigabytes of the sorry 20 gigabytes
of data so essentially every fu-- know
this is storing 20 gigabytes of data
just to be able to say in which blocks
and transaction is and if full of don't
need it then we can immediately wipe out
20 gigs of data that can be
reconstructed at any point in time and
that's the reason Felix's question was
really really good because we always
wondered is anyone actually using it or
can we wipe it should it be the default
or should it not be default so it's
actually really reassuring to see that
people don't need it yeah come to the
mic right there yeah so I work at
synthetics and so we obviously have
what's like a Dex a bit like your new
Swami introduce yourself oh hello my
name is Justin Moses and I'm the CTO at
synthetics for a defy app and we do
indeed need to know the transactions our
users of ahead of time and adapts
however we have been using something
like the graph and that's actually being
successful so we're happy to use
decentralized services like that that
can track all our transactions instead
of having to do like yeah point go back
and look at individual one so I guess
what I'm hearing is that actually all
the people who might actually want
access to transactions will totally be
fine - like externalizing that to some
service provider because it is it's not
really something anyone like a lot of
people expect from the node to like do
for them to like get the transaction I
think a cost you would have like rewrite
their stuff but I mean know that's what
I thought they were log heavy crypto
economic light client implemented then
they could just like replace one two to
one the two lines of code and it would
just work as is and it would probably
work even faster than today
but I was just Paulo question for you on
the deef i thing we look up transactions
don't is that ancient transactions or is
the transactions for the last week month
will have all of them so over time so
we're gonna go back to look at even you
know years worth interesting I want to
throw this out there real quick we're
about out of time right what's it worth
three minutes yes yeah so I personally
think eath 1x eath 1.0 is getting
stronger there was a period of kind of
you know eath 2.0 is the the new stuff
and it's sexier and stuff like that but
uh now it's like the theorem foundation
has dedicated at least eight million
dollars to eath 1.0 and 1x research
development etc and that is being spun
up they did that back in May to do it
for the next year and there are teams
being spun up as we speak coordinators
being spun up as we speak so there's a
lot of good stuff happening as some of
it's happening in the background a lot
of it you're gonna see in the forefront
real soon you've won forever yeah wait
but is it really gonna be forever that's
actually the next topic eath one-day
into transition just one last one last
bit about that I mean oh he's gone but
the guy was just standing there had like
some pretty but just like in general I
think like that developers if you have
like these peculiar use cases trying I
don't know like on eat magicians or
somewhere like that they try and like
explain like answer those questions and
like oh are DAP is like kind of weird
because it uses logs in this way and and
we'd like the note to do that or not do
that like if they were like eath
magician supposed you know kind of
either complaining you're requesting
features I think that would be pretty
useful I mean like one five of nine
right was like one I was very interested
in already right and it's imagine a lot
of DOC development care a lot about that
because gasses you know lifeblood and
having the form to be able to talk about
that because don't really want to jump
in on AI pay unless I have something
yeah you know meaningful to say I think
so I feel like youth magicians it's kind
of more general less formal forum where
you can just kind of write a post and
people will see it yeah
you