ファイナリティとは何ですか?「オンチェーンに記録された」とはどう違いますか?
多くの人は、取引がブロックに取り込まれてブロックエクスプローラーで確認できるようになれば「完了した」と思い込みがちだが、それは暫定的な受理にすぎず、ファイナリティではない。ファイナリティとは、その取引を覆すコストが、攻撃者が合理的に試みることが割に合わない、あるいは技術的にほぼ不可能なレベルにまで達している状態を指す。その時点で初めて、その取引は真に終局的だと言える。
重要な違いは、ファイナリティが数学的に絶対的なものではなく、常に「覆すコストがどれだけ高いか」という問題である点だ。チェーンごとにこの閾値の定義方法は異なるため、同じ種類の取引でも、どのチェーン上にあるかによってファイナリティに達するまでの時間と確実性は大きく異なる。
ファイナリティはなぜ存在するのですか?どんな問題を解決していますか?
ブロックチェーンは本質的に、世界中に分散し互いに信頼し合わない多数のノードが共同で維持する台帳であり、短期的な意見の相違(フォーク)が発生するのは正常な現象である——2人のマイナーやバリデーターがほぼ同時に有効なブロックを生成することがあり、ネットワークが単一の「正しい」チェーンに収束するには一定の時間が必要となる。ファイナリティという概念がなければ、ユーザーは受け取った支払いが次の瞬間に覆されないという確信を永遠に持てず、取引所や加盟店、DeFiプロトコルも出金や清算を安心して処理できない。
ファイナリティは、「いつこの取引を安全に本物として扱えるか」を、永遠の不確実性のままにせず、定量化・計画可能な閾値に変えるために存在する。
ファイナリティは具体的にどう機能しますか?チェーンごとにどんな違いがありますか?
主に3つのモデルがある:
レイヤー2ネットワークでは通常、さらにもう1層が加わる:取引はL2上で「高速確認」を得られる場合があるが、バッチデータが実際にL1に書き込まれ、対応する検証プロセスを通過して初めて、L1レベルのファイナリティ保証を継承する。
ファイナリティは私にとってどんな意味がありますか?何に注意すべきですか?
取引所からの出金、大口のオンチェーン送金、DeFiプロトコルでのポジション清算を行う場合、ファイナリティの閾値は、安心して結果を信頼できるまでどれだけ待つべきかを直接左右する。合理的な待機時間はチェーンごとに、さらには同じチェーン上でも用途によって大きく異なる——PoW的な発想(数承認を待つ)をBFTチェーンに当てはめると必要以上に長く待つことになりかねず、逆に確率的ファイナリティのチェーンで確認数が少なすぎると、不必要な巻き戻しリスクを負うことになる。
また、L2上で「確認済み」と表示されていても、L1レベルのファイナリティを継承しているとは限らない点にも注意が必要だ。大口資金やクロスチェーン操作の場合は、L2インターフェース上のステータス表示だけに頼らず、その取引が実際に基盤となるL1に書き込まれ終局化しているかを確認しておくのが望ましい。
Ethereumはマージ後にPoSへ移行し、ブロックは約2エポック(約12〜13分)のバリデーター投票プロセスを経て「ファイナライズ済み」状態に達する。一度ファイナライズされると、それを覆すにはネットワーク全体でステーキングされているETHの少なくとも3分の1を破壊しなければならず、純粋な確率的な確認待ちを、定量化可能な経済的攻撃コストに置き換えている。
確率的ファイナリティの利点は追加の投票調整メカニズムが不要でシンプルに実装できることだが、欠点は極めて小さいながらもゼロではない巻き戻しリスクが常に存在し、必要な安全性に応じて確認時間が長くなる点である。決定的/チェックポイント型ファイナリティの利点は、一度終局すれば明確で検証可能な保証が得られることだが、欠点は追加の合意形成ラウンドとバリデーター間の調整コストが必要であり、バリデーターの大量離脱などネットワーク異常時には終局化の速度に影響が出る可能性がある点である。