# PoWとPoSについて **Published by:** [Adachi Tomoki](https://paragraph.com/@adachi-tomoki/) **Published on:** 2022-03-20 **URL:** https://paragraph.com/@adachi-tomoki/pow-pos ## Content はじめにhttps://beincrypto.com/ethereum-merge-successfully-kiln-testnet/ ついにEthereumのMergeがテストネットで成功しました🎉 それに伴ってコンセンサスアルゴリズムがPoWからPoSに変更になりました。そこで両者の違いを自分なりにまとめてみました。PoWProof of Workの略。Bitcoinで使用されていることで有名。 ブロックチェーンの仕組上、取引がなされた際にその取引データは他の人に承認されてブロックに取り込まれる。 その際にブロックの承認を行うために必要な計算(Nonceの計算)があり、それを早く解き切るとマイナーに選ばれ、報酬を受け取ることができる。 しかし、電力消費量が非常に大きくため、環境に負荷がかかる・個人で行うには設備等で莫大な費用がかかる。PoSProof 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%攻撃によって元に戻そうとすると、すべてのステークを失うことになる。 ## Publication Information - [Adachi Tomoki](https://paragraph.com/@adachi-tomoki/): Publication homepage - [All Posts](https://paragraph.com/@adachi-tomoki/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@adachi-tomoki): Subscribe to updates