►
From YouTube: Sharding Jam
Description
Sharding Jam with Alex Skidanov, Co-founder of @NearProtocol, Dean Eigenmann and Ryan Zurrer.
----
Follow the latest from NEAR Protocol on,
Website: https://nearprotocol.com/
Discord: https://near.ai/discord
Medium: https://near.ai/medium
Twitter: https://near.ai/twitter
GitHub: https://near.ai/github
A
B
B
A
A
A
The
only
thing
that
the
similar
to
polka
look
is
data
availability,
which
is
practically
taken
from
polka
dot,
one
to
one,
so
every
block
logically
contains
all
the
transactions
and
all
the
shirts.
So
every
block
will
contain
some
sort
of
header
which
contains
a
global
state
route,
global
transaction
route
across
those
charts,
and
then
logically,
it
contains
all
the
transactions
in
all
the
shards
but
physically,
it
contains
what
we
call
chunks
one
per
shorts.
If
these
four
shards
the
block
would
contain
chain
for
short,
one
for
sure,
2,
3,
etc.
A
Some
of
them
may
be
missing.
Right.
You're,
the
blood
producer
didn't
give
the
chunk
in
time.
The
chunk
will
be
missing
so
for
every
shard
the
block
will
contain
1
or
0
chunks
now
and
then
the
next
block
will
contain
again
junk
for
the
first
shirt
for
the
second
for
third
etc.
What
you
have
managed
to
collect
in
time.
A
Include
the
header
hood
right,
so
the
block
the
block
effectively
contains
the
block,
header
and
chunk
header
paid
for
every
chunk.
Now
what
happens
is
these?
Are
everybody
produces
block
size?
If
you
have
a
set
of
block
producers
that
they
have
200,
they
will
all
be
taking
turns
producing
blocks,
but
they
will
be
splitting
into
shards
and
every
shot
will
have
a
few
of
them
like,
let's
say,
every
shot
has
ten
or
like
20
block
producers,
and
so
the
blood
producers
are
out
of
the
whole
population
of
200.
A
So
this
is
200
people,
let's
say
right,
so
these
200
total,
the
first
twin
it
could
be
working
on
some
shorts.
The
next
20
work
on
some
sharks.
The
next,
when
you
work
on
some
charge,
etcetera,
they
don't
have.
Each
of
them
doesn't
have
to
have
one
short
in
your
allocate.
Most
of
them
will
have
several
shorts,
but
but
none
of
them
works
in
all
the
shirts
and
or
rather
it.
None
of
them
works
on
a
large
on
something
that
is
on
the
order
of
magnitude
of
number
of
charts
right.
A
So
these,
if
there's
a
charts,
probably
everybody
will
be
working
on
one
or
two
of
these
hundred
charts.
Everybody
will
be
working
like
on
five
on
five
right
and
so
among
those
twinny.
They
have
a
schedule
of
producing
chunks
right.
So
there's
going
to
be
a
fixed
schedule
of
length,
20
right,
so
every
every
20
blocks
it
will.
A
It
will
repeat
alright
and
so,
for
example,
if
this
was
quite
seven-
and
this
was
right-
8
then
for
height
7
for
every
chunk
there
was
a
particular
blood
producer
who
was
assigned
to
produce
chunk
and
the
moment
they
received
the
previous
block
and
the
moment
they
managed
to
fetch
the
chunk.
For
their
short,
let's
say:
let's
consider
the
particular
person
who
is
responsible
for
producing
chunk.
For
short
one
at
this
height
I
wonder
issued
the
previous
look
at
right.
Well,
hopefully,
it
was
head.
A
6
didn't
have
to
be
the
chief
check
for
height
1,
the
moment
they
issued
the
book.
They
will
try
to
fetch
the
chunk
and,
in
a
second
I
will
say,
I
will
tell
how
we
make
it
very
likely
that
they
will
be
able
to
the
moment
they
face
the
chunk
for
for
for
their
chart.
They
apply
it,
they
get
the
new
State
Road
they
get
transaction
from
that
transaction
pool
and
they
create
a
new
chunk,
okay,
which
they
immediately
sent
to
the
blood
producer
of
4/7.
How.
A
So
we
will
get
back
to
those
differences,
I
guess
for
first-time
ones.
It
looked
like
data
availability
in
overall
structure
and
then
start
comparing.
Why
why
they
can
and
we
cannot
sample
every
six
minutes
and
and
how
that
affects,
like
adaptive,
corruption
and
what
we
do
to
prevent
it.
So
one
thing
is
that
in
this,
in
this
design,
I
just
talked
about
one
big
problem
is
that
chunks
might
not
be
available
right.
So
this
person
who
created
the
chunk
I,
they
are
malicious.
A
They
can
create
a
chunk
like
naturally,
the
block
producer
cannot
download
all
the
chunks
that
will
effectively
mean
they
have
to
download
all
the
transactions
for
all
the
shirts,
so
that
completely
eliminates
well,
not
completely,
but
it
eliminates
most
of
the
benefits
of
shorting.
Obviously,
the
blood
producer
can
only
see
the
headers
and
maybe
a
little
bit,
not
the
information.
So
if
this
blood
producer
champ
register
was
malicious,
then
they
would
send
enough
information
to
the
blood
producer
to
include
chunk
one,
but
not
enough
information
to
the
to
the
rest
of
the
network.
A
For
the
chunk
to
be
recoverable
right
and
so
the
next
channel
producer,
when
the
book
7
is
produced,
they
will
not
be
able
to
to
fetch
the
chunk,
so
they
will
not
be
able
to
create
the
next
one.
That
would
be
pretty
bad.
So
the
way
we
do
that
is
when
the
chunk
producer
produces
the
chunk
they
like.
Let's
say
this
is
the
chunk:
they
they
split
it
into
small
parts
and
the
eraser
coded
and
they
sent,
and
so
each
of
the
shares
of
the
eraser
coded
chunk
has
a
particular
blood
producer.
A
Fine
kick
has
better
guarantees.
So
now
what
happens
when
the
block
is
produced
is
every
other
block.
Producer
will
only
accept
this
block
in
one
of
the
two
cases
case
number
one
is
that
they
follow
the
shard
and
there
they
were
able
to
fully
reconstruct
the
chunk
in
case
number
two
is
they
do
not
follow
the
shirt
and
they
and
they
had
their
part.
The
part
that
was
sent
to
them
specifically
right.
B
A
A
Cool
and
they
still
a
problem-
well
they're
going
to
be
mini
small
problems
on
the
way
up
or
all
of
them.
We
have
some
satisfactory
solution.
So
a
couple
o
couple
that
already
happen
here.
One
is
that
for
a
check
with
you,
it's
very
easy
to
grieve
the
blog
producer
in
the
sense
that
they
can
send
them
a
chunk,
but
not
send
it
to
anyone
else
right.
So
so
yeah,
nobody
will
recover
the
check
and
people
will
ignore
the
blog,
but
block
was
like
the
blood
producer
lost
the
reward.
A
The
entire
system
missed
a
heartbeat
because
the
block
was
not
included,
ultimately
all
right,
so
that's
pretty
bad.
The
way
we
fight
with
that
is
the
blood
producer
after
producing
the
block,
will
try
to
sample
couple
parts
for
every
jump
and
for
the
chives
for
them,
for
which
they
fail
to
do
that.
They
will
never
accept
the
chunks
from
that
young
producer,
so
the
joint
producer
will
be
able
to
give
once,
but
that's
acceptable,
I
mean
they.
They
never
be
able
to
produce
any
chunk
with
that
particular
blood
producer.
Again
and
now.
B
A
A
Both
producers
cannot
do
much
to
give
each
other
all
right,
whether
or
not
they
have
some
advantage
now,
if
we
Chum
produces
sands
and
that
information
to
the
next
block
producers
to
fully
reconstruct
the
chunk
in
the
previous
block
and
that
nice
black
producer
has
the
chance,
so
everybody
will
be
able
ultimately
to
collect
sufficient
number
of
parts
or
shares
from
that
low
producer.
So
in
fact
the
chunk
is
available.
A
What
the
BLA
producer
Chum
producer
can
try
to
do
is
they
can
try
to
give
the
first
work
producer
successfully
right,
as
I
said
this
is
it
they
will
be
successfully
able
to
give
once
every
block
producer,
so
they
can
use.
They
can
give
once
this
once
this
will
produce
for
once
this
book
producer
wants
nice
book,
etc
and
so
effective
they
can
stole
the
system
for
a
while.
A
Now,
the
way
we
prevent
that
is
that
when
the
first
look
is
produced
when
the
second
blow
producer
sees
the
first
look,
if
they
not
able
to
recover
some
chunks
quickly,
they
will
until
they
recover
a
particular
chunk.
They
will
not
accept
anything
from
the
chunk
from
that
time.
Producer
Francesc
and
producer
give
the
first
blood
producer
the
second,
until
they're
able
to
fetch
the
chunk,
they
will
not
be
accepting
chance
from
the
chunk
produced,
and
so
they
will
not
be
grieved.
If.
A
The
chunk
produced
2,000
produce
chunks
in
the
same
shot,
multiple
times
right
so
on
the
next
video
is
going
to
be
a
different
time
producing
chunk
one
so
that
will
be
accepted
now.
The
jump
producer
will
will
make
two
to
be
skipped
on
this
height
three
to
be
stitched
on
the
next
head.
That's
unfortunate,
but
unless.
B
A
That
well
in
practice,
in
practice
most
of
the
chunk
producers
are
going
to
be
honest
right.
It
does.
It
doesn't
happen
often
that
someone
intentionally
tries
to
give,
but
the
goal
is
to
prove
rig
so
sort
of
reduce
as
much
as
possible
what
the
bad
actor
can
do,
without
especially
without
being
punished,
because
in
this
case
the
chyme
producer,
don't
the
punishment
they
get.
Is
that
the
missing
reward
in
the
future,
because
they
will
be
kicked
out?
I
mean
they.
A
We
do
not
flash
for
anything
that
is
not
cryptographically
probable.
You
cannot
prove
that
data
was
not
available.
You
can
only
prove
data
availability,
so
so
there
were
also
different
raw
material.
There
is
no
slashing
for
leaking
or
like
whatever
it's
called,
and
so
the
only
thing
they
lose
really
is
that
they
get
kicked
out
eventually
because
their
chunks
are
not
included.
If
you
did
not
produce
enough
chunks
doing
ve,
but
you
get
kicked
out
from
the
validator
set.
So
that's
done
differently.
They
really
recently,
in
this
case
cool
another
thing.
B
But
that
would
not
also
happen
when
there
just
isn't
a
availability
from
the
given
chunk
and
then
that
and
then
that
chunk
producer
will
get
kicked
out,
but
then
not
due
to
their
own
fault
city
young.
So
if
it
so
there's
two
instances
right,
one
is
that
a
chunk
producer
doesn't
have
the
necessary
data
to
compose
the.
B
A
So
for
data
availability
we
never
slash,
but
what
will
happen
in
the
rants
case?
So
what
ryan
says
is
that
imagine
that
chunk?
One
here,
for
some
reason,
is
not
available
right
and
for
the
chunk
producer
in
this.
In
for
this,
for
this
height
they
cannot
retrieve
the
chunk.
They
cannot
produce
the
block,
but
in
reality
what
will
happen
is
that
until
they
achieve
the
chunk,
they
will
not
even
accept
this
block
so
for
for
from
perspective
of
the
chunk
producer
for
this
spot,
this
law
doesn't
exist.
A
B
A
A
B
A
A
B
A
So
so
so
the
question
is
how
many
of
the
200
they
control
right.
So
if
these
200
book
producers,
what
percentage
of
them
they
control
that
that's
how
much
they
can
give,
but
also
how
much
they
get
that
because
they're
losing
quite
a
bit
of
money
by
being
checked
out,
not
getting
the
award
for
that
epoch.
The
amount
of
damage
that
is
my.
A
But
but
they,
but
the
only
making
the
system
skip
one
heartbeat
right,
because
if
the
book
is
produced
every
couple
seconds
yeah
they
they
made.
The
system
skipped
one
block
right
by
by
doing
that,
that's
painful,
but
books
can
be
skipped
or
even
like
under
normal
circumstances,
because
the
propagation
was
too
slow.
All
right,
so
that's
blocks
will
be
skipped.
Oh,
oh
all,
the
time
that's
sort
of
expected
right
yeah,
but
let
me
also
cover
another.
So,
as
I
said,
there
are
many
small
things
that
can
happen
right.
A
So
for
them,
it's
actually
beneficial
to
say
well,
yeah,
I,
sort
of
have
to
wait
for
all
day
for
all
the
shares,
but
I
will
note
I
will
I
will
accept
the
block
optimistically
if
I
have
like
most
of
them
or
whatever,
so
to
prevent
against
that.
What
we
do
is
that
when
we
do
a
razor
code,
we
instead
of
like,
for
example,
having
200
of
those
we
have
in
199
shares
and
one
share
the
to
hundreds.
A
One
is
what
we
call
a
honeypot,
and
so,
if
you
receive
a
honeypot,
you
have
to
report
it
and
if
you
sign
on
the
block
and
you're,
not
you're
porking,
that
you
have
the
honeypot
and
you
had
one,
that's
a
slash
whole
behavior,
you
get
your
entire
stake
slashed.
So
every
time
you
blindly
sign
on
the
block
without
having
a
particular
share,
you
have
a
probability
one
over
200
or
get
of
your
entire
stake.
/,
that's
not
something
that
any
any
sane
person
would
do
alright.
C
A
A
C
A
So
what
happens
so
this
is
where
it
gets
very
interesting,
because
there
are
sort
of
two
ways
in
which
you
can
model
how
how
transactions
are
processed
right
and
block
change
in
one
in
one
model.
When
you
produce
a
chunk,
you
already
execute
all
the
transactions
right,
so
so
you're,
the
champ
that's
raised
this
you're
a
chunk
producer.
You
you
collect
the
transactions
from
the
pool,
you
include
them,
you
apply
them,
and
so
the
chunk
already
contains
the
statehood
as
of
after
applying
the
transactions.
A
So
this
model
has
a
drawback
which,
if
you,
if
you
draw
the
timeline
right,
so
let's
say
that
at
this
point,
the
child
for
height
7
was
produced
the
the
blow
producer
who
produced
it
had
to
apply
the
transaction
right.
So
this
is
a
this
is
the
time
it
took
them
to
apply
the
transactions.
Then
they
send
it
to
the
to
the
child
producer
for
height
8,
the
jam
producer
for
height
8.
When
they
receive
it,
they
first
have
to
apply
transactions
in
7.
A
They
couldn't
have
been
doing
it
in
parallel
with
the
producer
of
7
after
they
applied
7
they,
so
they
applying
7.
Here
then,
they
need
to
apply
for
it
because
they
producing
it.
They
need
to
apply
it
and
then
they
produce
it
right.
So
then
they
sending
it
to
the
mind.
Man
first
need
to
pre-applied
for
a
then
the
plate
tonight,
right
so
so
effectively
we
have
for
every
type.
We
see
really
apply
twice
the
transactions
that
make
sense.
A
So
it's
like
effectively
application
of
transactions
for
height
age
by
the
chunk
producer
happens
Stickley
before
that
application
happens
where
everybody
else,
and
so
therefore,
for
like
400
heights,
we
will
have
serially
200
transaction
applications,
which
is
which
can
be
which
assuming
the
transactions
are
playing.
Like
that's
one
of
the
bottlenecks,
assuming
this
is
not
a
negligible
time.
That's
pretty
bad,
and
so
a
pretty
common
way
of
addressing
it
is
having
not
the
post
state
route
in
the
blog,
but
are
the
pre
state
route
right?
So
what
happens?
A
Is
that
the
the
blog
producer
for
the
jump
register
for
seven
in
the
chunk
in
the
seven
includes
the
priests
state
route?
So
as
of
after
applying
six
and
the
transactions
for
seven
and
then
when
they
produced
it,
they
them
self
start
applying.
Seven
and
everybody
else
also
in
parallel
with
them,
start
applying
seven
right
so
so
that
is
not
zero
anymore.
This
is
parallel
right
and
so
the
blog
producer
for
it
can
produce
a
jump,
reduce
afraid
produces.
A
Checks
includes
the
priest,
a
2005
to
applying
seven,
and
then
they
start
applying
eight
after
they
send
the
block,
and
everybody
else
applies
it
after
day,
I'm,
sorry
chunk
after
they
receive
it,
so
that
shortens
to
add
the
amount
of
processing
time
spent
serially.
But
now
it
has
a
big
problem.
With
the
sharding
be
aware,
the
time
I
produced
chunk,
the
chunk
I
did
not
apply
transactions.
That
means
I.
Also
don't
have
these
seeds
that
I
need
to
send
to
all
the
shards
yeah
right.
So
therefore,
what
will
happen
if
you
do
it?
B
A
So
let's
say
everything
above
the
the
axis
is
for
short,
one.
Everything
below
is
for
short
right.
So
now
I
create
the
block
for
heads
at
time
for
head
seven,
then
someone
who
creates
the
chart
the
time
for
height
eight.
They
will
apply
transactions
only
now
they
will
get
the
receipts,
they
will
send
them
out,
and
so
only
a
height,
nine
naively
would
what
the
second
short
be
able
to
apply
them
right.
Also,
the
difference
in
height
is
two.
That
is
very
much
so
so
here
we
have
two.
A
Unless
we
come
up
with
something
smart,
we
would
either
have
to
use
the
first
approach
where
we
include
post
stage
with
them,
and
so
the
transaction
plication
happens
twice
yearly
or
we
will
have
to
have
two
heights
difference
between
receiving
use
it
and
applying
receive.
So
what
we
do
is
is
a
little
more
motion.
B
Just
increase
the
number
of
transaction
validators,
consolidating
transactions
into
eight
and
and
then
the
the
block
producer
can
can
potentially
select
from
from
a
wider
range
of
like
chunk
producers
like.
Why
would
you
just
sort
of
increase
the
parallelization
of
of
potential
options
here
in
in
the
production
of
cells.
A
A
You
don't
care
yet
all
the
transactions
which
will
get
to
eight.
They
will
not
affect
the
disease
as
of
after
applying
seven
for
blocking
per
block
per
block.
So
here
we
only
care
about
the
specifically.
What
we
care
about
is
how
quickly
a
receipt,
so
thirty
receipt
is
the
second
part
of
it
so
like
if
it
is
a
cross,
our
transaction.
It
applies
on
one
chart
and
the
receipt
for
another
short
and
that
receipt
is
affected
transaction
that
will
be
applied
in
in
in
a
second
chart
right.
A
B
A
So
all
right,
no
so
effectively
if
the
chunk
is
imposed
on
the
block,
the
junkies,
it's
not
to
be
valid.
That
is
obviously
incorrect
assumption.
We
will
talk
about
that
in
a
second,
but
that,
but
if
the
shank
is
included
in
the
block,
we
always
assume
it's
valid.
We
never
wait
for
anything
if
chanc
is
included,
it's
belt
right,
because
if
it
is
invalid,
that
block
will
be
full
and
rolled
so
from
perspective
of
the
block
that
builds
on
top
of
it.
A
So,
like,
let's
say,
block
seven
has
one
of
the
junction
with
invalid
state
musician
block
eight
can
assume.
This
is
not
the
case,
because
if
it
is
the
case,
seven
will
be
enrolled
and
so
will
be
8.
So
if
8
exists,
if
way,
if
8
exist
in
the
future,
that
means
7
was
fully
valid
right.
So
when
you
produce
it,
you
can
assume
that
7
is
valid.
If
it
is
not
April,
not
it,
it
will
be
enrolled
with
7
sure,
but
if.
B
We
enroll
7
yeah,
then
how
do
we
recompose
the
transactions
in
there?
There
has
to
be
another
round
of,
or
so
what
will
happen
with
collation.
A
Wasn't
balanced
in
Val,
so
what
will
happen
is
that
in
every
social,
it's
thing
from
perspective
of
some
chunk
producer
who
isn't
shortly
right.
So
then
they
in
the
short
three,
then
all
those
blocks
get
enrolled.
They
will,
they
know
the
chance.
They
will
move
all
the
transactions
back
to
the
transaction
pool
right
and
so,
as
they
start
producing
chunks
in
the
new
chain,
when
they
it
works
out,
they
will
be
inputting
those
those
transactions
into
the
unit.
B
A
So
if
this,
if
the
chain
gets
unrolled
whatever
state
transition
happens,
it
gets
canceled
right
so
as
as
as
a
user
of
the
chain
unless
like
introduction,
even
if,
even
if
you,
even
if
the
block
like
got
so,
we
have
a
finality
gadget,
even
if
the
block
was
finalized,
the
finality
gadget,
unless
you
shorten
that
there
was
no
invalid
state
transition
in
other
charts,
your
transaction
can
still
be
enrolled
canceled
and
there
is
no
guarantee
that
it
will
be
included
again
on
the
new
chain
right
so
effectively.
Your
options
here
are
a
either
to
like.
A
If
you
absolutely
cannot
allow
that
to
happen,
like
your
your
an
exchange.
Well,
then,
invest
more
money
and
actually
have
a
single
server
for
short
right,
because
if
you
track
every
shot
you
know
there
was
an
invalid
state
transition.
Then,
if
the
block
is
final,
you
know
there's
no
invalid
transitions.
You
know
this
is
the
chain
will
not
handle.
Your
other
option
is
just
to
wait
sufficiently
long
and
after
some
after
some
time
you
can
visit
it.
There
are
little
ways
or
times
I'm
gonna
get.
A
Participants
who
track
all
the
shorts
do
have
sub
plexuses.
That
subway
say
well,
maybe
it's
on
sub
five.
Second,
because
you
need
to
keep
blocks,
put
the
finality
gadget
to
finalize
something,
but
it's
like
SEP
10
seconds
right.
If
you
track
all
the
shells,
you
do
have
something
seconds
finality
otherwise
yeah
your
two
options
is
either
wait
significantly
longer
until
you're,
certain
the
challenge
would
have
propagated
or
or
give
zero
FS
and
just
say.
Well,
you
know
like
for
my
use
case.
Nobody
will
be
unrolling,
my
transaction,
so
it
will
get.
A
For
rollback,
so
one
thing
we
plan
to
do:
we
did
not
do
it
yet
because
it's
not
it
has.
It
has
some
issues
with
it.
But
one
of
the
ideas
is
that
you
cannot.
You
cannot
roll
back
more
than
certain
number
of
heads
back
right.
So,
if
it's
being,
if
it's
been
like
an
hour,
then
the
challenge
must
have
been
propagated
by
now,
and
so
we
can
say
you
know
we're
not
gonna
unroll
more
than
one
hour
back,
but
what.
B
A
If,
in
one
hour,
it
was
not
what
first
of
all
probably
like
in
the
practice,
there
is
no
way
it
will
not
be
supported
in
one
hour,
but
let's
say
it
did
happen,
one
hour
later,
the
damage
of
unrolling
the
chin,
who
is
way
bigger
than
that
transaction.
So
that
point
you
need
to
do
some
social
consensus,
you
they
say
well,
guys
we
messed
up.
So
the
money's
double
that's
unfortunate.
Are
you
saying
well
guys
we're
gonna
find
them
in
some
way?
A
A
Year,
yeah,
but
you
do
one
for
all
practical
for
all
practical
purposes
on
property,
so
finality
gadget.
That
is
important.
It
doesn't
wait
for
the
tower,
because
a
participant's
could
attract
all
the
shots
that
they
should
have
finality
very
quickly
because
they
know
there
is
no
invalid
state
transition
right
and
be,
if
you,
if
you're,
not
talking
of
transacting
$1,000,000,
you
still
want
to
have
finality
which
effectively
says
and
unless
an
extremely
unlikely
event
or
when
invalid
state
transition
happened.
My
transaction
is
fine,
yet
right
and
so,
and
so
this
is
actually
interesting.
A
So
we
have
to
level
the
finality.
This
is
orthogonal
to
shortening.
But
let
me
touch
on
that.
We
have
one
which
we
call
doom
slide
finality
and
another
one
is
like
proper
BFG
finality,
so
the
FD
finality
is,
and
the
normal
circumstance
will
be
three
blocks
behind.
So
when
you
produce
look
at
ten,
the
block
at
seven
will
help
DFT
finality,
as
assuming
that
most
of
the
approvals
happened
to
be
included
in
most
of
the
blocks.
A
The
and
the
DFT
phonology
says
unless
one
third
of
all
this
take
is
slash,
that
work
is
final
or
unless
there
is
an
invalid
situation
right,
while
those
like
finality
happens
on
the
on
the
very
previous
blog.
So
when
one
block
is
produced,
the
very
previous
workers
don't
like
finality
and
looms
like
finality
says.
Unless
of
this,
someone
is
slashed.
A
That
block
is
final,
which
is
actually
very,
very
meaningful
phonology
during
keen
practice
because
once
take
like,
if
there
is
200,
more
producers
right
and
like
you
know
like
if
I
give
30%
of
the
total
amount
or
the
total
circulating
supply
is
stay
stake
it
once
last
person
is
a
lot
of
money.
If
any.
A
That
we
call
that's
what
we
call
dupes
like
cannot
we're
saying
this
book
is
final
unless
at
least
one
person
is
slashed
and
one
person
being
such
as
one
to
hundreds
of
the
total
state
credits,
it's
not
as
much
as
one-third,
but
it's
still
a
pretty
meaningful
amount
of
money,
and
so
boobs
like
phenology,
doesn't
care
about
natural.
It
already
accounts
for
the
possibility
of
invalid
state
transition,
because
invalid
state
transition
means
one
person
is
actually
slashed
at
saloon.
Flex.
Tonality
doesn't
have
this
aesthetics,
which
says,
or
as
an
invalid,
a
transition
happen.
B
A
Operating
so
like,
let's
say,
you're
perching
a
lot
of
like
you're
an
exchange
or
you
like
you
you,
but
but
the
way
you
use
defying
is
is
with
a
lot
of
money.
Then
then
it
is
actually
very
beneficial
for
you
at
that
point
to
up
to
track
all
the
charts,
in
which
case
you
do
have
actual
nifty
finality,
because
because
you
do
know
that
these
are
invalid,
they
transition.
A
A
A
A
So
when
seven
is
produced,
it
includes
the
pre
state
to
it,
and
so
therefore
it
does
not
have
it
does
not
have
the
latest.
It's
obviously
sure,
then,
then
this
is
a
book.
So
this
is
the
chunk
Rachel.
So
let
me
draw
the
block
like
this
right,
so
this
is
the
block
which
include
it
includes
this
change.
That's
all
these
sacs!
This
junk
is
here
right
now
when,
when
you're
producing
the
chunk
of
it
for
short
right
at
this
point,
you
you
downloaded
this
block.
Sorry
yeah,
you
receive
this
block.
A
You
verified
that,
like
all
the
chunks
exists
whatever
at
this
point,
you
don't
know
the
receipts.
Yet
you
know
the
you
know
the
please
stay
true
to
it,
for
you
apply
seven.
Obviously,
when
you
apply
seven,
you
cannot
have
the
receipts
from
from
this
seven
yet,
but
that,
but
we
don't
want
to
have
zero
blocks.
We
want
to
have
one
block
right,
so
your
player,
whatever
transactions,
happen,
to
be
in
seven
for
the
short
you
compute
or
state
route.
A
As
of
seven,
that
will
be
pre
statehood
as
of
eight,
and
you
include
transactions
that
you
accumulated
in
your
transaction
pool
and,
ideally
you
would.
You
would
prefer
to
also
include
these
seeds
from
as
of
after
seven
in
all
other
shells,
but
you
cannot.
They
don't
exist
yet
right,
because,
because.
A
Oh,
that's
not
separate
that
never
will
cover
separately
through
the
network.
That'll
cover
separately,
that's
a
separate
program.
That's
also
yeah.
That's
that's
also
preaching
bad,
so
you
cannot
have
three
seeds
of
after
seven
because,
as
you
produce,
eight,
the
participant
is
short
one.
They
they
concurrently
with
you
applying
seven
right,
so
they
you
might
because
you
want
there
it
is
they
want
your
ratios
right.
So
one
of
the
one
of
you
have
to
produce
sorry.
This
is
one
of
you
have
to
produce
your
chunk
earlier.
A
So
remember,
have
you
produced
the
chunk
earlier,
cannot
have
the
distance
from
the
other
one,
but
also
at
this
time
we
don't
really
need
this
is
because
of
this
time
we're
not
applying
it
yet.
So
what
happens
after
that
is
reproducing
the
block
at
height
H,
so
this
was
seven.
This
is
it
right.
We
producing
we're,
producing
this
block
and
so
now
consider
the
person
who
who
is
about
to
produce
nine
in
the
short
when
they
accepting
this
block.
This
is
when
they
need
to
to
accept
this
block.
A
They
need
to
receive
a
share
from
every
short,
and
so
as
we
send
that
share
for
them.
We
also
receive
a
cent,
so
they
saying
I
give
you
the
share
of
this
check
in
third
one,
so
whomever
is
sending
them.
The
share
in
Changwon
is
someone
who
tracks
shard
one
fully.
They
will
also
send
them
all
the
receipts
that
go
from
short,
one
sure,
as
of
after
playing
block
seven
of
just.
A
Nothing
from
that
justice
just
go
from
one
to
two
are
going
to
be
sent
as
they
receive
this
little
share
of
the
block
eight
right
and
they
will
apply
those
receipts
as
they
are
applying
chunk
of
eight
right,
because
chunk
of
eight
they
will
learn
about
it
as
a
part.
Three
seeing
this
block
by
the
time,
I
didn't
a
fully.
A
A
Be
a
pleasant-looking
I
know
well,
but
notice
that
the
transaction,
so
it
might
appear
as
two
blocks
time,
but
actually
it
is
a
one
block
time,
because
the
the
transaction
itself,
the
transaction
itself
that
produced
a
seed,
was
applied
and
I
have
another
color,
the
transaction
that
produced
the
receipt
was
applied
approximately
here.
This
is
when
it
was
applied
because
it
was
included
at
seven,
but
it
was
applied
before
eight.
This
is
one
that
turns
the
first
step
of
the
transaction
got
applied.
The
second
hope
got
applied
here.
A
A
B
A
B
A
Right,
okay,
so
so,
unless,
unless
it
doesn't
happens
and
if
you
some
sort
of
an
exchange
or
someone
who
runs
every
shark,
you
will
know
that
your
version
will
not
happen
because
you're
tracking
all
the
shots.
So
unless
you've,
all
room
happens
and
assuming
that
there
is
no
heartbeat
skipped
recedes,
take
exactly
one
block
right
to
propagate,
which
is
which
is
pretty
good.
Given
like
the
arguments
I've
provided
before
for
why
it
is
relatively
hard
to
achieve.
A
Also
the
atomic,
because
the
when
you
apply
this,
this
state
route
right
in
the
in
the
chunk
at
rite-aid.
It
contains
the
stator
that
also
contains
the
outgoing
receipt
route
right,
and
so,
when
no
matter
when
you
produce
the
new
chunk
in
the
second
shot,
you
will
always
say
so.
Let's
say
it
was
not
produced
and
was
not
produced
or
like
I
seen
and
was
not
produced
and
tell
was
not
produced
and
at
some
point
you're
producing
at
some
point
you're
producing
here,
11
or
whatever.
A
When
you
produce
11,
you
will
say
what
was
the
last
one
I
include
that
wasn't
my
chard.
It
was
8
and
so
from
starting
from
8
for
every
for
every
height
you
will
be
pulling
those
shares
from
the
from
the
from
the
charts
that
will
contain
the
seeds.
The
other
seeds
contain
the
proof
against
the
outgoing
received
merkel
route
right,
and
so
you
there
is
no
way
you
will
not
collect
all
the
receipts.
A
There
is
also
no
way
for
you
to
exclude
some
of
them,
because
when
you
include
the
receipts
ultimately
into
the
chunk,
everybody
can
verify
that
they
match
the
the
Merkel
route
and
a
deferred
right.
So
so
timidity
is
going
to.
It
is
impossible
not
to
include
adhesive
and
and
its
propagate
in
one
block
time,
but
but
you
you've
worked
up
a
very
important
point,
which
is
there
are
many
ways
to
to
start
up
using
this.
The
easiest
way
is,
you
can
get.
You
can
start
sending
to
all
cert
transactions
that
all
generate
receive
them
to.
A
Third
one
right,
so
let's
say
the
block
can
include
hundred
transactions
right
without
loss
of
generality
right,
so
everyone
can
handle
hundred
transactions
so
to
every
every
chunk.
So
to
every
short
you
some
hundred
transactions,
each
of
each
of
which
will
generate
a
receipt
or
chart
one.
So
at
the
end
of
the
application
of
that
height
chart,
one
is
looking
at
these
ten
thousand
three
seeds
going
to
short
one.
So
short,
one
is
overbought.
Naturally
they
cannot
apply
them
all
at
once.
I
will
not
be
able
to
tell
you
the
full
solution
right
now.
A
So
the
queue
is
only
maintained
by
the
actual
short
one
right,
so
they
receive.
So
it's
on
the
first
on
the
first
time
stamp.
When
that
happened,
they
will
actually
get
all
the
ten
thousand
digits
and
it
will
be.
It
will
create
some
very
unfortunate
events
in
the
network
because
they
will
have
to
retrieve
quite
a
bit
of
data,
but
once
they
put
those
10,000
receipts,
they
sort
of
say,
okay,
guys,
we
we
have
too
much
at
this
point.
A
Everybody
knows
about
it,
it
is
included
in
the
next
chunk
they
produce,
and
so
at
that
point,
I
think
what
we
do
is
we
just
disallow
receipts
to
go
to
the
chart,
so
the
transaction,
which
tries
to
send
a
seed
into
the
short
which
has
a
queue
which
is
too
long.
It
will
just
fail
and
unroll
all
the
way
back
but
yeah
sure.
So
that's
a
again.
This
is
this
is
not
rocket
science,
but
also
this
is
not
quite
ours.
This
is
this
is
quark
chains
approach.
A
They
also
do
that
they,
they
also
have
the
queue
and
every
shirt
that
has
receipts
and
like
we
should
just
add
up
to
the
queue
and
you
get
the
front
from
the
queue
and
all
of
that
all
those
me
means
behaviors
can
be
proven.
It's
it's
not
easy
to
prove
them,
but
they
all
cryptographic
approvable.
So
you
can
prove
that
sheets
were
added
to
the
queue
you
can
prove
that
you
took
the
beginning
from
the
queue
cool
Jean.
B
C
C
A
C
A
So
we
can
also
talk
about
adaptive
corruption
because,
naturally,
with
only
20
block
producers
per
shirt
at
that
of
the
corrupting
them
is,
is
well,
maybe
not
evil
but
clearly
doable
right,
and
so,
if
there
is
no,
if
you
adaptively
corrupt,
when
you
block
producers,
then
they
can
apply
arbitrary
state
transition
or
make
you
know
they
can
do
quite
a
bit
of
damage.
So
so
these
are
naive.
A
Naively
we
can
say
that
there
is
always
a
fisherman
right,
so
near
is
going
to
be
running
every
short
coin,
which
is
gonna
be
running.
Every
short.
Let's
say:
finance
is
running
of
yourself,
so
we
can.
We
can
assume
it
is
always
a
fisherman
in
every
short
and
so
for
as
long
as
data
availability
is
not
violated
because.
A
Track
all
the
transactions
all
sure.
Yes,
but
that's
that's
like
Mona
Eve
statement,
but
this
is
this
is
this
is
like
the
first
argument.
There's
gonna
be
a
stronger
argument
in
a
second
and
so
and
so
naive.
Will
you
expect
that,
for
a
long
as
data
is
available,
data
availability
is
crucial,
because
if
that
is
not
available,
you
can
create
a
valid
state
transition,
not
distribute
the
chunk
right,
so
nobody
can
create
a
challenge,
but
for
data
it
well
well,
I
did
availability,
it's
not
enough
to
corrupt
a
particular
chunk.
So
a
particular
short.
A
Across
all
change,
because
what
because
those
are
is
because,
because,
when
you
create
chunky,
the
shares
are
going
to
all
the
bonuses
right
so
front.
But
for
as
long
as
data
availability
is
there.
Fishermen
will
work
in
the
practice.
It
will.
Work
like
in
the
practice
and
for
for
what
we're
going
to
be
launching
soon
is
not.
A
Actually,
fishermen
have
no
economic
incentive.
The
reason
for
that
is
that
if
you
create
a
challenge
as
a
fisherman
whomever
actually
going
to
be
including
it
into
the
blog,
they
can
always
front-run
you.
They
will
get
your
challenge
and
submitted
from
their
name
and
preventing
that
from
run
running.
If
possible,
you
can
do
some
coming
to
reveal
scheme
or
something
like
that,
but
it
all
delays
the
time
to
challenge
and
for
challenge
you.
A
A
A
A
Invalid
change,
yeah
and
because
every
mother
challenge
will
slash
them
invalid
challenge
puts
money
right,
so
so
what
a
malicious
actor
can
try
to
do
is
they
can
they
can
fit
an
invalid
state
transition
and
after
decade,
is
no
valid
state
transition?
They
can
sacrifice
a
lot
of
stake
and
start
spamming
with
invalid
challenges
so
that
the
ballot
challenge
doesn't
go
to.
A
That
is
first
of
all
very
expensive,
but,
second
of
all,
the
idea
is
that
every
invalid
challenge
does
delays
the
the
time
and
kill
ballot
can
go
through,
and
so
like
that,
that's
that's
one
way
to
adjust.
It
I
didn't
think
too
much
about
it.
Maybe
there's
some
issues
with
that,
but
submitting
invalid
challenges
for
an
hour
at
every
block
is
extremely
expansion.
Generally
I
would
want
to
think
about
this
further.
B
A
B
A
B
A
Far
so
far,
there's
a
box
of
ridiculous
extent
were
we're
living
in
block
chains
for
years,
without
being
quote
so
because,
like
the
sophistication
of
that,
like
is
actually
pretty
big,
you
need
to.
First
of
all,
you
need
to
adapt
to
any
craft
an
entire
chart
which
is
doable,
but
it
is
expensive
right.
You
actually
do
need
to
pay
the
state,
because
2020
block
producers
will
be
slashed
yeah
right,
so
you
actually
do
need
to
pay
20
what
producers
their
stake.
A
Second
of
all,
you
do
need
to
ensure
that
not
a
single
fisherman
will
challenge
right.
So
yeah
like
a
need
to
maybe
show
that
coinbase
doesn't
show
engineer,
doesn't
challenge.
Whoever
else.
Doesn't
shell
a
child
yeah,
it's
a
very
expensive
attack,
which
is
which
has
very
little
chance
of
actually
going
to
right.
So,
but
but
would
you
have
a
better
solution
so,
first
of
all,
let's
actually
quickly
quickly
talk
about
how
how
a
theorem
shows
it
and
why
we
do
not
do
the
same.
So
the
way
idiom
shows
it
is.
A
They
say
like:
why
is
our
epoch
half
a
day
and
an
etherium
can
shuffle
every
six
minutes
is
because
in
a
theorem,
the
validating
node
does
not
need
to
have
the
state
and
an
ear.
It
does
need
to
have
a
state,
and
the
difference
is
that
in
a
theorem,
the
block
when
it
is
distributed
or
like
what
would
be
a
chunk
in
our
case
it
has,
it
has
witnesses,
it
has
sufficient.
A
It
has
Merkel
proofs
of
this
state
that,
before
the
transaction
after
the
transaction,
ready
and
those
witnesses,
they
actually
make
looks
quite
a
bit
bigger.
They
make
the
murder
of
magnitude
bigger,
and
so
that's
that's.
The
main
reason
why
we
don't
do
that,
because
increasing
by
an
order
of
magnitude
amount
of
traffic
is
actually
quite
expensive,
but
what
what
they
allow
to
do
they?
A
Actually
they
actually
give
you
a
ridiculous
level
of
security,
because,
because
of
that
of
corruption
becomes
practically
impossible,
it's
practically
impossible
to
corrupt
within
six
minutes
or
like
whatever
is
the
time
like
someone
could
argue
like
you
know
like
some,
like
your
your
fellow
stop
and
decrypt
will
be
obviously
arguing
that
that
is.
That
is
not
secure
its,
but
six
six
minutes
for
all
practical
purposes.
A
Adaptive
corruption
is
impossible,
but
in
here,
because
we
don't
want
to
send
witnesses
with
every
block,
we
do
need
to
have
the
full
state
and
unloading
the
full
stay
for
a
short
takes
quite
a
while
right,
and
so
therefore
we
do
need
to
have
longer
epoch
left.
So
what
do
we
do?
What
we
plan
to
do
for
the
fight
adaptive
corruption?
Is
we
want
to
have
the
second
role
which
we
call
validators?
There
are
two
reasons
why
we
don't
do
anything
with
main
net.
A
One
is
that
they
actually
will
take
quite
a
bit
of
time
to
build
right,
so
that
would
easily
delays
for
another
year
or
so.
But
the
second
reason
is
that
we're
just
not
going
to
have
enough
I
mean
we're
not
a
stealing
wouldn't
watch.
We
just
not
gonna
have
enough
people
who
run
near
to
have
such
to
know
that
there's
a
way
to
make
what
I
will
describe
any
meaningful
right,
but
the
idea
is
that
you
have
blood
producers,
so
blood
producers.
We
have
on
the
order
of
200
producers,
those
unknown.
A
A
A
So
this
is
let's
look
from
perspective
of
a
single
validator,
they're
running
their
effort
and
the
vrf
will
give
them
a
bit
mask
over
or
a
subset
of
shirts,
and
so
so
fact
is
the
you're
only
be
recognized
in
in
a
way
that
will
give
you
precisely
like,
let's
say,
five
shirts.
So
let's
say
we
want
every
ball.
B
A
No,
they
do
not
share
you,
see
they
it's
it's
not
an
option
for
them
to
send
or
not
to
send
became
that
that
can
mean
they
have
to
send
it
in.
It
is
a
done
something
to
me.
They
don't
get
your
word
for
that
particular
height,
so
at
every
height
they
will
either
commit
to
a
or
to
or
to
the
challenge
right.
So
so
effectively.
Your
question
is
not
well.
Why
bother
sending
challenge
it?
Your
question
is
more
like
why
not
why
not
just
always
submit
yeah
yeah.
So
what
happens
is
what
happens?
A
C
A
Yes,
or
by
not
by
analyzing
Network
you
can,
you
can
try
to
deduce
it,
so
the
idea
would
be
to
like
the
idea
for
such
a
block
producer
is
to
keep
their
account,
which
signs
independent
from
the
node
that
training
so
like
you
can
identify
that
a
particular
node
of
the
network
is
done,
loading
particular
chunks,
but
you
don't
know
like
like
ideal.
You
don't
know
the
developer
should
try
to
conceal.
You
know
like
effectively
sent
sent
your
sent
your
sent
your
challenges
from
a
different
IP
address.
Then
we
could
enforce
it.
B
A
B
C
A
What
happens
here
is
that,
at
the
end
of
the
day,
if
any
challenge
goes
through,
then
all
the
block
producers,
all
the
validators
they
need
to
reveal
their
mask.
They
wanted
they
committed
tobe
devera.
They
can
either
today
at
the
beginning
of
a
poke
right
and
so
then,
in
the
mask
you
can
see
if
they
were
supposed
to
produce
here
or
the
challenge
so
whether
they
have
to
reveal
their
mask
and
they
have
to
reveal
what
they
committed
to
right.
A
A
A
Oh
no,
this
the
validity
of
shank
is
not
defined
by
how
many
people
endorsed
it.
The
validity
of
chunk
is
defined
very,
very
strict
rules.
So
so
a
challenge
can
say
it
doesn't
matter.
It
could
be
the
hundred
percent
of
people
or
like
a
hundred
percent
minus
one
people
on
signed
on
it,
but
the
challenge
will
just
say:
hi
guys.
This
is
the
priests,
a
truth.
This
is
the
post-dated
that
they
signed
up
on.