ethereumにおける「厳密なFinality」
から抜粋しよりわかりやすくまとめる。
Ethereumを学び直すにあたって、まずは最も基本的な「基礎設計」から見ていかなければならない。
今回は「Finality」を厳密に知ろう。
ファイナリティとは、全てのブロックそれぞれが持つ性質・状態で、(コンセンサスに致命的な失敗があり、攻撃者がステークしたETHの総量の少なくとも1/3を破壊しない限り)ブロックを戻すことができない状態を意味する。
この状態になることをファイナライズされる、という。
ファイナライズされたブロックは、ブロックチェーンが確信している情報だと考えることができる。
ブロックがファイナライズされるには、2段階のアップグレード手順を通過しなければならない。
1. ステークされたETH総数の3分の2が、そのブロックを正規のチェーンに含めることに賛成していなければならない。 この条件を満たすことにより、そのブロックは「正当化(Justified)」される。 正当化されたブロックが戻されることはまずないが、特定の条件下では戻されることもある。
2. 正当化されたブロックの上に別のブロックがまた正当化された時、最初のブロックは「ファイナライズ」にアップグレードされる。 ブロックのファイナライズとは、そのブロックを正規のチェーンに含めることを約束することを意味する。先の条件を満たさない限り、ブロックを戻すことはできない。
このようなブロックのアップグレードはすべてのスロットで起こるわけではない。 エポック境界のブロックだけが正当化され、またファイナライズされる。 これらのブロックは「チェックポイント」と呼ばれる。このファイナリティの アップグレードはチェックポイントのペアについてのものだ。
より新しいチェックポイントをfinalizedにアップグレードし、より新しいブロックをjustifiedにアップグレードするには、2つの連続するチェックポイントの間に「スーパーマジョリティリンク」というものが存在しなければならない(スーパーマジョリティリンク:チェックポイントBがチェックポイントAの正しい子孫であることに、ステークされたエーテル総数の3分の2が投票すること)。
ファイナライズには、ブロックが正統であるという3分の2の合意が必要なので、攻撃者はそれなしに別のファイナライズされたチェーンを作ることはできない。できるとしたら以下のどちらかを満たす必要がある。
1. 全てのステークされたETHの3分の2を所有または同時に操作する。
2. 全てのステークされたETHの少なくとも3分の1を破壊する。
最初の条件は、ステークされたETHの3分の2がチェーンを確定するために必要であることから生じる。 2つ目の条件は、ステークされたETH全体の3分の2が両方のフォークに賛成票を投じた場合、最低でも3分の1は両方のチェーンに賛成票を投じなければならないことから生じる。これは二重投票であり、二重投票は最大限のスラッシングを受ける条件になっている。もしこのケースで二重投票が起きたら、総ステークの3分の1は完全に破壊(Burn)されることになる。2024年8月現在、ステークされたETHの総量は33,668,680であり、101,905,056,57ドルになっている。仮に攻撃者が3/1のETHを掌握しようとした時、ざっくり340億ドルかかることになり、かつこれを同時に動かし二重投票を行う必要がある。