0Pricing
Cryptology Academy · レッスン

Proof-of-Stakeの暗号メカニズム

PoSプロトコルにおけるバリデーター選出、スラッシング条件、暗号学的に安全な乱数の要件を検討します。

「Proof-of-Stakeの暗号メカニズム」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

Proof-of-WorkからProof-of-Stakeへ

Proof-of-Work(PoW)は、計算コストを費やすことでブロックチェーンを保護します。マイナーがターゲット値未満のハッシュを見つける競争を行い、勝者が次のブロックを追加します。これにより、ネットワークのセキュリティに比例して電力が消費されます。Proof-of-Stake(PoS)では、計算処理を経済的なステークに置き換えます。バリデータが暗号資産を担保としてロックし、プロトコルがステーク量に比例してブロック提案者を選択します。EthereumがPoWからPoSへ移行したThe Merge(2022年9月)により、エネルギー消費量は99.9%超削減されました。

バリデータの登録とステーキング

EthereumのPoS(Gasperコンセンサス)では、バリデータは実行レイヤー上のスマートコントラクトにデポジットトランザクションを送信して32 ETHをステークします。このデポジットには、BLS公開鍵(バリデータの識別情報)、出金資格情報、鍵の所有権を証明する署名が含まれます。デポジットコントラクトはログイベントを発行し、コンセンサスレイヤーがそのログを読み取って、遅延の後にバリデータを有効化するためのキューに追加します(通常の状況では約12~24時間後)。32 ETHの担保は、出金が可能になるまでロックされます。

BLS鍵とバリデータの識別情報

Ethereumのバリデータは、2組の鍵ペアを使用します。1つはコンセンサスに関する役割(アテステーション、ブロック提案、同期委員会)に用いるBLS12-381署名鍵で、もう1つは資金の移動に用いる出金鍵です。BN-254またはBLS12-381曲線上のBLS(Boneh-Lynn-Shacham)署名は、効率的な集約に対応しています。数十万件のバリデータ署名を、1つの96バイトの署名にまとめられます。この集約はスケーラビリティに不可欠です。集約がなければ、すべてのスロットでギガバイト単位の署名データが必要になります。

スロット、エポック、バリデータ委員会

Ethereumのコンセンサスの時間構造は、スロット(各12秒)とエポック(32スロット=6.4分)に分けられています。各スロットでは、1人のバリデータが疑似ランダムに選ばれてブロック提案者になります。すべてのアクティブなバリデータは委員会(通常は各512人)に分けられ、チェーンのヘッドに対してアテステーションを行います。委員会の構成が操作されるのを防ぐため、委員会の割り当ては、RANDAOをエントロピー源とするFisher-Yates方式のシャッフルアルゴリズムを使って、エポックごとに入れ替えられます。

RANDAO:バリデータ選出のためのランダム性

PoSでバリデータを選出するには、予測も操作もできないランダム性が必要です。Ethereumは、プロトコルに組み込まれたコミット・リビール方式であるRANDAOを使用します。各ブロック提案者は、現在のエポック番号に対するBLS署名を含める必要があります。この署名は、蓄積されたRANDAO値にXOR演算で取り込まれることで、新しいエントロピーを提供します。RANDAOの出力は、次のスロットの提案者の選出と委員会のシャッフルに使われます。エポックで最後にリビールする参加者を支配する攻撃者は、自分のブロックを公開しないことでRANDAOをわずかに偏らせられますが、その代償としてブロック報酬を失います。

スラッシング:暗号学的な処罰

PoSのセキュリティは、バリデータが正直に行動することに依存しています。スラッシングは、2種類の特定の不正行為を処罰します。すなわち、同じスロットに対して異なる2つのブロックに署名するエクイボケーションと、矛盾するアテステーションを行うサラウンド投票です。スラッシングの証拠は、内容が矛盾し、同じバリデータ鍵で署名された2つのメッセージを含むトランザクションとしてオンチェーンに提出されます。不正を行ったバリデータはステークの一部(最低で1/32、多数のバリデータが同時にスラッシュされた場合は全額になる可能性があります)を失い、強制的に退出させられます。

Casper FFG:ファイナリティ・ガジェット

EthereumのファイナリティメカニズムはCasper the Friendly Finality Gadget(FFG)であり、LMD-GHOSTフォーク選択ルールの上に構築されています。各エポックで、バリデータはチェックポイント投票(source、target)を行います。sourceは最後に正当化されたチェックポイント、targetは現在のエポック境界ブロックです。ステークの3分の2がチェックポイントにアテストすると、そのチェックポイントは正当化されます。正当化されたチェックポイントは、次のチェックポイントも正当化された時点でファイナライズされます。いったんファイナライズされたブロックを覆すには、ステークされた全ETHの少なくとも3分の1を焼却しなければならないため、覆すことは経済的に壊滅的な結果をもたらします。

LMD-GHOSTフォーク選択

ファイナライズされたチェックポイントの間では、バリデータは正規チェーンの先頭に合意しなければなりません。EthereumはLMD-GHOST(Latest Message Driven Greedy Heaviest Observed SubTree)を使用します。各バリデータの最新アテステーションが投票として数えられ、フォーク選択アルゴリズムは、各フォーク地点で累積ステークウェイトが最も大きいブランチをたどります。このとき、各バリデータの最新メッセージだけを数えます。LMD-GHOST(ライブネス)とCasper FFG(ファイナリティ)の組み合わせが、Ethereumの完全なコンセンサスプロトコルであるGasperを形成します。

出金クレデンシャルと暗号学的分離

Ethereumのバリデータキーは、意図的に暗号学的分離が施されています。BLS署名キーはアテステーションのために毎スロット使用されるホットキーであり、その分リスクが高くなります。出金クレデンシャルは、別のキーのハッシュ(またはEIP-4895以降ではEthereumの実行アドレス)です。この分離により、署名キーが侵害されてもステークされたETHを盗むことはできず、攻撃者ができるのはスラッシングを受けてバリデータのステークを失うことだけです。資金移動を開始できるのは出金キーだけであり、そのキーはハードウェア内でコールド保管できます。

分散バリデータ技術(DVT)

分散バリデータ技術(DVT)は、ソロステーキングにおける単一障害点のリスクに対処します。threshold BLS署名を使用して、1つのバリデータキーを複数のオペレーター(例:3-of-5)に分割します。ブロック提案やアテステーションには、結合されたBLS署名が生成される前に、thresholdの合意が必要です。完全なキーを保持するオペレーターは1人もいません。Obol NetworkやSSV NetworkなどのプロジェクトがDVTを実装しており、耐障害性を高めるとともに、キー管理を中央集権化せずに機関投資家によるステーキングを可能にしています。

他のチェーンにおけるPoS

PoSチェーンによって、暗号学的メカニズムの実装方法は異なります。Solanaは、VDFに似たタイムスタンプ(Proof of History)を用いてコンセンサス前に順序を確立する、Tower BFTの変種を使用します。CardanoはOuroborosを使用します。これは、universal composabilityモデルにおける形式的な暗号学的安全性証明を備えた、証明可能安全なPoSプロトコルです。CosmosチェーンはTendermint BFTを使用します。これは、1ラウンドで3分の2のクォーラムによるファイナリティを実現する古典的なBFTプロトコルです。それぞれの設計は、安全性、ライブネス、分散性、スループットの間で異なるトレードオフを選択しています。

PoSスラッシングクイズ

Ethereumのバリデータをスラッシングする際に使用される、主要な暗号学的証拠は何ですか?

PoS暗号学のまとめ

Proof-of-Stakeは、PoWの計算を経済的な担保に置き換えます。Ethereumのバリデータは、集約可能なアテステーションのためにBLS12-381キーを使用します。RANDAOは、プロポーザーの選出と委員会のシャッフルに使う、プロトコル内部のランダム性を提供します。Casper FFGは、3分の2の超過半数によるチェックポイント投票を通じてファイナリティを提供します。LMD-GHOSTは、チェックポイント間のフォーク選択を行います。スラッシングは、矛盾する署名付きメッセージというオンチェーン上の証拠を用いて、エクイボケーションやサラウンド投票を罰します。DVTは、BLSキーをthreshold分割することで耐障害性を高めます。

よくある質問

「Proof-of-Stakeの暗号メカニズム」レッスンは無料ですか?

はい。「Proof-of-Stakeの暗号メカニズム」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「Proof-of-Stakeの暗号メカニズム」で何を学びますか?

PoSプロトコルにおけるバリデーター選出、スラッシング条件、暗号学的に安全な乱数の要件を検討します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Proof-of-Stakeの暗号メカニズム」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Proof-of-Stakeの暗号メカニズム
  2. BFTプロトコル:PBFTとTendermint
  3. コンセンサスにおける検証可能なランダム関数
  4. BLS署名と集約署名方式
← Cryptology Academyに戻る