Succinct Attestationが実際にイテレーションをどう解決するのか掘り下げているうちに、失敗パスについての何かがずっと引っかかっていました。

まず思い浮かぶのは当然の話です。委員会がブロックを検証し、承認して終わり。ですがDuskのプロトコルは「有効」だけを追跡しているわけではなく、アテステーションを追跡しています。そして、(ブロックが*有効ではない*とする)失敗アテステーションは第一級の結果であり、おまけではありません。

私が考えていなかったのはここです。有効なブロックを却下することは、受理することより構造的に簡単です。有効なブロックをラティファイするには、委員会が実際に状態遷移、署名、候補全体を検証しなければなりません。一方で失敗アテステーションに到達するには、委員会メンバーが「何かおかしい」こと、つまり不正なデータ、悪い提案者、タイムアウトなどを上回る多数で合意すればいいだけです。こちらの確認ははるかに浅い。

そのため機械的には、悪いブロックは、良いブロックがバリデーションをクリアするよりも早くクォーラム閾値を通過できてしまう可能性があります。ネットワークが無効ブロックを優遇しているからではなく、拒否には正しさを再構築する必要がなく、「欠けている」ことを検知するだけでよいからです。これは欠陥ではありません。そもそもイテレーションが存在する理由の一つで、素早く失敗させて次のプロビジョナーにスロットを渡し、ブロック時間を予測可能に保つためです。

ただし、委員会サイズがステーク分布によって変わるとき、この非対称性が何を意味するのかをまだ検討中です。拒否が速いことが攻撃面になるのか、それとも設計によるレジリエンスなのか?

@Dusk #dusk $DUSK