ブロックチェーンの性能について語ると、10人中9人の最初の反応はTPSです。残りの1人はたぶんレイテンシー(遅延)を見ているでしょう。でもDuskというプロジェクトは、ホワイトペーパーを引っ張り出して丁寧に読み解くと、取引速度よりも注目すべき「あるもの」が見えてきます——それは、ノード同士がどうやって“話す”か、です。

大丈夫、あのビッグベット(BTC)は下がったけど下げ幅は大したことない!

私がこう言うのは、TPSが重要じゃないからではありません。「計算が速い」と「伝送が速い」はそもそも別物です。実行層がどれだけ猛でも、コンセンサス設計がどれだけ巧妙でも、メッセージがノード・ネットワークのどこかで詰まる——提案が検証者に届かない、検証結果が ratification 委員会に戻らない——となれば、三段階のプロセスはただ待つだけになります。ブロックが数秒遅れるだけでも体験は落ちますし、ひどい場合は異なるノードが別々の候補ブロックを見てしまい、stale block の率がぐんぐん上がります。

DuskはKadcastという道を選びました。これは、Gossipのように「見た相手に片っ端から転送する」タイプのブロードキャストではなく、Kademlia DHTに基づく構造化オーバーレイネットワークです。ノードID同士のXOR距離がルーティングを決め、メッセージは木のように段階的に展開されます。聞くと学術っぽいですよね?でも中核のロジックは実は一言で済みます——各メッセージは行くべき道だけを通り、遠回りはしない。

ホワイトペーパーが引用している研究によると、KadcastはGossipに比べて帯域を25%〜50%節約できます。例えば、以前は100の帯域を消費していたものが、今はだいたい50〜75に抑えられる——ただし、この数字をそのまま「ノードのコストが半分に」みたいに翻訳してはいけません。マシンの構成は変わらない、証明計算も変わらない、ストレージのコストも変わらない。変わるのは、ネットワーク層における伝送コストだけです。とはいえ、ノードを運用する側にとって“帯域が半分”になることは何を意味するのでしょう? 同じ帯域条件ならより多くのノードを接続できるのか、それとも同じ規模のノード群でも帯域の費用で首が回らなくなりにくい、ということです。

この点をよく示す細かいディテールがあります。ノードのドキュメントでは、9000/udpがKadcast必須ポートとしてマークされています。Provisionerがコンセンサスに参加するには、この通路が到達可能である必要があります。一方で8080/tcpは任意で、問い合わせ用のインターフェースが必要な場合だけ開きます。つまりKadcastは、アーキテクチャ図の飾りではありません——ノードがコンセンサスに参加できるかどうか、その“門”に直接刺さっているのです。

BTCのピアツーピアでのブロードキャストに詳しい人なら、メッセージがどうやってノード・ネットワークを通るかが、決して小さな話ではないと知っています。 @Dusk $DUSK #dusk