以前私は、コンセンサスとは複数のバリデーターが同じブロックを共同で確認するという“多数決の話”だと思っていました。ネットワークに参加するノードが多いほど、より信頼できるものだと決めつけていました。

Dusk Networkについて深く調べていくと、Succinct Attestationのある一つのディテールが私の考えを止めさせました。Duskは、すべてのプロビジョナーがすべての判断を処理するような方向でコンセンサスを設計していません。

最初は、SA(Succinct Attestation)はかなり単純だと理解していました。つまり、DUSKをステークしている人々が協力して提案し投票する、という理解です。しかし、それは重要な部分を見落としていました。SAは、コミッティ(委員会)に基づくProof-of-Stakeの仕組みであり、プロビジョナーにはさまざまな役割が割り当てられます。

さらに読み進めると、各ラウンドは3つのステップを経ることが分かります。Proposal、Validation、Ratificationです。あるプロビジョナーがブロックを提案し、次にあるコミッティがそれを検証し、その後別のコミッティが結果を確定してブロックを完了させます。

現在の視点では、私はもはやSAを単なる投票の方法とは見ていません。コンセンサスにおける責任の分担の仕組みとして捉えています。システムは、すべてのプロビジョナーがすべてを確認することを要求しません。タスクごとにグループを選び、ブロックがfinality(最終確定)に到達するための条件を設定します。

これによって、trust model(信頼モデル)の見方が変わりました。信頼は単にノード数にあるのではなく、コミッティの選び方やステークにあるのです。

それでも気になります。コンセンサスが選ばれたグループに依存するのであれば、信頼の実際の限界はどこにあるのでしょうか?
#dusk $DUSK @Dusk