Ethereum-generating-block
Ethereumにおいて、どのようにブロック生成が行われているか見てみよう
https://scrapbox.io/files/64a25bd03890e2001c8ad482.png
Ethereum上における時間単位(現実における分とか秒とか)には、epochとslotという2つがある。
Slot
スロット。
1slotが1ブロック、1ブロック12秒。
1スロットにつき1ブロック入る。
スロットにブロックが入らない場合もある。slotは時間単位なのでブロックの有無は関係がない。
Epoch
エポック。
1epochは32slot、つまり6分24秒になる。
ここからブロック生成の説明
https://i.gyazo.com/8f3f56f8cde0894cbf1b4bb9ceeab988.png
まず、バリデーターがたくさんいる状態がある。(画像最上段部分)
Epoch毎に、以下のプロセスを通じてブロック生成者を決定する。
RANDAOというコンポーネントによってそれをランダムに振り分ける。
本来ブロックチェーン上でランダムな数値を作ることはできない
RANDAOとブロックチェーンでのランダム値については以下を参照https://youtu.be/uKDCXj8ViGg
(バリデーターは便宜上、1人、2人と数える。)
1slot毎に、バリデーターをProposer...提案者1人,Comittee...委員会128人(最低)に振り分ける。(画像中段)
Proposerはブロックを提案し、共有する。
MEVはこのproposerがどこからこのブロックを持ってくるのか、そのブロックがproposerに渡りブロックとして成立するまでにどのような価値の抽出が行われているかという話
Comitteeは共有されたブロックをattestation(検証みたいなもの)する。
問題なかった場合、ブロックは最新のブロックとしてチェーンに取り込まれる。