Zcashのノード実装であるZakuraは、Bitcoinから引き継いだ従来のプロトコルに代わる、実験的なネットワーク層P2Pv2を発表しました。ChainCatcherによると、TestnetとRegtestでは現在、新しいプロトコルが従来のスタックと並行してデフォルトで稼働しています。一方、Mainnetでは引き続き従来のスタックがデフォルトです。ネイティブプロトコルのバージョンはp2p-v2/3です。
P2Pv2は、レイテンシ、スループット、または耐障害性の最適化を目的に設計された新しいプロトコルスタックを採用しています。1つのセキュアな接続で、複数の独立したサービスを利用できます。zakura-quicトランスポートはquinn-protoをベースとし、QUIC、TLS 1.3、Ed25519によるピア認証を使用します。Irohへの依存をなくし、TLSハンドシェイクの前に、ノードがソケットバッファー、フロー制御ウィンドウ、タイマー、接続の受け入れを設定できるようにします。接続はリレー、外部アドレスの検出、自動ポートマッピング、QUICによるNATトラバーサルを介さず、ピアのアドレスに直接確立されます。ノードは自身のID、アドレス、プロトコルの適用範囲、サービスIDに署名するため、クライアントは特定のサービスに対応するピアを見つけられます。
Zakuraによると、毎秒50,000件のトランザクションを処理するには、各フルノードが約100 MB/sのブロックデータを継続的に受信する必要があります。一方、NU7のブロックに含められるデータは25秒ごとに最大2 MBであるため、現在のネットワークスループットはその速度を1,000倍以上下回ります。Tachyonは、証明がブロックに入った後でそのサイズを縮小できますが、ネットワークでは依然として大量の個別トランザクションを伝播させる必要があります。
独立したzakura-header-chainコンポーネントはブロックヘッダーを検証し、競合するブランチを有向非巡回グラフに保持して、条件を満たす最良のチェーンを選択します。ブロック同期では、ピアからの実測配信速度に基づいてリクエストをスケジュールします。また、検証済みコミットメントツリーを使うことで、ブロックごとにSapling、Orchard、Ironwoodのツリーを再構築する必要がなくなります。Zakuraによると、P2Pv2には既知のサービス拒否リスクが依然としてあり、強固な信頼境界として使える段階にはまだ達していません。本番環境に向けた堅牢化、リソース制御、ブロックリレープロトコルの開発は現在も続いています。
