セイウチが今日のストレージシステムにおける同期チャレンジの欠陥に挑む
分散ストレージシステムは、バリデーターが実際にデータを保存していることを確認するためにチャレンジに依存しています。シンプルなメカニズム:プロトコルはランダムに「ブロブXを持っていますか?」と尋ね、迅速な応答を期待します。問題は同期性です—これは、応答が予測可能な時間内に到着する場合にのみ機能します。
実際のネットワークはこの仮定を常に破ります。バリデーターはデータを正しく保存しているかもしれませんが、ネットワークの遅延、地域的な混雑、または短期間の停止を経験することがあります。同期チャレンジ方式の下では、この誠実なバリデーターは応答がないように見えます。プロトコルは正しい動作にもかかわらず罰します。一方で、本当に悪意のあるバリデーターは、応答を戦略的にタイミングを合わせて送信することができ、検出を逃れます。
同期チャレンジはひねくれたインセンティブを生み出します。システムは偽陽性を避けるためにタイムアウトを緩く設定しなければならず、これにより検出が遅くなります。あるいは、誤動作を迅速に捕まえるためにタイムアウトを厳しく設定し、これが一時的なネットワークの問題に直面している誠実なノードを罰します。どちらにせよ、システムは劣化します。
@Walrus 🦭/acc は同期チャレンジを完全に放棄します。その非同期検証は応答のタイミングに依存しません。チャレンジは、応答がミリ秒で到着しようが数日かかろうが有効です。バリデーターは戦略的な遅延で逃れることはできず、誠実なノードは自分の制御を超えるネットワーク条件によって罰を受けることはありません。
同期から非同期へのこのシフトは微妙ですが深遠です—それはプロトコルの仮定を実際のネットワークがどのように動作するかと一致させます。


