多くの人が <keep 0-9]{11}>$DUSK </keep> の秒級ファイナリティSAを見て、最初の反応はコンセンサス・アルゴリズムがどれだけ速いかを確かめに行くことでした。しかし竹竹は、ネットワーク層を分解してみると、実際に速度を引っかけているのはコンセンサスそのものではなく、ブロックのメッセージを極めて短時間で全ネットワークに行き渡らせられるかだと感じました。仮に伝播に5秒かかるなら、コンセンサスがさらに速くなっても、旧状態への投票を少し速めるだけです。
Kadcastはこの問題を解決するために存在します。従来のGossipのように、ノードがメッセージを受け取った後にランダムで近隣へ転送するのではなく、Kademlia DHTの構造化されたトポロジを利用し、各ノードがXOR距離によって明確なルーティング関係を形成できるようにしています。簡単に言えば、Gossipは大きなスーパーマーケットで呼びかけて、みんなが聞こえるけれども同じ声が重複して多くが冗長になるのに対し、Kadcastは目次を作って最短ルートに沿って物を届けるようなものです。
違いは実際の効果に非常にはっきりと表れます。Kadcastではブロードキャストを構造化された転送に分解し、各層で明確に委任範囲が定義されるため、同じ1つのブロックが重複して伝達される確率が下がります。結果として、メッセージの衝突や帯域の無駄も減少します。ホワイトペーパーで言及されている帯域削減25-50%、古いブロックの低減10-30%の背景は、実は同じことを反映しています。ネットワーク層が大量の冗長な転送でカバー率を稼ぐのではなく、構造化ルーティングによって伝播効率を高めるのです。
構造化ルーティングにもリスクがあります。経路が明確であるほど、観測者にメッセージの発信元を追跡されやすくなります。Kadcastではここに、署名付きメッセージと発信元アドレスの混同を加えています。署名によってメッセージが改ざんされていないことを確保し、発信元の正当性は検証可能にします。発信元アドレスの混同によって、外部の観測者が1つのメッセージを特定のノードに直接対応づけにくくなります。さらに、k-bucketは安定したノードを優先的に保持するため、短時間に大量に流入した偽ノードが既存のルーティング状態を押しのけにくく、これはSybil攻撃への耐性にとっても防御線になります。
竹竹はKadcastは「単に速く伝える」だけのネットワークプロトコルではなく、SAを実際に成立させるための前提条件に近いと考えています。<keep 0-9]{11}>#dusk </keep> が証券トークン化のようなシーンで秒級ファイナリティを実現するには、コンセンサス層だけを高速化しても不十分で、ブロック伝播、ルーティング効率、冗長性への耐性、安全防護を同時に整える必要があります。ネットワーク層は主役ではありませんが、最終性速度の上限を決めるのはネットワーク層です。
竹竹がみんなに <keep 0-9]{11}>@Dusk </keep> の秒級ファイナリティを推理してみせます。なぜ鍵がネットワーク層にあるのでしょうか?