今回の台風「サデル」の影響で、私は空港で遅延便を待っていました。アナウンスは10分おきに「申し訳ありませんがご通知します」を繰り返し、「遅延は1時間の見込み」から「2時間」に変わり、最後にはそのまま「どうかしばらくお待ちください」となりました。隣の兄さんは腹を立ててコールセンターに電話しています。「結局、飛ぶんですか?」コールセンターは言いました。「天候の都合です。こちらも最新の指示待ちです。」その場でふと思ったのです――「最終結果をずっと待つ」というこの状態は、たくさんのブロックチェーンが抱えるファイナリティ(最終性)のジレンマそのものではないか?

ほとんどのPoSチェーンの取引承認は、言ってしまえば「様子見」です。より多くのブロックがつながるのを待ち、フォークの起きる確率が十分に低くなってから、「このお金は本当に入金された」と言えるようになります。問題は、どれだけ待つのか分からないことです。

Duskのホワイトペーパーで説明されているRolling Finality(ローリング・ファイナリティ)は、この問題を4段階の状態に分解します。Accepted(受理済み)、Attested(証明済み)、Confirmed(確認済み)、Final(最終)。Acceptedは成功の証拠があるだけで、低いラウンドのブロックに差し替えられる可能性がまだあります。Attestedは、それ以前のすべての反復が失敗したことを意味し、このブロックは同じラウンド内で置き換え不能。Confirmedは、その後ろに十分な数のブロックが続いたことで、祖先がロールバックされない限り基本的に安定。Finalだけが、完全に固定され、いかなる状況でも不可逆です。

この設計が必要であることを支えるデータもあります。理論上、1ブロックは最大50回の反復を実行できます。連続16回失敗すると、プロトコルは自動的に緊急モードへ入ります――すべてのタイムアウトが閉じられ、反復はブロックが生成されるまで無限に続きます。50回は最終的な設定上限ですが、緊急モードでは開かれた経路がさらに動き続けます。

正直に言うと、以前他のプロジェクトの「ファイナリティ」を見ていると、空港アナウンスのようで――言ったところで結局意味がない、と思っていました。Duskのこの4段階の状態のおかげで初めて、「ファイナリティは定量化され、予期できるものなんだ」と感じられました。AcceptedからFinalまで、各段階に明確な数学的条件があり、「待つしかない」の3語でごまかしていないのです。

今日のこのフライトは結局、4時間遅れて飛びました。もしブロックチェーンのファイナリティも、空港のように「待つ」に頼るのだとしたら、誰がそれを金融の決済に使えるでしょうか?Duskは「不可逆」を4つのステップに分け、それぞれに明確なルールを付けました。この確実性こそが、金融レベルに求められるものです。#dusk $DUSK @Dusk