Video summary
Amaury Séchet identifies entropy within distributed systems as the fundamental cause of Bitcoin's current challenges, including security vulnerabilities in Zeroconf, difficulties in fee determination, and poor user experiences with pending transactions. In today's decentralized environment, nodes maintain divergent local views of transaction states until blocks are found every ten minutes to reconcile these differences; this periodic update cycle allows significant uncertainty to grow, making it difficult for users to know if a transaction is confirmed or for the network to enforce policies without central coordination. To address this issue, Séchet proposes reducing the dimensions in which nodes can disagree before reconciliation occurs, arguing that while eliminating entropy entirely is impossible due to physical network limits, drastically reducing it offers substantial improvements over the current passive approach of waiting ten minutes.
He outlines three primary strategies to combat state divergence: Bitcoin Cash's elected leader model, weak blocks with more frequent but smaller proof-of-work intervals, and the Avalanche Protocol. Among these, Séchet highlights Avalanche as a Byzantine Fault Tolerant solution where nodes actively query random samples of peers regarding transaction validity rather than waiting passively, enabling rapid consensus convergence within milliseconds even in contentious scenarios. This active sampling approach not only improves user experience by providing near-instant finalization but also allows market-driven policies like minimum fees to emerge organically without central planning, while maintaining the integrity of relative transaction ordering through simple canonical rules such as sorting by Transaction ID rather than relying on arbitrary global block sequences.
The discussion further addresses critical concerns regarding network security and fairness, noting that guaranteeing eventual convergence is sufficient despite variations in finalization times across different nodes. To mitigate risks like Sybil attacks from new full nodes lacking history, the proposal involves tying participation to scarce resources through proof of work or stake rather than relying solely on consensus algorithms; this ensures participants have invested real costs without allowing wealth to directly dictate power as seen in traditional Proof-of-Stake systems. By utilizing assets as a voting filter and ensuring random peer sampling includes a large enough sample size, the system prevents cornering by single actors while avoiding the creation of an aristocracy, thereby creating robust conditions where even small practical variances do not undermine the overall reliability of the network.
Read the full video transcript
[Music]
so I'm memory sushi I assume like most
of you know me so I'm not gonna go into
too much detail here today I'm gonna
talk about something that is a bit
different from what I've been discussed
before and I'm gonna talk about some
solution I know like many people ask me
about what kind of solution I have in
mind but before I want to talk about
solution and probably even more
important pin and solution I want to
maybe reframe the problem I'm trying to
solve a bit and the main reason is as
follow I think the problem we have with
zeroconf and xerocon security in general
and the boss spend a lot of that our
whole class of problem that derive from
the same root cause right and when we
try to solve those symptoms rather than
the root cause we end up playing
whack-a-mole a bit so even though we can
come up with better trade off we can
like never quite nail it and I can take
example of solution that have been
proposed earlier during this conference
for instance if we go to super standard
transaction then we have a set of
transaction for which you're conf works
better but then we have the set of
transaction that is non-standard for
which it's actually worse so we are
making a trade off maybe it's a trade
off worth doing but we are essentially
like like you know making it better by
making it worse somewhere else right and
as long as you don't attack the root
cause the root cause is just gonna show
it's at somewhere with some trade off so
I would like to talk about the root
cause a bit and and see what we can do
to improve things at that level so what
if I told you that your conf files
blocked relays so spreading blog very
quickly on the network which is also
very important for scaling which is
another aspect of BCH we have not
discussed much at this conference but I
think we all agree that it's very
important
free market fee determination but also a
policy so for instance what is the
minimum rally fee right now we have a
bit of a problem determining that and in
a free-market manner right because when
people don't agree with each other then
it degrades the security of xerocon so
we can see a bit of an in there and also
one thing that is fairly similar to
zeroconf but we've talked about Xero a
lot in the you know in the frame of
double Spain right we have two
transaction and one of them is gonna
confirm that maybe I have just one
transaction and and it may be it's gonna
confirm well maybe it's gonna not
confirm and any one that I've been using
BDC say in this chamber last you're a
very good idea of what I'm talking about
you make a transaction and you have no
freaking idea if it's gonna go through
or not and the only way you're gonna
know is to wait several hours even some
time maybe days which is which is an
absolutely terrible user experience so
if you send a transaction and for some
reason the network rejects it because it
doesn't pay that fee because it doesn't
respect whatever policy people just you
to respect then you need to be able to
know it all so very quickly and not of
this zombie transaction roaming around
for forever until you know everybody
gives up on it and I will argue that
hold those different problem of actually
the same root cause and this is what I
want to talk about so even though I'm
gonna discuss a bit of solution if you
need to remember something from what I'm
going to say today is is that would
cause because it then you know then
there are different solution we can
explore but it informed us on what those
solution may be so Bitcoin as it reads
dag it's a dag of transaction so what is
the dag it's a it's a type of graph so a
graph is computer science that are
surprising most people here are well
versed in computer science or at least
in
basics of graph theory but it's a it's
so it's a type of graph where you have
different elements in our case the
transaction and they are linked to each
other because they spend money from each
and this is a dag that have some
specific property it's directed meaning
that the connection are not be
directional right so if we were looking
at a map you can have a road between two
points on the map and Ezer the road you
can go in both direction or it's a
one-way street so in our case an aura
graph we have only one-way streets
it's a sickly which means it doesn't
have cycles you cannot go around in the
graph and this is actually not something
that we verify or not something that we
try to ensure in the graph this is by
construction because each node in the
graph so that would be a nod in in graph
theory lingo in in Bitcoin lingo that
would be a transaction so each
transaction contains the hash of the
parent transaction and because of the
property of a cryptographic hash we know
that the parent transaction must have
been created before the child
transaction or I wouldn't be able to
compute the ash and so it's impossible
to have transaction a created before
transaction B and then transaction be
created before transaction a we have
like a temporal impossibility here which
means that by design it's impossible to
have cycles in that graph and this is
very important because those kind of
graph have some special property that we
can use alright so now we are in the
distributed system and even though if we
were all omniscient we could know all
the transaction that exists and when
they have been created and all of that
but in a practical sense that is not
possible and this is one of the
constraint you have to work with when
you work on a distributed system that
means that the only thing you know is
when someone else told you that some
event happened so for instance someone
forwarded you a transaction hey there is
this new transaction so you you have no
way to know when that transaction was
actually created you just have a way to
know when someone forwarded it to you
and you can know when you send the
information to someone else right but
you cannot never be sure that they
actually received it or that they
processed it correctly or that they
accepted the transaction or this
like
like your scope the scope of information
that you have is actually quite limited
and inherently very subjective right
because those information when I witness
some transaction and when I forwarded
some transaction to someone else it's
gonna be completely different for every
single node on the network so that means
that it's not of a dag in its mempool of
transaction that are being made on the
network but none of the node actually
have the same tag in there they are all
constructing it so hopefully they are
going in the same direction eventually
but at any point in time they have a
different view of what the state of the
of the universe is so then what happened
because because of that state of offer
what happen is that we have this mining
process and you produce block on a
regular basis and when you find when
someone find a block it's gonna take
whatever subset of the dag is aware of
at that time and and and considered
considered valid and considered worthy
of of confirmation put that in a blog
find a block and then forward the block
to everybody else and everybody else is
gonna try to reconciliate whatever the
new of the world locally with whatever
is in the block and potentially like
reconsider whatever their view of the
world is right so there is all kind of
all kind of stuff they can disagree with
what was in the block maybe there are
some transaction in the block that don't
fit the policy that this specific node
would have accepted but no they you know
change their mind and consider it valid
because it's in the block maybe there is
a double span and the one in the block
is not the one that the not considered
as the you know the true original one so
in that case the node is gonna well
ditch you know change is mine on which
one is the real and which one is the
double span there is no you know
objective way to say that but know that
there is a block everybody agrees with
what is in the block right and so this
happen and did not continue to extend
his daggers people do more transaction
and the whole process repeats again and
again
so we are in a situation that I think is
very similar to what people that do
physics called entropy where the nodes
are in the state and the state evolves
constantly and the state between
different nodes droves and grows and
grows apart right and then when we find
a block it act as a as a way to reduce
some drop in the system and then on
trapeze start growing again right so
what we can see is that not because this
is a distributed system not do not
really agree on what the real or global
state of the world is that means okay
I've been over that a bit already during
the previous slide but that means that
some have seen a transaction maybe some
oh sure I have not seen it yet because
it has not been forwarded to them some
may have accepted the transaction author
may not have accepted it because maybe
also considered that the fees too low or
whatever reason like the I mean they do
whatever they want they may disagree in
what order the transaction happened
because the transaction have been
forwarded to them in a different order
than some or not and they will disagree
up double spend meaning if there are two
transaction that spend the same money
some node will consider one to be the
correct one and some also not may
consider the other one to be the correct
one and there is no you know there is no
objective truth that you can know to
actually know which one is the real one
that's the question that don't really
make sense from the perspective or not
and then a block is found and then we
converge to essentially I'd find that on
trapeze we go back to a low entropy
level but this is quite slow right
because we find a block every ten
minutes so in a graphical way it looked
like the so let's imagine that this
whole slide is a space but not like a
physical space it's the space of the
different states that the node can be in
right so right now a block has just been
found so all the nodes are very close in
the in the space of state to where the
block is right they may have a few extra
transaction that let me consider a valid
they may not agree on those but for the
most part they agree on whatever is in
the block
and as time goes on they grow further
apart right they accept the accept
information from the network and they
don't really try to agree between
themselves whatwhat about what is going
on and so they grow apart in the in the
state space and then eventually some new
blog is found by one of the node and
that knot is going to propagate it to
the other nodes and they also not are
gonna try to reconciliate their local
state with whatever is in the block and
so they they get there and then we start
the process again because as we see
there is a new blog but we find
ourselves in situations similar to what
to what we had before and so we we have
a few problem with that it's and and
this is where we reach to I think the
core of the issue is that not make no
attempt whatsoever to reconciliate state
before a block is found right just pick
up whatever is going on make their local
stuff and grow apart and then once every
ten minutes they're gonna try to
reconciliate their state and so what
happened is that the distance between a
node and a new block that is found on
the network in that state space can be
can be potentially very high right
especially if there is a double span
that has been done early on they may be
on a completely different sub graph of
transaction so that that's a challenge
for a five-block relay right because the
amount of state you have to reconciliate
between what the not already processed
and knows about locally and the state it
needs to put itself in is bit like the
further apart those tools are the more
work there is to do for the node to
actually accept that new block so that's
one of the that's one of the one core
issue I was talking of the earlier five
block really right another one is that
transaction are essentially in quantum
state before a block is found because
depending on who is looking at the
system they're gonna see different
things right
so it's it's like it's not quantum in a
literal manner right but it's very
similar to what I find in quantum
mechanics where the
system is gonna be like quite in an in
defined state unless you look at it and
looking at it in that metaphor would be
finding a block and so that means that
user can really never really know if a
transaction has been rejected by the
network or not they just have to wait
like forever until they give up because
maybe that transaction may be accepted
in the next block or not and you don't
know until the block is fun and then you
repeat if there is a double span going
on they don't know which one of the
double span is going to be accepted
until there is a block that is found
finally that also means that policy such
as minimum fee by essentially any kind
of policy does not want to apply on
whatever it is doing needs to be either
central plant so we say maybe in that
group we decide okay the minimum fee
needs to be X and then we go to all the
minor and businesses and say okay the
minimum fee is X and everybody uses the
same minimum fee and so there is no
divergence going on there but I would
argue that central planning of economic
matter usually it doesn't work great on
the long term so that's not very good
you know that's not a very good
situation but the alternative is
probably even worse at least I would
argue that seven words is that
essentially we have no zeroconf anymore
because if everybody starts using a
different policies then there is a
complete fracture in the state of the
block because some are going to accept
one transaction some are not gonna
accept so they're gonna grow apart in
that state space even faster than dead
you know which means we have a bit of
you know dichotomy between two pretty
bad choices here so yes
from the top you say that nodes make no
attempts to reconciliate state you even
said whatsoever that's false they send
all the transactions - to each other
they send reject messages when
transactions are not acceptable how can
you say they're not reconciliate in
their state that's exactly what they do
on a continuous basis distance is
potentially large is it retail yes
they don't write your date they they
announce what their state is towards a
lot but they make no effort whatsoever
to try to all together come to what the
same state they do because they send
their state to others and so they can so
the other nodes can see the same data
that the first one saw and they also
send reject messages there is a reject
messaging will you forward a transaction
and they also not reject because there
is a low fee locally the note does
nothing about that message and that's a
point you point out there is no way you
said to find out if something is
rejected by the network yes there is you
can listen to other nodes you can listen
to various notes to see what their state
is you a different answer and what does
the network comply a mean in your world
because if there's lots of different
nodes and some of them disagree with
each other that can happen but only
because of exceptional conditions like
for instance a double spend so different
nodes have different ideas which means
that there is also a very very small set
of transactions that would cause a
disagreement so you're probably like
today there are - that I've said
different feel events right so if you
send a transaction that have a fee that
is in the right range some people I can
accept it some people are not gonna
accept it like it's very easy right now
to have no disagree with each other and
and those different notes they make no
attempt it's also very easy to make them
not
with each other I think that the vast
majority of transactions get mind
without any disagreements between notes
will probably pop talking about the five
nines here may I suggest that we take
this discussion afterwards and let Amara
well it seems to be his basis of the
presentation well in that case we should
take it after the presentation okay okay
so that's what I was getting at they're
not they instead of making that once
every 10 minutes they need to make an
ongoing effort to be as much as possible
in the same state over those 10 minutes
because if you do that and you get back
to like this situation you know it was
not that our you know far away they are
all set up in the same area so they are
very little work to do for the block
it's also good for user because they can
ask us not and they are like okay all
the nod are in that area of the state
space which means that whatever can
happen whatever is going to be true it's
gonna be somewhere in that cluster so
I'm gonna go quickly against how we can
fight this entropy increase to keep it
low obviously because of the property of
distributed system you can never keep it
to zero but you can do better than do
nothing for ten minutes and then and
that work your ass off to try to reduce
it to something close to zero and then
start again so the first so they are
essentially two direction we can go in
right and the first one would be
removing some dimension in which node
can you know go away from each other in
that state space because even though
like the slide is two dimensional really
the state space is n dimensional right
and we cannot slash some of those
dimensions someone that you can slash is
so if you take about like the
information that is in the global set
let's say you are an omniscient being
and you would be
looking at the network there is a
certain number of transactions that are
gone in there even though all nodes may
not agree about what its number is and
which one are valid or not so if you do
that you would see that there is a
certain amount of state per node and the
larger this step is the more potential
there are for those not to grow away
from each other
and essentially you have like one bit
per transaction of state that is is the
node accept that transaction as you know
being like a good one that's going to be
included in like that's going to be
confirmed or or not right so that's one
bit of information per transaction that
is going around and you have also
information about authoring so it's not
is gonna disagree on what order those
transaction have been made there is much
more information there right because if
you have n transaction there is n
factorial possible ordering of those
which means you have n log n bits of
information about ordering and so if you
look at it from first principle that way
you realize that within that system
there is like almost all the information
is ordering almost all of it and so if
you pick some number if you have like a
thousand transactions that are going
around you have like 10 times more
information about ordering then about
what the transaction is correct on that
if you have a millions it's like 20x but
you know you know to compute log n in
base 2 so so this is what is right you
get you get way way way more information
about ordering so this is one of the
reasons so Peter you were mentioning
that when talking about about canonical
ordering you were saying that okay you
want that for reason eggs and reason why
and resen Z and usually that's that's a
bad smell right because that's that's an
indication that
you're kind of like trying to fish for
reason to do this thing but I would
argue actually XY and Z like this is the
reason this is the reason and sy and z
are just consequences of the fact that
that you reduce the amount of
information so if you reduce the amount
of information it's easier to propagate
block around but but as you know I'm not
gonna read you the whole talk but as you
can see there is like a vast amount of
different aspects that are impacted by
this but this is like this is the ground
root cause this is actually what it's
like from France Frankie thought this is
what it's getting at so a solution has
been proposed so okay this first one
essentially reduce the dimension in
which not can derive from each other so
that's already good right like you the
factor of let's state to reconciliate if
there is less that not can go into you
to begin with but you cannot do that for
all kinds of states like the first n
bits there is no way to do that for them
so there are various solution that have
been proposed over time and the first
one I think or at least the first very
interesting one that is compatible with
Bitcoin everything was Bitcoin energy
and so Bitcoin M G is a protocol where
every time a new block is found a leader
is going to be elected and so the leader
is essentially waiver from the block and
everybody reckon is the leader as the
leader so whatever the leader say is
whatever it is right so if the leaders
say this transaction is in everybody's
like alright I thought it was not in but
the leaders say it's in so it's in and
vice versa if the leaders say no
everybody's like ok ok now like maybe
maybe I wanted to do it but the leader
is it doesn't want to so we're gonna set
that with with the you know going
forward or we don't do it it it works
well except that you kind of rely on the
leader until a new block is phone so if
you you know if you end up having a
leader that don't really give a crap
about what's going on
or even want to mess with the system
well the leader of like 10 minutes to
mess with us maybe the leader can choose
for instance to confirm no transaction
during the whole timeframe of ten
minutes say you like no to every single
transaction it would be like the you
know the leader has no direct incentive
but the leader may have incentive
outside of the system to do that for
instance the leader of a short bch and
some exchange and choose to do that
that's you know that's always an option
they are always like the real world is
not as simple as the game theory within
Bitcoin there are many external external
factors so and also one is weak blocks
so the the idea of wait block is that
we're not gonna produce one big block
every ten minutes but we're gonna
produce what is called weak blocks that
have a bit less proof of work than the
main blocks so they can be produced a
bit more often and notes are gonna
essentially agree with what is in the
wait block so instead of reconcile it in
a big state every ten minutes they
reconciliate the smaller state every
like one minute or two minutes or
whatever is chosen for the time of the
we blog so and I would argue the main
problem here is that you are still doing
a blockchain with proof of work in that
system and so you still have some time
constraint that are not quite where we
want them to be we talked over the past
two day that really we need to have just
a few seconds like if it's more than
five seconds essentially it's it's it
doesn't work and right now we don't
quite know how to produce block and
propagate them on a five-second interval
we can do it like maybe in a 10-15
second by by pushing stuff but going
below 10 second is like a real challenge
so so right now we don't quite know how
to get to timing that are as low as we
would like them to be but it's it's a
solution that works that improve
significantly over what exists and so
the third idea is to use a protocol such
as avalanche which is a new class of
Byzantine fault Orion protocol we're not
are going to essentially talk with each
other and ask each other about
whatever the state of the system is
several time in a row and they can do
that in such a way and update the
intelligence state based on those
response and they can do that in such a
way that you can prove that they all
converge toward the same state you know
given some some property of the system
so I would say it seems like the
silhouette honestly but I guess it's
fairly new so it's a bit experimental
maybe there are some you know some
consideration about it that have not
been quite you know so true yet this is
a paper that is less than a year old so
this is a very recent ID but I think we
should like think seriously about it in
my opinion that's the most promising
[Music]
okay so to get back like you know to
essentially sum up everything in one
slide we need to be fighting on tropi on
an ongoing basis because any proof
iceberg preparation eating proof fast
feedback on policy so is your
transaction is going to be accepted or
not you can know that right away it
ensured that policy can be emerging from
a free market because if some not start
applying a different policy they're
gonna ash it out with each other and
eventually the network is gonna go one
way or another but at least you know we
get away so that we don't need to set
that policy it can emerge and if you
have nodes choose to use a different
policy it's possible and you get
protection against the box and like much
stronger protection that we have now and
it can be done in like two general
direction the first one is reducing the
entropy space that you can explore a
good solution there or at least you know
like a solution that slash many
dimension of that Rock trophy state is
making a canonical Odori because all the
other information is gone and you can
add synchronization mechanism to
reconciliate the states that that you
cannot slash out and those are gonna be
mechanism like ng would block rather
than yeah so first of all a great talk
thank you for that and I just like to
make one comment I see which is like so
it seems like the lower
as just an interesting observation
because you say like quantum state of
like super post like uncertainty of
transactions but if you look at it very
closely I think there's actually like a
even like a Heisenberg uncertainty
uncertainty bound in the net where it is
like you take the diameter of the
network in terms of like speed of
propagation and you multiply this
transaction rate and that is the amount
of entropy you cannot get below
absolutely absolutely you cannot get
that don't repeat to zero there is no
way to do it but we can get it to value
that is much lower than what we have now
and that's the argument I'm trying to me
thanks again for the talk and my
question is more specifics around
avalanche I've read the paper my
question is is in the fast Reese penned
case if you manage to get around a 50-50
distribution for some reason avalanche
is in deterministic from how I read the
paper that it actually can't get a
result in that case as the nodes are in
an even split so what kind of
notification mechanism are you thinking
about in some of those edge cases an
avalanche is I'm just curious your
thoughts on it it's not really an
opinion I just wanted more context on
how that works so so it's a bit
different than what you expect so a
valance is if you have a situation where
5050 you're gonna have a lot of heat for
being an avalanche it's gonna take a
long time to to convert what one of the
two but actually the paper proves that
eventually you get eventually everybody
converts in the same direction because
what's happening is that you have random
sampling so even though this is 50/50
depending on the random sample that
virus none are gonna do some of them are
gonna see something different than 5050
and because those flipping are gonna be
random between not even 30 days old but
then the card that's the you know the
time it takes for that convergence to
occur is well outside the bounds of what
we actually need for reliable Cod like
zeroconf
it can't converge in that case so it's
are you thinking that there might be a
timing where it's like okay these notes
are really disagreeing this kind of
proves that
something malicious happening there's
some kind of double spend yes they're
not able to do that so there'd be a
timer where it's like hey we didn't get
a result
this proves that there's some there's a
probability of fraud it's that kind of
yes yes absolutely yes so for most
transaction there is no double spent
going on so for most transaction you can
expect a conversion that is extremely
quick in the matter of like 1/2 seconds
but if there is if there is a contention
and if this is very contentious in the
network something close to 50/50 is
going to effectively take longer to
convert but in that case you can you
know like even as a merchant in in face
to face you can you know you can be like
ok there is like something we are going
on with your payment it takes a bit
longer for my terminal to accept it you
know butBut Evan like what is long
4-valent is actually quite short for
blockchain right so something like 10
seconds is is you know very much in the
long tail of what you measure with a
large
[Music]
prevent it from converging well even
there they technically converging
yeah yes so yeah if you have a high
percentage of malicious user they can
create the situation where convergence
is lower that means that it's not
covered by the Avalanche paper but that
means if you want to use Avalanche you
need to have some civil mechanism like a
civil protection which just simple but
but as it turns out we are building a
system that is all about digital
scarcity to begin with so creating a
civil mechanism within that it's not
very difficult there're like there are
actually many option you can use coin
edge you can use coin themselves you can
use proof-of-work you can probably use
kind of tough but does that seem to you
know it the three most obvious ones so
that we mean that that you know someone
that want to create slow conventions but
being a lot of fake notes it's gonna
have to put a lot of money on the table
to begin with and if they are a big
order in the system and want to screw
with it they're gonna you know it's
doesn't make a lot of sense here from an
economical perspective
thanks for a great talk armory I love
the way that you're always looking for
simplicity I'm looking for connections
between games so my question is about
the so I you left us hanging as you
mentioned avalanche and the
possibilities of it so the next thing I
wanted to know was how like how will
that happen the querying because and I'm
guessing maybe there's a it's not fully
developed or yet but um so I I have a
fairly good idea like I have a proposal
that I need to put like in a forum where
I can propose to people but I I think I
have a pretty good idea of how you can
do that the reason I didn't explain that
here is mostly time constraint right
because I added a lot of I had a lot of
framework to put up there so that you
know it's so essentially if I were to
come here and explain what I would want
do with avalanche everybody would have
been very confused because you know I
couldn't like pose do well it's so the
current system is that a node has the
number of peers you need or two hundred
peers and they already all relay
everything to it so they're already I
mean the note is already sort of taking
a poll by listening yes and and if
there's a conflict and it does get one
of them first and that's how it's it
makes a choice so it seems like you got
your work cut out for you
beating that because because you're
going to have to take the time to go
start proactively unless I misunderstand
yes no that's that's correct you have to
go start going asking questions getting
answers and it's also talking about
multiple rounds in this I it does seem
like you have a challenge with keeping
the performance and speed there to match
what we're currently doing yes and no
because for anything that is
non-contentious it converge extremely
quickly so what's so what you need
addition eight what we are right now so
we have to invest in inventory message
an inventory message is essentially
about yes from Sun Arsenal I accepted
whatever that object is and I'm sending
it to you but then you need another type
of message which is like I have been
told about object X but I don't think
object it should be included and then
you can and you know and then there is
the question what do you think you would
certainly trying to verify with double
Spencer yeah so say you have transaction
a and then you have transaction B that
you receive later on that is a double
span of a so you're not gonna accept
that B because by default you use first
seen as a policy and what you are gonna
do is that you're gonna query a random
sample of the note that you know and
you're gonna ask them okay I just heard
about these B stuff do you think B is
something we should include in the
blockchain yes no right and you're gonna
ask those not and if they all tell you
know it's gonna converge extremely
quickly or if like you know ninety
something percent of them tell you know
it's gonna convert very quickly if some
say yes some say no you're gonna need
several one two but
you already know that your direct peers
don't like be or they would have sent it
to you what this means you have hate
peers which with your you know strongly
connected and the other one are like
more the sample would be outside of your
current peer set yeah so this so the way
other lunch work and it's very important
to you know both keep the stuff going
fast but at the same time keep it trust
less it works by choosing randomly
sampled chorim's
to ask the question so you and I could
pick up like eight or ten notes in all
the notes you know and I stand the
question but randomly right and
important for the protocol to work you
need to pick a new random Quran every
time you need to you need to ask a new
question and because of the you know
property of the randomness you can prove
that essentially the the when this you
know when the state of the system as a
whole is ambivalent the probably of that
you know remaining big freeze
exponentially okay how about someone
else ago okay great talk
armor yeah I really enjoyed that and I
think you're you're totally right that
the the underlying cause of the problems
instant transactions block propagation
is all this entropy in the system which
is growing it and we're fighting it and
I really liked the discussion about
entropy because we know that it requires
a certain amount of information
exchanged between the knows to resolve
it if yeah so this is a very real
mathematically understood effect yeah
this is really the floor we cannot go
like we know that in practice we're not
quite at that level we inform but like
we change way more information than we
need to but this is like the Tariq and
Freud we know that we cannot go beyond
that definitely and then we have that
the Shannon Harvey theorem which limits
how quickly information can be can be
transmitted so I really like that the
framework you're building here you
mentioned that seat or helps us to
remove the the entropy and I totally
agree there's you don't need to transmit
the ordering information but you also I
guess my concern is you you also lose
information too because there I worry
that in the future there will be some
value in the
the natural order the the transactions
came and I know it's not there's a
single objective order but but but by
going to see our work we're just
removing that completely do you have any
concerns that maybe in the future we'll
kick ourselves for removing that
information
I don't think so for a few reasons so
the first one is that if we go back to
what the graph of transaction looked
like we don't lose that graph right that
graph is encoded within transaction
right so we get so what we would not get
for instance is that we don't know if
tix for or takes five happened first
this is the information we lose but we
still know that takes three happened
before takes four and happened before
takes five as well so we have we lose
that we lose that information in the
absolute sense but everything that is
relative between different elements in
that graph we we keep two weak parts we
could have find a great time stepping so
we might know the TX pork in before tx5
at the same time you cannot do much with
that information so especially since
right now actually the the transaction
in the block are not even otter in the
way the not resist them it orders like
in a crazy complicated way that is based
on fee but also based on all they are
connected with each other so so right
now like people need to realize that
right now we have no notion of like
people what people call natural order to
begin with like the way blocked on plate
are constructed completely destroyed
that already so this is like we we may
have the illusion that we have this
information to be able to actually don't
have it to the side direction like we
discussed this before line and like I
feel like okay we are going see torn
orator and
there might be like value and going to
any order I guess with for example is
like let's save it box turned out to be
good or if there's might be waivers so
going in any order actually like don't
change anything there like if anything
it increase the entropy because there is
any order that is accepted but if you
look at the number it's likely
completely negligible it's going to any
order of some benefits in some other
area of the system I would say but like
really nothing there no no III see what
you're saying there but like the
improvements you just listed some of
them as Peter said like they they might
add information that might be valuable
or not I mean I mean the various
describe evidence may be there can be
even like a high-resolution time
stamping from that or something like
that and so I I explained it to you
often I'm just wanna make this comment
again like I think it should be you
should actually keep from ossifying into
a seat or alt or if we could also do any
order and basically just yeah just make
this egg I wanna just make this caveat
that maybe we wanna do like change the
order again to something else
and we should be open for that and I'm
just very also father so if you do any
order so what we see from this this you
know looking at that from the first
principle is that alt or doesn't really
matter what we need is to have canonical
altering whatever that canonical
altering is so right now with you as
sending ID for transaction but we could
be descending ID we could be
little-endian big-endian we could sort
by transaction size and if they have the
same size we solved by something else
you know if you'd like come up with all
kind of system to solve the transaction
the important part of it is that the
sorting is simple to verify so
transaction ID is very simple it's you
know linear process but but beside that
like pretty much any other ring is as
good as the other as long as it's
canonical and so okay there is something
because we are talking about week block
I think it has an interesting impact on
week block actually so the main problem
with week block right now is that it's
rather slow because all the week block
they have to build upon each other and
if you reduce the time too much it's
gonna become very branchy and you're
gonna get a lot of week lock that are
often and it's and then the in certainty
creeps back in right because you don't
know what we block is gonna be the one
so if you reduce the time too much
instead of reducing entropy and up
increasing it you have like if you look
at the coverage similar to the Aston
curve if if you're familiar with that
one but if you end up having no
information about ordering that means
you can determine it strictly
deterministically merged way back right
and that means that you can change your
wit block into a dike so let's assume we
don't have that connection here right we
have week block zero block one or maybe
a and B would be better like they they
are not order anymore and you can read
those tweak blocks and and say you have
like week block zero we got one and you
can decide okay they actually the merge
state between those two week blocks is
like somewhere around there so everybody
goes there right is actually not like
this actually some other thing I like to
comment on which is like that is true
however this is of course not always
possible because it's not possible in
case of doubles right so I also can't
repeal in themselves all right but I
mean in the end like the only entry
entropy that we really have to fight
against this is a double spin right like
if Beverly unknown what does permit
needs a system I know I disagree there
are other sorts of intrepid that have
real impact on user like the one where
you don't know if a transaction is gonna
be included or not and you get to wait
hours to figure it out I think it's a
it's like I think it's a very user you
know user impacting problem in the
system yeah okay but I think that but my
comment was very general like just like
a very high-level perspective the the
other thing I wanted to say is like okay
so you seem to have this problem like
when there is a double span happening in
a big block then you get basically you
get this uncertainty which is like the
size of the bleep lot like
action in the victimok is actually the
problem there right and so I'm wondering
like whether that's like a trade off
like the size of like the set you create
did you want to sync between notes and
better like yeah does the same happen
with evidence was it like per
transaction thing and so it seems like
it seems like if you do a transaction
that it's easier to game the system and
if it's a block it's not so easy to game
in system but then it's a disadvantage
of like you cannot figure out what is
the right one no so they're actually
proof that you know avalanche is
Byzantine fault tolerant a lot of that
but the the reason why it can convert a
much faster than system like week blocks
it's because every single known is not
gonna converge at the same time so you
have this synchronicity aspect right so
when you have a week block you need to
propagate that we block to everybody and
everybody goes to the week block and
everybody synchronize all the state that
is in the week block at once what's
happening in avalanche is that not
quarry each other and each not have a
different subjective subjective
knowledge about what they also not are
thinking and you can prove that they all
got a cover to the same state but
actually they are not all gonna converge
at the same time toward that state and
maybe you know some of them are going to
finalize transaction a very quickly but
not transaction B and and some are gonna
do the reverse some of them maybe are
gonna convert from the two very quickly
like you cannot guarantee that everybody
is gonna wear to the same you can
guarantee that the converse to the same
state but not at the same time and
that's that's the by making that
trade-off you can ensure that on average
this time is much shorter so you started
in in in the presentation with some I
think overly dramatic statements which I
responded to earlier I think the best
thing that I would actually be looking
for is some actual
information research numbers about what
kind of entropy were actually thinking
about because you know the actual
difference in the mempool between
different nodes has been shown to be
extremely small we can see that when we
block relay tests already the ABC ones
were much bigger difference there
compared to some ABC aster to zombie
once and but at the same time the BCU
notes had a very predictable way of
program sending transactions to other
nodes so they were very very similar but
what is the basis of you starting this
research is was there actual need for it
or is this more of a hey this sounds
like a fun thing to do well I think
we've shown in this conference earlier
on that there is actually problem with
zeroconf we know also like protocol like
graphene right now as a failure rate of
I think like more than 50% I mean the
variate is as from weakly hi right now
it's but very single
10 I don't know like Jonathan 2-minute
at different numbers yeah so yeah so
even if it's 10% like 10% this is would
argue it's pretty high
also even though in practice you see
that you have a low different entropy
between nodes you have no way to know
about it so you cannot design around it
right you cannot assume that it repeats
low if you have no there's no if you if
you look at the graphene blocks and and
and and what kind of transactions needed
to be sent between nodes you have a
pretty good idea this this is this is
actual results you can check up on also
know start stop stop
we just discussed that we just give you
numbers
Alger stone here is saying ten percent
ten percent failure rate is very high
temperature and failure rates for the
entire block graphene it's very I like
it's a factual number we have also
factual number in that slide like this
is mathematical stuff that you can
compute yourself this is like the low
bar bar all tropi I mean you can decide
to disregard all of those and pretend
that they don't exist but they do write
it really people don't care about about
what you think is real or not
that's exactly why I'm asking for it
yeah so my question is more about so I
am very interested in pre consensus
research I think this is actually a
really interesting topic so thanks again
my question is really around civil
attack vectors on full nodes that have
just been spun up and a way to be able
to differentiate more trusted full nodes
versus ones that could be Sibbald so in
my thought process and I'm kind of
curious your thoughts on this is if
there is a way to prove that the members
of the graphene election were full nodes
that were associated with miners that
have done proof of work in the past then
you are more civil resistant against
nodes that have never done proof of work
is that somewhere that you are exploring
a way to be able to basically say hey
I'm voting for this transaction and by
the way previously I created this block
and I am a actual participating member
of the network absolutely so two of the
solution I've been talking about
actually doodads right so Bitcoin in G
and wit block are linked to proof of
work like directly in in the way they
work and G select the leader based on
proof of work and weed block produce
with block with proof of work so those
two are inherently civil resistant
because of proof of work avalanche is
not inherently civil resistance so you
cannot fall out avalanche alone you need
to roll out avalanche and and then
another extra mechanism for not you know
which one are not civil resistant and so
as I was mentioning you can do that you
can do that in various way essentially
to have steak or whatever though I don't
like saying it that way because this is
not what people usually understand which
proof-of-work are proof of state because
the work or the stake in that case has
no bearing in the Constitution algorithm
whatsoever right like you don't use work
or you don't use take to come to a
consensus you just use that as a civil
resistant mechanism yeah basically it's
a voting filter so that you know that
like oh this yes is more likely to be a
a reasonable worker like you know that
someone like if someone want to spin a
million node then they're gonna have to
put a ton of ethics on the table or a
ton of coins on the table or a ton of
something but those assets or those
coins do not themself participate to the
consciousness algorithm so this is not
what people usually understand when they
say proof of work or sources of proof of
state concepts basically if you could
basically sign that you could some way
to prove a signature that you created a
previous block would be a way to
guarantee that you had participated in a
proof of work yes yes you need to have a
way to tie your node to some scarce
resource too because if it scares like
you know there is a strong guarantee
that you are not a Sibyl
and once you can do that then you can
participate in processes like avalanche
I thought processes more around how do
we prevent it from being kind of a
staking mechanism because I do think
that there's some side effects to going
to a staking mechanism and how do we tie
that more closely to the proof of works
side that we all believe in in Bitcoin
and make sure that the civil resistance
mechanism is actually tied to proof of
work in some way so you are going you're
going there and this is why I don't like
to call that a short proof of work of
proof of stake because so the problem
you get usually with proof of stake is
like the rich get richer and then you
don't to create an aristocracy in the
system that problem doesn't really exist
here because you don't use your stake as
a way to gain consciousness on usual
proof of state algorithm
people are gonna you know select some
some next valid state and then they're
going to decide on it and
by yourself and if they are correct they
are gonna make more money they are
incorrect maybe he can slash out of
their state but none of that is
happening here we're going to need to
draw a line here but we have one final
question yeah I just wanted to ask about
the run sampling of peers in avalanche
do you do you haven't requires that the
random the random sample of the peers
have to be taking from the entire
network or just from the the nodes
around you that you know about because
you are connected to because if I guess
that see balu resistant could could
solve part of a problem but is the the
the enough to sample around you even if
the R is civil mechanism Cybil resistant
mechanism that that yeah so what you see
in practice is that there are huge
thousand nodes and but it's not no
several hundreds appear on the network
right so you have very little hops from
one point of the network to another so
it's not that big of a deal where where
it's more of a concern is effectively
the Sybil attack but you can mitigate
that by tying the knot to some scarce
resource so that the Sun the random
something has to could be taken just to
one oh yeah you don't need to know every
node of the network but you need to have
a big enough sample so that you are not
gonna be cornered into some stupid
position because all the nodes that are
connected to you belong to the same guy
right or the vast majority of them
[Music]