Zcash開発チームZakura、量子コンピュータによる取引履歴の紐付け防ぐ新方式を提案

Zcashのスワップ取引向けに新たなプライバシー保護方式

暗号資産ジーキャッシュ(Zcash:ZEC)のフルノード開発チーム「ザクラ(Zakura)」が、将来の量子コンピュータによる取引履歴の紐付けを防ぐ新たなウォレット技術「ワンタイムivk(one-time incoming viewing key)」を10月18日に提案した。

この技術は、クロスチェーンスワップサービス「ニア・インテンツ(NEAR Intents)」の利用時に公開されるZcashのシールドアドレスを主な保護対象とするものだ。Zakuraのエンジニア、アダム・タッカー(Adam Tucker)氏が技術ブログで設計を公開した。Zcashのコンセンサスルールを変更せず、ウォレット側で導入できるという。

Zcashのシールド取引では、送金先アドレスなどがブロックチェーン上に直接公開されない。一方、同一アカウントから生成された複数のアドレスは、共通の受信用閲覧鍵(incoming viewing key:ivk)に紐付いている。現在のコンピュータでは、アドレスからivkを逆算することは事実上不可能とされている。

将来、十分な性能の量子コンピュータが登場した場合、公開されたアドレスからivkを復元し、同じアカウントの過去の入金履歴や金額、メモなどを読み取れる可能性がある。

Zakuraが特に問題視するのがNEAR Intentsを利用したスワップだ。

ZECを他チェーンの資産に交換する際、返金先を示す「refundTo」に利用者のシールドアドレスが指定される。このアドレスは返金が発生しなくてもNEARのパブリックブロックチェーンに記録される。また、他チェーンの資産をZECに交換する場合も受取先アドレスが公開される。

支出鍵を維持したまま閲覧鍵を分離

今回提案されたワンタイムivkは、スワップごとに異なる受信用閲覧鍵を生成することで、公開アドレスから他の取引履歴が紐付けられるリスクを抑えるものだ。

スワップごとに新しいZcashアカウントを作る方法も考えられるが、資金が複数アカウントに分散するほか、ハードウェアウォレットの署名機能にも制約がある。

そこでZakuraは、鍵導出に使われるランダム化値「rivk」を、用途を示す情報とインデックスに基づいてスワップごとに導出する方式を提案した。既存の鍵導出仕様「ZIP 32」と同様のハッシュ構造を使用し、支出に関わる鍵「ak」と「nk」は変更しない。

これにより、利用者は従来どおり同一アカウントの支出鍵で資金を管理できる。一方、量子コンピュータによって公開アドレスからivkが復元されても、原則として閲覧できるのはそのアドレスに届いた送金情報に限られるという。

また、鍵の増加に伴うウォレット復元時の負担を軽減するため、プライベート情報検索(Private Information Retrieval:PIR)も活用する。サーバーに照会対象のアドレスを知らせずに関連する取引を検索し、復元時の処理量を抑える設計だ。

ZECを受け取るスワップでは、入金履歴がなくNEARにも提示されていないアドレスが、例えば30個連続した時点で探索を終了し、復元時の処理量を抑える。

ソフトウェアウォレットへの導入を予定 

Zakuraによると、同チームのオープンソースライブラリを利用するソフトウェアウォレットでは、今後数週間以内にワンタイムivkを統合できるようになる見通しだ。「ヴィゾール(Vizor)」などが対象となる。

同チームは今回の方式を、Zcashのアップグレード計画「プロジェクト・タキオン(Project Tachyon)」が実装されるまでのプライバシー対策と位置付けている。

なお、NEARはすでに耐量子署名方式「ML-DSA」に対応しているが、これは主にアカウントの署名を保護するもので、スワップ時に公開されるZcashアドレスから取引履歴が紐付けられる問題を直接解消するものではない。

参考:Zakura「Quantum Unlinkability for Zcash Swaps」・ Zakura「Engineering」・ NEAR「Quantum-Safe NEAR: The Roadmap to Post-Quantum Security」
画像:PIXTA

関連ニュース

関連するキーワード

この記事の著者・インタビューイ

髙橋知里

「あたらしい経済」編集部 記者・編集者