メインコンテンツまでスキップ

イーサリアム 2.0:Casper FFG とは

· 約4分

イーサリアム 2.0 の PoS は、従来の PoS を改善し、vitalik が進めていた Casper FFG (Friendly Finality Gadget) を採用しています。 Casper FFG は、主にネットワーク上にブロックチェーンが分岐してしまった場合、どうやって1つだけの有効なブロックチェーンを選出するというところを解決しようとしています。

Casper FFG の詳細

image0.png 引用元:https://github.com/ethereum/annotated-spec/blob/master/phase0/fork-choice.md

ビーコンチェーンは、エポックとスロットという時間単位があります。さらに

  • 1エポックは、32 スロットを含める
  • 1スロットは、12 秒と規定されている

上記前提で、Casper FFG の大まかの流れとしては、

  • エポック毎に、最初のスロットは「チェックポイント」になります。
  • アクティブなすべてのバリデーターは、チェックポイントに対して、投票を行う
  • 投票の件数ではなく、投票するバリデーターの預り金の金額を合計し、2/3 の超えたら、チェックポイントが「正当化」となる
  • 1個前のチェックポイントは、前の同じ投票・集計処理で既に正当化になっていたので、このタイミングで「確定」となる
  • 一度確定となるブロックは変更することはできません

このように、ブロックの最終確定性を導入することで、ロング・レンジ攻撃を防ぐことができます。

極端ケースの対策

上記流れでは、投票が 2/3 を超える必要があるとなっていますが、極端のケースの場合、何かしらの原因で 1/3 以上のバリデーターの投票を収集できなかった可能性があります。 この場合は、Casper FFG に「inactivity leak」という仕組みを設けています。

  • 1/3 以上のバリデーターの投票を収集できず、 4 エポック経過しても確定できなかった場合、「inactivity leak」処理が実行されます
  • この処理は、正しく投票できている預り金の比率が 2/3 になるまで、収集できなかったバリデーターの預り金を少しずつ減らしていきます

こうすることで、このケースによる確定できないことを対応しています。

まとめ

PoS は PoW よりエネルギーを大幅減らせた一方、新しいブロックを生成する難易度もそれに応じて変わっています。 よって、チェーン全体のセキュリティを担保する必要があります。