原文編集:Deep Tide TechFlow
原文編集:Deep Tide TechFlow
ゼロ知識証明 (ZKP) は、今後 10 年間で根本的に変革をもたらすテクノロジーになりつつあります。 ZKP には、Web3 の内部と外部の両方にアプリケーションがあります。
Web3 では、ZKP はスケーラビリティとプライバシーという 2 つの主要なボトルネックを解決しています。
スケーラビリティの点では、トランザクションコストを削減してユーザーエクスペリエンスを向上させながら、イーサリアムを10〜100倍に拡張するために、いくつかのZKロールアップ、別名Validity Rollupsが開始されています。
プライバシーの観点から見ると、ZKP はプライベート トランザクションやトランザクション ハイブリッドの時代から、プライベート オンチェーン トランザクション、ID、検証済み資格情報などのより複雑で有用な領域に拡大しています。
ZKP 分野の将来に対する私たち自身のビジョンや、その未来を現実にするために必要なスタートアップなど、ZKP について語るべきことはたくさんあります。しかし、建設業者が ZKP からどのように利益を得られるか、またどこから始めるべきかについては、依然として一定の教育ギャップが存在します。
この記事は、開発者が実際に ZKP がどのように機能するか、またアプリケーションで ZKP を使用するかを理解するための重要なリソースをまとめることによって、このギャップを埋めることを目的としています。
ZKP は実際にどのように機能しますか?
ZKP は実際には、証明者が特定の情報を明らかにすることなく、特定の情報を知っていることを検証者に証明するための手法です。
実際には、少なくとも Web3 では、ZKP は別の方法で使用されることがよくあります。ほとんどのアプリケーションは、独自データの所有権を示すために ZKP を使用しません。代わりに、ZKP は検証可能性を通じて信頼性を高めるために使用されます。将来的には、ZKP がエンティティ間の標準的な信頼モデルになると予想されます。その理由は、ZKP の 2 つの主要コンポーネントである証明と検証が、信頼を求めるエンティティとそのユーザーの間で独自の対話スキームを可能にする方法で分離されているためです。
ZKP の主なコンポーネントは、証明の生成と証明の検証です。
証明の生成には、証明者に対する信頼の必要性を取り除くために使用される実行証明を生成するための大規模な計算の実行が含まれます。
代わりに、誰でも証明に対して簡単なプロセスを実行して、証明者が実行するプロセスの整合性を検証できます。
このメンタル モデルにより、企業はプロセス (多くの場合、複雑なプロセス) を実行できるようになり、顧客はプロセスを繰り返すことなく、そのプロセスの実行を信頼できるようになります。
例を挙げてみましょう:
ChatGPT などの大規模言語モデル (LLM) の 1 つを使用するために OpenAI の有料プランに登録しているとします。リクエストした特定のモデルをより単純で効率の悪いモデルに置き換えるのではなく、OpenAI が実際に実行することを信頼する必要があります。 OpenAI が、要求した特定のモデルを実際に実行したことを証明する少量のデータを送信できたらどうなるでしょうか?さらに、すべての独自の SaaS 製品が消費者にそのような保証を提供できたらどうなるかを想像してみてください。
この信頼の最小化が ZKP の約束です。たとえば、Web 2 では、ZKP はすべての顧客が同じアルゴリズムを使用することを保証することで、公正な信用評価や公正な保険請求処理を保証できます。 ZKP プロセスの実行は依然として比較的高価であるため、ZK テクノロジーはまだそのレベルに達していません。しかし、Modulus Labs のような企業が ZKP を使用して AI 推論を証明するテクノロジーを構築しているのを目にしています。
ZKP の技術要件
技術レベルでは、効率的な ZKP システムは次の目標を同時に達成する必要があります。
証明システムの計算の複雑さと遅延を軽減します。つまり、証明者が証明を効率的に生成し、最短時間で検証者に渡すことができます。
小さなプルーフサイズを実現します。
検証の効率化、つまり検証コストの最小化を実現します。
これらの主な目標に加えて、ユースケースに応じて、次のような二次的な目標が必要になる場合があります。
プライバシーを重視したアプリケーションでデータのプライバシーを保護するということは、プルーフ システムが、生成されたプルーフでは明らかにされないプライベートな入力を処理できることを意味します。
セキュリティの前提を簡素化するために、可能な限り信頼設定を避けてください。
証明の再帰は、検証コストをさらに削減するために実装されています。つまり、単一の検証で複数の証明を検証し、異なる証明間でコストを共有できます。
これらすべての目標を同時に達成することは困難です。ユースケースに応じて、ZKP システムはこれらの目標のいくつかを優先します。たとえば、SNARK 証明システムは簡潔な証明を生成できますが、証明の複雑さは増加します。一方、STRAK には効率的な証明器がありますが、証明サイズは SNARK の 100 倍になる可能性があります。 zk の研究者は、新しい証明メカニズムを発明することで 3 つの指標を同時に改善し、テクノロジーの最前線を開拓するために常に努力しています。
さまざまな校正システムの比較
ZKP 関連製品を構築する開発者にとって考慮すべき重要な問題は、基礎となる証明システムを選択する方法です。ZKP 証明の実装はいくつかあり、さらに多くのものが研究開発段階にあります。
ZKP バックエンドの選択は、技術的な側面だけでなく、ターゲット製品にも依存します。ロールアップ選択証明システムを例に挙げます。以下の表に示すように、出金時間、取引コスト、さらには分散化の程度など、ロールアップの主要な特性は主に ZKP プルーフ アーキテクチャによって決まります。
Rollup では、証明はビジネス側、つまり Rollup オペレーターを通じて行われます。 Starknet や Zksync などの既存の ZK ロールアップ (zkRU) は現在、集中型証明者を使用しています。したがって、証明を専用の証明者、つまりサービスとしての証明会社に委任して、証明者のパフォーマンスを向上させることができます。最適化されたソフトウェア/ハードウェアを特化して利用することで、イーサリアム互換の zkEVM の証明時間を数分に短縮できます。たとえば、Polygon zkEVM の証明時間は現在約 2 分です。ロールアップでは、数分の確認時間、つまり引き出しの遅延は許容されます。
一方、一部のユースケースでは、Tornado Cash トランザクションなどのプライベート トランザクションを生成するために、クライアント側で発生したことの証明が必要です。適切なユーザー エクスペリエンスを確保するには、校正時間が数秒を超えないようにしてください。また、ユーザーはウォレットを使用するブラウザーまたはリソースに制限のあるデバイスでこれらの計算を実行するため、高速証明者を備えた証明システムを選択することが重要です。良い例は、Zcash が 2018 年の Sapling アップグレードで証明システムを Groth 16 に変更したことです。これは、シールドされたトランザクションの速度を向上させる主な要因です。
比較証明システム
一般に、さまざまな証明システムのパフォーマンス、特に証明と検証の速度を正確に比較することは困難です。これは、パフォーマンスがライブラリの実装、選択した暗号曲線、および使用するハードウェアに依存するためです。
この投稿では、Mina チームが優れた高レベルの比較を提供しています。さまざまな ZK システム用のベンチマーク ツールを作成するための取り組みもいくつかあります。
この表は、SNARK 実装の優れた比較を提供し、Groth 16 から Plonk、Halo までの速度の進歩を説明しています。進歩にもかかわらず、STARK は依然として校正速度で勝っていますが、その代わりに校正サイズが大きくなります。この表では、証明システムの 2 つの重要な機能、つまりセットアップのトラストレス性と回路のプログラマビリティについても説明します。
回線作成の前処理フェーズについては、「トラストレスのセットアップ」セクションで説明します。一部の証明手法では、前処理段階で秘密の乱数を生成するために複数のパーティによる計算の参加が必要です。個々の参加者が正直であれば、生成された乱数は確かに秘密であり、前処理部分は安全です。このプロセスは、前処理段階の参加者の少なくとも 1 人が正直であると信頼するため、「信頼セットアップ」と呼ばれます。信頼設定が必要なことが弱点とみなされます。この意味では、STARK や Halo 2 のような新しい SNARK システムには利点があります。ただし、Aztec や Manta など、一部のプロジェクトでは、コミュニティに参加するためのツールとして信頼設定を使用しています。
プログラマビリティのセクションでは、証明システムが任意の計算を証明できるかどうかについて説明します。 SNARK は通常、あらゆる計算用にプログラムできます。ただし、証明効率は実行される計算の種類によって異なります。一部のタイプの STARK システムでは、異なるタイプの計算に適応するのは簡単ではありません。
製品に ZKP を活用するにはどうすればよいですか?
ZKP テクニックの恩恵を受ける製品を構築するのは簡単ではなく、適切なメンタル モデルが必要です。
このセクションでは、開発者が ZKP を製品に統合するための最適なアプローチを選択するためのフレームワークを提供します。製品のニーズ、エコシステムの調整、パフォーマンス要件に応じて、開発者が選択できるツールがいくつかあります。既存のコードを再利用できる開発者もいますが、アプリケーションを作成するために新しいドメイン固有言語 (DSL) を学習する必要がある開発者もいます。
パフォーマンス重視の zk アプリケーション
開発者は ZKP を使用して、ほとんどのアプリケーション計算をオフチェーン化し、証明のみをオンチェーンで公開することで、より高いスループット (TPS) またはより低い料金を達成できます。この場合、選択できるフレームワークがいくつかあります。各フレームワークは、アプリケーション コードのコンパイル、ZK 回路の生成、ZK 証明者の実装、およびターゲット エコシステム用の検証コードの生成のためのツール セットを提供します。これらのフレームワークは、EVM 中心と非 EVM という 2 つの主なカテゴリに分類できます。
EVMベースのZKフレームワーク
この ZK フレームワークのセットは、Rollup がイーサリアム上に構築されているため、イーサリアムと連携しています。トランザクションとアプリケーションは、Rollup の ZK 仮想マシン (zkVM) 上で実行されます。証拠は専用の認証者によって生成され、L1 に公開されてスマート コントラクトによって検証されます。
このグループの最初のサブセットは、EVM と互換性のある zkVM を実装したため、zkEVM という名前が付けられました。これらの目標は、イーサリアム開発者が Solidity や Hardhat や Foundry などの使い慣れたツールを使用できるようにすることで、摩擦を最小限に抑えることです。彼らは、EVM に適した回路と証明器を作成することで、ZK の複雑さを抽象化します。 Polygon zkEVM と Scroll の両方がこのバケットに含まれています。
このグループの 2 番目のサブセットは zkVM で、EVM とネイティブ互換性がありません。非互換性にもかかわらず、このグループは開発者が Solidity を使用できるようにする中間層を作成することで摩擦を軽減します。 Vitalik は、このタイプをタイプ 4 zkEVM と呼んでいます。 zkSync Era と Starknet はこのグループの良い例です。タイプ 4 zkEVM を使用する利点は、互換性のある EVM タイプよりも高いスループットと低いコストを提供できることです。そのため、オンチェーン ゲームやオーダーブック DEX などの高性能金融商品などの高スループット アプリケーションの構築に適しています。
使用できる Solidity コードには制限があるため、タイプ 4 zkEVM 用のアプリケーションを構築するには、より多くの開発者の労力が必要です。あるいは、開発者は、これらのフレームワークに対してネイティブ アプリケーションを開発するために、Cairo などの別の言語を学習することを決定することもできます。
非EVM zkフレームワーク
別のタイプのフレームワークは、競争力のある L1 または汎用コンピューティングをターゲットとするため、EVM アーキテクチャをターゲットとしないフレームワークです。それにもかかわらず、Sovereign などの特殊な SDK を通じて、イーサリアム上でアプリケーション固有の zkRU を構築するために使用できます。
ここには 2 つの方法があります。
開発者は、特定の VM アーキテクチャをターゲットとするコードを高級言語で作成し、後で ZK 回路にコンパイルします。
開発者は、Circom などのドメイン固有言語 (DSL) を使用して、ZK 回路を直接生成します。
前者の方法は開発者により適していますが、通常は回路が大きくなり、証明に時間がかかります。
プライバシーを重視した ZK アプリケーション
ZKP を使用してプライバシーに重点を置いたアプリケーションを開発することは、多くの場合、開発者にとってより困難な作業です。 ZKP を使用したプライバシー重視のソリューションの開発は、スケーラビリティ重視のソリューションよりも作業が少なく、学習曲線が急になります。既存のプライバシー アプリケーションは主に支払いのプライバシーに焦点を当てており、あまりプログラム可能ではありません。プライバシーとプログラマビリティを組み合わせるのは難しい課題です。プライバシーを重視したアプリケーションは、次の 2 つの実装オプションのいずれかに従います。
1. 汎用 L1 上に構築
L1 でプライベート支払いアプリケーションを有効にするには、ZKP ロジックをスマート コントラクトとして構築する必要があります。アプリケーションは多くの場合、ZKP を使用してプライベート資本プールを作成します。ユーザーはこれらのプライベートプールをミキサーとして使用し、元のウォレットにリンクされていない新しいウォレットに資金を提供します。この有名な例はトルネード キャッシュです。これらのアプリケーションの場合、証明はユーザーによって実行され、検証はオンチェーンで行われます。したがって、証明が速く、検証計算が簡単で、ユーザー情報が一切公開されない ZKP システムを使用することが重要です。
Universal Chain は高価な暗号計算用に最適化されていないため、主流ユーザーにとって検証コストが高額になることが多く、これらのアプリケーションの導入が制限されています。ガス料金を削減するために私事アプリケーションを Rollup に移行するという直感的なソリューションには課題が生じる可能性があります。この場合、プライベートトランザクション証明をロールアップ証明、つまり証明再帰に含める必要があり、イーサリアム上の現在の一般的な zk Rollup では証明再帰を実現できません。
2. プライバシーを重視した新たなL1/L2の構築
プライベートトランザクションとアプリケーションのコストを抑えるために、開発者はプライバシーに重点を置いた新しい L1 (例: Manta Network や Penumbra) または特化したロールアップ (例: Aztec) を構築する必要がありました。プライバシーを重視したチェーンのほとんどは、まだ汎用コンピューティングをサポートできず、プロフェッショナルな使用に重点を置いています。たとえば、Penumbra と Renegade はプライベート トランザクションに重点を置いています。 Aleo は、高級言語で書かれたプログラムをコンパイルして対応する ZK 回路を生成する専用言語 Leo を作成することで、独自のアプリケーション用のフレームワークを構築しています。アプリケーションの対話はオフチェーンで行われ、プルーフのみがプライベート トランザクションとしてオンチェーンで公開されます。アステカも同様の方向に進んでいますが、イーサリアム L2 と同じです。彼らは最近、デフォルトのスマート コントラクト言語として Noir を使用する汎用プライベート ロールアップの作成に重点を置くことを発表しました。
ZK加速
開発者がアプリケーションに適切な ZK 開発フレームワークを選択し、基盤となる証明システムを選択したら、次のステップはアプリケーションのパフォーマンスを最適化し、ユーザー エクスペリエンスを向上させる方法を見つけることです。これは通常、証明者のパフォーマンスと遅延の改善につながります。前述したように、ロールアップの場合、プルーフ時間が短いほど、L1 へのプルーフのコミットにおける遅延が少なくなり、したがって引き出しの遅延も少なくなります。ユーザーが生成したプルーフ、つまりプライバシー アプリケーションの場合、プルーフが高速化するということは、トランザクション生成時間が短縮され、ユーザー エクスペリエンスが向上することを意味します。
以前の記事で説明したように、証明プロセスを高速化するには、多くの場合、ソフトウェアの最適化と特殊なハードウェアが必要になります。特殊なハードウェアをめぐる競争はここ数カ月で激化し、複数の企業が競争に参入している。このセクションでは、ZK アクセラレーションの現状と、開発者がこのレースから利益を得る方法について説明します。
サービスとしての証明
ハードウェアアクセラレーション
ハードウェアアクセラレーション
zk 証明を効率的に生成する必要があるいくつかの L1 とロールアップのロールアウトにより、これらの証明を生成し、対応する報酬を獲得するための競争は激化するでしょう。これらのチェーンと L2 が多数のユーザーを引き付けることに成功した場合、プルーフの生成はビットコインのマイニング競争と同様の軍拡競争に発展する可能性があります。 ZKP アクセラレーションには、GPU、FPGA、ASIC など、さまざまなアプローチがあります。 Amber Group のこの記事では、これらのさまざまなオプションと、各実装オプションで直面する課題について詳しく説明しています。ただし、長期的には、概念実証用の生成用に最も効率的な ASIC を製造する企業が、zk に重点を置いたチェーンで大きな経済的優位性を得ることができます。
プルーフ・オブ・ZK 競争とビットコイン・マイニングの間には、強調する価値のある重要な違いがあることは注目に値します。ビットコインでは、マイニング プロセスは SHA 256 ハッシュという単純な計算に基づいています。この計算は固定されており、簡単には変更できないため、チップ設計の革新と最先端の半導体ノードへのアクセスに重点が置かれています。 ZKP の分野では、異なる証明プロトコル間で大きな意見が分かれています。 Plonk などの同じプルーフ バックエンドを使用する場合でも、ターゲット回路のサイズによって ASIC パフォーマンスに違いが生じる可能性があります。ビットコイン マイニングと ZKP 生成のこの違いにより、それぞれが異なる ZK バックエンドに特化した複数の勝者が生まれる可能性があります。
ZK 固有のチップ スペースに複数のプレイヤーが入っています。各参加者は、証明生成を改善する 2 つの主な演算、マルチスカラー乗算 (MSM) と数論的変換 (NTT) のいずれかに焦点を当てます。ステルス状態から抜け出した最後のプレイヤーは Cysic で、ETH デンバー期間中に 600 万ドルのシードラウンドを発表しました。 Cysic は、FPGA を使用して MSM を高速化することに重点を置いています。 FPGA の柔軟性により、さまざまな ZK システムをサポートできます。このアプローチは、1月に1500万ドルのシードラウンドを発表したUlventannaと似ている。 ZK チップ開発分野の他のプレーヤーには、GPU での MSM および NTT 計算の計算を高速化する Icicle と呼ばれるライブラリをリリースした Ingonyama のほか、Accseal、Snarkify、Supranational などがあります。このリストに加えて、Web3 分野では他にも不可解な企業や、有名なプレイヤーによる研究活動が存在します。後者の例には、FPGA を使用して MSM 計算を高速化するための Jump Crypto の CycloneMSM 実装や、MSM と NTT を高速化するための Jane Street の FPGA 実装が含まれます。
ZKP アクセラレーションの重要性が高まっているため、さまざまな実装の公正な評価を必要とするコンテスト (ZPrize など) が、この分野を前進させるための重要な場になりつつあります。 2022 年のトーナメントの賞金は 400 万ドルを超えます。
ZK プルーフを効率的に生成する必要があるいくつかの L1 とロールアップのロールアウトにより、これらのプルーフを生成し、対応する報酬を獲得するための競争は激化するでしょう。これらのチェーンと L2 が多数のユーザーを引き付けることに成功した場合、プルーフの生成はビットコインのマイニング競争と同様の軍拡競争に発展する可能性があります。 ZKP アクセラレーションには、GPU、FPGA、ASIC など、さまざまなアプローチがあります。 Amber Group のこの記事では、これらのさまざまなオプションと、各実装オプションで直面する課題について詳しく説明しています。ただし、長期的には、最も効率的な ASIC を製造する企業が、ZK に重点を置いたチェーンで大きな経済的優位性を得ることができます。
プルーフ・オブ・ZK 競争とビットコイン・マイニングの間には、強調する価値のある重要な違いがあることは注目に値します。ビットコインでは、マイニング プロセスは SHA 256 ハッシュという単純な計算に基づいています。この計算は固定されており、簡単には変更できないため、チップ設計の革新と最先端の半導体ノードへのアクセスに重点が置かれています。 ZKP の分野では、異なる証明プロトコル間で大きな意見が分かれています。 Plonk などの同じプルーフ バックエンドを使用する場合でも、ターゲット回路のサイズによって ASIC パフォーマンスに違いが生じる可能性があります。ビットコイン マイニングと ZKP 生成のこの違いにより、それぞれが異なる ZK バックエンドに特化した複数の勝者が生まれる可能性があります。
ZK 固有のチップ スペースに複数のプレイヤーが入っています。各参加者は、証明生成を改善する 2 つの主な演算、マルチスカラー乗算 (MSM) と数論的変換 (NTT) のいずれかに焦点を当てます。ステルス状態から抜け出した最後のプレイヤーは Cysic で、ETH デンバー期間中に 600 万ドルのシードラウンドを発表しました。 Cysic は、FPGA を使用して MSM を高速化することに重点を置いています。 FPGA の柔軟性により、さまざまな ZK システムをサポートできます。このアプローチは、1月に1500万ドルのシードラウンドを発表したUlventannaと似ている。 ZK チップ開発分野の他のプレーヤーには、GPU での MSM および NTT 計算の計算を高速化する Icicle と呼ばれるライブラリをリリースした Ingonyama のほか、Accseal、Snarkify、Supranational などがあります。このリストに加えて、Web3 分野では他にも不可解な企業や、有名なプレイヤーによる研究活動が存在します。後者の例には、FPGA を使用して MSM 計算を高速化するための Jump Crypto の CycloneMSM 実装や、MSM と NTT を高速化するための Jane Street の FPGA 実装が含まれます。
ZKP アクセラレーションの重要性が高まっているため、さまざまな実装の公正な評価を必要とするコンテスト (ZPrize など) が、この分野を前進させるための重要な場になりつつあります。 2022 年のトーナメントの賞金は 400 万ドルを超えます。
役立つ教育リソース
このセクションでは、開発者が ZKP スペースを理解するのに役立ついくつかの教育リソースをまとめました。このテーマに関しては優れたコンテンツが数多くあるため、これは決して完全なリストではありません。すべての zk リソースを含む包括的なリストは、こことここにあります。これは、開発者にこの分野での取り組みを設定し、知らせるフレンドリーな方法です。
ZKP の基本とその仕組みを理解したい人にとって、最初にチェックすべきリソースの 1 つは、ZK Hack の ZK ホワイトボード セッションです。特に Dan Boneh の 3 つの入門セッションは、数学をある程度理解している人にとってはハイレベルなものです。シリーズの残りの部分では、この分野の特定のトピックを扱います。
結論は
結論は
元のリンク
