ゼロ知識証明(ZKP)の詳細な説明

中級11/28/2023, 11:05:05 AM
ゼロ知識証明(ZKP)は、ある当事者(証明者)が、他の情報を開示することなく、別の当事者(検証者)にステートメントが真実であることを証明できるようにする暗号化方式です。 一般的なZKPソリューションには、zk-SNARKS、zk-STARKS、PLONK、およびBulletproofsが含まれます。 本記事では、これら4種類のZKPソリューションを紹介し、その長所と短所を分析します。

経歴

ゼロ知識証明(ZKP)は、1980年代初頭にS.Goldwasser、S.Micali、C.Rackoffによる「The Knowledge Complexity Of Interactive Proof Systems」というタイトルの論文で初めて紹介された暗号技術です。 もともとは理論モデルとして考案されましたが、証拠を明らかにすることなく数学的ステートメントを検証するという課題に取り組むことを目的としていました。 この概念は、従来の暗号化技術の限界に挑戦し、機密情報を処理するための新しいアプローチを提供するため、学術界で広く注目を集めました。

時が経つにつれて、ZKPは抽象的な理論的概念から、さまざまなアプリケーションに統合できる具体的なプロトコルに進化しました。 21世紀初頭、インターネットとデジタル通信の爆発的な成長に伴い、ZKPの可能性は現実の世界で探求され始めました。 特にブロックチェーンと暗号通貨の台頭により、ZKPはトランザクションとデータ処理の効率を維持しながら、プライバシーとセキュリティを強化する能力を示しました。

今日、ZKPは暗号研究のホットなトピックであるだけでなく、複数のブロックチェーンプラットフォームやアプリケーションにも統合されています。 例えば、イーサリアムのレイヤー2上のzk-SNARKsのアプリケーションは、取引の詳細を明かすことなく匿名取引を提供します。 この理論から実用化への移行は、ZKPの実用的価値を証明するだけでなく、より効率的で安全なデジタルインタラクションの探求も推進します。 ZKPは、継続的な技術の進歩により、個人のプライバシーの保護、データセキュリティの確保、信頼できるデジタルシステムの確立において、ますます重要な役割を担っています。

ZKPの定義と原理

ゼロ知識証明(ZKP)は、一方の当事者(証明者)が、追加情報を明かすことなく、つまり、声明の正しさが依存する知識を開示することなく、別の当事者(検証者)に声明の正しさを証明できるようにする暗号化方法です。 このプロセスは、証明者のプライバシーを保護するだけでなく、検証者が証明プロセスを複製したり、追加情報を取得するために使用したりできないようにします。

ゼロ知識証明の概念図(出典:ChainLink)

ゼロ知識証明(ZKP)の基本原則は、次の3つの属性によって定義できます。

  • 完全性:陳述が真であれば、誠実な証明者は常に検証者のテストに合格することができます。
  • 健全性:陳述が虚偽である場合、欺瞞的な証明者は、検証者を誤解させて陳述が真実であると信じ込ませる可能性がわずかしかありません。
  • ゼロ知識:ステートメントが真である場合、検証者はステートメントが正しいという事実以外の追加情報を学習しません。 言い換えれば、検証プロセスでは、証明の構築に使用できる情報は公開されません。

ZKPの原理は、多くの場合、簡単な例で理解できます:AさんにBさんの電話番号を知っていることを証明する必要がある場合、Bさんの番号をAさんに直接教える必要はありません。代わりに、Bの番号に電話することでそれを証明できます。 一旦電話が繋がると、私が実際にBの番号を持っていることが証明されますが、その番号自体に関する情報は開示されません。

実際のアプリケーションでは、ZKPは通常、多項式方程式、楕円曲線、またはその他の数学的課題などの複雑な数学的構造を必要とします。 これらの構造の安全性は、因数分解や離散対数などの問題の計算の難しさに基づいています。 暗号化の進歩に伴い、zk-SNARKやzk-STARKなど、ZKPのさまざまな実装が登場し、特にブロックチェーンと暗号通貨の分野で、さまざまなコンテキストで効果的なプライバシー保護を提供しています。

ゼロ知識証明の基本形は、証人、チャレンジ、レスポンスの3つの要素で構成されています。

証人:ゼロ知識証明では、証明者は隠された情報の知識を証明したいと考えています。 この秘密情報は、証拠の「証人」として機能します。 証明者は、目撃者に関する知識に基づいて、情報を知っている人だけが答えることができる一連の質問を設定します。 したがって、証明者は証明を開始する質問をランダムに選択し、答えを計算して、それを検証者に送信します。

チャレンジ:検証者は、セットから別の質問をランダムに選択し、証明者にそれに答えてもらいます。

応答: 証明者は質問を受け取り、回答を計算し、検証者に送り返します。 証明者の応答により、検証者は、証明者が実際に証人にアクセスできるかどうかを確認できます。 証明者が偶然に盲目的に正しく推測しているのではないことを確認するために、検証者は調査のために別の質問を選択します。 このプロセスを複数回繰り返すことで、検証者が満足するまで、証明者が真実を捏造する可能性は大幅に減少します。

前述の電話の例では、「私」は情報開示を嫌がる証人であり、Aは検証者であり、「私」がBの番号を持っていることを証明する」という課題が提起されています。 応答プロセスでは、「私」が電話をBの番号に接続して、私が本当にそれを持っていることを証明します。

なぜZKPが必要なのですか?

前述したように、ゼロ知識証明(ZKP)は、プライバシー保護の領域において本質的に大きな利点を提供します。 情報過多の現代では、個人データはサードパーティのプラットフォームに保存されることが多く、データ侵害のリスクが高まっています。 さらに、技術的な障壁や法的制裁の遅れにより、情報セキュリティは倫理的な制約に大きく依存しており、ユーザーが個人情報を真に管理することは困難です。 ZKPテクノロジーの登場により、プライバシーを保護し、検証の効率とセキュリティを強化するソリューションが提供されます。

他の暗号化技術と比較して、ZKPには複数の利点があります。

  • プライバシー保護:ZKPは、個人や機関が情報の実際の内容を明らかにすることなく、特定の情報の真実性を証明することを可能にします。 たとえば、実際の年齢や生年月日を明かさずに、年齢要件を満たしていることを証明するために使用できます。
  • セキュリティの強化:ZKPは機密情報を開示する必要がないため、データ漏洩のリスクを軽減します。 証明プロセス中に傍受が発生した場合でも、実質的なデータは開示されません。
  • 詐欺の削減:金融取引では、ZKPを使用して、特定の詳細を公開することなく取引の正当性を検証できるため、詐欺の機会を減らすことができます。
  • 効率性:zk-SNARKのような一部のタイプのZKPは、作成と検証が非常に高速であるため、多数のトランザクションや検証操作を処理する必要があるシステムにとって有益です。
  • 相互運用性:ZKPは、異なるシステムやドメイン間で検証するための共通のフレームワークを提供し、さまざまなシステム間で情報を安全に検証および共有できるようにします。
  • スケーラビリティ:コンピューティング技術の進化に伴い、ZKPの実装はより効率的でスケーラブルになり、より大規模なシステムに展開できるようになりました。
  • コンプライアンス:消費者のプライバシー保護が求められる今日の規制環境において、ZKPは企業がプライバシー法に違反することなくデータを検証・処理できるよう支援します。
  • ユーザーコントロール:ZKPは、ユーザーが開示する情報の量を選択できるため、ユーザーのデータ管理を強化します。
  • 分散化:ブロックチェーンと分散技術において、ZKPは分散化のための強力なプライバシーツールを提供し、ユーザーが中央当局に依存することなく取引と対話を可能にします。

従来のWeb 2.0であろうと、新興のWeb 3.0ドメインであろうと、ZKPのアプリケーションの見通しは広範です。

ゼロ知識証明(ZKP)の種類

ゼロ知識証明には、zk-SNARKs、zk-STARKs、PLONK、Bulletproofsなど、複数の実装があります。 各タイプには、プルーフサイズ、プルーバー時間、検証時間の点で長所と短所があります。 この記事では、アプリケーション シナリオで最も一般的に使用される 4 つの型を紹介します。

zk-スナーク

zk-SNARKは、「Zero-Knowledge Succinct Non-Interactive Argument of Knowledge」の略で、情報自体を明かすことなく、誰かが情報を知っていることを証明するために使用される暗号化ツールです。 zk-SNARKsでは、「ゼロ知識」とは、証明者が、その正しさ以外の情報を提供することなく、ある言明が真実であることを証明できることを意味します。 「簡潔さ」とは、証明のサイズが小さく、検証プロセスが速いことを指します。 「非インタラクティブ」とは、いったん証明が生成されると、証明者と検証者の間でそれ以上のやり取りをすることなく、誰でも検証できることを意味します。 zk-SNARKのコアコンポーネントは次のとおりです。

  • トラステッドセットアップ:システムの初期化中に、公開鍵と秘密鍵のペア(パラメータ)を生成する必要があります。 秘密鍵が漏洩するとシステムのセキュリティが損なわれる可能性があるため、このプロセスは信頼できる第三者が実行する必要があります。
  • 証明者の生成:証明者は秘密の情報を知っているが、それを検証者に明かしたくない。 彼らは、この秘密情報と公開パラメータを使用して、秘密の詳細を明かすことなく、秘密を知っていることを十分に示す証拠を構築します。
  • 検証プロセス: 検証者は、証明を受け取ったら、公開パラメーターを使用してその正確性を検証できます。 証明者が正しい証明を作成した場合、検証プロセスは「はい」を出力し、そうでない場合は「いいえ」を出力します。

zk-SNARKは、匿名取引による暗号通貨、安全な投票システム、プライバシーを保護する認証とデータ共有、ブロックチェーンのスケーラビリティ技術など、さまざまなプライバシー保護シナリオで使用されています。

zk-スターク

zk-STARKs(Zero-Knowledge Scalable Transparent Arguments of Knowledge)は、一方の当事者(証明者)が、情報自体を明かすことなく、特定の情報を知っていることを別の当事者(検証者)に証明することを可能にします。 zk-SNARKとは異なり、zk-STARKは信頼できるセットアッププロセスを必要としません。 これは、特定の個人情報の機密性に依存しないことを意味し、信頼できるセットアップはシステム上の脆弱性となる可能性があるため、セキュリティにとって重要と見なされることが多い機能です。

zk-STARKは、ハッシュ関数、多項式計算、誤り訂正理論など、いくつかの数学分野の概念に基づいて動作します。 「ゼロ知識スケーラブルトランスペアレント引数」と呼ばれる構造を利用しており、信頼できるセットアップなしで証明を生成できます。 zk-STARKの潜在的な用途はzk-SNARKの用途と似ていますが、そのスケーラビリティと透明性により、プライバシーを保護する暗号通貨、ブロックチェーンのスケーラビリティ技術、クラウドコンピューティングにおける安全な検証などの大規模なアプリケーションに特に適しています。

プロンク

PLONKは頭字語ではなく、作成者の姓を指します。 これは、特にスマートコントラクトやプライバシー保護されたトランザクションなどのブロックチェーンアプリケーションにおいて、普遍的で効率的なZKPソリューションを提供するように設計されています。 PLONKの中核となるのは「準同型隠蔽」技術の使用であり、元のデータを明らかにすることなくデータに対して算術演算を可能にします。 これは、特別なアルゴリズム(多項式コミットメントスキーム)を使用して証明を作成し、証明者が一連のデータに対して正しい計算結果を持っていることを効率的に証明できるようにします。

PLONKの大きな特徴の一つは、その普遍性です。 特定の計算タスクにパラメータを(1回限りの信頼できるセットアップで)設定すると、毎回新しいセットアップを必要とせずに、それらを複数回再利用して新しい証明を作成できます。 これにより、PLONKは証明の作成と検証において非常に効率的になり、多くの場合、ブロックチェーンやその他の分散システムでのさまざまな計算タスクをサポートするように設計されています。

防弾

新たに導入されたZKPソリューションであるBulletproofsは、信頼できるセットアップを必要とせず、範囲証明と特定のタイプの算術証明を構築するために特別に設計されています。 2017年にBenedikt Bunz氏、Jonathan Bootle氏、Dan Boneh氏らによって提案されたBulletproofsは、準同型暗号や楕円曲線暗号などの複雑な数学的構造で動作します。 彼らは一連の数学的手法を活用して、証明者が正確な値を明らかにすることなく、数値の効果的な範囲証明を作成できるようにします。 特に暗号通貨の領域では、実際の取引金額を公開することなく、取引額が法定範囲内にあることを証明するために使用できます。

Bulletproofsは、そのレンジプルーフ機能により、暗号通貨やブロックチェーンの分野、特にMoneroのようなプライバシーコインで広く使用されており、取引の正当性を検証しながら取引金額を隠しています。 さらに、数値のプライバシーが必要な他のアプリケーションでも使用できます。

ケーススタディー

宝の地図に例えて、これら4つの異なるゼロ知識証明(ZKP)テクノロジー(zk-SNARK、zk-STARKs、PLONK、Bulletproofs)について理解を深めましょう。

埋もれた宝物の正確な場所につながる宝の地図があると想像してください。 地図の内容や宝物の実際の場所を明かさずに、宝物がどこにあるかを知っていることを誰かに証明したい。

zk-SNARKs:宝の地図の複雑なジグソーパズルを作成します。 このパズルの小さな鍵となるピース(証明)を選び、相手に見せることで、パズル全体を明かさずに、完全なパズルの組み立て方、つまり宝物の場所を知っていることを相手に納得させるのに十分です。 ただし、これを行うには、パズルのピースが本物であることを証明するために、信頼できるプリンターからの特別なマーカーが必要です。

zk-STARKs: 宝の地図の一部を相手に見せて、特別な虫眼鏡(検証アルゴリズム)を使って地図の詳細をランダムにチェックし、宝物の正確な位置を知らなくても、本当に宝物を指していることを確認できることを伝えます。 この虫眼鏡は非常に強力で、未来の技術(量子コンピューター)でさえ宝の地図の秘密を解くことはできません。

PLONK: 今回は、宝物の場所を示すなぞなぞを作ります。 あなたは、これらのなぞなぞの解答を検証する普遍的な方法(普遍的な設定)を相手に提示し、各なぞなぞを個別に解くことなく、あなたがすべての答えを知っていると信じるのに十分です。

防弾:正確な位置を明かさずに、宝物のおおよその位置を知っていることを証明することにしました。 宝の位置の範囲を示す一連の数学的問題の解答を提供します。 このメソッドには、特別なマーカーや印刷技術は必要なく、初期信頼要件はありません。

この例えでは、

  • zk-SNARKは、パズルのピースの出所を信頼する必要がありますが(信頼できるセットアップ)、非常に小さく、迅速に検証できる証拠を提供します。
  • zk-STARKはソースを信頼する必要がないため、証明がより堅牢になり、長期的なセキュリティと将来の脅威に適しています。
  • PLONKは、1回限りのセットアップ、複数回使用の効率的な検証方法を提供しており、宝物の場所を知っていることを複数回証明するために、一度の努力をする必要があります。
  • 防弾を使用すると、最初の信頼要件なしで宝物の場所範囲に関する情報を証明できますが、証拠の生成と検証の効率は前者の2つと一致しない可能性があります。

それぞれの方法には、実際のアプリケーションにおけるトレードオフがあり、選択は特定のアプリケーション シナリオとセキュリティ ニーズによって異なります。

異なるZKPスキームの簡単な比較

比較する前に、ZKPを評価するための基準を理解する必要があります。

  • プルーフサイズ:プルーフ内のデータ量で、ストレージと送信のコストに影響します
  • 検証時間:配達確認の検証に必要な時間
  • プルーフタイム:プルーフの生成に要する時間
  • メモリ使用量:証明の生成および検証プロセス中に必要なメモリの量
  • 普遍性:証明システムが様々な計算に適用可能か
  • トラステッド・セットアップ: 初期トラステッド・セットアップ・フェーズが必要かどうか
  • ポスト量子セキュリティ:将来の量子コンピュータ攻撃に耐えられるか

それでは、これらの指標に基づいてzk-SNARK、zk-STARKs、PLONK、およびBulletproofsを比較し、それらの長所と短所について説明しましょう。

zk-スナーク

長所

  • プルーフサイズ:非常に小さいため、帯域幅が制限された環境に適しています
  • 検証時間:迅速な検証、迅速な対応が必要なシナリオに適しています
  • 普遍性:様々な複雑な計算に適用可能

短所

  • プルーフ時間とメモリ使用量:プルーフの生成には時間とメモリの両方がかかる場合があります
  • トラステッド・セットアップ: 最初のトラステッド・セットアップ・フェーズが必要です。侵害されると、システムのセキュリティが危険にさらされます
  • ポスト量子セキュリティ:ほとんどの構造はポスト量子セキュアではありません

zk-スターク

長所

  • 信頼できるセットアップなし:信頼できるセットアップが不要になり、システムのセキュリティが強化されます
  • ポスト量子セキュリティ:量子コンピューターからの攻撃に抵抗
  • プルーフサイズ:zk-SNARKよりも大きいが、特定の条件下では管理可能

短所

  • プルーフサイズ:zk-SNARKよりも大きいため、ストレージと伝送効率が低下する可能性があります
  • プルーフタイム:特に複雑な計算では、zk-SNARKよりも遅くなる可能性があります

プロンク

長所

  • 普遍性:1つのパラメータセットが複数の異なる証明に適用されるため、冗長な作業が削減されます
  • プルーフサイズ:比較的小さいが、zk-SNARKよりも大きい
  • 更新可能性:更新と保守が簡単

短所

  • 信頼できるセットアップ:zk-SNARKsほど厳格ではありませんが、それでもセットアップが必要です
  • ポスト量子セキュリティ:同様に、ほとんどの構造はポスト量子セキュアではありません

防弾

長所

  • 信頼できるセットアップなし:信頼できるセットアップが不要で、セキュリティリスクを軽減
  • 証明サイズ: 証明サイズは、ステートメントの複雑さとともにゆっくりと大きくなります
  • 検証時間:レンジプルーフが高速

短所

  • 証明時間:配達確認の生成には時間がかかる場合があります
  • プルーフサイズ:小さいですが、より大きなプルーフではzk-SNARKよりも大きいです
  • ポスト量子セキュリティ:ポスト量子環境向けに特別に設計されていない

Web3におけるZKPの活用事例

Web3ではZKPの応用事例が多く、代表的な事例を2つ選んで検討しました。

ブロックチェーンのスケーリング - イーサリアムレイヤー2

zk-Rollupsは、数百または数千のトランザクションをオフチェーンでバンドルし、zk-SNARKプルーフを生成するレイヤー2ソリューションです。 この証明は、トランザクションデータとともに、イーサリアムのメインチェーンに送信されます。 これにより、メインチェーンが各トランザクションを処理することなくトランザクションを検証できるため、手数料が削減され、スループットが向上します。 zk-Sync EraとStarknetはzk-rollup技術を採用しており、Polygonは最近zk-rollupsを使用したPolygon zk-EVMを導入しました。

レイヤ2におけるzk-SNARKsのアプリケーションデモンストレーション(出典:Simon Brown)

データプライバシー - Exchange Reserve Proof

為替準備金の証明とは、暗号通貨取引所やその他の金融機関が保有する残高を検証し、記録された資産が実際の保有資産と一致することを確認することを指します。 当初、取引所はこの検証にマークルツリーとサードパーティの監査会社を使用していましたが、このプロセスはサードパーティに依存しており、口座残高などのプライベートユーザーデータが漏洩する可能性があります。 Gate.io のような取引所は現在、zk-SNARKs技術を利用してリザーブプルーフ、ユーザーデータの暗号化、zk-SNARK回路を介したユーザー資産番号の取得を行い、完全なリザーブプルーフレポートを発行しています。

結論

ゼロ知識証明技術の多様なソリューションは、Web3におけるその強力な可能性を浮き彫りにしています。 データプライバシー保護からブロックチェーンのスケーリングまで、ZKPは安全で効率的なWeb3インフラストラクチャを構築するために重要です。 さまざまなアプローチには長所と短所がありますが、全体として、より信頼性が高く、プライバシーが保護されたデジタルの未来を指し示しています。 技術が進歩するにつれて、ZKPによるパフォーマンスとセキュリティの最適化という課題は徐々に克服され、デジタル世界におけるZKPの役割がますます重要になることを示しています。

著者: Wayne
翻訳者: Piper
レビュアー: Piccolo、Edward、Elisa、Ashley He、Joyce
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。

ゼロ知識証明(ZKP)の詳細な説明

中級11/28/2023, 11:05:05 AM
ゼロ知識証明(ZKP)は、ある当事者(証明者)が、他の情報を開示することなく、別の当事者(検証者)にステートメントが真実であることを証明できるようにする暗号化方式です。 一般的なZKPソリューションには、zk-SNARKS、zk-STARKS、PLONK、およびBulletproofsが含まれます。 本記事では、これら4種類のZKPソリューションを紹介し、その長所と短所を分析します。

経歴

ゼロ知識証明(ZKP)は、1980年代初頭にS.Goldwasser、S.Micali、C.Rackoffによる「The Knowledge Complexity Of Interactive Proof Systems」というタイトルの論文で初めて紹介された暗号技術です。 もともとは理論モデルとして考案されましたが、証拠を明らかにすることなく数学的ステートメントを検証するという課題に取り組むことを目的としていました。 この概念は、従来の暗号化技術の限界に挑戦し、機密情報を処理するための新しいアプローチを提供するため、学術界で広く注目を集めました。

時が経つにつれて、ZKPは抽象的な理論的概念から、さまざまなアプリケーションに統合できる具体的なプロトコルに進化しました。 21世紀初頭、インターネットとデジタル通信の爆発的な成長に伴い、ZKPの可能性は現実の世界で探求され始めました。 特にブロックチェーンと暗号通貨の台頭により、ZKPはトランザクションとデータ処理の効率を維持しながら、プライバシーとセキュリティを強化する能力を示しました。

今日、ZKPは暗号研究のホットなトピックであるだけでなく、複数のブロックチェーンプラットフォームやアプリケーションにも統合されています。 例えば、イーサリアムのレイヤー2上のzk-SNARKsのアプリケーションは、取引の詳細を明かすことなく匿名取引を提供します。 この理論から実用化への移行は、ZKPの実用的価値を証明するだけでなく、より効率的で安全なデジタルインタラクションの探求も推進します。 ZKPは、継続的な技術の進歩により、個人のプライバシーの保護、データセキュリティの確保、信頼できるデジタルシステムの確立において、ますます重要な役割を担っています。

ZKPの定義と原理

ゼロ知識証明(ZKP)は、一方の当事者(証明者)が、追加情報を明かすことなく、つまり、声明の正しさが依存する知識を開示することなく、別の当事者(検証者)に声明の正しさを証明できるようにする暗号化方法です。 このプロセスは、証明者のプライバシーを保護するだけでなく、検証者が証明プロセスを複製したり、追加情報を取得するために使用したりできないようにします。

ゼロ知識証明の概念図(出典:ChainLink)

ゼロ知識証明(ZKP)の基本原則は、次の3つの属性によって定義できます。

  • 完全性:陳述が真であれば、誠実な証明者は常に検証者のテストに合格することができます。
  • 健全性:陳述が虚偽である場合、欺瞞的な証明者は、検証者を誤解させて陳述が真実であると信じ込ませる可能性がわずかしかありません。
  • ゼロ知識:ステートメントが真である場合、検証者はステートメントが正しいという事実以外の追加情報を学習しません。 言い換えれば、検証プロセスでは、証明の構築に使用できる情報は公開されません。

ZKPの原理は、多くの場合、簡単な例で理解できます:AさんにBさんの電話番号を知っていることを証明する必要がある場合、Bさんの番号をAさんに直接教える必要はありません。代わりに、Bの番号に電話することでそれを証明できます。 一旦電話が繋がると、私が実際にBの番号を持っていることが証明されますが、その番号自体に関する情報は開示されません。

実際のアプリケーションでは、ZKPは通常、多項式方程式、楕円曲線、またはその他の数学的課題などの複雑な数学的構造を必要とします。 これらの構造の安全性は、因数分解や離散対数などの問題の計算の難しさに基づいています。 暗号化の進歩に伴い、zk-SNARKやzk-STARKなど、ZKPのさまざまな実装が登場し、特にブロックチェーンと暗号通貨の分野で、さまざまなコンテキストで効果的なプライバシー保護を提供しています。

ゼロ知識証明の基本形は、証人、チャレンジ、レスポンスの3つの要素で構成されています。

証人:ゼロ知識証明では、証明者は隠された情報の知識を証明したいと考えています。 この秘密情報は、証拠の「証人」として機能します。 証明者は、目撃者に関する知識に基づいて、情報を知っている人だけが答えることができる一連の質問を設定します。 したがって、証明者は証明を開始する質問をランダムに選択し、答えを計算して、それを検証者に送信します。

チャレンジ:検証者は、セットから別の質問をランダムに選択し、証明者にそれに答えてもらいます。

応答: 証明者は質問を受け取り、回答を計算し、検証者に送り返します。 証明者の応答により、検証者は、証明者が実際に証人にアクセスできるかどうかを確認できます。 証明者が偶然に盲目的に正しく推測しているのではないことを確認するために、検証者は調査のために別の質問を選択します。 このプロセスを複数回繰り返すことで、検証者が満足するまで、証明者が真実を捏造する可能性は大幅に減少します。

前述の電話の例では、「私」は情報開示を嫌がる証人であり、Aは検証者であり、「私」がBの番号を持っていることを証明する」という課題が提起されています。 応答プロセスでは、「私」が電話をBの番号に接続して、私が本当にそれを持っていることを証明します。

なぜZKPが必要なのですか?

前述したように、ゼロ知識証明(ZKP)は、プライバシー保護の領域において本質的に大きな利点を提供します。 情報過多の現代では、個人データはサードパーティのプラットフォームに保存されることが多く、データ侵害のリスクが高まっています。 さらに、技術的な障壁や法的制裁の遅れにより、情報セキュリティは倫理的な制約に大きく依存しており、ユーザーが個人情報を真に管理することは困難です。 ZKPテクノロジーの登場により、プライバシーを保護し、検証の効率とセキュリティを強化するソリューションが提供されます。

他の暗号化技術と比較して、ZKPには複数の利点があります。

  • プライバシー保護:ZKPは、個人や機関が情報の実際の内容を明らかにすることなく、特定の情報の真実性を証明することを可能にします。 たとえば、実際の年齢や生年月日を明かさずに、年齢要件を満たしていることを証明するために使用できます。
  • セキュリティの強化:ZKPは機密情報を開示する必要がないため、データ漏洩のリスクを軽減します。 証明プロセス中に傍受が発生した場合でも、実質的なデータは開示されません。
  • 詐欺の削減:金融取引では、ZKPを使用して、特定の詳細を公開することなく取引の正当性を検証できるため、詐欺の機会を減らすことができます。
  • 効率性:zk-SNARKのような一部のタイプのZKPは、作成と検証が非常に高速であるため、多数のトランザクションや検証操作を処理する必要があるシステムにとって有益です。
  • 相互運用性:ZKPは、異なるシステムやドメイン間で検証するための共通のフレームワークを提供し、さまざまなシステム間で情報を安全に検証および共有できるようにします。
  • スケーラビリティ:コンピューティング技術の進化に伴い、ZKPの実装はより効率的でスケーラブルになり、より大規模なシステムに展開できるようになりました。
  • コンプライアンス:消費者のプライバシー保護が求められる今日の規制環境において、ZKPは企業がプライバシー法に違反することなくデータを検証・処理できるよう支援します。
  • ユーザーコントロール:ZKPは、ユーザーが開示する情報の量を選択できるため、ユーザーのデータ管理を強化します。
  • 分散化:ブロックチェーンと分散技術において、ZKPは分散化のための強力なプライバシーツールを提供し、ユーザーが中央当局に依存することなく取引と対話を可能にします。

従来のWeb 2.0であろうと、新興のWeb 3.0ドメインであろうと、ZKPのアプリケーションの見通しは広範です。

ゼロ知識証明(ZKP)の種類

ゼロ知識証明には、zk-SNARKs、zk-STARKs、PLONK、Bulletproofsなど、複数の実装があります。 各タイプには、プルーフサイズ、プルーバー時間、検証時間の点で長所と短所があります。 この記事では、アプリケーション シナリオで最も一般的に使用される 4 つの型を紹介します。

zk-スナーク

zk-SNARKは、「Zero-Knowledge Succinct Non-Interactive Argument of Knowledge」の略で、情報自体を明かすことなく、誰かが情報を知っていることを証明するために使用される暗号化ツールです。 zk-SNARKsでは、「ゼロ知識」とは、証明者が、その正しさ以外の情報を提供することなく、ある言明が真実であることを証明できることを意味します。 「簡潔さ」とは、証明のサイズが小さく、検証プロセスが速いことを指します。 「非インタラクティブ」とは、いったん証明が生成されると、証明者と検証者の間でそれ以上のやり取りをすることなく、誰でも検証できることを意味します。 zk-SNARKのコアコンポーネントは次のとおりです。

  • トラステッドセットアップ:システムの初期化中に、公開鍵と秘密鍵のペア(パラメータ)を生成する必要があります。 秘密鍵が漏洩するとシステムのセキュリティが損なわれる可能性があるため、このプロセスは信頼できる第三者が実行する必要があります。
  • 証明者の生成:証明者は秘密の情報を知っているが、それを検証者に明かしたくない。 彼らは、この秘密情報と公開パラメータを使用して、秘密の詳細を明かすことなく、秘密を知っていることを十分に示す証拠を構築します。
  • 検証プロセス: 検証者は、証明を受け取ったら、公開パラメーターを使用してその正確性を検証できます。 証明者が正しい証明を作成した場合、検証プロセスは「はい」を出力し、そうでない場合は「いいえ」を出力します。

zk-SNARKは、匿名取引による暗号通貨、安全な投票システム、プライバシーを保護する認証とデータ共有、ブロックチェーンのスケーラビリティ技術など、さまざまなプライバシー保護シナリオで使用されています。

zk-スターク

zk-STARKs(Zero-Knowledge Scalable Transparent Arguments of Knowledge)は、一方の当事者(証明者)が、情報自体を明かすことなく、特定の情報を知っていることを別の当事者(検証者)に証明することを可能にします。 zk-SNARKとは異なり、zk-STARKは信頼できるセットアッププロセスを必要としません。 これは、特定の個人情報の機密性に依存しないことを意味し、信頼できるセットアップはシステム上の脆弱性となる可能性があるため、セキュリティにとって重要と見なされることが多い機能です。

zk-STARKは、ハッシュ関数、多項式計算、誤り訂正理論など、いくつかの数学分野の概念に基づいて動作します。 「ゼロ知識スケーラブルトランスペアレント引数」と呼ばれる構造を利用しており、信頼できるセットアップなしで証明を生成できます。 zk-STARKの潜在的な用途はzk-SNARKの用途と似ていますが、そのスケーラビリティと透明性により、プライバシーを保護する暗号通貨、ブロックチェーンのスケーラビリティ技術、クラウドコンピューティングにおける安全な検証などの大規模なアプリケーションに特に適しています。

プロンク

PLONKは頭字語ではなく、作成者の姓を指します。 これは、特にスマートコントラクトやプライバシー保護されたトランザクションなどのブロックチェーンアプリケーションにおいて、普遍的で効率的なZKPソリューションを提供するように設計されています。 PLONKの中核となるのは「準同型隠蔽」技術の使用であり、元のデータを明らかにすることなくデータに対して算術演算を可能にします。 これは、特別なアルゴリズム(多項式コミットメントスキーム)を使用して証明を作成し、証明者が一連のデータに対して正しい計算結果を持っていることを効率的に証明できるようにします。

PLONKの大きな特徴の一つは、その普遍性です。 特定の計算タスクにパラメータを(1回限りの信頼できるセットアップで)設定すると、毎回新しいセットアップを必要とせずに、それらを複数回再利用して新しい証明を作成できます。 これにより、PLONKは証明の作成と検証において非常に効率的になり、多くの場合、ブロックチェーンやその他の分散システムでのさまざまな計算タスクをサポートするように設計されています。

防弾

新たに導入されたZKPソリューションであるBulletproofsは、信頼できるセットアップを必要とせず、範囲証明と特定のタイプの算術証明を構築するために特別に設計されています。 2017年にBenedikt Bunz氏、Jonathan Bootle氏、Dan Boneh氏らによって提案されたBulletproofsは、準同型暗号や楕円曲線暗号などの複雑な数学的構造で動作します。 彼らは一連の数学的手法を活用して、証明者が正確な値を明らかにすることなく、数値の効果的な範囲証明を作成できるようにします。 特に暗号通貨の領域では、実際の取引金額を公開することなく、取引額が法定範囲内にあることを証明するために使用できます。

Bulletproofsは、そのレンジプルーフ機能により、暗号通貨やブロックチェーンの分野、特にMoneroのようなプライバシーコインで広く使用されており、取引の正当性を検証しながら取引金額を隠しています。 さらに、数値のプライバシーが必要な他のアプリケーションでも使用できます。

ケーススタディー

宝の地図に例えて、これら4つの異なるゼロ知識証明(ZKP)テクノロジー(zk-SNARK、zk-STARKs、PLONK、Bulletproofs)について理解を深めましょう。

埋もれた宝物の正確な場所につながる宝の地図があると想像してください。 地図の内容や宝物の実際の場所を明かさずに、宝物がどこにあるかを知っていることを誰かに証明したい。

zk-SNARKs:宝の地図の複雑なジグソーパズルを作成します。 このパズルの小さな鍵となるピース(証明)を選び、相手に見せることで、パズル全体を明かさずに、完全なパズルの組み立て方、つまり宝物の場所を知っていることを相手に納得させるのに十分です。 ただし、これを行うには、パズルのピースが本物であることを証明するために、信頼できるプリンターからの特別なマーカーが必要です。

zk-STARKs: 宝の地図の一部を相手に見せて、特別な虫眼鏡(検証アルゴリズム)を使って地図の詳細をランダムにチェックし、宝物の正確な位置を知らなくても、本当に宝物を指していることを確認できることを伝えます。 この虫眼鏡は非常に強力で、未来の技術(量子コンピューター)でさえ宝の地図の秘密を解くことはできません。

PLONK: 今回は、宝物の場所を示すなぞなぞを作ります。 あなたは、これらのなぞなぞの解答を検証する普遍的な方法(普遍的な設定)を相手に提示し、各なぞなぞを個別に解くことなく、あなたがすべての答えを知っていると信じるのに十分です。

防弾:正確な位置を明かさずに、宝物のおおよその位置を知っていることを証明することにしました。 宝の位置の範囲を示す一連の数学的問題の解答を提供します。 このメソッドには、特別なマーカーや印刷技術は必要なく、初期信頼要件はありません。

この例えでは、

  • zk-SNARKは、パズルのピースの出所を信頼する必要がありますが(信頼できるセットアップ)、非常に小さく、迅速に検証できる証拠を提供します。
  • zk-STARKはソースを信頼する必要がないため、証明がより堅牢になり、長期的なセキュリティと将来の脅威に適しています。
  • PLONKは、1回限りのセットアップ、複数回使用の効率的な検証方法を提供しており、宝物の場所を知っていることを複数回証明するために、一度の努力をする必要があります。
  • 防弾を使用すると、最初の信頼要件なしで宝物の場所範囲に関する情報を証明できますが、証拠の生成と検証の効率は前者の2つと一致しない可能性があります。

それぞれの方法には、実際のアプリケーションにおけるトレードオフがあり、選択は特定のアプリケーション シナリオとセキュリティ ニーズによって異なります。

異なるZKPスキームの簡単な比較

比較する前に、ZKPを評価するための基準を理解する必要があります。

  • プルーフサイズ:プルーフ内のデータ量で、ストレージと送信のコストに影響します
  • 検証時間:配達確認の検証に必要な時間
  • プルーフタイム:プルーフの生成に要する時間
  • メモリ使用量:証明の生成および検証プロセス中に必要なメモリの量
  • 普遍性:証明システムが様々な計算に適用可能か
  • トラステッド・セットアップ: 初期トラステッド・セットアップ・フェーズが必要かどうか
  • ポスト量子セキュリティ:将来の量子コンピュータ攻撃に耐えられるか

それでは、これらの指標に基づいてzk-SNARK、zk-STARKs、PLONK、およびBulletproofsを比較し、それらの長所と短所について説明しましょう。

zk-スナーク

長所

  • プルーフサイズ:非常に小さいため、帯域幅が制限された環境に適しています
  • 検証時間:迅速な検証、迅速な対応が必要なシナリオに適しています
  • 普遍性:様々な複雑な計算に適用可能

短所

  • プルーフ時間とメモリ使用量:プルーフの生成には時間とメモリの両方がかかる場合があります
  • トラステッド・セットアップ: 最初のトラステッド・セットアップ・フェーズが必要です。侵害されると、システムのセキュリティが危険にさらされます
  • ポスト量子セキュリティ:ほとんどの構造はポスト量子セキュアではありません

zk-スターク

長所

  • 信頼できるセットアップなし:信頼できるセットアップが不要になり、システムのセキュリティが強化されます
  • ポスト量子セキュリティ:量子コンピューターからの攻撃に抵抗
  • プルーフサイズ:zk-SNARKよりも大きいが、特定の条件下では管理可能

短所

  • プルーフサイズ:zk-SNARKよりも大きいため、ストレージと伝送効率が低下する可能性があります
  • プルーフタイム:特に複雑な計算では、zk-SNARKよりも遅くなる可能性があります

プロンク

長所

  • 普遍性:1つのパラメータセットが複数の異なる証明に適用されるため、冗長な作業が削減されます
  • プルーフサイズ:比較的小さいが、zk-SNARKよりも大きい
  • 更新可能性:更新と保守が簡単

短所

  • 信頼できるセットアップ:zk-SNARKsほど厳格ではありませんが、それでもセットアップが必要です
  • ポスト量子セキュリティ:同様に、ほとんどの構造はポスト量子セキュアではありません

防弾

長所

  • 信頼できるセットアップなし:信頼できるセットアップが不要で、セキュリティリスクを軽減
  • 証明サイズ: 証明サイズは、ステートメントの複雑さとともにゆっくりと大きくなります
  • 検証時間:レンジプルーフが高速

短所

  • 証明時間:配達確認の生成には時間がかかる場合があります
  • プルーフサイズ:小さいですが、より大きなプルーフではzk-SNARKよりも大きいです
  • ポスト量子セキュリティ:ポスト量子環境向けに特別に設計されていない

Web3におけるZKPの活用事例

Web3ではZKPの応用事例が多く、代表的な事例を2つ選んで検討しました。

ブロックチェーンのスケーリング - イーサリアムレイヤー2

zk-Rollupsは、数百または数千のトランザクションをオフチェーンでバンドルし、zk-SNARKプルーフを生成するレイヤー2ソリューションです。 この証明は、トランザクションデータとともに、イーサリアムのメインチェーンに送信されます。 これにより、メインチェーンが各トランザクションを処理することなくトランザクションを検証できるため、手数料が削減され、スループットが向上します。 zk-Sync EraとStarknetはzk-rollup技術を採用しており、Polygonは最近zk-rollupsを使用したPolygon zk-EVMを導入しました。

レイヤ2におけるzk-SNARKsのアプリケーションデモンストレーション(出典:Simon Brown)

データプライバシー - Exchange Reserve Proof

為替準備金の証明とは、暗号通貨取引所やその他の金融機関が保有する残高を検証し、記録された資産が実際の保有資産と一致することを確認することを指します。 当初、取引所はこの検証にマークルツリーとサードパーティの監査会社を使用していましたが、このプロセスはサードパーティに依存しており、口座残高などのプライベートユーザーデータが漏洩する可能性があります。 Gate.io のような取引所は現在、zk-SNARKs技術を利用してリザーブプルーフ、ユーザーデータの暗号化、zk-SNARK回路を介したユーザー資産番号の取得を行い、完全なリザーブプルーフレポートを発行しています。

結論

ゼロ知識証明技術の多様なソリューションは、Web3におけるその強力な可能性を浮き彫りにしています。 データプライバシー保護からブロックチェーンのスケーリングまで、ZKPは安全で効率的なWeb3インフラストラクチャを構築するために重要です。 さまざまなアプローチには長所と短所がありますが、全体として、より信頼性が高く、プライバシーが保護されたデジタルの未来を指し示しています。 技術が進歩するにつれて、ZKPによるパフォーマンスとセキュリティの最適化という課題は徐々に克服され、デジタル世界におけるZKPの役割がますます重要になることを示しています。

著者: Wayne
翻訳者: Piper
レビュアー: Piccolo、Edward、Elisa、Ashley He、Joyce
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!