
Alliance Dao:ZKPを活用してWeb3製品を構築する方法は?
TechFlow厳選深潮セレクト

Alliance Dao:ZKPを活用してWeb3製品を構築する方法は?
ゼロ知識証明(ZKP)は、今後10年間で根本的な変革をもたらす技術となりつつある。

執筆:Mohamed Fouda、Qiao Wang、Alliance Dao
翻訳:TechFlow
ゼロ知識証明(ZKP)は、今後10年間の根本的な変革をもたらす技術になりつつある。ZKPは、Web3内外での応用が期待されている。
Web3において、ZKPは2つの主要なボトルネック——スケーラビリティとプライバシー——を解決している:
-
スケーラビリティ面では、複数のZK Rollup(Validity Rollupとも呼ばれる)が登場し、イーサリアムのスケールを10〜100倍に拡大すると同時に、トランザクションコストを削減してユーザーエクスペリエンスを改善している。
-
プライバシー面では、ZKPは秘匿取引やトランザクションミキシングの時代から、より複雑かつ実用的な領域へと進化している。例えば、秘匿されたオンチェーン取引、匿名性のあるID、検証済み資格情報などが挙げられる。
ZKPに関する情報は非常に多く、我々自身もZKP分野の将来像やそれを実現するためのスタートアップについてビジョンを持っている。しかし、開発者がZKPからどのように恩恵を受け、どこから始めればよいかについては、依然として教育的なギャップが存在する。
本稿の目的は、重要なリソースをまとめることでこのギャップを埋め、開発者がZKPの実際の動作原理を理解し、自らのアプリケーションにZKPを活用する方法を指導することにある。
ZKPは実際にはどのように機能するのか?
ZKPとは、証明者が特定の情報を知っていることを、その内容を明かすことなく検証者に証明する技術である。
実際に、少なくともWeb3の文脈では、ZKPの使用方法はしばしば異なる。多くのアプリケーションは、ZKPを使って専有データの所有権を示すわけではない。むしろ、ZKPは検証可能性を通じて信頼を高めるために使われている。我々は、ZKPが将来的にエンティティ間における標準的な信頼モデルになるだろうと予測している。その理由は、ZKPの2つの主要要素——証明と検証——が、信頼を求める主体とそのユーザーとの間に独特なインタラクションを可能にする形で分離されつつあるからだ。

ZKPの主な構成要素は、証明生成と証明検証である。
-
証明生成とは、大量の計算を実行してプロセスの正当性を示す「証明」を生成する工程であり、これにより証明者に対する信頼の必要性がなくなる。
-
一方、誰でもその「証明」に対して簡単な処理を実行することで、証明者が正しいプロセスを実行したかどうかを検証できる。
このような心理モデルにより、企業は(通常は複雑な)プロセスを実行しつつ、顧客がそのプロセスの実行結果を再実行せずに信頼できるようになる。
例を挙げよう。
あなたがOpenAIの有料プランに登録し、chatGPTなどの大規模言語モデル(LLM)を利用しているとする。あなたは、OpenAIが本当に要求されたモデルを実行していると信じなければならない。もしOpenAIがあなたに少量のデータを送り、確かに要求されたモデルを実行したことを証明できたらどうだろうか?さらに、すべての専有SaaS製品が消費者に対してこのような保証を提供できるとしたら?
こうした信頼最小化こそがZKPの約束である。たとえばWeb2において、ZKPはすべての顧客が同じアルゴリズムを使用することを保証することで、公平な信用評価や公正な保険請求処理を実現できる。ZK技術はまだその段階に達していないが、Modulus Labsのような企業が、AI推論の正当性をZKPで証明する技術を開発している。
ZKPの技術的要件
技術的には、効率的なZKPシステムは以下の目標を同時に達成する必要がある:
-
証明システムの計算複雑度と遅延を低減し、証明者が効率的に証明を生成し、最短時間で検証者に伝達できるようにする。
-
小さな証明サイズを実現する。
-
効率的な検証を実現し、検証コストを最小限に抑える。
これらの主要な目標に加えて、ユースケースによっては以下の副次的な目標も必要となる:
-
プライバシー重視アプリケーションでは、データのプライバシーを保護することが求められる。つまり、生成された証明内で秘密の入力情報が漏れないようにする。
-
可能な限り信頼設定(trusted setup)を避け、セキュリティ前提を単純化する。
-
証明の再帰性(recursive proofs)を実現し、検証コストをさらに削減する。つまり、1回の検証で複数の証明を検証でき、コストを分散できるようにする。
これらすべての目標を同時に達成することは困難である。ユースケースに応じて、ZKPシステムは一部の目標を優先する。たとえば、SNARK証明システムは簡潔な証明を生成できるが、証明の複雑度が増加する。一方、STARKは証明者が効率的だが、証明サイズがSNARKより最大100倍大きくなる可能性がある。研究者たちは新たな証明メカニズムを考案し、3つの指標を同時に向上させるべく、技術のフロンティアを押し広げ続けている。
異なる証明システムの比較
ZKP関連製品を開発する上で、開発者が考慮すべき重要な点は基盤となる証明システムの選択である。いくつかのZKP実装が存在し、さらに多くのものが研究開発中だ。
ZKPバックエンドの選択は技術的側面だけでなく、ターゲット製品にも依存する。たとえばRollupにおける証明システムの選定を考えてみよう。引き出し時間、トランザクションコスト、さらには非中央集権性といったRollupの特徴は、主にZKP証明アーキテクチャによって決まる。下表を参照。

Rollupでは、証明はビジネス側、つまりRollupオペレーターによって行われる。現在の既存ZK Rollup(zkRUs)であるStarknetやZksyncは集中型の証明者を使用している。そのため、証明性能を高めるために、証明を「証明即サービス(Proof-as-a-Service)」企業に委託できる。専門化と最適化されたソフトウェア/ハードウェアの活用により、EVM互換のzkEVMでは証明時間を数分まで短縮できる。たとえばPolygon zkEVMの証明時間は現在約2分である。数分の証明時間(=引き出し遅延)は、Rollupにとって許容範囲内である。
一方、Tornado Cashの取引のように、ユーザー側で証明が行われるユースケースもある。このような秘匿取引を生成する場合、合理的なユーザーエクスペリエンスを確保するため、証明時間は数秒以内に収める必要がある。また、ユーザーはウォレットやリソース制限のあるデバイス上でブラウザ内で計算を行うため、高速な証明を生成できる証明システムを選ぶことが重要になる。良い例として、Zcashは2018年のSaplingアップグレードで証明システムをGroth16に変更しており、これは遮蔽取引の速度向上の大きな要因となった。
証明システムの比較
通常、特に証明・検証速度に関して、異なる証明システムの性能を正確に比較するのは難しい。なぜなら、ライブラリの実装、選択された暗号曲線、使用されるハードウェアに依存するからだ。
Minaチームはこの記事で優れたハイレベルな比較を行っている。また、さまざまなZKシステム向けにベンチマークツールを作成しようという取り組みも進行中である。

この表はSNARK実装の良好な比較を提供しており、Groth16からPlonk、Haloへと進化してきたスピード面の進展を紹介している。進歩はあるものの、STARKは証明速度において依然優れているが、その代償として証明サイズが大きくなる。また、この表は証明システムの2つの重要な特性——信頼設定不要性と回路のプログラマビリティ——についても述べている。
信頼設定不要性の欄では、回路作成の前処理フェーズについて述べている。一部の証明技術では、マルチパーティ計算(MPC)を通じて前処理フェーズで秘密の乱数を生成する必要がある。参加者のうち1人でも正直であれば、生成された乱数は真正に秘密とされ、前処理部分は安全である。このプロセスは「信頼設定」と呼ばれ、前処理フェーズの参加者の少なくとも1人が正直であることを信頼する必要があるためだ。信頼設定が必要とされるのは弱点と見なされる。この意味で、STARKや新しいSNARKシステム(Halo 2など)が優位性を持つ。しかし、AztecやMantaのようなプロジェクトは、信頼設定をコミュニティ参加を促す手段として利用している。
プログラマビリティの欄では、証明システムが任意の計算を証明できるかどうかについて述べている。SNARKは通常、任意の計算をプログラムできる。ただし、証明の効率は実行される計算の種類に依存する。一方、特定のタイプのSTARKでは、異なる計算タイプへの適応が容易ではない。

自社製品にZKPを活用するには?
ZKP技術の恩恵を受ける製品を構築するのは簡単ではなく、正しい心理モデルを構築する必要がある。
本節では、開発者が自社製品にZKPを統合する最適な方法を選択できるよう、フレームワークを提供する。製品の要件、エコシステムとの整合性、パフォーマンス要件に応じて、開発者が利用できるツールは複数存在する。一部の開発者は既存コードを再利用できるが、他の開発者は独自のドメイン固有言語(DSL)を学ぶ必要がある。

パフォーマンス重視のzkアプリケーション
開発者は、アプリケーションの大部分の計算をオフチェーンに移し、チェーン上には証明のみを公開することで、高いスループット(TPS)または低い手数料を実現できる。この場合、利用可能なフレームワークは複数ある。各フレームワークは、アプリケーションコードのコンパイル、ZK回路の生成、ZK証明者実装、対象エコシステム向けの検証コード生成のためのツール群を提供している。これらは大きく2つのカテゴリに分けられる:EVM中心型と非EVM型。
EVM中心のZKフレームワーク
このグループのZKフレームワークはイーサリアムと整合し、Rollupとして構築される。トランザクションおよびアプリケーションはRollupのZK仮想マシン(zkVM)上で実行される。証明は専用の証明者によって生成され、L1に投稿され、スマートコントラクトによって検証される。
このグループの最初のサブセットはEVMと互換性を持つzkVMを実装したものであり、「zkEVM」と呼ばれる。これらは、イーサリアム開発者がSolidityやHardhat、Foundryといった馴染みのツールを使えるようにすることで摩擦を最小化することを目指している。EVM用の回路と証明器を作成することで、ZKの複雑さを抽象化している。Polygon zkEVMやScrollがこのカテゴリーに属する。
このグループの第2のサブセットは、ネイティブにEVMと互換性のないzkVMである。互換性がないものの、このグループは中間層を設けることでSolidityの使用を可能にしており、摩擦を軽減している。Vitalikはこれをtype-4 zkEVMと呼んでいる。zkSync EraやStarknetがこのグループの好例である。Type-4 zkEVMを使用する利点は、EVM互換型よりも高いスループットと低い手数料を提供できることにある。これにより、オンチェーンゲームや注文帳型DEXといった高スループットアプリケーションの構築に適している。
Type-4 zkEVM向けにアプリケーションを構築するには、使用可能なSolidityコードに制限があるため、より多くの開発努力が必要になる。あるいは、開発者はCairoのような別の言語を学び、これらのフレームワーク向けにネイティブアプリケーションを開発することもできる。

非EVM zkフレームワーク
もう一つのフレームワークタイプは、EVMアーキテクチャをターゲットにしていないものであり、競合するL1や汎用計算をターゲットとしている。それでも、Sovereignのような専用SDKを使用することで、イーサリアム上にアプリケーション固有のzkRUを構築できる。
ここでは2つのアプローチがある:
-
開発者が高水準言語でコードを書き、特定のVMアーキテクチャ向けにコンパイルし、後にZK回路に変換する。
-
開発者がCircomなどのドメイン固有言語(DSL)を直接使用してZK回路を生成する。
前者のアプローチは開発者にとって使いやすいが、通常はより大きな回路となり、証明時間も長くなる。

プライバシー重視のZKアプリケーション
ZKPを使ってプライバシー重視アプリケーションを開発することは、通常、開発者にとってより困難な課題である。スケーラビリティ重視のソリューションと比べて、ZKPを使ったプライバシー重視ソリューションの開発事例は少なく、学習曲線も急峻である。既存のプライバシー応用は主に支払いの秘匿に焦点を当てており、プログラマビリティが限定的である。プライバシーとプログラマビリティを両立させることは困難な課題である。プライバシー重視アプリケーションは以下の2つの実装オプションのいずれかに従う:
1. 汎用L1の上に構築する
L1上でプライバシー支払いアプリケーションを有効にするには、ZKPロジックをスマートコントラクトとして構築する必要がある。このアプリケーションは通常、ZKPを使ってプライベート資金プールを作成する。ユーザーはこれらのプライベートプールをミキサーとして使い、元のウォレットと関連付けられない新しいウォレットに資金を供給する。有名な例はTornado Cashである。これらのアプリケーションでは、証明はユーザーが実行し、検証はオンチェーンで行われる。したがって、高速な証明生成、簡単な検証計算、そしてユーザー情報を一切漏らさないZKPシステムの使用が極めて重要である。
汎用チェーンは高価な暗号計算に最適化されていないため、検証コストは一般ユーザーにとって高額になりやすく、これが採用の妨げとなっている。ガス代削減のためにプライベートトランザクションアプリケーションをRollupに移すという直感的な解決策は、課題を伴う。この場合、プライベート取引の証明はRollupの証明に含まれる必要があり(証明の再帰)、現時点のイーサリアム上の汎用zk Rollupでは証明の再帰が実現できない。
2. プライバシー重視の新規L1/L2を構築する
プライベート取引およびアプリケーションのコストを削減するため、開発者は新たなプライバシー中心のL1(例:Manta Network、Penumbra)または専用Rollup(例:Aztec)を構築せざるを得ない。ほとんどのプライバシー重視チェーンはまだ汎用計算をサポートできず、特定用途に特化している。たとえば、PenumbraやRenegadeは秘匿取引に特化している。Aleoは、高水準言語で書かれたプログラムをコンパイルして対応するZK回路を生成するための専用言語Leoを作成し、プライベートアプリケーションのフレームワークを構築している。アプリケーションとのやり取りはオフチェーンで行われ、証明のみがプライベート取引としてオンチェーンに投稿される。Aztecも同様の方向性を目指しており、イーサリアムL2として位置づけられている。最近では、Noirをデフォルトのスマートコントラクト言語とする一般的なプライベートRollupの構築に重点を置くと発表した。
ZKアクセラレーション
開発者が自社アプリケーションに適したZK開発フレームワークを選び、基盤となる証明システムを決定した後は、次にアプリケーションのパフォーマンスを最適化し、ユーザーエクスペリエンスを改善する方法を探る必要がある。これは通常、証明者のパフォーマンスと遅延の向上に帰着する。前述の通り、Rollupの場合、証明時間の短縮はL1への証明提出の遅延を短くし、引き出し遅延も短縮する。ユーザー生成の証明(=プライバシーアプリケーション)の場合、より速い証明はトランザクション生成時間が短くなり、ユーザーエクスペリエンスが向上する。
以前の記事でも述べたように、証明プロセスの高速化には通常、ソフトウェア最適化と専用ハードウェアが必要となる。ここ数ヶ月で、専用ハードウェアの競争が激化し、複数の企業がこの分野に参入している。本節では、ZKアクセラレーションの現状と、開発者がこの競争からどのように利益を得られるかを説明する。
Proof-as-a-Service(証明即サービス)
これまでZK証明を実行する標準モデルは、マルチコアCPUおよび/またはGPUを搭載した強力なサーバーを使用し、FilecoinのBellpersonなどの最適化されたオープンソースライブラリを利用して証明性能を高めるものだった。このモデルでは、開発者が証明インフラを維持する運用の複雑さが増す。この複雑さを解消し、より高度な専門化を可能にするのが「証明即サービス(PaaS)」モデルである。このモデルでは、特定のZK回路またはユースケース向けに証明を生成する必要がある主体が、専有ソフトウェアを用いて証明計算を実行するプロバイダーに接続する。一部の企業は特定のユースケース向けに証明を専門生成できる。たとえば、Axiomはイーサリアム上でHalo 2証明による履歴データを生成するシステムを構築している。他の参加者はPlonkやHalo 2といった特定のZKPバックエンドに特化し、独自の最適化を施してより迅速かつ効率的な証明計算を実現する。=nil Foundationはさらに一歩進んで、ZKP計算市場を構築している。このProof Marketでは、証明購入者が生成したいZKPを入札し、証明生成者がマッチングして履行する。Minaも「Snarketplace」という同様の概念を持っているが、Minaネットワークに必要なSNARK証明に限定されている。
ハードウェアアクセラレーション
効率的にzk証明を生成する必要がある複数のL1およびRollupが登場するにつれ、これらの証明を生成し、対応する報酬を得る競争はますます激しくなるだろう。これらのチェーンやL2が多数のユーザーを獲得すれば、証明生成はビットコインマイニングのような軍拡競争に発展する可能性がある。ZKPアクセラレーションにはGPU、FPGA、ASICなど複数のアプローチがある。Amber Groupのこの記事は、それぞれの選択肢と実装ごとの課題についてよく考察している。しかし長期的には、証明生成用に最も効率的なASICを生産する企業が、zk重視チェーン上で著しい経済的優位性を持つだろう。
ZK証明競争とビットコインマイニングの間には、注目すべき重要な違いがある。ビットコインでは、マイニングプロセスはSHA256ハッシュという単純な計算に基づいている。この計算は固定されており、変更が難しく、そのためチップ設計の革新や最先端半導体ノードへのアクセスが焦点となる。一方、ZKP分野では異なる証明プロトコル間で顕著な分裂がある。たとえ同じPlonkのような証明バックエンドを使用しても、対象回路のサイズによってASICの性能が異なる可能性がある。この違いにより、ZKP生成ではビットコインマイニングとは異なり、異なるZKバックエンドに特化した複数の勝者が生まれる可能性がある。
ZK専用チップ分野には複数のプレイヤーが参入している。各プレイヤーは証明生成の2つの主要操作——多スカラー乗算(MSMs)と数論変換(NTT)——のいずれかの高速化に注力している。最後にステルスモードを脱したのはCysicで、ETH Denver期間中に600万ドルのシード資金調達を発表した。CysicはFPGAを使用してMSMsを高速化することに注力している。FPGAの柔軟性により、異なるZKシステムをサポートできる。このアプローチは、1月に1500万ドルのシード調達を発表したUlventannaと似ている。ZKチップ開発分野の他の参加者には、Ingonyama(GPU上でMSMとNTT計算を高速化するIcicleライブラリを公開)、Accseal、Snarkify、Supranationalなどがいる。このリスト以外にも、Web3分野の大物プレイヤーによる非公開企業や研究活動がある。例としては、Jump CryptoのFPGAによるMSM計算高速化実装「CycloneMSM」、Jane StreetのFPGAによるMSMおよびNTT高速化実装などがある。
ZKPアクセラレーションの重要性が高まるにつれ、異なる実装を公正に評価する競技会(例:ZPrize)がこの分野の発展を推進する重要な場となっている。2022年の大会では賞金総額が400万ドルを超えた。
TechFlow公式コミュニティへようこそ Telegram購読グループ:https://t.me/TechFlowDaily Twitter公式アカウント:https://x.com/TechFlowPost Twitter英語アカウント:https://x.com/BlockFlow_News












