将来的に5万TPSを目指す
暗号資産(仮想通貨)Zcash(ジーキャッシュ)向けの新たなフルノードクライアント「ザクラ(Zakura)」のバージョン1.0.0が、7月15日に公開された。
ザクラは、ジーキャッシュ財団(Zcash Foundation)が開発するフルノード実装「ゼブラ(Zebra)」をベースとする独立系クライアントだ。高速なブロックチェーン同期や、旧クライアント「zcashd」との互換機能などを特徴としている。
またZcashでは、シールドプール「オーチャード(Orchard)」で発見された偽造脆弱性を受け、流通するネイティブトークン「ZEC」の供給量を各利用者が独立して検証可能にするネットワークアップグレード「アイアンウッド(Ironwood/NU6.3)」が7月28日ごろに発動する予定だ。
なおシールドプールとは、Zcashで送金額や送受信者を秘匿したままZECを管理・移転するための領域を指す。暗号技術のゼロ知識証明(ZKP)が活用されている。
ザクラはゼブラのバージョン5.0.0からフォークして開発され、ジーキャッシュ財団とは独立して運用されている。
開発には、Zcashの共同創業者でプロジェクト・タキオン(Project Tachyon)を率いるショーン・ボウ(Sean Bowe)氏と、コスモス(Cosmos)系DEXオズモシス(Osmosis)の共同創業者でヴァラー・グループ(Valar Group)を率いるデヴ・オジャ(Dev Ojha)氏らが関わっている。
開発チームが公開したベンチマークによると、ザクラのメインネット同期時間は約4時間20分だった。ゼブラの約20時間46分と比べ、約4.8倍高速だったとしている。
また、プルーニング済みスナップショットを利用した場合は、約1分50秒でノードをブートストラップできたという。なお、これらは特定の試験環境における測定結果であり、端末性能や通信環境によって異なる。
ザクラにはzcashdのRPCとの互換モードも実装されており、zcashdに依存するウォレットや取引所、マイニングプールなどの移行を支援する。
zcashdの公式配布版は7月18日(協定世界時、日本時間では19日)、ブロック高3,417,100への到達に伴い自動停止した。また、7月28日ごろに予定されるNU6.3には対応しない。
ザクラの開発チームは、Zcashが世界規模のプライベート決済を支えるには毎秒5万件超の処理能力が必要とし、これを長期目標に掲げている。
ただし現時点でザクラがその処理能力を備えるわけではない。実現には、ノード性能の向上に加え、プロジェクト・タキオンやヴァラー・グループが進める暗号技術やウォレット基盤の刷新などが必要になるという。
Zcashでは5月29日、オーチャードシールドプールの暗号回路に、ZECを不正に生成できる重大な脆弱性が発見された。
脆弱性を発見したのは、Shielded Labs(シールデッド・ラボ)からセキュリティ調査を委託されていた研究者のテイラー・ホーンビー(Taylor Hornby)氏だ。
この脆弱性は、オーチャード回路に必要な制約の一部が不足していたもので、悪用された場合、公開台帳上で判別できない形で偽造ZECを生成できたという。
ホーンビー氏はローカルのテスト環境で攻撃が成立することを確認した。脆弱性はオーチャードが稼働を開始した2022年5月から存在していた。6月初旬には緊急修正が適用され、その後ネットワークアップグレード「NU6.2」で修正済みの回路が有効化された。
ただしオーチャードでは取引金額が非公開のため、修正以前に偽造が行われたかどうかを、過去のブロックチェーンデータから確定することはできない。一方で、脆弱性が実際に悪用されたことを示す証拠は確認されておらず、シールデッド・ラボは悪用の可能性は低いとの見方を示している。
この問題に対応するため、Zcashでは新たなシールドプール「アイアンウッド(Ironwood)」を導入するNU6.3が計画された。
NU6.3はブロック高3,428,143で発動予定で、現在のブロック生成ペースでは7月28日ごろに到達する見込みだ。
発動後、旧オーチャードでは新たな受け取りやプール内送金につながる出力の作成が停止される。保有資金は「ターンスタイル(turnstile)」と呼ばれる会計機構を通じて、アイアンウッドなどへ移動できる。
ターンスタイルでは、旧オーチャードから流出できるZECの総量が、それまでに正規に流入した量を超えないよう上限が設定される。
これにより、仮に偽造ZECが作られていた場合でも、正規の供給量を超えるZECが流通することを防止できる。上限を超える引き出しは拒否され、該当する資金は旧オーチャード内から移動できなくなる。
移行が進む中で、正規の流入総量を超えて資金を移そうとする有効な取引が確認されれば、過去に偽造が行われた可能性を示す証拠となる。一方、正規ユーザーによる移行が十分に進んでも超過が確認されなければ、脆弱性が悪用されなかったことを示す強い状況証拠になる。
ただしターンスタイルは、正規の資金と偽造された資金を識別する仕組みではない。そのため、偽造資金が先に移動された場合、後から移行する正規ユーザーの資金が動かせなくなる可能性は残る。
プロジェクト・タキオンとヴァラー・グループは、アイアンウッドの暗号回路について形式手法を用いた検証を進めている。
Zcashのノード運営者や取引所、マイニングプールなどは、NU6.3の発動前にアイアンウッド対応のノードソフトウェアへ移行する必要がある。
zcashdはNU6.3に対応しないため、ゼブラ6.0.0以降またはザクラ1.0.0以降などの対応済みクライアントを利用する必要がある。
旧オーチャード内に資金を保有するユーザーは、利用するウォレットの対応後に資金を移行することが推奨される。透明アドレスや旧世代のシールドプールであるサプリング(Sapling)など、旧オーチャード以外に資金を保有するユーザーは、オーチャード資金の移行操作を行う必要はない。
参考:リリース・ザクラ・Ironwoodリリースノート
画像:PIXTA