メインコンテンツへスキップ
Change page

ガスパー (Gasper)

最終編集者: @HiroyukiNaito(opens in a new tab), 2023年8月15日

ガスパー(Gasper)は、Casper-FFG (Casper the Friendly Finality Gadget)とLMD-GHOSTフォーク・チョイス・アルゴリズムを組み合わせたものです。 これらのコンポーネントが合わさって、プルーフ・オブ・ステークのイーサリアムを保護する合意メカニズムを形成します。 Casper(キャスパー)は、特定のブロックを「ファイナライズ (確定) 」にアップグレードするメカニズムであり、ネットワークへの新規参入者が正規のブロックチェーンと同期していることが確信できます。 フォーク・チョイス・アルゴリズムは、ブロックチェーンでフォークの発生時に、累積票を使用してノードが正しいものを簡単に選択できます。

Casper-FFG の元の定義は、ガスパーを包括させるため、若干更新されました。 このページでは、更新されたバージョンを考慮しています。

前提知識

この資料を理解するためには、プルーフ・オブ・ステーク入門ページを読む必要があります。

ガスパーの役割

ガスパーは、プルーフ・オブ・ステーク・ブロックチェーンの上部にあり、ノードがEtherをセキュリティデポジットとして提供します。このセキュリティデポジットは、ブロックの提案や検証を怠ったり、不正をした場合には破棄されます。 ガスパーは、バリデータがどのように報酬と罰を受け、どのブロックを受け入れ、拒否するかを決定し、ブロックチェーンのどのフォークで構築するかを定めるメカニズムです。

ファイナリティとは

ファイナリティとは、ブロックのプロパティで、致命的なコンセンサスの障害があり、攻撃者が少なくともステークされたETH総数の3分の1を破壊しない限り、元に戻すことはできないことを意味します。 ファイナライズされたブロックは、ブロックチェーンが確信している情報だと考えることができます。 ファイナライズされるには、ブロックは2つのステップのアップブレード手順を経る必要があります。

  1. ステークされたETH総数の3分の2が、そのブロックが正規のチェーンに含まれることに賛成票を投じることが必要。 この条件によって、ブロックは「正当 (justified)」にアップグレードされる。 正当とされたブロックは、元に戻される可能性は低いものの、一定の条件下で元に戻されることがある。
  2. 正当とされたブロック上で、別のブロックが再び正当となった時、「ファイナライズ」にアップグレードされる。 ブロックがファイナライズされるとは、いわば正規チェーンにそのブロックを含めることにコミットすることである。 攻撃者が、数百万ETH (数十億$USD)を破壊しない限り、元に戻すことはできない。

これらのブロックのアップグレードは、すべてのスロットで発生するわけではありません。 エポック境界ブロックが、正当およびファイナライズになることがあります。 これらのブロックは、「チェックポイント」とも呼ばれています。 アップグレードは、チェックポイントのペアを考慮します。 2つの連続するチェックポイント(すなわち、チェックポイントBが、チェックポイントAの正しい子孫であるというステークされたETH総数の3分の2の投票) 間に、「スーパーマジョリティ・リンク」が存在する必要があります。

ファイナリティには、ブロックが正規なものであるという3分の2の合意が必要となるため、攻撃者はファイナライズされたチェーンの代替を次の方法でしか作成できません。

  1. ステークされたETH総数の3分の2を所有または操作する。
  2. ステークされたETH総数の少なくとも3分の1を破壊する。

1つ目の条件が生じるのは、チェーンをファイナライズさせるにはステークされたETHの3分の2が必要なためです。 2つ目の条件が生じるのは、ステーク合計の3分の2が両方のフォークに賛成票を投じた場合、3分の1が両方に投票したことになるためです。 2重投票は、最大限の処罰を受けるスラッシング条件で、ステーキング総額の3分の1が破壊されます。 2022年5月の時点では、攻撃者は約100億ドル相当のETHをバーン(燃焼)する必要があります。 ガスパーのブロックを正当化およびファイナライズさせるアルゴリズムは、Casper the Friendly Finality Gadget (Casper-FFG)(opens in a new tab)を少し変更した形式となっています。

インセンティブとスラッシング

バリデータは、誠実にブロックを提案し、検証することで報酬を得ることができます。 ETHが報酬として与えられ、ステークに加えられます。 一方、呼び出されたときにオフラインおよび行動しなかったバリデータは、これらの報酬を逃し、時には既存のステークのごく一部を失うこともあります。 しかし、オフラインであることのペナルティは小さく、ほとんどの場合、報酬を逃したことによる機会コストに相当します。 ただし、一部のバリデータには、偶然に実行することが非常に困難であり、同じスロットに対して複数のブロックを提案する、同じスロットに対して複数のブロックを証明する、または以前のチェックポイントの投票に矛盾するなど、何らかの悪意が感じられる行動を取るものもあります。 これらは、「スラッシング対象」となる行為であり、より厳しいペナルティが課されます。スラッシングされると、バリデータのステークの一部は破壊され、そのバリデータはネットワークから削除されます。 このプロセスには、36日間を要します。 第1日目における初回のペナルティは、最大1ETHまでです。 次に、スラッシュシングされたバリデータのETHは、退出期間全体を通してゆっくりと失われます。18日目には、「相関ペナルティ」が発生し、これは、より多くのバリデータが同時にスラッシングされた場合に大きくなります。 最大のペナルティは、ステーク全額です。 これらの報酬とペナルティは、誠実なバリデータにインセンティブを与え、ネットワークへの攻撃を阻害するように設計されています。

非稼働リーク

セキュリティだけでなく、ガスパーは、「信ぴょう性のある生存度」も提供します。 これは、ステークされたETH総数の3分の2が、誠実な投票をしており、プロトコルに従っている限り、他のアクティビティ(攻撃、遅延、スラッシングなど)に関係なく、チェーンがファイナライズできるという条件です。 言い換えれば、ステークされたETH合計の3分の1は、チェーンがファイナライズするのを防ぐために何らかの方法で損なわれる必要があります。 ガスパーには、「非稼働リーク」として知られる生存度障害に対する追加の防御策があります。 このメカニズムは、4エポック以上、チェーンのファイナライズに失敗した場合に作動します。 マジョリティのチェーンを積極的に証明しないバリデータは、マジョリティがステーク合計の3分の2を取り戻すまで、バリデータのステークが徐々に失われるため、生存度障害が確実に一時的なものになるようにします。

フォークの選択

オリジナルのCasper-FFGの定義には、次のルールを課すフォーク・チョイス・アルゴリズムを含んでいました。 follow the chain containing the justified checkpoint that has the greatest height ここで、「高さ (Height) 」は始まりのブロックからの最大距離として定義されます。 ガスパーでは、LMD-GHOSTと呼ばれるより洗練されたアルゴリズムが選ばれたため、元のフォーク・チョイス・ルールは廃止されました。 通常の条件下では、フォーク・チョイス・ルールは不要であることを認識することが重要です。スロットごとに単一のブロック提案者がいて、誠実なバリデータがそれを証明するだけです。 ネットワークの非同期性が大きい場合や、または不誠実なブロック提案者がフォーク・チョイス・アルゴリズムが必要であると主張した場合にのみ必要です。 ただし、これらのケースが発生した場合、フォーク・チョイス・アルゴリズムは、正しいチェーンを保護する重要な防御策になります。

LMD-GHOSTは、「Latest Message-Driven Greedy Heaviest Observed Sub-Tree」の略です。 これは、専門用語が多い定義ですが、アテステーションの最大の累積重みを持つフォークを正規のものとして選択し(Greedy Heaviest SubTree)、バリデータから複数のメッセージを受信した場合、最新のメッセージ(Latest-Message Driven)のみが考慮されるというアルゴリズムです。 最大の累積重みを持つブロックを正規チェーンに追加する前に、すべてのバリデータがこのLMD-GHOSTルールを使用して各ブロックを評価します。

参考文献

この記事は役に立ちましたか?