Dusk の合意について話しているとき、よく話を逸らされるポイントに気づきました。多くの人は「何秒でブロックが生成されるか」だけを見て、それを高速版 PoS だと急いで断じてしまいます。でもホワイトペーパーを読み返すと、SBA という仕組みの本当に凝っている点は「速さ」ではなく、他人が手を出せない高さまで「不正のコスト」を引き上げることだと分かりました。

まずはしきい値(閾値)署名の部分から説明します。従来の検証では、多くのノードがそれぞれ投票を行い、その結果を全員へブロードキャストします。n 個のノードがお互いに確認し合うため、通信量は O(n²) になります。ノード数が増えるほどネットワークが詰まり始めるのはそのせいです。ところが Dusk は違います。全ての検証者に最初に合意してもらい、集約公開鍵を共同生成します。そして分割署名の発想で、皆が同じブロックに対して協調して署名します。各ノードは外へはほんの少しのデータだけを送信し、集まり次第それらを結合して完全な BLS 署名を作ります。

これにより通信量は直接 O(n) にまで下がり、ブロック生成の確認待ち時間も目に見えて短くなります。研究室でネットワークシミュレーションを回したときも、数十ノードの段階でこの差は特に顕著でした。署名検証にかかる時間はほぼ一定で、参加者数とは大きく切り離されていました。

しかし、私が本当に面白いと感じたのは後半――許可制と問責制です。#dusk は誰でも気軽に検証者になれるわけではありません。まず許可(参加)プロセスを通過する必要があります。さらに中に入った後も、Slashing(スラッシング)メカニズムが保険のように備わっています。不正を働けば、担保(ステーク)が罰として没収されるのです。これは PoS の中でもかなり隠れた穴を塞ぐ試みでもあります。いわゆる「シビル攻撃における“無コスト検証”」です。

つまり、攻撃者が大量の偽アカウント(偽の身分)を用意して、誠実な検証者の横で「無料の付け足し」になるように振る舞います。作業もしないし金も払わないので、外から見ると分散化されているように見える。でも実際には権力がこっそり集約されていくのです。許可制は大量の偽アカウントをまずふるい落とし、問責制がさらに、実際に金と担保が中に押し込まれていることを保証します。この2層が重なることで、不正を働くコストは「ゼロ」ではなく、はっきりと計算できる損失になります。@Dusk $DUSK

当初は、この設計は「安定を求める」ためだと思っていましたが、後でそれが「ゲーム理論で信頼に値段をつけている」ものだと気づきました。合意形成とは、時に保守的であることこそが、実は大胆さなのです。