Life of An Ethereum Beacon Chain Validator | Hsiao-Wei Wang

Life of An Ethereum Beacon Chain Validator | Hsiao-Wei Wang


thank you cc for the
introduction so beacon chain is the core
chain of the Ethereum 2.0 and today I’m going to
talk about the life cycle of the Beacon
validator so first of all just a
quick recap of where we are right now
This is the current serenity design for Ethereum
2.0 you can see that there will be four
layers so on the top is the Ethereum 1.0 proof of work chain that we are using right now and
there is the beacon chain that I’m going to
focusing today the beacon chain will provide
the proof of stake and also it will be
the random number generator and you can
see that the shard chain is under the beacon chain we
are design like for like 1024
shard chains will be there and
so please know that those shard chains
are only for data there they don’t have
a in protocol state exclusion
and then we will add the state exclusion
engine on the shard chains no this is the
whole picture now you can have a good
overview of it and so today I’m going to
focusing on the beacon chain so here’s the
roadmap overview that you can see it’s
a simplified roadmap so we are still here
so the phase 0 everything we’re
focusing on is the beacon chain design and the implementation and shard chain will be
in phase one and the shard chain could be
utilized with layer 2 which
Vitalik will talk about that later and
then from the phase 2 the shard
state execution engine will be
introduced there and also the cross shard
transactions and after the phase two we
assume that the base protocol will be
fine and useful and then we can do more
iterations on Eth2.0 shard chains there are some
iterations idea for example like
Casper CPC and make a STARK friendly
system so let’s talk about the beacon chain
so to introduce the beacon chain validator
the first question here is that why we
want to be a validator so of course
there will be some rewards to trigger
you to join so the first obvious reward to trigger you to join
here is the block proposer reward
so it’s something like in the Eth 1.0
chain as a miner you can include more
transactions and the transactions fee
will be given to the miners and then in
the proof of stake chains the validators
are also be incentivized to include
more validators’ votes and the transactions oh
sorry
and the transfers we call those votes
are attestations so attestation is a
data structure that point out that
what did the validator vote for
so it includes signatures that validator attest
so to tell others that which beacon chain is the
valid chain they think it is and there are also
transfers also for the block proposer
we have a special reward called whistle
blowing it’s like you can report others
other malicious validators if you did
something very evil bad and you can
report them tell them that everyone that
this is a bad one bad guy let’s
punish her or she then then you will get
his slashed Ether to be your reward
and then there are the Casper FFG reward the Casper FFG reward is the
reward to reward that if you are
voting on the correct beacon chain so by
the correct that I mean the canonical chain so if you are a validator so I
see two beacon chains they are both valid if you
but you will need to vote on the
one that would be more likely to be the
canonical chain to be accept by the
whole internet and the last one is the
crosslink reward so the crosslink is a data
structure that we use for describe that
you vote for some specific shard chain so
um I’ll talk about that later one day
later they will be responsible for
attesting one shard so they
will need to make the crosslink and if that shard chain is really the
canonical chain, they will get rewarded for that
and then the second question is that how
to become a validator
let’s see that first of all
how do you join the staking there is a
deposit contract on the Ethereum 1 chain
the user can make up transaction to make
a deposit of 23 Ethers (should be 32) on the contract
so and then this 20 sorry
32 Ethers will be locked in the contract
and every time there’s a new deposit
being made there will be a log event
that will on the Eth 1 chain receipt
As a beacon chain validator they would
need to keep track of the state of Eth 1
contract so and especially watch the
event log of the deposit contract you can
use some Eth one light client to keep track on that
so okay so here I am I’m making a deposit
and then the beacon chain validators
we will check if this validator has already made a deposit of
enough balance on the beacon chain and then they can’t be added
immediately they have to wait for like
for like 25 minutes and then we call
that the validator is active right now
then let’s talk about the shuffling so um
once the violator being added into a
big large validator list then they got activated there
will be shuffled into several small
committees so please know that the whole
system will have only one big validator list and they will got shuffled into
this pseudo randomly sampled but two
different committees and each
committee is assigned
to be responsible for verifying one
certain shard chain and it’s for one
certain block or slot in the spec is
active okay so now imagine that you
have ready be a validator and why would
you what should you to to gain some more
incentive or some more reward there are two
main responsibilities for the validators
the first one is proposing a valid
block so you can see the right this this
here is the data structure of
beacon block and beacon block body so
the most interesting thing here I think
it’s the RANDAO reveal and the
Eth1 data here
so the RANDAO reveal is that so
every validators when it’s their time to
propose a block they have to
reveal their RANDAO it it’s a hash value that will be contribute to provide
the entropy to generate a seed and the
the protocol uses that seed to generate
random numbers so that’s how the Eth2.0 random number generation being executed also they
have to choose the best vote of Eth1 chain references from Eth1Data
data structure in
their proposal another important job
for validators is creating the
attestations so you can see the attestations
like votes I think it’s a fear
to understand a validator has to vote for
what the current view of the chain in
the client side there are three different
chains
that a validator has to know about the
first is the Eth1 proof of work chain, they can use the light client to know the
current head of the Eth1 chain and the
second one is the beacon chain and as I
said every active validator they are
responsible to attest for the shard chain so
they also have to vote for the shard chain
here and that that message we’ll call
that crosslink so I talked about the
rewards but also there are also the
penalties and slashes that triggers the
validators to be honest because if they
do something bad they will get slashed
they’ve got punished by reduce their
balance the first thing is that Casper FFG
penalties so we talked about
that the the one that contributed to the
finalizations will be rewarded also if
you’re not
contributing to finalization they will got punished by
by reducing their balance here
and if the beacon block is not being
finalized normally that means they
probably the last finalized epoch will
be very long time ago then there will
be a penalty we call inactive
penalty so that will be applied to
validators because they didn’t do
their job well
okay so and also the cross-link penalty
are with respective of the shard chain part
there are two types of the slahsing
messages here there are the proposer
slashing and the attester slashing when after they
sent their attestations the attestations
is in includes their own signatures so
they have to be responsible for that
certain message what they attested what they claim that is real
if they claim it’s real but
actually they are not
they will report it by the slashing
messages so the other users they can
create the slashing message to report
that hey this user is not good he
voted two shard chains in the same time
and then so in that case they will got
punished too – and in the phase one we’re
introduce the proof of custody and penalties so
it is kind of you know kind of the
challenge and response game in that for
example is for solving for reduced the
data availability problems so for
example because in the shard chain there
will be only data there are no
certain state root in the shard chain so if I
claim that I have this value I have the
data of this shard block but actually I
don’t have and then you will ask do you the
others guy will ask do I have the shard
block they will challenge me and I as a
prover I have to prove that I really
have that so that’s the proof of custody
game here so if I don’t have but I
lied then got punished too something
called the validator churn
validator can’t just join or
leave the chain immediately there are
two waiting queues here one is the
activation queue and one is the exit queue
the reason why it is here is for the
stability and the chain liveness
so we can’t accept the validator list and the committee’s being changed so
frequently so um so the each time when the validator
registry update
happens the validator that can could be
activated or the deactivate is based on
this formula which is based on the total balance
not every validator can leave as soon as
possible
oh if I want to leave I have to create a
voluntary exit message and then
broadcast it to the Internet and I also
can’t be leave immediately I have to
become time to withdraw my balance right
so but in the phase 0 there would be
a state called the withdrawable state so
because that the shard chain
state execution
is not here yet so in phase 2 when we
add the state execution engine the withdrawable will be withdrawn to the shard chain
let’s see the life cycle of the
validators so I was here I activated
this read the slashing message means
that I got slashed and then I have to
wait for five minutes
to be exit and then if since I am I was
slashed I want to withdraw my money in that
case I have to wait for 36 days then I
can withdraw and for the case that if I
got penalized over and over time my balance
was 32 Ether but now it’s only 16 Ethers
so my I don’t have enough balance
I will also be kicked out that without
ejection and in that case I won’t wait
for 25 minutes and I’m going to a state
called slashed and exited in that case
have to wait for 27 hours and note that
and there’s a first in
first out queue here that means that the
waiting queue and then you have to wait
for another 27 hours then being the
withdrawable state and the last case is
that I just want to leave no
one slashed me in that case I can send a
message to that network and say if after
ready to exit and we have to wait for
25 minutes and then being in
the same status oh and I activated I
can’t leave I just joined the validators pool I can’t immediately leave I will
also have to wait for 9 days so um
the whole design is for the stability
of the network
and um there are some known computations
and network requirements here the
first thing is that um right now we are
targeting on the worst case is
4 million validators that’s a huge
number in a single data structure and
leads to a huge overhead of the validator
committee shufflings and also the state
of the beacon chain won’t be as large as
Eth one EVM state but it’s still many
messages to handling a huge single
validator list so the cache manager may
be very important here the second thing
is the network propagation and shuffling
so as I said that there will be many
different types of transactions but not
everything you need to everyone to know
some message we have to be known by some
a group of people some messages only
needs to be stay in the shard chain levels
so on the case there which means that we
have to build like 1000 shard network for
each chains so imagine that there will be 1024 shard networks then I know
validators I have to shuffle between those
networks that cost only a lot of
overhead
and the last thing is the BLS signature aggregation so um we
expected that the minimum committee
size is 128 validators but if it’s the worst case with
4 million validators it will lead to 65,000
individual signatures per seconds so
imaging that how one client on the laptop
handle that you can’t so we need to
aggregate the signature in the shard chain
levels so in the best case the
each block the validators only have to
handle the attestations not already being
aggregated by the by each shard chain networks if you want to
see more and you can see that link for
more information for the BLS
signature aggregation so so everything
I’m talking about is happening
right now there’s a very active
implementation and research on the Eth 2.0
spec on the Ethereum repository and also we have the
community call every two weeks on the eth2.0-pm
and important thing is that we
have that more than 9 teams are building
their beacon
chain client based on
spec yeah you can see the link to find out what those 9 teams and today we have not
just me the client implementors. I can’t see that can you wave? No? Proto, hi Proto. Oskar, Oskar
okay if you are interested in client implementation you can also reach them out. and myself
working on the research team we are working on the Python implementation for Eth2.0
and happy to talk if you want to
contribute to Trinity or you can follow
me on Gitter
ok then thanks to the slide reviewers
the vbuterin, the Danny Ryan, and protolambda here.
Thank you

Leave a Reply

Your email address will not be published. Required fields are marked *