By Mohamed Fouda and Qiao Wang
ZKPs in Web 3: Now and the Future
We discuss the current and potential applications of zero-knowledge proofs in Web3 and what is needed to achieve…medium.com
ZK(Zero Knowledge technology、ゼロ知識技術)は、Web3だけでなく他の産業をも変革する可能性を持った技術として知られています。ZKは、様々なユースケースを可能にする汎用的な技術であり、私たちは、現状、この技術が可能にするユースケースについて把握する初期段階にいます。ZKのユースケースの中には、トランザクションのプライバシーやデータの圧縮、つまりロールアップなど、実際のアプリケーションを既に誕生させているものもあります。しかし、ZKを主流にするために必要な潜在的なユースケースや技術の進歩はまだ多く存在しています。
この記事では、まずZKP(ゼロ知識証明)を活用した様々なアプリケーションをレビューします。次に、この技術の進化の可能性や、いくつかのスタートアップのアイデアに焦点を当てて説明していきます。これらのアイデアに取り組んでいるビルダーは、Allianceのファウンダーズコミュニティに連絡をとり、参加に向けて申請することもお勧めします。Allianceは、このベクトルで構築しているファウンダーやビルダーをサポートし、資金提供することを目的とした組織です。
ZKPは、その発明以来、暗号分野において強力な足場を築いてきました。ZKPは、あるエンティティがある情報を知っていること、あるいはあるタスクを正しく完了したことを、その情報を公開したりタスク実行の詳細を示したりせずに、世界中の人に証明できるようにする仕組みです。
ZKという魔法の数学は、生成されたZKPを検査するだけで、その知識や実行完了への「信頼」を可能にします。そしてZKPの最初の、そして最も活用されているユースケースは「プライバシーに重点を置いた暗号ネットワーク」でした。ZKPはまた、ZKロールアップの概念を導入し、イーサリアムのL2トランザクションの妥当性証明をイーサリアムのL1上で行うためにも使用されています。さらに、ZKPは様々なプロジェクト内で新たなニッチな用途も誕生させています。
ZKPはその特性から、特に真実の源泉として機能する中央機関を持たない分散型ネットワークにおいて「プライバシー」を可能にします。ZKPは、Web3ユーザー(Prover)が、ネットワークの検証者(Verifiers)に対して、取引額や送金側・受取側のアドレスなどの詳細を明かすことなく、自分の取引が有効であること、つまり十分な残高の存在を証明することを可能にします。
ZKPは当初、Zcashネットワークにおいてシールドされた、プライベート決済をサポートするために開発され、その後他のネットワークに拡張されていきました。
現在の主なプライベート決済ネットワークの実装は以下の通りです:
プライバシーに特化したL1:Zcash、Horizon、Aleo、Iron Fishなど。
汎用チェーン上のプライバシースマートコントラクト: Tornado Cash
プライバシーに特化したL2:Aztec
ZKPにおける他の主要なユースケースとして、基礎となるL1上のロールアップの有効性証明の生成が挙げられます。汎用のロールアップはスループットを最適化することで、より多くのTXの証明を可能にしますが、ZKPのプライバシー機能は利用されません。このトレードオフでは、ZKPはL2トランザクション実行の正しさの証明としてのみ機能します。
一般的な関数には効率的に証明できないものがあるため、任意のスマートコントラクトの正しい実行を証明するZKPの生成は困難となります。この問題を解決するには、基盤となるZK回路を使用して効率的に証明できる特殊なVMを実装する必要があります。この複雑さもあり、ZKのロールアップはまず、支払いや、ZKPを簡単に生成できるDEXなどのアプリケーションのサポートから始まりました。この例としては、zkSync 1.0やLoopringが知られています。その後、時を経てStarknet、zkSync 2.0、Polygon zkEVM、Scrollなど、汎用のzkEVM実装が市場に出回るようになってきています。
現在、全てのzk rollupはEthereum上にありますが、Bitcoinを含む他のチェーン上でもzk rollupの実装が可能です。ただし、Bitcoinへのロールアップの実装には、オペコードを変更し、チェーンをハードフォークする必要があることから、Bitcoinのコミュニティから歓迎されないケースが想定されます。
プライバシーに特化したアプリケーションやロールアップ以外でも、ZKPは他のブロックチェーン・プロトコルの中で他の用途を生み出しています。
このセクションでは、これらのユースケースを取り上げます:
Mina
Minaは、ブロックチェーンの状態を小さなサイズ(〜22KB)に圧縮するためにZKPを使用しています。これを実現するために、Minaは再帰的ZKP、つまり他のZKPのZKPを使用しています。Minaのネットワークでブロックが生成されると、zk-SNARKを使用してこのブロックの証明を生成し、その有効性を保証します。新しいブロックは以前のブロックを参照するため、新しいブロックのZKPは一定のサイズを保ちながら以前のすべてのブロックを検証する仕組みです。Filecoin
FilecoinはZKPを使用して「ストレージプロバイダが保存を主張するデータを正しく保存していること」を確認します。このプロセスは、複製証明(PoReb)と呼ばれます。このプロセスでは、ストレージプロバイダはZKPを生成して、データの一意のコピーを保存していること、つまり、他のプロバイダが維持するコピーを参照していないことを証明します。ZKPは、一定レベルの冗長性と可用性を実現したいFilecoinユーザーに対して保証を提供します。さらに、証明のサイズは保存データよりもはるかに小さいため、ZKPを使用することによって、ストレージプロバイダーの帯域幅の要件を減らすことを可能にしています。Celo Plumo
Celo Plumoは、ZKPを利用して、携帯電話などのリソースが限られたデバイスで利用できる超軽量なネットワーククライアントの作成を可能にしています。クライアントは軽量でありながら、アクセスする状態の正しさを保証することができます。Dark Forest
Dark Forestは、ゲーム分野におけるZKPの最も代表的なアプリケーションとして知られています。ZKPの利用としてはプライバシーのユースケースに合致するものですが、これを不完全情報ゲームの作成に応用したことは、決済ネットワークにおけるZKPの金融応用を超えたユニークなユースケースと言えるでしょう。
2016年まで、ZKPは小さな学会で議論される研究テーマの一つに過ぎませんでした。Zcashの創業チームが、Zcashネットワークでシールド/プライベートトランザクションをサポートするために、ZKPの変種zk-SNARKの最初の生産可能な実装を作成したときに、全てが変わりました。実際のユースケースができたことで、ZKPへの関心が高まり、その結果、冒頭のセクションで説明した多くのプロジェクトの基礎となる、より優れたZKPバリエーションが生まれました。しかし、ZKPが主流となるためには、さらなる開発が必要です。
この技術をさらに向上させる方法を理解するために、AIなどの類似の技術から学ぶことができます。多くの側面で、ZKP技術はAI技術と類似しており、同様の軌跡をたどることが予想されます。ZKPと同様に、AIも多くの問題を解決できる有望な技術としてスタートしました。しかし、初期のAIアルゴリズムは能力に限界があり、利用可能なハードウェアの能力をはるかに超える計算複雑性を持っていました。そのため、AIの応用には時間がかかり、実用的でなかったため、AIの研究開発はほとんど研究所の中だけに留まっていました。その後、ディープ・ニューラル・ネットワーク(DNN)などの新しいアーキテクチャの発明や、GPUの活用による実行速度の向上によって、徐々に改良が続けられていきました。その結果、2012年には、最も有名なコンピュータビジョンのコンテストであるImageNetで大差をつけて優勝したAlexNetのようなブレークスルーがもたらされました。AlexNetは、GPT-3、Dall.E 2、Stable Diffusionなど、現在の驚異的なAIアプリケーションの誕生につながるAIの時代の幕開のきっかけとなったのです。
現在のZKPの状況は、初期のAIの状況に似ており、まだ開発途上の有望な技術であり、計算量が多く証明に時間がかかります。AIの進歩に学ぶことで、ZKP技術が飛躍するために解決しなければならないボトルネックを特定することができるでしょう。
AIがLeNet-5→AlexNet→Resnet-50→Transformerと進化してきたように、ZKPのアルゴリズムも開発の段階を経て、大幅な性能向上が見込まれます。この点については、既に進展が見られています。2011年にzk-SNARKsを導入して以来、より高度なアルゴリズムが開発されています。2018年、Starkwareの創業者たちは、信頼できる設定を必要とせず、証明の生成時間が短いZKPアプローチであるSTARKを開発しました。この技術は、StarkNetを含むStarkwareのいくつかの製品のベースとなっています。
ZKPの進展は、2019年のPLONKの導入へと続くものとなりました。このSNARK実装は、1つの信頼できるセットアップを繰り返すことなく、多くのアプリケーションで使用できるようにするものです。PLONKは、Aztec、Mina、Celoなど、複数のWeb3プロトコルで使用される実装の開発に拍車をかけるものとなりました。
ZKPは計算量が多いため、証明に時間がかかるという大きな欠点があります。例えば、最近発表されたPolygonのzkEVM実装では、500kガスの計算の証明を生成するのに64コアのサーバで5分程度を要します。ZKPの証明時間を改善することは、ZKP技術を主流にするために重要なことです。この目標を達成するには、AIと同様に、ソフトウェア実行エンジンの最適化と専用ハードウェアの利用が必要となります。
ソフトウェアの最適化
ZKP生成処理の多くは超並列処理であり、GPUなどの並列処理によってZKP計算を高速化することができます。これは、CUDAのような専用のGPUライブラリを利用することで、Nvidia GPU上でのZKPの計算を高速化することができるものです。各プロジェクトは、それぞれが異なるZKPアルゴリズムを使用しているため、内部でこれを開発しようとしています。ここで注目すべき例は、GPUを使用して証明プロセスを高速化するGroth16アルゴリズムのFilecoinの実装です。また、EdgeswapがGPUを使用してPLONKの証明時間を75%短縮した例もあります。
専用ハードウェア
GPUによるZKP証明時間の短縮には限界があるため、FPGAやASICなどの専用ハードウェアを使用するという選択肢もあります。FPGAは、専用チップ(ASIC)の製造というコストのかかる作業を行う前のハードウェアプロトタイピングプラットフォームとして検討されることが多くあります。また、FPGAやGPUとFPGAを組み合わせたハイブリッドソリューションは、ロールアップやプライバシー重視のネットワーク向けのZKPを高速化する上で、短期的・中期的に重要な役割を果たす可能性があります。
しかし、ZKPの技術が今後、私たちが期待するレベルまで成長すれば、最終的にはASICがこの市場を獲得するために出現してくることが想定されます。現在、ZKPのハードウェアアクセラレーションは、ZKPのアルゴリズムが多様で断片的であるため、十分に対応できていません。しかし、適切なビジネスモデルがあれば、一部の企業が、技術スタックのこの部分の開発と収益化に注力してくるもの考えています。
ZKPの潜在能力を引き出すには、いくつかの抽象化レイヤーとツールを構築する必要があります。これらの抽象化レイヤーは、ZKPアプリケーションの開発プロセスを簡素化し、各開発者グループが得意とする分野に集中できるようにするために必要なものです。
例えば、アプリケーション開発者は、ZK回路の低レベルの詳細やその動作について心配する必要はありません。AIに例えてみましょう。AIの大きな進歩は、何層もの抽象化を行うことで可能になりました。これらの抽象化を利用すれば、AIアプリケーションの開発者は、NNのアーキテクチャやハードウェアリソースの割り当てについて心配する必要はなくなります。TensorFlowやPyTorchのようなフレームワークは、これらの低レベルの詳細をすべて抽象化しています。
ZKの開発スタックは、AIスタックほどにはまだ発達していません。しかし、これらの抽象化を構築するための努力は行われています。スタックの一番下には、PLONKやSTARKといった低レベルのZKPライブラリが存在します。その上の層には、Noirのような高水準言語が、基礎となるZK暗号を抽象化し、アプリケーション開発者がアプリケーションロジックに集中できるようにしようとしています。Circomは、複雑なZKバックエンドの作成とZKPベースのアプリケーションの開発の両方に使用できるため、この2つのレイヤーの間に位置するもう1つの人気のあるZKP言語となっています。
Web3におけるZKPの抽象化のもう一つの例はStarkWareのCairo言語で、開発者はボンネットの下でSTARK証明を使用する一般的なスマートコントラクトを実装することができるようになります。さらなる抽象化を進めるNethermindのWarpツールでは、Solidityの開発者がSolidityのコードを直接Cairoに変換できるようになっています。Warpを使用することで、Uniswap V3のコードをCairoにトランスパイルすることができ、元のSolidityコードに最小限の変更を加えるだけでこれを可能にしています。
ZKPの進展の可能性に関する議論に基づいて、私たちはZKP関連のスタートアップのアイデアをいくつか特定し、今後の起業家の方たちと一緒に検討したいと考えています。これらのアイデアは、ツーリングとアプリケーションの2つのグループに分類されます。
1.高水準の開発フレームワーク
AIにおけるTensorflowやPyTorchと同様に、高レベルのZKP開発フレームワークは、アプリケーションレベルでのイノベーションの実現に不可欠です。これらのフレームワークには、次のようなものが必要となります:
基礎となるZKPバックエンドの複雑さを抽象化する。
様々なZKPバックエンドとハードウェア環境(例:CPUとGPU)をサポートする。
効率的なデバッグとテストを可能にする。
例題やチュートリアルを含む豊富な開発環境を提供する。
Ethereumエコシステムで最も近い例として「Hardhat」や「Foundry」がありますが、これらはすぐにzkEVMやZKPをサポートすることはないでしょう。その代わり「Cairo」のような既存の抽象化の取り組みが、いずれこのスペースを埋めるために進化するかもしれません。
2. zkロールアップSDK
zkロールアップは人気が高まっており、この技術はゲームや高スループットのDeFiプロトコルのためのアプリケーション固有のL2を可能にします。zkロールアップは、主に実行と決済の処理を行い、コンセンサスとデータの可用性はL1が処理することになります。しかし、アプリケーション固有のzkロールアップを立ち上げることは、まだ非常に複雑です。今後、カスタムzkロールアップを起動するための開発者フレンドリーSDKを提供するプロジェクトが、真のビジネスニーズを解決し、開発ツールボックス、開発者サービス、シーケンササービス、サポートインフラを提供することによって、価値あるビジネス機会を生み出していくことが想定されます。
3. ZKPハードウェアアクセラレータ
特定のユースケースをターゲットとして、早期段階で市場のリードを築くことができた専門的なハードウェア企業が、大規模な価値を持つ企業になっていくことが歴史上判明しています。これは、NvidiaがAIハードウェアに特化することで、北米で最も価値のある半導体企業になったときに、AIについて当てはまりました。また、Bitcoinのマイニング分野でも同様で、Bitmain、Canaan、Whatsminerといった企業が、ASICマイナーに特化することでユニコーンになったことも同様です。効率的なZKPハードウェアアクセラレータを設計・構築する企業も、今後同じ軌跡をたどることになるでしょう。
1.ZKブリッジと相互運用性
ZKPは、クロスチェーンのメッセージングプロトコルの有効性証明の作成に使用でき、クロスチェーンメッセージの宛先チェーンでの迅速な検証が可能になります。これは、zkロールアップが、基礎となるL1上で検証される方法と似ています。しかし、クロスチェーンメッセージングでは、署名スキームや検証される暗号関数が送信元と送信先のチェーンで異なる可能性があるため、複雑さがより高くなるのです。
2.ZKオンチェーンゲームエンジン
Dark Forestは、ZKPが情報不完全なオンチェーンゲームを可能にすることを実証しました。これは「プレイヤーの行動をプレイヤーが公開すると決めるまで非公開にする」ことが可能にするもので、よりインタラクティブなゲームを設計するために非常に重要な部分となります。オンチェーンゲームが成熟するにつれて、ZKPはゲーム実行エンジンの一部になることが予想されます。高スループットのオンチェーンゲームエンジンにプライバシーを統合することに成功した場合、この機能が生む機会は非常に大きなものとなるでしょう。
3. アイデンティティ・ソリューション
ZKPはアイデンティティ領域でも、いくつかの機会を可能にすることができます。ZKPは、レピュテーションや、Web2とWeb3のIDの接続に使用することができます。現在、Web2とWeb3のアイデンティティは基本的に分離されています。Cliqueのようなプロジェクトは、オラクルを使用してこれらのアイデンティティを接続しています。ZKPは、Web2とWeb3のIDを匿名でリンクできるようにすることで、このアプローチをさらに一歩進めることができます。これによって、Web2やWeb3のデータを使ってドメイン固有の専門知識を証明できる人が、匿名でDAOのメンバーになれるといったユースケースが可能になります。また、借り手のWeb2ソーシャルステータス(Twitter のフォロワー数など)に基づいた無担保のWeb3融資といったユースケースも誕生するでしょう。
4. 規制遵守のためのZKP
Web3では、仮名(匿名)のオンラインアカウントによる金融システムへの参加ができるようになりました。この意味で、Web 3は大規模な金融の自由と包摂を可能にしていると言えます。Web 3の規制強化が進む中、ZKPは仮名性を崩すことなく、コンプライアンスに利用することができます。ZKPは、ユーザーが制裁対象国の国民または居住者でないことを証明するために使用でき、また、認定投資家であることや、その他のKYC/AML要件の証明にも使用できます。
5. ネイティブWeb3のプライベートデットファイナンス
TradeFiのデットファイナンスは、成長中のスタートアップ企業が、追加のベンチャーキャピタルを調達する必要なく、成長を加速させたり、新しいビジネスラインを開始するために利用するサービスとして活用されています。Web3 DAOや仮名企業の台頭は、Web3ネイティブのデットファイナンスの機会を生み出します。例えば、ZKPを使用することで、DAOや仮名企業は、借り手の情報を貸し手に明かすことなく、成長指標の証明に基づいて、競争力のある金利で無担保融資を確保することができます。
6. プライベートDeFi
金融機関は、取引履歴やエクスポージャーを非公開にすることが基本的に多いものです。これは、チェーン分析の継続的な進歩によって、オンチェーンのDeFiプロトコルを使用する場合、満たすことが困難となります。解決策としては、プロトコル参加者のプライバシーを保護する、プライバシーに特化したDeFi製品の開発が挙げられます。これを実現しようとしているプロトコルの1つがPenumbraのZSwapです。また、Aztecのzk.moneyは、透明性の高いDeFiプロトコルへのユーザーの参加を難読化することによって、プライベートなDeFi環境上での利回り獲得の機会を提供しています。効率的でプライバシーに焦点を当てたDeFi製品の実装に成功したプロトコルは、機関参加者から大きな額の運用の確保が期待できるでしょう。
7. ZKPを活用したWeb3広告
Web3は、閲覧履歴、プライベートウォレットのアクティビティなど、ユーザーのデータの所有権の保護を可能にするとともに、ユーザーの利益のためにデータのマネタイゼーションを可能にします。データのマネタイズはプライバシーと矛盾する可能性がある中で、ZKPは、個人データのどの側面を広告主やデータアグリゲータに明らかにするのかを制御する仕組みを提供することができます。
8. プライベートデータの共有とマネタイズ
私たちのプライベートデータの多くは、適切な主体に共有されれば、高い社会貢献性を持つものとして影響力を与えることができます。例えば、個人の健康データをクラウドソーシングして、研究者が新薬を開発するのに役立てることが考えられます。また、個人的な財務記録を規制当局や監視当局と共有することで、汚職を特定し、罰則を科すといった活用もできます。ZKPは、このようなデータの個人的な共有と収益化を可能にします。
9. 分散型情報組織
ZKPは、分散型の諜報組織を生み出すことができます。そこでは、諜報員、データ調査員、スパイが、互いに交流したり知り合ったりすることなく、ネットワークの一部になることができるのです。参加者はZKPを利用して、ある情報データに関する知識を証明した上で、そのデータと引き換えに私的な支払いを受けることができます。また、この仕組みは、参加者のプライバシーを維持しながら、収集データを充実させたり解釈したりするための協調的かつ複合的な方法を促進することが可能にします。
10. プライベートガバナンス
DAOとオンチェーンガバナンスの普及によって、Web3は直接参加型の民主主義に近づきつつあります。現在のガバナンスのモデルの大きな欠陥は、参加者の非プライバシー性という部分です。ZKPを活用することによって、ガバナンスの参加者は、自身が何に投票したかを明らかにすることなく投票することができます。さらに、ZKPはガバナンスの提案の可視性をDAOメンバーに制限することができ、DAOは競争上の優位性を構築することを可能にします。
この記事では、ZKP技術が、Web3分野で最も革新的な技術の1つであることをいくつかの側面から説明しました。この技術は、画期的なプロトコルや企業のための新たな革新的な機会を提供します。Allianceは、このムーブメントの中心的存在になりたいと考えており、このベクトルで構築を進める起業家や開発者を支援し、資金提供することを目的としています。
本記事についてフィードバックをいただいたShumo Chu、Carter McAlister、Adam Porterに感謝します。
その他のリソース
Hardware Acceleration for Zero Knowledge Proofs
Decentralized Speed: Advances in Zero Knowledge Proofs
Zk-SNARKs: updatable setups on the blockchain
この記事は原作者の許可を得て翻訳されました:
Takeshi@Think Globally, Act Locally