Zcashは、プライベート取引を既存の1秒約1件から大規模な決済ネットワークレベルへ拡大する計画の第一歩として、新たなクライアントソフト「Zakura」を公開した。
Zcash Foundationとは独立して運営される新型Zcashフルノード「Zakura」は、7月18日にサポート終了を迎えるレガシーのzcashdクライアントに代わるソフトウェアとして、Zebraのプルーニングと高速同期機能を取り入れたフォーク版としてリリースされた。
Zcash開発チームが目指すのは、VisaやMastercardのような世界的決済大手と肩を並べ、1秒あたり数万件の決済を高い検証性と強固なプライバシー保証のもとに処理することだ。
この目標実現の第一段階として、7月にバージョン1.0.0で登場したフルノードソフトウェアが「Zakura」である。Zcashのゼロ知識証明創設メンバーのSean Boweと、現Valar Group代表かつOsmosis共同創設者のDev Ojhaがメンテナンスを担い、資金は企業等ではなく個人からのZEC寄付により賄われている。
公式ブログでは、「我々の目標は世界の決済を支えることだ。MastercardやVisaは1秒あたり5万件以上の取引を処理しており、これが最低ラインだ。Zcashの既存暗号技術では、この処理量に対応するにはノードが毎秒500MB以上のスループットを確保しなければならず、現状の技術スタックでは困難だが、我々が開発する暗号技術がそのギャップを埋める」と述べている。
フルノードとは、Zcashのブロックチェーン台帳の完全コピーを保有し、すべてのトランザクションをネットワークのルールに基づき独立して検証するプログラムを指す。ZakuraはZcash Foundationの公式ノードソフトである「Zebra」から派生したフォークで、公式コードベースを起点に作り直されている。
コンセンサスルールとは、全ノードが共通に適用するルールセットで、ネットワーク全体で有効と認められるブロックやトランザクションを決定する。異なるルールを適用するノードはチェーンが分岐し、他ノードと同じチェーンを追わなくなる。
プルーニング、スナップショット、互換性
Zakuraは不要となった古いブロックチェーンデータを削除(プルーニング)し、ディスク使用量を大幅に削減する機能を持つ。そのため、完成済みのチェーンを約11ギガバイトに圧縮したスナップショットを公開でき、新規ノードは1ブロックずつ履歴を取得せずにこれをダウンロードすればよい。
これによりノード同期時間はゼロから約2分に短縮され、開発チームは「680倍の高速化」と説明している。
加えて、7月18日にサポート終了となる従来のzcashdクライアントのインターフェースを再現する互換モードを搭載し、既存ウォレットや取引所との統合も引き続き利用可能だ。
スループット目標とTachyonの役割
今回の開発の現実的な前提条件は、MastercardやVisaが処理する毎秒5万件超の取引が「目標ではなく最低ライン」であることだ。Zcashの現行暗号方式では、各プライベート取引に付随する大容量の証明をノードが検証しなければならず、ノードは毎秒500MB超のデータ処理が必要になる。
これは約10秒ごとにDVD1枚分のデータが継続流入する規模に相当し、現在のZcashソフトでは対応不可能である。しかし、このボトルネックの根本には未解決の技術課題がある。
Boweが推進するProject Tachyonは、再帰的証明という方法でこの課題を解決する。再帰的証明は数千件の証明の正当性を1件の証明が証明する仕組みであり、ノードが検証すべきコンセンサスデータ量を劇的に減らせる。
Tachyonの適用により、ノードは数千件分の証明の代わりに単一の証明だけを検証すればよくなり、チームによればノードのコンセンサスデータ要件は毎秒500MBから100MBに軽減される。これは慎重に設計された技術的に達成可能な目標だとされる。
ウォレットの課題とValarのPIR技術
ウォレットには別の問題が存在する。Zcashはトランザクションの受取人を秘匿しているため、ウォレットが自分の取引をサーバーに問い合わせる際、自身の情報を明かしてしまう可能性がある。したがってウォレットは全取引を取得して一つひとつ検証せざるを得ず、処理能力は1秒あたり1件程度に限られている。
このボトルネック解消に向け、Valar Groupはプライベート情報取得(PIR)技術に取り組んでいる。これにより、ウォレットはどのデータを要求したかをサーバーに知られずに必要な情報だけを効率的に取得可能となる。
高速ブロック伝播
高速ブロック伝播とは、新規生成ブロックをブロックチェーン全ネットワークに可能な限り速やかに配信することを指す。Zakuraはこの役割を担うソフトウェア層である。
大量の証明やウォレットトラフィックに対応するためには、新しいブロックを高速かつ確実にノード間で伝播させる必要がある。Zakuraには実験的に全てのブロックを0.5秒以内に全ノードへ伝播させるシステムが搭載されているものの、現時点ではデフォルトで無効化されている。
これら技術の実地検証は7月下旬に予定されている。Ironwood(NU6.3)はメインネットのブロック3,428,143で、米東部時間7月28日午前8時頃に有効化され、Zakuraはこのリリース当初より対応を備えている。
Boweは7月10日に、主要な関係組織は全てこのブロック高での対応に合意済みと述べ、取引所やウォレット提供者から準備期間の要請があったため、導入は当初の予定より1週間遅延したことを明かした。
Ironwood誕生の経緯
Ironwoodは、6月にZcashを危機に陥れかけた欠陥に対応するために開発された。シールドプールと呼ばれるネットワークのプライベート領域は、取引金額や参加者を隠し、ゼロ知識証明が計算作業の証明として機能している。
5月29日、Shielded LabsのTaylor Hornby研究者が、最新のシールドプールであるOrchardの証明回路に検証不可能なバグ(サウンディネス欠陥)を発見し、攻撃者がオンチェーンに痕跡を残さず偽のZECを無制限に鋳造できる可能性を指摘した。この欠陥はOrchard稼働開始の2022年5月以来存在していた。
開発者は6月2日に緊急対応を行いOrchardを停止、翌3日にNU6.2ハードフォーク(ブロック3,364,600)により修正回路を導入し復旧した。
しかし4年間の欠陥の存在は否定できなかった。ゼロ知識証明は検証済みである事実以上を明かさないため、Orchardの取引実態はオンチェーンに記録されず、偽ZECが全く生成されていないことを証明できないままであった。
Ironwoodはこの問題を解決するために設計された。シールドプールの境界に「回転障壁(turnstile)」を設置し、出入りできるZECの総量を制限する仕組みである。シールドプール内外の取引は内容を秘匿しつつも、移動するZECの量は公開済みという性質を活用している。
この仕組みにより、Orchardへの新規入金は封鎖され、回転障壁を経由しなければZECの出入りができなくなるため、偽造コインは実質的に隔離されることになる。
すなわち正当な残高は時間をかけて移動可能だが、偽造コインの循環供給参入は遮断され、供給過多を防止する。この設定によりトークンの供給信頼性の回復が図られている。
