►
From YouTube: Post-Merge MEV Breakout Room meeting #16
Description
Agenda: https://github.com/ethereum/pm/issues/423
Document being presented: https://hackmd.io/70AnBNnKTbGe3D5kT8x9ZA?view
Discord: Eth R&D - Execution R&D #block-construction
Contact Ethereum Cat Herders
---------------------------------------------------
Discord: https://discord.io/ethcatherders
Website: https://www.ethereumcatherders.com/
A
Okay,
we
are
recording
welcome
to
the
post,
merge,
mev,
breakout,
room,
stefan's
gonna,
walk
us
through
the
proposal,
architecture,
some
demos,
and
then
we
have
plenty
of
time
also
for
questions
comments,
conversations
from
the
different
client
teams,
yeah
again
this
being
recorded.
If
you're
not
interested
in
that,
please
jump
off
now.
We'll
have
full
notes
and
record
it
available
for
people
who
want
to
watch
later
yeah
over
to
use
the
phone.
B
Awesome
yeah
thanks
everyone
for
for
showing
up
so
brief
agenda
I'll
just
cover
some
of
the
basics
of
what
we're
trying
to
achieve
with
mev
boost
how
it
fits
within
sort
of
the
transition
from
the
current
med
geth,
how
it
works
on
the
network
today
and
and
where
we
want
pbs
to
go
and
then
I'll
try
to
get
into
some
of
the
the
technical
overview
of
how
it
works
I'll
cover
some
of
the
the
milestones
and
and
how
we
plan
to
implement
them.
B
Then
probably
do
a
quick
demo
of
what
we
have
with
merge
mock
running
right
now,
jason,
if,
if
he
sure,
would
be
the
right
person
to
jump
on
and
buy
that
demo
and
then
yeah,
we
can
go
into
discussion
and
I've
listed
in
here
sort
of
the
the
open
remaining
questions
to
to.
They
need
to
be
figured
out
over
the
next
couple
months:
okay,
without
further
ado,
let's
jump
into
it
so
I'll
just
assume
a
good
amount
of
background
knowledge
on
of
geth.
B
If
you
don't
quite
understand
how
the
system
works,
definitely
go
check
out,
docs.flashbots.net,
it
has
sort
of
a
good
description
and
highlight
of
how
it
works,
but
basically
right
it's
a
block
space
auction.
It
allows
for
outsourcing
parts
of
the
job
of
block
construction
to
basically,
anyone
in
in
the
network
and
and
the
way
that
it
works
today
is
with
sort
of
this
intermediary.
B
B
You
know
it's
working
right:
it
achieves
sort
of
the
goals
that
us
set
out
to
achieve,
which
is
providing
a
block
space
auction
mechanism,
but
it's
by
no
way
perfect.
So
I've
just
listed
here
some
of
the
properties
that
that
we're
looking
to
improve
upon
for
with
my
boost
and
with
with
pbs,
so
the
first
one
is
full
block
bids.
B
So
right
now
right
it
only
accepts
bundles,
but
that
doesn't
allow
for
expressing
sort
of
the
full
range
of
of
types
of
med
that
can
be
extracted
or
really
preferences.
On
the
the
order
of
transactions
and
so
switching
over
to
a
system
that
is
able
to
send
full
payloads
right
in
the
in
the
proof
of
stake,
context,
sort
of
addresses
this
this
issue.
B
Another
component
is
solo,
sticker
participation,
so
right
now
the
way
that
medgath
works,
we're
sending
all
the
transactions
over
to
the
miner
in
cleartext.
So
the
miner
has
a
view
of
all
the
transactions
that
are
coming
in
and
really
we're
relying
on
a
trusted
relationship
between
the
relay
operators
and
the
miners
to
prevent
the
miners
from
sort
of
stealing
those
transactions
or
you
know,
dropping
censoring
those
transactions
inserting
their
own
et
cetera.
B
And
the
goal
is
to
move
away
from
from
this
because
it
restricts
the
ability
of
solo
miners
to
participate
in
this.
So
I've
got
today
right,
there's
really
only
mining
pools
that
are
participating
and
and
only
mining
pools
with
a
with
a
significant
history
of
participation
in
the
network.
But
we
want
to
move
towards
a
model
where
anyone
can
sort
of
just
connect
their
their
proof-of-stake
validator
node.
As
long
as
they
have
you
know,
the
32-each
stake
they're
able
to
connect
to
the
system
and
start
receiving
payloads.
B
So
to
do
that,
we
want
to
withhold
sort
of
the
content
of
the
transactions
not
reveal
them
and
instead
only
forward
over
to
the
validator,
the
header.
So
we
have
it
sort
of
noted
here
as
the
validator
gets
the
payload
header
from
the
relay,
and
then
it's
able
to
return
this.
This
signed
header
so
yeah.
This
allows
for
the
soil
sticker
participation,
but
it
also
sort
of
adds
an
additional
sort
of
trust,
assumption
on
on
the
way
that
the
relay
operates.
B
B
So
this
diagram
sort
of
shows
right
the
components
that
we're
already
familiar
with
the
boundary
client,
the
beacon
node
and
the
execution.
Client
meth
boosts
sort
of
slots
itself
in
between
here,
as
as
a
middleware
and
interfaces
with
both
the
execution,
clients
and
and
the
relays
for
performing
block
construction
duties
and
then
yeah.
We
can
talk
a
bit
about
the
the
trade-offs
are
involved
in
here,
so
complete
privacy
and
trustlessness.
B
B
Here,
there's
sort
of
a
an
asterix,
because
it
does
improve
the
condition
over
the
way
that
mev
guest
works
because
the
validators
don't
see
the
content
of
the
transactions.
But
it
still
relies
on
relays
as
sort
of
being
actors
that
that
aren't,
as
you
know,
profiting
from
the
from
the
content
of
the
transactions
that
it
receives.
B
So
that's
a
property
that
only
really
gets
removed
in
the
full
pbs
at
the
protocol
level,
where
we're
able
to
remove
the
the
relay
component
completely
and
the
builder
can
communicate
a
payload
without
revealing
its
content
to
to
any
third
parties
and
then
yeah
trustlessness
sort
of
works
in
the
same
way.
But
this
is
really
from
the
validators
perspective,
which
is
under
the
boost
formulation
of
of
the
separation.
B
B
B
Yeah,
I'm
tempted
to
pause
here,
see
if
there's
any
thoughts.
Questions
comments
before
I
dig
into
the
rest
of
the
presentation.
B
Okay,
cool
yeah,
maybe
I'll,
try
to
keep
an
eye
on
the
chat
as
well.
If,
if
anyone
wants
to
just
drop
questions
there,
while
I'm
going
through
I'll,
just
try
to
answer
them
so
this,
I
just
want
to
talk
a
bit
about
how
I
see
network
topology.
So
I
think
one
of
the
scary
things
about
looking
at
this
is
like
wow,
okay,
so
there's
one
builder
one
relay
and
then
you
know
they're
sending
payloads
over
to
the
validator.
That's
not
really
the
goal.
B
The
goal
is
to
make
sure
that
there
are
as
many
redundant
parties
that
are
operating
in
each
of
these
roles,
and
what
this
essentially
enables
is
that,
if,
like
one
builder,
serves
to
do
censorship
or
something
like
this,
it's
easy
and
trivial
to
switch
a
different
builder
and
like
the
other
builders,
will
still
be
able
to
submit
their
transactions.
B
Similarly,
with
the
relay,
if
like
one
relay
starts
to
propose
invalid
payload,
for
whatever
reason,
let's
say
they
go
offline,
they
have
some
infrastructure
issue.
The
validators
can
sort
of
trivially
fall
back
to
to
a
different
relay.
B
You
know
this
is
just
network
redundancies
to
make
sure
that
the
system
continues
to
operating
as
normal,
but
in
any
case,
the
validator
sort
of
locally
has
still
the
ability
to
fall
back
to
a
local
execution
client.
If
all
this
fails
and
all
this
becomes
invalid,
so
yeah
we've
done
a
few
rounds
of
iteration
on
how
the
system
works.
So
this
is
kind
of
like
the
latest
sequence
diagram
of
how
the
messages
are
being
passed.
I'm
just
going
to
go
over
it
quickly.
B
B
It
starts
by
the
engine
fork,
choice,
updated
call
which
gets
proxy
to
the
relay,
or
I
should
say
to
my
boost
that
also
sends
that
to
execution,
clients
and
and
the
relays.
So
right
now,
this
fork
choice.
Updated
is
used
for
both
like
notifying
what's
the
latest
head
of
the
chain,
but
also
for
communicating
the
the
fee
recipient
address,
that's
going
to
be
used
by
by
the
by
the
slot
tenant
on
their
block
proposal
once
it's
time
to
actually
produce
the
block
here.
B
What
we've
done
is
we've
replaced
the
familiar
get
payload
api
call
with
a
builder
get
payload
header
call,
and
basically
you
know
the
the
parameters
of
the
call
are
the
same,
but
the
return
values
are
different,
so,
instead
of
of
returning
a
payload
that
includes
the
full
transaction
list,
the
relays
are
only
returning
payloads
that
have
the
the
root
of
the
transaction
tree,
so
they
withhold
sort
of
the
content
of
the
transaction
list
so
that
the
validator
is
not
aware
of
them
until
until
later.
B
B
Great
the
consensus
client
receives
this
payload.
It
puts
it
into
a
beacon
block,
it
signs.
The
block
we've
introduced.
This
new
call,
which
is
proposed
blinded
block,
so
this
is
blinded
block,
is
basically
what
we
call
a
a
beacon
block
which
does
not
contain
the
transaction
list
of
the
payload
and
said
that
is
just
null
and
then,
but
you
know,
the
the
signature
and
the
header
of
the
block
and
the
header
of
the
payload
are
all
still
valid.
B
So
it
proposes
this
blinded
block
back
to
the
booth
middleware,
which
is
then
able
to
route
that
that
that
block
to
the
right
place
in
this
case
it
routes
it
back
to
the
relay,
who
has
the
the
transaction
list,
and
then
it
returns
the
the
the
transaction
list
back
to
to
the
the
middleware
and
the
consensus
client,
so
that
the
consensus
clank
can
then
propose
it
to
the
network.
B
At
the
same
time,
the
relay
is
going
to
propose
that
that
full
beacon
block
to
to
the
network,
and
you
you
move
into
the
next
step
of
the
block
proposal
with
the
attestation
and
everything
else
so
yeah.
I
guess
there's
quite
a
bit
of
cover
here,
but
the
highlight
is
these:
two
new
modified
calls
right,
get
payload
header
and
proposed
blinded
block,
which,
which
are
sort
of
inserted,
as
complements
to
the
the
current
engine
api.
B
So
great,
where
do
we
go
from
here?
We've
been
working
on
this
on
the
implementation
of
medboost
here
under
flashbot,
slash
navboost,
and
we
sort
of
detail
what
are
the
different
implementation
milestones
and
and
what's
involved
with
them,
we
split
up
the
development
into
into
four
milestones
right
now.
B
The
first
one
is
really
just
about
the
basic
logic:
that's
required
for
met,
boost
to
be
able
to
communicate
with
various
relays
and
be
able
to
propose
payloads
to
to
the
consensus
clients,
and
it
also
involves
sort
of
the
support
by
consensus
client
for
for
these
blinded
blocks.
So
I
highlight
sort
of
the
the
behavior
and
the
client
modifications
here,
but
yeah
the
the
consensus
client.
Basically,
the
only
change
that's
required
to
be
compliant
with
this.
B
This
milestone
is
the
ability
for
them
to
accept
the
get
payload
header
calls
and
then
return
a
blinded
block
from
them.
So
shout
out
to
the
lighthouse
team
they've
been
super,
proactive,
paul
and
sean
at
helping,
implement
and
provide
feedback
on
on
this
initial
setup.
B
Our
goal
right
now
is
to
have
that
ready
for
whenever
consumi
goes,
live,
which
to
understand
where
we're
nearing
in
a
few
days
so
it'll
be
super
exciting
to
have
live
and
and
get
some
of
the
the
members
of
the
of
the
flashbots
youtube
working
group
also
set
up
to
run
this,
maybe
maybe
for
contacts.
B
If
you
weren't
aware
flashbus
has
set
up
this,
this
working
group
with
various
different
validator
teams
and
solo,
validators,
etc,
and
in
the
community
to
to
provide
a
a
forum
for
discussion
on
both
the
design
of
of
boost
collaboration
on
testing
of
the
system
ahead
of
the
merge,
so
we'll
we'll
try
to
produce
some
some
some
package
for
them
to
get
set
up
with
with
that
boost,
and
I
guess
whatever
clients
support
it
for
for
consugi
yeah.
B
The
other
thing
that
we
have
ready
is
a
merge
mock
implementation
that
supports
this
milestone,
one.
So
that's
the
demo
that
we'll
jump
into
just
just
in
a
few
minutes.
So
great
we
have
the
basic
logic,
but
by
no
means
are
all
the
questions
I
answered
yet.
So
the
milestone
two
that
we've
laid
out
here
is
meant
to
implement
all
the
remaining
critical
components
of
of
the
system
and
those
involve
security.
B
So
having
a
a
fallback
in
in
the
case
that
meth
boost
like
crashes
and
fails
over
to
be
able
to
fall
back
to
a
local
execution,
client
authentication,
so
so
that
all
the
communication
between
that
boost
and
the
relays
are
using
signed
messages
and-
and
everyone
knows
who
they're
talking
to
to
basically
prevent
dos
and
and
and
spam,
and
then
the
third
one
is
reputation.
B
So,
even
if
you're
authenticated
with
a
relay,
you
need
to
be
able
to
tell
if
the
relay
turns
malicious
or
starts
sending
invalid
blocks,
etc.
So
there's
some
baked
in
logic
into
meth
boost
that
needs
to
be
able
to
identify
if,
if
a
relay
starts
misbehaving
and
react
accordingly.
B
So
the
goal
for
these
is
to
have
them
expect
over
the
course
of
the
next
month
and
implement
it
by
the
end
of
january,
so
that
we
can
do
further
testing
with
those
now
there's
another
two
milestones
here
that
are
worth
discussing.
I
think
we
can
probably
skip
over
milestone,
four,
which
is
just
about
about
configurations,
optional
configurations
and
optimization
that
various
validators
might
want
to
run
if
they
have
different
preferences
on,
for
example,
privacy
or
or
or
you
know
where
they
want
to
optimize
for
latency,
etc.
B
B
There
is
a
design
of
the
system
that
that
avoids
revealing
the
mp
addresses
of
the
validators
to
the
relays,
but
it
requires
a
lot
of
work
with
implementing
custom
channels
or
topics,
I'm
not
sure
what
they're
called
with
with
lib
pdp
and
just
from
initial
feedback
from
both
validators
and
client
implementation
teams.
It
seems
it's
not
really
such
a
concern
for
them,
so
this
is.
B
This
is
marked
as
as
optional,
and
I
think
we'll
be
pending
more
discussion
with
with
the
client
teams
and
the
ef
to
see
if
it's
worthwhile
to
to
put
in
the
the
engineering
cycles
to
implement
this
or
not.
So
with
that
said,
I
think
it's
worthwhile
to
jump
into
a
a
quick
demo
of
of
merge
mock
connecting
to
met
boost,
and
then
I
could
start
highlighting
some
of
the
other
open
questions
that
we
have
here
and
and
move
into
more
discussion.
B
So
yeah,
let's
see
jason,
do
you
want
to
try
sharing
your
screen.
C
All
good
awesome
all
right,
so
this
is
the
med
boost
repository.
I'm
just
gonna
start
up
my
boost
real
fast.
It's
written
in,
go
it's
very
straightforward.
It's
relatively
simple!
As
far
as
implementation
goes,
let's,
let's
move
over,
so
I'm
gonna
run
in
three
separate
terminals.
So
in
the
first
term
I'm
gonna
run
my
boost
second
term,
I'm
gonna
run
merge
mock
the
execution
engine
for
those
unfamiliar
with
merge
mock,
it's
just
a
very
simple
stripped-down
client
for
both
engine
and
consensus.
C
It's
meant
for
doing
mock,
testing
mock
integration
testing,
so
I'm
gonna
start
that
up
and
I'm
gonna
start
the
consensus
client
as
well
thing
worth
noting
here
is
I'm
doing
one
extra
flag
here,
which
is
I'm
pointing
the
engine
at
port
1850,
one,
eight,
five,
five:
zero!
That's
where
med
boost
is
running
so
instead
of
how
this
normally
runs.
Is
this
communicates
directly
with
the
merge
mock
execution,
client
or
with
you
know,
a
geth?
Or
what
have
you
whatever
execute
clients
in
our
case
we're
instead
communicating
with
my
boost
directly.
C
Let's
go
back
to
my
boost
logs
and
we
can
see
it's
successfully
getting
the
payload
header
and
it's
revealing
the
payload
in
the
proposed
blinded
block
call.
So
if
you
refer
back
to
the
charts
or
the
the
documentation
that
stavan
showed
earlier,
we're
no
longer
calling
git
payload
we're
calling
get
payload
header
and
then
in
a
second
step.
The
consensus
client
will
fetch
well
we'll
send
a
blinded
block
and
then
fetch
a
full
payload
back
from
web
boost.
C
There's
some
areas
here,
you're
seeing
it's
it's
not
actually
communicating
with
the
relay
at
all.
This
is
only
communicating
with
the
execution
clients
so
for
the
purpose
of
testing
mergemon.
This
is
great
right.
It's
it's!
We
can
see
it
working.
We
see
it
working
exactly
as
it
used
to
with
the
merge
box
execution,
client,
and
I
think
we
have
plans
to
provide
more
extensive
testing
on
the
relay
side
as
well.
We'll
provi
probably
provide
a
mock
relay
to
run
locally
as
well,
but
for
this
for
consensus,
client
implementation
purposes.
C
C
B
Okay,
cool
yeah:
I
can
go
back
to
share
my
screen
and
yeah.
We
can
sort
of
open
the
floor
up
the
discussion.
I
think.
B
Yeah
we
can
either
talk
about
some
of
the
remaining
design
decisions
for
this
this
milestone
and
have
a
discussion
about
that
or
yeah.
Maybe
let's,
let's
do
that
I'll!
Just
list
these
I'll
list,
these
open
questions-
and
these
are
all
things
that
we
are
looking
for-
additional
feedback
from
feedback
on.
They
are
currently
sort
of
underspecified
right,
they're,
mostly
ideas
but
and
proposals,
but
hopefully
they'll
they'll
move
to
being
much
more
concrete
over
the
course
of
the
next
few
weeks,
so
yeah,
the
first
one.
B
There's
a
proposal
for
how
to
go
about
changing
the
way
that
messages
are
passed
around
and
make
sure
that
basically,
it's
one-way
communication
between
the
validators
that
send
basically
messages
to
the
relays
and
and
the
rest
of
the
network
and
those
can
be
done
over
over
peer-to-peer.
B
But
it
doesn't
really
address
the
relays
when
they
communicate
messages
to
the
validators
right.
In
particular.
The
most
important
one
is
is
getting
the
payload
header
from
from
the
relay
here.
B
So
it's
kind
of
a
silly
question
mark
on
on
how
to
address
this
and
and
the
feedback
that
I've
gotten
is
that
it
might
not
even
be
worth
too
much
hedge
scratching
here,
because
ipdn
randomization
still
is
is
an
issue
regardless.
So
the
option
two
is
just:
let
the
validator
deal
with
it
right.
B
B
That's
how
miners
are
operating
today,
so
I'm
just
assuming
that
would
be
reasonable
for
for
for
validators
to
operate
this
way
as
well,
and
the
other
option
is,
if
they're
they
they
disagree
with
this
approach,
then
they
don't
necessarily
need
to
run
web
booth
at
all
and
they
can
just
fall
back
to
running
their
clients
the
normal
way
without
without
all
this
meb
stuff.
B
So
that's
one
discussion
topic.
Another
one
is
fee
recipient
authentication,
so
there
needs
to
be
a
way
for
the
validator
to
communicate
to
both
relays
and
block
builders
right.
B
But
ideally
we
wouldn't
rely
on
this
and
it
would
be
possible
to
just
have
some
some
authenticated
message
that
met
boost
is
able
to
get
from
the
beacon
clients
that
lists
all
the
fee
recipients
that
are
associated
with
the
validators
that
that
leaking
client
is
representing.
B
B
The
beacon
client
would
then
request
from
each
validator
node
to
sign
a
message
and
then
submit
that
back
to
my
booth
would
then
submit
it
to
the
to
the
relay
and
the
relay
would
make
it
available
to
the
rest
of
the
network.
That's
kind
of
the
way
that
this
this
proposal
works
right
now.
D
B
Maybe
the
problem
is,
I
would
require
that
withdrawal
address
to
collect
all
the
fees
for
like
transactions
and
and
mev
and
like
even
the
block
rewards,
I
guess
not
in
e3
and
in
proof
of
stake.
There's
no
there's
no,
no
such
thing,
but
certainly
the
the
transaction
fees
and
the
mev.
That's
would
be
where,
like
all
the
fees
would
go.
So
perhaps,
if
they're
comfortable
with
that,
then
yes,
I
think
right
now,
the
fee
recipient
isn't
like
limited
to
being
to
being
the
withdrawal
key.
D
B
It
is
true
that
I
think,
even
if
the
view
recipient
is
a
withdrawal
key,
you
can
then
like
you're,
not
limited
to
to
withdrawing
and
so
withdraw
that
value
before
stake
withdrawals
are
implemented
because
correct
yeah,
I
guess
yeah
this.
The
idea
here
is
that
it
would
be
possible,
but
not
like
required
right
for
for
the
withdrawal
key
to
be
the
few
recipients,
so
the
valder
can
pick
whatever
address
they
want.
E
B
So
the
fee
recipient
is
what
goes
into
the
coinbase
lab
code,
but
actually
this
is
a
really
good
question.
So
the
builders
so
because
the
the
the
coinbase
opcode
is
a
part
of
the
header
and
can
be
accessed
through
edm
execution.
It
also
creates,
like
you,
can
have
a
code
path
that
switches
based
on
the
coinbase
address
right.
So
when
the
builder
or
the
relay
are
processing
their
blocks.
In
order
for
that
block
execution
to
be
deterministic,
they
need
to
know
ahead
of
time.
What
is
the
the
address?
B
That's
going
to
be
used
in
in
in
the
coinbase,
so
there's
two
ways
to
go
about
that.
One
of
them
is
like
the
validators
communicates
the
the
fee
recipient,
and
then
the
builder
like
includes
that
as
the
coinbase
address
of
that
block
and
then
like
submits
that
through
or
the
alternative
is
for
the
builder
to
set
their
own
address
as
a
coinbase
address
and
then
at
the
end
of
the
block
that
they
produce.
B
They
just
have
a
simple
transfer
from
the
coinbase
address
to
the
validator
address,
for
the
value
of
of
their
block
that
they
want
to
pay,
so
either
of
those
sort
of
approaches
should
be
possible
and
they
remain
the
property
that,
like
throughout
each
step,
the
block
is
fully
deterministic.
B
Okay,
cool
next
point
is
around
execution,
client
block
value,
so
one
of
the
key
objectives
really
of
this
system
is
to
enable
profit.
Switching
between
the
payloads
are
produced
by
multiple
different
relays,
as
well
as
from
local
execution
client.
B
So
this
step
here
right
this
this
logic,
where
my
boost
compares
the
payloads
it
receives
and
selects
the
most
valuable.
One
really
requires
some
indication
of
the
value
of
the
payloads,
so
the
get
payload
header
call
and
the
like
get
payload
call
need
to
be
able
to
return
an
extra
field
that
says
this
block
contains
like
x,
eth
of
delta
in
value
for
the
fee
recipient.
B
That
is
that
is
defined
so
sort
of
talk
about
it
here,
but
that
message
needs
to
be
returned
in
a
way
that
that
boost
is
able
to
compare
these
different
payloads,
just
like
the
most
valuable
one
and
submit
it
and
like
a
further
enhancement,
would
be
for
this
call
to
include
some
some
kind
of
miracle
proof
on
the
on
the
balance,
change,
which
would
which
would
provide
potentially
further
guarantees.
The
tricky
thing
here
is
obviously
it
requires
some
changes
to
the
engine.
B
Alrighty
next
item
here
is
frog
proofs
so
because
the
relays
are
not
including
the
list
of
transactions
and
the
header
that
they
provide
to
the
validators,
the
validators
are
are
signing
blindly
right
and
they
just
presume
that
the
relay
is
proposing
a
valid
block.
B
That's
okay!
From
like
the
network
perspective,
because
once
the
full
block
is
revealed,
it's
still
up
to
the
attestation
committee
to
actually
validate
if
the
block
is
valid,
and
so
the
network
will
never
finalize
an
invalid
block,
but
it
does
cause
the
validator
to
to
lose
the
value
that
it
could
have
received
from
both
the
mev
and
the
reward
for
the
for
the
block
proposal,
and
it
basically
just
got
a
miss
slot
in
in
the
chain.
So
you
want
to
have
a
system
where
other
validators
can
can
notice.
B
So
let's
say
you
know,
this
is
the
path.
That's
taken.
You
get
a
bunch
of
transactions,
all
the
relays
propose
a
block
to
the
validator
here,
and
this
is
the
boundary
of
slot
one.
This
is
the
value
of
slot
two,
the
value
of
slot
three
slot.
Four.
You
know
if
the
validator
receives
an
invalid
payload
from
the
relay
and
submits
it
to
to
the
network.
B
You
want
the
validator
number
two
to
be
able
to
notice.
Oh
wow,
like
this
really
proposed
invalid
payload,
even
if
he
sends
me
a
payload
for
my
slot,
I'm
going
to
ignore
them
and
just
switch
to
using
the
the
other
relays
and
the
way
to
do
this
is
using
sort
of
this
fraud.
Proof
message
so
because
all
of
the
relays
and
all
the
validators
are
listening
to
leia's
state
of
the
beacon
chain.
What
you
need
is
the
validators
to
be
able
to
communicate
back
to
all
the
relays.
B
Hey
here
is
the
payload
that
I
received
from
relay
one.
This
is
the
one
I
decided
to
include
in
my
block.
I
can
prove
it
because
they
signed
it
and
then
all
the
other
relies
are
like.
Okay.
Now
we
can
validate
to
see
if
this
payload
was
correct
or
not.
If
it's
incorrect,
what
they
want
to
do
is
send
this
fraud.
Proof
message
to
validator
number:
two
that
says:
hey.
Look.
We
really
number
one
proposed
this
payload
for
this
block
height.
B
You
can
see
that
it
was
invalid
because
you
can
like
see
the
state
of
of
the
beacon
chain
for
that
for
that
for
that
block
height.
B
Therefore,
you
should
no
longer
accept
payloads
from
this
relay,
so
this
fraud
proof
system
is
sort
of
what
keeps
the
me
boost,
protected
sort
of
automatically
from
from
relays
that
turn
malicious,
but
it
requires
to
be
further
spec
because
there's
likely
to
be
some
some
modifications
to
the
way
that
it
validates
those
payloads
both
with
the
local
consensus
client
and
with
the
local
execution
clients
to
run
smoothly
and
there's
a
few
approaches
to
doing
this.
B
Okay,
if
you're
still
there,
if
you're
still
bearing
with
me
the
final
one,
is
splitting
away
the
execution
payload
call.
So
one
of
the
components
I
mentioned
in
milestone
two
here
is
a
security.
So,
under
this
description
right,
the
beacon
client
is
only
communicating
with
the
local
execution
client
through
meb
boost,
but
really
what
you
want
is
a
situation
where,
if
md
boost
goes
offline,
for
whatever
reason
has
some
software
fault,
the
beacon
client
is
still
able
to
operate
all
those
duties
by
falling
back
to
communicating
directly
with
with
the
execution
clients.
B
So
this
is
just
about
making
sure
that
this
exists
in
in
all
the
beacon
nodes.
So
you
have
that
that
level
of
redundancy,
if
there's
a
complete
system,
failure.
B
And
yeah,
that's
it!
That's
all
the
discussion,
topics
that
I
have
I've
listed
some
resources
down
here
and
and
some
some
notes
that
that
paul
has
put
together
on.
While
we
were
iterating
on
on
the
work
that
we
have
so
far,
so
definitely
great
german
to
check
those
out.
F
Cool
thanks
yeah,
so
I'm
paul
from
lighthouse.
I've
mentioned
a
couple
times.
I've
been
working
with
flashbots
on
it.
I
thought.
Maybe
I
would
just
talk
for
a
little
a
little
bit
about
what
I've
been
working
on
with
it.
F
So
I've
been
I'm
online
as
a
developer
of
one
of
the
consensus
clients,
so
I've
been
trying
to
get
involved
with
flashbots
to
just
make
sure
that
this
can
be
as
safe
as
possible
and
that
we
can
also
maintain
the
concept
of
client
diversity,
so
we're
kind
of
when
we
bring
in
something
like
media
boost
flashbots.
F
We
kind
of
become
at
risk
of
centralizing
upon
this
thing,
not
from
not
necessarily
from
like
a
I
don't
like
a
governance
perspective,
but
more
from
like
a
piece
of
software
that
can
fail
and
take
everything
down
sort
of
perspective.
So
the
designs
reflect
that
now.
Something
I've
been
trying
to
make
sure
is
that
we
have
the
ability
to
fall
back
to
the
local
execution.
Node,
like
you,
know,
nevermind
geth,
whatever.
F
If
things
stop
working
and
also
what
I
think
is
very
important
as
well,
is
to
not
rely
upon
any
of
the
boost
for
verification,
validation
of
payloads,
so
they'll
give
us
a
payload
and
we
always
verify
it
with
our
own
node,
so
that
we
can
that
basically
stops
immediate
boost
from
being
in
the
position
where
we
can
finalize
completely
invalid
transactions,
and
things
like
that,
so
that's
kind
of
what
I've
been
working
on
as
well
is
trying
to
make
sure
that
it's
multi-client
compatible
from
a
consensus
client
perspective.
F
So
try
to
make
it
so
that
it's
easy
to
implement
to
consensus
clients
and
make
it
so
that
there's
a
clear
path
to
doing
that,
so
that
it
means
that
we
can
get
all
of
the
consensus
clients
that
are
interested
in
implementing
it.
I
can
get
them
on
board
with
a
pretty
low
barrier
to
entry,
so
that
we
don't
end
up
with
a
scenario
where
you
know.
F
If
you
want
to
run
any
of
the
boost,
you
need
to
run
some
client
and
therefore
we'll
skew
the
network
so
yeah,
it's
been
great
working
with
the
flashbots
team,
looking
forward
to
being
involved.
More
yeah
and
if
anyone
especially
from
the
client
teams,
have
any
questions
or
want
to
talk
about
it,
I'm
my
door's
always
open
thanks.
B
Yeah
good
question
so
there's
there's
a
channel
on
the
eth
r
d,
discord
called
block
construction
under
execution
r
d
and
I'm
almost
keeping
I'm
always
keeping
an
eye
on
on
this
thing
for
any
messages.
So
if
you
need
to
reach
out
to
to
flashbots,
you
can
just
add
the
ghost
up
there
and
I'll
see
it.
A
Thanks
lucas
has
his
hand
up
yeah.
G
I
I
have
a
question
so
as
muv
boost
is
kind
of
this
middle
layer
that
between
something
that
produces
a
block
like
an
execution
engine,
but
we
still
have
a
execution
angle
to
fall
back
to
right.
Would
it
make
sense
to
like
bundle
it
with
an
execution
engine
process
like,
for
example,
never
mind?
Has
this
plug-in
ability?
G
Would
it
be
good
to
have
a
plug-in
for
mev
boost?
That
would
think
so.
The
next
thing
with
the
execution
engine
can
have
a
look
at
the
current
state
of
the
network
for
from
the
execution
engine
perspective,
as
well
as
communicating
to
the
river.
B
Yeah,
I
I
think
this
is
kind
of
like
an
open
question
of
like
how
deeply
can
mav
boost
be
integrated
with
both
the
beacon
nodes
and
the
execution
clients.
We've
tried
really
hard
to
comply
as
closely
as
possible,
with
the
way
that
the
engine
apis
work
today,
so
that
it's
like
cross-client
compatible
by
default.
B
That
being
said,
I
do
expect
that
there's
some
advantages
to
having
deeper
integrations.
I
we
haven't
spent
that
much
time
looking
into
it.
To
be
honest,
we've
just
been
focused
on
how
to
make
this
thing
as
as
stable
as
possible
and
and
like
broadly
compatible
as
possible,
but
yeah.
I
do
expect
there.
There
could
be
some
some
advantages
to
to
integrate
further.
G
Yeah
the
beauty
of
it
it's
abstract,
so
it
can
be
integrated
in
the
exchange
right.
So
that's
that's
the
idea,
but
but
the
integration
part
is
still
part
of
the
question.
Maybe
there
are
benefits
to
them
too.
B
Right,
like
you,
could
definitely,
I
think,
implement
all
of
them
met
boost
logic
as
part
like
as
a
module
on
nethermind
right,
probably,
and
then
you
wouldn't
have
this
like
other
piece
of
software.
That's
running
in
between
you
would
just
have
the
execution
client,
that's
also
talking
to
our
relay
and
it's
it
ends
up
looking
much
closer
to
the
way
that
mavgeth
is
sort
of
architected
right,
but
you
do
like
remove
the
need
to
have
this
this
other
piece
of
software.
H
Any
other
questions
comments.
I
I
have
some.
I
I
think
if
you
like,
if
you
run
a
successful
relay
or
like,
if
there's
a
cost
for
validators
to
to
to
like
be
at
multiple
relays
in
terms
of
whatever
setting
it
up
bandwidth
whatever,
then
they
would
probably
only
go
to
a
couple
and
like
how
can
we
make
sure
that
those
relays
are
not?
I
don't
know
getting
getting
bribed
out
of
banned
by
the
builders.
B
Yeah,
that's
a
really
good
question,
so
I
can
say
how
I
sort
of
expect
the
industry
to
like
work
around
this
and
like
respond
to
this
yeah.
B
Let
me
let
me
talk
a
bit
about
this,
so
I
think,
as
everyone
here
is
aware,
right
like
not
all
validators
are
sold,
validators
right,
they're
running
both
their
validator
client,
they're,
making
clients
and
their
execution
clients,
but
in
practice,
while
there
are
some
individual
stakers
who
do
this,
you
know
a
big
chunk
of
the
of
the
the
proof-of-stake
network
right
now
works
by
either
people
running
their
own
validator
client,
but
then
outsourcing
the
beacon,
client
and
the
execution
client
to
some
infrastructure
provider,
or
you
know,
pooling,
together
and
and
staking
pools
where
they
don't
control
the
value
of
their
client
either
and
so
there's
sort
of
an
industry.
B
That's
propping
up
around
various
different
actors,
running
different
segments
of
the
system
right,
like
even
solo
stakers,
who
are
running
about
a
client
and
beacon
client,
are
still
outsourcing
their
execution,
clients
and
fira
right.
So
each
component
is
sort
of
set
up
to
be
bundled
together
with
each
other
in
a
way
that
provides
a
service
that
might
be
interesting
to
some
to
some
users.
B
I
do
expect
somewhat
similar
thing
to
occur
in
this
level
of
abstraction.
B
B
Oh
yeah,
we
don't
want
to
trust
a
a
third-party
relay,
who
you
know
will
see
the
content
of
the
blocks
that
we
produce
and
so
we'd
rather
be
able
to
just
communicate
directly
with
validators,
and
so
they
they
will
try
to
run
their
own
relay
as
well
and
and
get
as
much
as
many
validators
as
possible
to
to
sign
up
for
for
their
relay.
Similarly,
I
do
expect
that
some
of
the
large
validators
will
say.
B
Well,
you
know,
we
think
it's
a
big
risk
for
us
to
to
sort
of
trust
all
these
third-party
relays,
so
we'd
want
to
also
run
our
own
relay
such
that
we
can
like
see
the
content
of
the
of
the
payloads
before
we
sign
off
on
them
and
we're
able
to
validate
them,
and
so
we
don't
need
to
worry
about
this.
B
You
know
this
fraud,
proof
mechanism,
but
instead
we
can
just
sort
of
operates
very
similarly
to
the
way
that
mev
gas
operates
today,
where
you
have
full
information
and
you
can
just
sign
off
on
blocks,
but
it's
really
probably
only
going
to
be
the
large
validators
who
do
this,
and
you
know
an
example
of
this
is
ether
mine
who
has
been
running.
B
You
know
in
the
proof
of
workland,
both
the
relay
and
and
their
miners,
so
the
I
expect
they'll
probably
continue
to
do
this,
but
there
will
also
be
these
sort
of
individual
entities
that
are
incentivized
to
to
run
relays
so
within
the
flashbacks
working
group
right
now,
there's
three
entities
that
I've
indicated
so
I'm
interested
at
doing
this,
so
so
one
of
them
is
blocks
routes
who
they
are
currently
running.
A
relay
for
the
proof-of-work
version.
They'll
continue
to
do
this
here,
there's
a
consensus.
B
That's
indicated
they
perhaps
want
to
see
if
this
is
a
product
that
would
make
sense
within
pure
and
then
alchemy
as
well
have
have
indicated
some
interest
in
exploring
this.
So
I
do
think
there
are
some
entities
like
those
whose
you
know
business
model
is
very
much
so
on
being
an
infrastructure
provider
whose
role
is
quite
fitting
to
run
this
really
infrastructure.
B
You
know
when
you
you
think
about
what
running
a
relay
really
is
it's
opening
up
some
endpoint
right
to
like
as
many
people
as
possible
as
many
users
as
possible
to
receive
a
bunch
of
different
block
proposals
doing
some
highly
scalable
stimulation
of
these
block
and
verification
of
these
blocks
filtering
out
all
the
garbage
and
then
only
submitting
you
know
the
best
ones
over
to
the
validators.
B
So
that's
pretty
similar
to
a
role
that
that
infurer
does
right
now
by
you,
know,
receiving
a
bunch
of
transactions
from
users
and
then
only
submitting
the
ones
that
make
sense
to
to
the
transaction
pool.
I
And
an
another
thing,
so,
regarding
the
the
issue
that
we
need
to
know
the
value
of
the
payload
produced
by
the
local
execution
client.
If
we
have
a
standardized
format
for
paying
the.
I
B
On
that
right,
yes,
that's
right,
actually
I'll
shift
over
to
here
I
mean
I
have
one
line
on
here
that
describes
it,
but
it's
something
that's
worth
talking
about.
There's
a
slide
on
on
milestone.
Four
that
says,
consider
adding
merkle
proof
of
payment.
You
know
to
shift
verification
requirements
to
the
relay.
So
basically,
what
this
means
is,
instead
of
leaving
the
option
for
the
builders
to
set
their
own
coinbase
address,
or
you
know,
use
the
fee
recipient
of
the
coinbase
address.
B
It
would
say:
okay,
no
builders
always
set
their
own
coinbase
address
and
they
include
a
transaction
at
the
end
of
the
payload
that
pays
the
fee
recipient
and
then
what
they
can
also
do.
Then
the
relay
can
produce
this
proof
that
that
transaction
was
included
and
has
you
know
the
the
right
precondition
on
the
balance
of
the
builder
to
be
able
to
to
complete
the
payment
to
the
to
the
fee
recipient?
B
B
You
know,
I
think,
if
there's
a
way
to
avoid
this
like
level
of
deep
constraints
and
like
remain
maintain
the
ability
for
the
builder
to
like
set
whatever
they
want
as
a
coinbase
address
and
simply
say
you
know,
this
is
the
change
in
the
fee
recipient
balance
and
have
that
be
sort
of
self-standing
without
restricting
how
the
payments
is
made.
B
Then
that
seems
ideal
in
my
mind,
because
it's
less
restrictive.
I
Yeah,
but
it
adds
like
some
complexity
to
to
block
building
and
two
like
two.
It
also
adds
complexity
to
people
that
are
not
using,
maybe
maybe
boost
right,
because
they
have
to
to
to
opt
into
this
to
the
same
api
like
I
would.
I
would
be
okay
with
having
this
as
an
optional
field
in
the
in
the
payload
in
the
in
the
get
payload
object,
but
not
having
this
required
yeah.
I
think
that's.
J
I
have
minor
question
about
last
chapter
like
proliferate.
Proof
message
what
would
happen
if
elijah
is
not
revealing
the
block
in
the
end
of
all
this
interaction
validate
risks
to
just
just
just
miss
this
miss
the
slot
right.
B
Correct
yeah,
so
in
this
initial
post
right
that
describe
this
architecture,
we
list
three
ways
that,
like
a
relay,
can
misbehave
first
one
is
just
producing
a
valid
payload.
Second,
one
is
misrepresenting
the
value
that
the
payload
has
and
then
the
third
one
is
missing
data,
so
just
never
revealing
the
transaction
list,
so
there
isn't
really
a
good
way
to
do
like
a
frog
proof
for
that
right,
because
it's
just
based
on
timing.
B
You
know
I
really
can
claim
that
the
message
came,
but
just
too
late
and
I
can
just
stall
it
out
or
or
whatever.
So
I
think
this
can
be
much
more
subjective.
Maybe
it
has
to
be
like
a
statistical
approach
where
you
know
if
a
relay
misses
more
than
x
number
of
slots
within
you
know
y
amount
of
block
proposals,
then
it
becomes
like
disabled.
B
That's
that's
my
idea,
I'm
wondering
if
yeah,
what
do
you
think
of
that.
J
Yeah,
thank
you,
yeah.
I
think
it's
going
to
be
solvable
without
like
like
completely
of
chain,
maybe
like
some
complicated
mechanics,
but
it's
it
would
complicate
things
but
yeah.
It's
like
still
like
a
possibility
of
of
attack,
this
kind
of
not
revealing
the
payload
in
the
end
of
all
interactions
but
yeah.
I
think
that
good
relies.
It's
not
interesting
in
twinsies.
K
B
So
there
isn't
the
way
that
it
will
work
is
basically
the
validator
when
they
start
up
mv
boost,
they
can
define
a
list
of
relays
that
it
wants
to
connect
to,
and
so
the
validator
is
always
in
control
of
is
always
in
control
of
which,
which
relays
it
it
wants
to
communicate
with
something
that
we've
discussed
in
the
past
is.
B
Does
it
make
sense
for
like
there's
always
a
question
of
like
what
are
the
defaults
right
like
there's
a
defaulted
like
no
relay,
does
it
default
to
a
single
relay,
or
does
it
like
default
to
outsourcing
to
to
like
a
list
that
exists
somewhere?
We
haven't
really
decided
on
this.
B
I
guess
that's
like
open
for
discussion,
something
that,
like
might
be
useful
for
like
solo
validators
is,
I
don't
know
if,
if
you
all
are
aware
of
like
tokenless
like
if
you
use
uniswap
right
like
instead
of
uniswap,
coming
up
with
a
list
of
valid
tokens,
you
know
the
ones
that
aren't
malicious
tokens
and
making
a
decision
themselves.
B
They
allow
for
like
any
third
parties,
to
submit
a
list
and
like
maintain
their
list
of
tokens,
it
could
be
a
similar
system
here,
where
the
validators
can
delegate
to
a
third
party
list.
That's
curated
by
you
know
some
some
entity
that
carries
some
reputation
and
who
focuses
on
exclusively
verifying
the
the
activity
of
of
of
the
relays,
but
really
the
goal.
The
goal
is
for
always
maintaining
the
ability
for
the
validator
to
to
define
which
release
they
trust.
K
B
Yeah
it's
it
relies
on
this
reputation
right.
So
if
the
relay
does
something
malicious,
super
malicious
and
then
they
go
offline
and
like
spring
back
up
with
a
different
identity,
it's
it's
kind
of
up
to
all
the
users
in
the
network
to
try
to
identify
that
if,
if
the
user,
using
like
a
third
party
to
do
this
like
reputation,
check,
then
you'd
hope
that
that
third
party
would
be
able
to
identify
that
too.
So
it's
certainly
it's
certainly
a
risk
like.
B
K
And
like
the
remedy
or
or
fallback
mechanism
for
like
a
potential,
I
don't
know
mass
denial
of
service
attack
against
relays
like
like.
Obviously
at
some
point,
that's
just
disabling
nvd
boost,
but
is
there
any
other
way
to
do
that
or
like
the
ip's
not
even
exposed.
B
B
Yeah,
so
you
could
have
like
an
extended
period
like
let's
say
all
the
relays
at
the
same
time
start
producing
bad
blocks.
Then
you
would
have
like
a
cycle
where
validators
like
one
by
one
disable
the
relays
right
and
so
maybe
like
just
thinking
about
it.
The
longest
amount
of
time
that
the
chain
would
go
is
like
the
number
of
like
relays
are
enabled
by
all
the
validators.
B
So,
ideally
right
you
have.
You
have
validators
that
all
have
like
a
different
list
of
which
relays
they
trust,
and
then
you
have
a
bit
more
like
diversity.
There.
You
don't
want,
like
maybe
an
overlap
between.
B
K
And
are
relays
able
to
provide
like
like
malicious
blocks
as
opposed
to
just
invalid
blocks,
so
when
they
get
something
from
the
builder?
Is
that
like
a
fully,
I
don't
know
how
to
say
it.
K
So
like,
obviously,
they
can
either
like
not
respond
with
a
block
which
is
the
same
thing
as
responding
with
an
invalid
block.
But
is
there
a
possibility
that
they
basically
respond
with
a
block?
That's
like
not
been
built
by
a
builder
and
they
just
come
up
with
their
own
thing,
and
it's
like
a
bad
block
in
some
way.
B
Yeah,
so
I
can
dig
into
like
the
three
ways
that
I
really
can
sort
of
do
something
bad,
so
the
first
one
is
just
like
it
tries
to
like
send
whatever
a
transaction
from
somewhere
that
doesn't
make
sense
or
like
just
contains
some.
You
know
some
logic
that
that
doesn't
work
like
the
the
header
is
formatted,
or
something
like
that
right,
so
the
payload
can
just
be
invalid.
B
Another
one
is
like
inaccurate
value,
so
something
that
a
really
could
do
is
you
know
the
block
that
it's
actually
producing
has
one
each
worth
of
value,
that's
being
paid
to
the
validator,
but
they
claim
that
there's
10
eth
worth
of
value,
and
so
you
know
they
can
basically
guarantee
that
they
win
the
profit
switching
here,
even
though
the
block
that
they
produce
wasn't
that
valuable.
So
I
say,
that's
probably
like
a
clearly
malicious
thing
that,
like
wouldn't
happen
by
accident,
is
over
reporting
the
the
value
of
a
block.
D
H
L
I
had
to
step
away
for
a
minute
to
get
a
computer
that
arrived
at
the
door,
but
I
posted
a
question
in
the
chat:
did
you
guys
answer
it
already?
A
couple
of
us
were
wondering
we
were
chatting
on.
The
side
are
relayers
incentivized
separately
from
the
builders.
B
So
it's
not
defined
within
the
system,
you
know.
Actually
neither
is
the
builder
compensation
right.
I
sort
of
propose
like
the
way
that
I
think
builders
will
likely
want
to
monetize,
which
is
they
set
their
own
coinbase
address,
and
then
they
like
have
some
payment
and
they
can
keep
some
delta
between
the
two
and
still
their
incentive
is
to
pay
the
most
that
they
can
because
they're
competing
against
all
the
other
builders
and
producing
this
I
expect
relay's
business
model
to
be
more
fees
oriented.
B
So
if
we
just
think
about
how
like
block
blocks
route
operates
today
right,
they,
they
have
like
a
fee
per
number
of
messages
that
that
it
inputs-
and
you
know
obviously
infuria
and
alchemy-
have
a
similar
system
where
they
just
charge
by
like
api
calls.
So
I
expect
those
to
be
the
like
likeliest
monetization
routes
for
the
relay.
B
Maybe,
though,
I
don't
see
that
being
super
stable,
like
basically,
would
require
adding
additional
transactions
somewhere,
where
they
really
would
say.
You
know,
we
only
accept
blocks
from
builders
who
like
pay
us
within
the
block
that
they
produce,
and
then
they
would
like,
then,
for
the
payment
on
by
adding
their
own
transaction
at
the
end
of
the
block
to
the
to
the
validate
year.
So
it
could
be
doable.
It
could
be
doable
feels
somewhat
less
likely
to
me,
but
it's
a
possibility.
M
I
was
wondering
so
what
is
it?
That's
missing
right
now
that
makes
us
need
the
relays
in
mav
boost,
but
we
won't
need
them
later
when
we
have
the
full
pbs.
B
Yeah
good
question,
so
we
had
a
a
discussion
last
friday
where,
where
vitalik
presented
pbs
and
like
the
properties
that
that
it
has
so
it's
called
mev
roast,
maybe
there's
a
way
to
surface
a
link
to
that,
but
I
definitely
recommend
checking
out
that
talk.
Basically,
what
you
need
to
remove
the
relay
completely
from
the
system
is
the
ability
for
the
value
to
accept
messages
from
any
builder,
and
to
do
that,
you
need
to
have
unconditional
payments
attached
to
to
a
payload,
so
right
now
right.
B
The
way
that
it
works
is
the
builder
creates
a
payload
and
submits
it
through.
But
if
the
payload
is
invalid
right,
if
the
payload
reverts,
for
whatever
reason
the
validator
doesn't
get
paid
but
under
to
have
all
the
properties
that
you
want
to
be
able
to
remove
the
relay
you
need
to
have
this
be
completely
independent,
where
even
if
the
block
that
the
builder
proposed
is
is
completely
invalid
and
reverts
or
like
just
never
gets
accepted.
B
The
payment
from
the
builder
to
the
validator
still
still
settles
and
that
creates
sort
of
the
counter
incentive
for
builders
to
produce
valid
blocks.
It
like
prevents
the
dos
and
spam
issues
and
then
you
can
handle
basically
making
sure
that
you
continue
mining
on
the
ballot
chain
by
updating
the
fork
choice,
rule
of
of
the
chain.
So
that's
that's
how
pbs
sort
of
handles
this
issue.
A
Okay,
well
yeah.
If
there
are
other
questions
comments
as
people
look
into
it,
like
we
mentioned
earlier,
the
blog
construction
channel
is
the
right
place
to
discuss
this
thanks
a
ton
to
the
flash
boss
folks
for
coming
on
presenting
this
yeah
agreed
with
the
comments.
This
was
really
helpful
and
yeah.
Thanks
to
everybody
else
who
attended,
ask
questions
and
yeah,
I
guess
we
can
wrap
it
up.
We'll
have
a
recording
for
this
and
I'll
share
it
on
the
discord
as
soon
as
it's
ready.
B
Awesome
thanks
everyone
thanks
for
the
really
great
questions,
yeah
looking
forward
to
chatting
some
more
on
all
of
this.