「最終性(finality)」が話題になると、多くの人の頭に浮かぶのは「何個のブロックが積み上がったら変更できなくなるのか」という“やり切り(ワンカット)”の発想だと思います。Duskのrolling finality(ローリング・ファイナリティ)の設計を読んでみると、その考え方はあまりにも粗っぽいことがわかりました。

この仕組みでは、ブロックの状態を4段階に分けます:accepted、attested、confirmed、final。上へ上へと段階を踏んでいき、非白か黒かの話ではありません。低いラウンドのブロックでも「失敗証明(failed proof)」が十分に揃わなければ、後続のブロックによって置き換えられます。しかし、確認済みブロックが積み上がるほど分岐(フォーク)の確率は指数関数的に下がり、最後には元に戻せないfinal状態にロックされます。この設計の本質は、「安心するまでどれくらいか」を固定の数字としてではなく、1本の曲線として定量化している点にあります。

特に気になっているのは、どうやって投機(アービトラージ/オポチュニスティック行動)を防ぐのかというところです。たとえば誰かがわざと自分の番で“撮る(承認する)”のではなく、後続のラウンドでブロック報酬を拾おうとするようなケースです。プロトコルには、投票報酬、追加ポイント、次ラウンドのブロック生成資格の剥奪といった複数の対抗策がそれぞれ用意されていて、さらにイテレーション回数の上限も設けています。つまり、ゲーム理論上の穴を一つずつ塞いでいるのであって、単に“罰金を払わせればいい”のような単純な話ではありません。

とはいえ、細部まで見ていくほど引っかかる点もあります。このメカニズムは、委員会の規模が十分に大きく、ネットワーク通信が十分に速いという前提の上に成り立っています。もし将来、ネットワーク分断が起きたり、メッセージ伝播の遅延が伸びたりしたら、「確認ブロックが素早く累積する」という仮定自体が先に崩れてしまわないでしょうか。秒単位のfinal性(最終性)と、極端なネットワーク条件下での頑健性。この2つを本当に両立できるのか、現時点では完全に安心できる答えを見つけられていません。

@Dusk #dusk $DUSK
秒级最终性够用了,鲁棒性问题是过度担心
0%
极端网络条件没验证过,我持保留态度
0%
更想看到真实的分叉/攻击场景压力测试数据
0%
0 投票 • 投票は終了しました