1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ethereum2.0のPoSについて

Posted at

はじめに

ついにEthereumのMergeがテストネットで成功しました🎉

それに伴ってコンセンサスアルゴリズムがPoWからPoSに変更になりました。そこで両者の違いとEthereumのPoSの動きを自分なりにまとめてみました。

PoW

Proof of Workの略。Bitcoinで使用されていることで有名。

ブロックチェーンの仕組上、取引がなされた際にその取引データは他の人に承認されてブロックに取り込まれる。

その際にブロックの承認を行うために必要な計算(Nonceの計算)があり、それを早く解き切るとマイナーに選ばれ、報酬を受け取ることができる。

しかし、電力消費量が非常に大きくため、環境に負荷がかかる・個人で行うには設備等で莫大な費用がかかる。

PoS

Proof of Stakeの略。

トークンを一定数以上ステーキング持っているユーザーからランダムに選択し(バリデーターの選出)、そのバリデーターがブロックを承認することによって報酬を得ることができる。

特徴

  • トークンを一定数有していると一定の信用があるという考え方

  • PoWのように高性能のハードウェアを必要としない

  • 個人での参入障壁が下がる

Layer2ソリューションのRollup等と組み合わせてスケーラビリティの問題に対処できる

EthereumにおけるPoSの動き

バリデーターのやること

選ばれた場合→ブロックの作成

選ばれなかった場合→ブロックの検証を行う

ブロックの検証をattestingといい、「このブロックは良さそうだ」というのを証明しているイメージ。

もし、悪意のブロックに対してattestingした場合にはステークを失う。

シャードチェーン

シャーディングによってネットワークの混雑を減らし、シャードチェーンを作成することによって、1 秒あたりのトランザクションを増加させる。

64のシャードチェーンが存在し、それぞれがネットワークの状態を共有することになっている。

シャーディング

データベースを水平に分割して負荷分散を行うプロセス。

ビーコンチェーン

シャードチェーンの調整を行うチェーン。

シャードから状態情報を受け取り、他のシャードがそれを利用できるようにすることで、ネットワークの同期を保つことができる。

また、ビーコンチェーンは、バリデータのステーク入金登録から報酬・ペナルティの発行も管理する。

バリデーションの働き

シャードでトランザクションを送信すると、バリデータがそのトランザクションをシャーブロックに追加する役割を担う。

バリデータはビーコンチェーンのアルゴリズムによって選ばれ、新しいブロックを提案できるようにする。

Attestation

上記とか異なりバリデータが新しいシャードブロックを提案するのに選ばれなかった場合、他のバリデータが行ったブロックの提案に対して認証を行う。

ビーコンチェーンには取引自体ではなく、この認証に対して行われている。

各シャードブロックには少なくとも128人のバリデータが必要で、これを 「committee」と呼ぶ。

committeeにはシャードブロックを提案し、検証するための時間枠があり、それを「slot」と呼ぶ。

1つのslotには1つの有効なブロックを作成する。そのslotが32個まとまったものを「epoch」といい、1つのepochの検証が終了したらcommitteeは解散する。

その後、再び異なるランダムな参加者でcommiteeが再結成される。これによって悪質なcommiteeからシャードを保護することができる。

Crosslink

新しいシャードブロックの提案に十分な認証が得られると、ビーコンチェーンにブロックと取引が含まれることを確認する「Crosslink」が作成される。

このCrosslinkでビーコンチェーンとシャードチェーンがつながり、同期を行っている。

Crosslinkができると、そのブロックを提案したバリデータは報酬を得ることができる。

Finality

分散型ネットワークでは、ある取引が変更不可能なブロックの一部となっている場合、その取引は「Finality」を持つ。

PoSでこれを実現するために、FinalityのプロトコルであるCasperが使用される。

これはあるチェックポイントでのブロックの状態についてバリデーターに同意させるもの。

バリデータの2/3が同意すれば、そのブロックはファイナライズされる。

もしバリデータは、ファイナライズされたブロックを51%攻撃によって元に戻そうとすると、すべてのステークを失うことになる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?