# zk-SNARKs技術のブロックチェーン分野における発展と応用## まとめzk-SNARKs(ZKP)技術は、ブロックチェーン分野において分散型台帳に次ぐ最も重要な革新の一つと考えられ、ベンチャーキャピタルの注目を集めている。本稿では、zk-SNARKs技術の約40年にわたる発展の歴史を系統的に振り返り、最新の研究成果を概説する。記事ではまず、zk-SNARKsの基本概念と歴史的背景について紹介しています。回路ベースのzk-SNARKs技術に重点を置き、zkSNARK、Ben-Sassonモデル、Pinocchio、Bulletproofs、Ligeroなどのモデルの設計、応用、最適化方法を分析しています。計算環境に関しては、ZKVMおよびZKEVMについて紹介し、それらが取引処理能力を向上させ、プライバシーを保護し、検証効率を高める方法を探求しています。また、記事では、zk-SNARKs Rollup(ZK Rollup)をセカンドレイヤーの拡張ソリューションとしての作業メカニズムと最適化方法、ハードウェアアクセラレーション、ハイブリッドソリューション、専用ZK EVMの最新の進展についても紹介しています。最後に、このホワイトペーパーでは、ZKCoprocessor、ZKML、ZKThreads、ZK Sharding、ZK StateChannelsなどの新しい概念を楽しみにしており、ブロックチェーンのスケーラビリティ、相互運用性、プライバシー保護の可能性を探っています。これらの最新技術と開発動向を分析することによって、本稿は零知识证明技術の理解と応用に対して包括的な視点を提供し、ブロックチェーンシステムの効率と安全性を向上させる上でのその巨大な潜在能力を示し、将来の投資決定に重要な参考を提供します。## 目次前書き1. ゼロ知識証明の基礎知識 1. 概要 2. ゼロ知識証明の例2. 非対話型のゼロ知識証明 1. 背景 2. NIZKの提案 3.フィアットシャミール変換 4. イェンス・グロスと彼の研究 5.その他の研究3. 回路ベースのゼロ知識証明 1. 背景 2.回路モデルの基本概念と特徴3. ゼロ知識証明における回路設計と応用 4. 潜在的な落とし穴と課題第四に、ゼロ知識証明モデル 1. 背景 2.一般的なアルゴリズムモデル3.線形PCPと離散対数問題に基づくスキーム4.一般人による証明に基づく方案5. ゼロ知識に基づく確率論的検証可能な証明(PCP) 6.分類は、CPC(一般証明構造)の設定段階に基づいています5. ゼロ知識仮想マシンの概要と開発 1. 背景 2. 既存のZKVMの分類 3.フロントエンドとバックエンドのパラダイム4.ZKVMのパラダイムの長所と短所六、zk-SNARKsイーサリアム仮想マシンの概説と発展1. 背景 2. ZKEVMのしくみ 3.ZKEVMの実装プロセス4. ZKEVMの特徴7. ゼロ知識レイヤー2ネットワークソリューションの概要と開発 1. 背景 2.ZK Rollupの作動メカニズム3. ZK Rollupの欠点と最適化8. ゼロ知識証明の今後の展開方向 1. コンピューティング環境の開発を加速する 2. ZKMLの提案・開発 3. ZKP拡張技術の開発 4. ZKPの相互運用性の開発9. まとめ参照## イントロダクション近年、ブロックチェーンアプリケーション(DApps)の発展勢いは凄まじく、ほぼ毎日新しいアプリが登場しています。ブロックチェーンプラットフォームは、毎日数百万ユーザーの活動を支え、数十億件の取引を処理しています。これらの取引から生成される膨大なデータは、通常、ユーザーの身元、取引金額、アカウントアドレス、アカウント残高などの敏感な個人情報を含んでいます。ブロックチェーンのオープン性と透明性の特徴を考慮すると、これらの保存されたデータはすべての人に開かれているため、さまざまなセキュリティおよびプライバシーの問題を引き起こしています。現在、いくつかの暗号技術がこれらの課題に対処できます。これには、同態暗号、リング署名、安全なマルチパーティ計算、そしてzk-SNARKsが含まれます。同態暗号は、暗号文を解読することなく演算を実行できるため、アカウントの残高や取引額の安全を保護するのに役立ちますが、アカウントアドレスの安全を保護することはできません。リング署名は、署名者のアイデンティティを隠すことができる特別なデジタル署名形式を提供し、アカウントアドレスの安全を保護しますが、アカウント残高や取引額の保護には無力です。安全なマルチパーティ計算は、複数の参加者間で計算タスクを分配することを可能にし、どの参加者も他の参加者のデータを知らずに済むため、アカウントの残高や取引額の安全を効果的に保護しますが、同様にアカウントアドレスの安全を保護することはできません。さらに、同態暗号、リング署名、安全なマルチパーティ計算は、取引額、アカウントアドレス、およびアカウント残高を漏らさずにブロックチェーン環境内で証明者が十分な取引額を持っているかを検証することはできません。zk-SNARKsは、より包括的なソリューションであり、この検証プロトコルは、中間データを明らかにすることなく特定の命題の正しさを検証することを可能にします。このプロトコルは、複雑な公開鍵インフラストラクチャを必要とせず、その繰り返しの実施も悪意のあるユーザーに追加の有用な情報を取得する機会を提供しません。ZKPを通じて、検証者は、プライベートな取引データを漏らすことなく、証明者が十分な取引金額を持っているかどうかを検証することができます。検証プロセスには、証明者が主張する取引金額を含む証明を生成し、その証明を検証者に渡すことが含まれます。検証者はその証明に対して事前定義された計算を行い、最終的な計算結果を出力し、証明者の声明を受け入れるかどうかの結論を導き出します。もし証明者の声明が受け入れられた場合、それは彼らが十分な取引金額を持っていることを意味します。上記の検証プロセスは、ブロックチェーン上に記録することができ、いかなる偽造もありません。ZKPという特性は、ブロックチェーン取引や暗号通貨アプリケーションにおいて中心的な役割を果たし、特にプライバシー保護とネットワーク拡張の面で、そのため学術研究の焦点となり、分散型台帳技術、特にビットコインの成功した実装以来、最も重要な技術革新の一つと広く見なされています。また、業界の応用とリスク投資の重点分野でもあります。これにより、ZKPに基づく多くのネットワークプロジェクトが次々と登場しました。例えば、ZkSync、StarkNet、Mina、Filecoin、Aleoなどがあります。これらのプロジェクトの発展に伴い、ZKPのアルゴリズム革新が次々と生まれており、ほぼ毎週新しいアルゴリズムが発表されていると報告されています。さらに、ZKP技術に関連するハードウェア開発も急速に進展しており、ZKPに最適化されたチップが含まれています。例えば、いくつかのプロジェクトは大規模な資金調達を完了しており、これらの発展はZKP技術の急速な進歩を示すだけでなく、汎用ハードウェアからGPU、FPGA、ASICなどの専用ハードウェアへの移行を反映しています。これらの進展は、zk-SNARKs技術が暗号学分野の重要なブレークスルーであるだけでなく、プライバシー保護や処理能力の向上を特に実現するための、より広範なブロックチェーン技術の応用における重要な推進力であることを示しています。そのため、私たちは零知识证明(ZKP)に関する知識を体系的に整理することに決め、将来の投資判断をより良くサポートします。これを目的に、私たちはZKPに関連する主要な学術論文(を関連性と引用数に基づいてレビューしました)。また、私たちはこの分野の先進的なプロジェクトの資料とホワイトペーパー(を資金調達規模に基づいて詳細に分析しました)。これらの包括的な資料収集と分析は、本記事の執筆に確固たる基盤を提供しました。## 1. ゼロ知識証明の基礎知識### 1. 概要1985年、学者Goldwasser、MicaliおよびRackoffは論文の中で初めて零知识证明(Zero-KnowledgeProof、ZKP)および交互式知识证(InteractiveZero-Knowledge、IZK)を提案しました。この論文は零知识证明の基礎を築くものであり、後の学術研究に影響を与える多くの概念を定義しました。例えば、知識の定義は「不可行计算の出力」であり、すなわち知識は出力である必要があり、不可行计算であることを意味します。これは単純な関数ではなく、複雑な関数でなければなりません。不可行计算は通常NP問題として理解されることができ、すなわち多項式時間内にその解の正しさを検証できる問題であり、多項式時間とはアルゴリズムの実行時間が入力サイズの多項式関数で表されることを指します。これは計算機科学におけるアルゴリズムの効率と実行可能性を測る重要な基準です。NP問題の解決プロセスは複雑であるため、不可行计算と見なされますが、その検証プロセスは比較的単純であるため、零知识证明の検証に非常に適しています。NP問題の一つの古典的な例は旅行商問題であり、ここでは一連の都市を訪れ、出発点に戻る最短の経路を見つける必要があります。最短経路を見つけることは困難かもしれませんが、特定の経路が最短であるかどうかを検証することは比較的容易です。なぜなら、特定の経路の総距離を検証することは多項式時間内に完了できるからです。Goldwasserらは彼らの論文で"知識の複雑性"という概念を導入し、インタラクティブ証明システムにおいて証明者が検証者に漏らす知識の量を定量化します。彼らはまた、インタラクティブ証明システム(InteractiveProof Systems,IPS)を提案し、証明者(Prover)と検証者(Verifier)が多段階のインタラクションを通じてある命題の真実性を証明します。以上のように、Goldwasserらがまとめたzk-SNARKsの定義は、検証者が検証プロセスにおいて文の真偽以外の追加情報を得ない特殊なインタラクティブ証明です。そして、以下の3つの基本的な特性を提案しました:1.完備性(completeness):もし証明が真実であれば、誠実な証明者は誠実な検証者にこの事実を納得させることができる;2.信頼性(サウンドネス): もし証明者が声明の内容を知らない場合、彼は検証者を欺くことができるのはごくわずかな確率だけである;3.零知識性(zero-knowledge):証明プロセスが完了した後、検証者は「証明者がこの知識を持っている」という情報のみを得て、他の追加の内容を得ることはできません。### 2. ゼロ知識証明の例零知識証明とその属性をよりよく理解するために、以下は、証明者が特定の秘密情報を持っているかどうかを検証する例です。この例は、設定、チャレンジ、応答の3つの段階に分かれています。ステップ 1: (Setup)を設定するこのステップでは、証明者の目標は、特定の秘密の数字 s を知っていることを証明する証拠を作成することですが、s を直接表示しないことです。秘密の数字を設定します;2つの大きな素数 p と q を選択し、それらの積を計算します。素数の和を設定し、得られた値を計算します;計算、ここで、v は証明の一部として検証者に送信されますが、それは検証者や他の観察者が s を推測するには不十分です。ランダムに整数 r を選択し、計算して検証者に送信します。この値 x は後続の検証プロセスに使用されますが、s も同様に公開されません。ランダム整数を設定し、計算結果を得ます。ステップ2:チャレンジ(Challenge)検証者はランダムに位置 a( を選択し、それが 0 または 1) である可能性があります。そして、証明者に送信します。この「チャレンジ」は、証明者が次に取る必要があるステップを決定します。ステップ 3: (Response)に応答する検証者が送信した a 値に基づいて、証明者が応答します:もし、証明者が(ここでrを彼が以前にランダムに選んだ数)として送信する場合。もし、証明者が計算して送信する場合、検証者が送信するランダムビットは、aの値に基づいて、証明者が計算します。最後に、検証者は受け取った g を基に等しいかどうかを検証します。等式が成立した場合、検証者はこの証明を受け入れます。その時、検証者は検証者の計算を行い、右側を検証します; その時、検証者は検証者の計算を行い、右側を検証します。ここでは、検証者が計算した結果、証明者が検証プロセスに成功したことが示されており、同時に彼の秘密の数字sが漏洩していないことが示されています。ここで、aは0または1のいずれかの値を取ることができるため、可能性は2つしかありません。証明者が運に頼って検証を通過する確率(は、aが0のとき)です。しかし、検証者はその後、証明者に再度挑戦し、証明者は関連する数字を常に変更し、検証者に提出し、常に検証プロセスを成功裏に通過します。こうして、証明者が運に頼って検証を通過する確率(は無限に0)に近づき、証明者が実際にある秘密の数字sを知っているという結論が証明されます。この例は、零知识证明システムの完全性、信頼性、そして零知识性を証明しています。## 次に、非対話型のゼロ知識証明### 1. 背景zk-SNARKs(ZKP)は、従来の概念では通常インタラクティブでオンラインのプロトコル形式です; たとえば、Sigmaプロトコルは通常、認証を完了するために3から5ラウンドのインタラクションを必要とします。しかし、即時取引や投票などのシナリオでは、複数回のインタラクションを行う機会がほとんどなく、特にブロックチェーン技術の応用においては、オフライン検証機能が特に重要です。### 2. NIZKの提案1988年、Blum、Feldman、Micaliは非交互式零知识(NIZK)証明の概念を初めて提唱し、複数回のインタラクションなしに、証明者(Prover)と検証者(Verifier)が認証プロセスを完了できる可能性を証明しました。このブレークスルーは
zk-SNARKs技術のブロックチェーン分野における応用と発展動向
zk-SNARKs技術のブロックチェーン分野における発展と応用
まとめ
zk-SNARKs(ZKP)技術は、ブロックチェーン分野において分散型台帳に次ぐ最も重要な革新の一つと考えられ、ベンチャーキャピタルの注目を集めている。本稿では、zk-SNARKs技術の約40年にわたる発展の歴史を系統的に振り返り、最新の研究成果を概説する。
記事ではまず、zk-SNARKsの基本概念と歴史的背景について紹介しています。回路ベースのzk-SNARKs技術に重点を置き、zkSNARK、Ben-Sassonモデル、Pinocchio、Bulletproofs、Ligeroなどのモデルの設計、応用、最適化方法を分析しています。計算環境に関しては、ZKVMおよびZKEVMについて紹介し、それらが取引処理能力を向上させ、プライバシーを保護し、検証効率を高める方法を探求しています。また、記事では、zk-SNARKs Rollup(ZK Rollup)をセカンドレイヤーの拡張ソリューションとしての作業メカニズムと最適化方法、ハードウェアアクセラレーション、ハイブリッドソリューション、専用ZK EVMの最新の進展についても紹介しています。
最後に、このホワイトペーパーでは、ZKCoprocessor、ZKML、ZKThreads、ZK Sharding、ZK StateChannelsなどの新しい概念を楽しみにしており、ブロックチェーンのスケーラビリティ、相互運用性、プライバシー保護の可能性を探っています。
これらの最新技術と開発動向を分析することによって、本稿は零知识证明技術の理解と応用に対して包括的な視点を提供し、ブロックチェーンシステムの効率と安全性を向上させる上でのその巨大な潜在能力を示し、将来の投資決定に重要な参考を提供します。
目次
前書き
ゼロ知識証明の基礎知識
概要
ゼロ知識証明の例
非対話型のゼロ知識証明
背景
NIZKの提案
3.フィアットシャミール変換
イェンス・グロスと彼の研究
5.その他の研究
回路ベースのゼロ知識証明
背景
2.回路モデルの基本概念と特徴
ゼロ知識証明における回路設計と応用
潜在的な落とし穴と課題
第四に、ゼロ知識証明モデル
背景
2.一般的なアルゴリズムモデル 3.線形PCPと離散対数問題に基づくスキーム 4.一般人による証明に基づく方案
ゼロ知識に基づく確率論的検証可能な証明(PCP)
6.分類は、CPC(一般証明構造)の設定段階に基づいています
ゼロ知識仮想マシンの概要と開発
背景
既存のZKVMの分類
3.フロントエンドとバックエンドのパラダイム 4.ZKVMのパラダイムの長所と短所
六、zk-SNARKsイーサリアム仮想マシンの概説と発展
背景
ZKEVMのしくみ
3.ZKEVMの実装プロセス
ZKEVMの特徴
ゼロ知識レイヤー2ネットワークソリューションの概要と開発
背景
2.ZK Rollupの作動メカニズム
ZK Rollupの欠点と最適化
ゼロ知識証明の今後の展開方向
コンピューティング環境の開発を加速する
ZKMLの提案・開発
ZKP拡張技術の開発
ZKPの相互運用性の開発
まとめ
参照
イントロダクション
近年、ブロックチェーンアプリケーション(DApps)の発展勢いは凄まじく、ほぼ毎日新しいアプリが登場しています。ブロックチェーンプラットフォームは、毎日数百万ユーザーの活動を支え、数十億件の取引を処理しています。これらの取引から生成される膨大なデータは、通常、ユーザーの身元、取引金額、アカウントアドレス、アカウント残高などの敏感な個人情報を含んでいます。ブロックチェーンのオープン性と透明性の特徴を考慮すると、これらの保存されたデータはすべての人に開かれているため、さまざまなセキュリティおよびプライバシーの問題を引き起こしています。
現在、いくつかの暗号技術がこれらの課題に対処できます。これには、同態暗号、リング署名、安全なマルチパーティ計算、そしてzk-SNARKsが含まれます。同態暗号は、暗号文を解読することなく演算を実行できるため、アカウントの残高や取引額の安全を保護するのに役立ちますが、アカウントアドレスの安全を保護することはできません。リング署名は、署名者のアイデンティティを隠すことができる特別なデジタル署名形式を提供し、アカウントアドレスの安全を保護しますが、アカウント残高や取引額の保護には無力です。安全なマルチパーティ計算は、複数の参加者間で計算タスクを分配することを可能にし、どの参加者も他の参加者のデータを知らずに済むため、アカウントの残高や取引額の安全を効果的に保護しますが、同様にアカウントアドレスの安全を保護することはできません。さらに、同態暗号、リング署名、安全なマルチパーティ計算は、取引額、アカウントアドレス、およびアカウント残高を漏らさずにブロックチェーン環境内で証明者が十分な取引額を持っているかを検証することはできません。
zk-SNARKsは、より包括的なソリューションであり、この検証プロトコルは、中間データを明らかにすることなく特定の命題の正しさを検証することを可能にします。このプロトコルは、複雑な公開鍵インフラストラクチャを必要とせず、その繰り返しの実施も悪意のあるユーザーに追加の有用な情報を取得する機会を提供しません。ZKPを通じて、検証者は、プライベートな取引データを漏らすことなく、証明者が十分な取引金額を持っているかどうかを検証することができます。検証プロセスには、証明者が主張する取引金額を含む証明を生成し、その証明を検証者に渡すことが含まれます。検証者はその証明に対して事前定義された計算を行い、最終的な計算結果を出力し、証明者の声明を受け入れるかどうかの結論を導き出します。もし証明者の声明が受け入れられた場合、それは彼らが十分な取引金額を持っていることを意味します。上記の検証プロセスは、ブロックチェーン上に記録することができ、いかなる偽造もありません。
ZKPという特性は、ブロックチェーン取引や暗号通貨アプリケーションにおいて中心的な役割を果たし、特にプライバシー保護とネットワーク拡張の面で、そのため学術研究の焦点となり、分散型台帳技術、特にビットコインの成功した実装以来、最も重要な技術革新の一つと広く見なされています。また、業界の応用とリスク投資の重点分野でもあります。
これにより、ZKPに基づく多くのネットワークプロジェクトが次々と登場しました。例えば、ZkSync、StarkNet、Mina、Filecoin、Aleoなどがあります。これらのプロジェクトの発展に伴い、ZKPのアルゴリズム革新が次々と生まれており、ほぼ毎週新しいアルゴリズムが発表されていると報告されています。さらに、ZKP技術に関連するハードウェア開発も急速に進展しており、ZKPに最適化されたチップが含まれています。例えば、いくつかのプロジェクトは大規模な資金調達を完了しており、これらの発展はZKP技術の急速な進歩を示すだけでなく、汎用ハードウェアからGPU、FPGA、ASICなどの専用ハードウェアへの移行を反映しています。
これらの進展は、zk-SNARKs技術が暗号学分野の重要なブレークスルーであるだけでなく、プライバシー保護や処理能力の向上を特に実現するための、より広範なブロックチェーン技術の応用における重要な推進力であることを示しています。
そのため、私たちは零知识证明(ZKP)に関する知識を体系的に整理することに決め、将来の投資判断をより良くサポートします。これを目的に、私たちはZKPに関連する主要な学術論文(を関連性と引用数に基づいてレビューしました)。また、私たちはこの分野の先進的なプロジェクトの資料とホワイトペーパー(を資金調達規模に基づいて詳細に分析しました)。これらの包括的な資料収集と分析は、本記事の執筆に確固たる基盤を提供しました。
1. ゼロ知識証明の基礎知識
1. 概要
1985年、学者Goldwasser、MicaliおよびRackoffは論文の中で初めて零知识证明(Zero-KnowledgeProof、ZKP)および交互式知识证(InteractiveZero-Knowledge、IZK)を提案しました。この論文は零知识证明の基礎を築くものであり、後の学術研究に影響を与える多くの概念を定義しました。例えば、知識の定義は「不可行计算の出力」であり、すなわち知識は出力である必要があり、不可行计算であることを意味します。これは単純な関数ではなく、複雑な関数でなければなりません。不可行计算は通常NP問題として理解されることができ、すなわち多項式時間内にその解の正しさを検証できる問題であり、多項式時間とはアルゴリズムの実行時間が入力サイズの多項式関数で表されることを指します。これは計算機科学におけるアルゴリズムの効率と実行可能性を測る重要な基準です。NP問題の解決プロセスは複雑であるため、不可行计算と見なされますが、その検証プロセスは比較的単純であるため、零知识证明の検証に非常に適しています。
NP問題の一つの古典的な例は旅行商問題であり、ここでは一連の都市を訪れ、出発点に戻る最短の経路を見つける必要があります。最短経路を見つけることは困難かもしれませんが、特定の経路が最短であるかどうかを検証することは比較的容易です。なぜなら、特定の経路の総距離を検証することは多項式時間内に完了できるからです。
Goldwasserらは彼らの論文で"知識の複雑性"という概念を導入し、インタラクティブ証明システムにおいて証明者が検証者に漏らす知識の量を定量化します。彼らはまた、インタラクティブ証明システム(InteractiveProof Systems,IPS)を提案し、証明者(Prover)と検証者(Verifier)が多段階のインタラクションを通じてある命題の真実性を証明します。
以上のように、Goldwasserらがまとめたzk-SNARKsの定義は、検証者が検証プロセスにおいて文の真偽以外の追加情報を得ない特殊なインタラクティブ証明です。そして、以下の3つの基本的な特性を提案しました:
1.完備性(completeness):もし証明が真実であれば、誠実な証明者は誠実な検証者にこの事実を納得させることができる;
2.信頼性(サウンドネス): もし証明者が声明の内容を知らない場合、彼は検証者を欺くことができるのはごくわずかな確率だけである;
3.零知識性(zero-knowledge):証明プロセスが完了した後、検証者は「証明者がこの知識を持っている」という情報のみを得て、他の追加の内容を得ることはできません。
2. ゼロ知識証明の例
零知識証明とその属性をよりよく理解するために、以下は、証明者が特定の秘密情報を持っているかどうかを検証する例です。この例は、設定、チャレンジ、応答の3つの段階に分かれています。
ステップ 1: (Setup)を設定する
このステップでは、証明者の目標は、特定の秘密の数字 s を知っていることを証明する証拠を作成することですが、s を直接表示しないことです。秘密の数字を設定します;
2つの大きな素数 p と q を選択し、それらの積を計算します。素数の和を設定し、得られた値を計算します;
計算、ここで、v は証明の一部として検証者に送信されますが、それは検証者や他の観察者が s を推測するには不十分です。
ランダムに整数 r を選択し、計算して検証者に送信します。この値 x は後続の検証プロセスに使用されますが、s も同様に公開されません。ランダム整数を設定し、計算結果を得ます。
ステップ2:チャレンジ(Challenge)
検証者はランダムに位置 a( を選択し、それが 0 または 1) である可能性があります。そして、証明者に送信します。この「チャレンジ」は、証明者が次に取る必要があるステップを決定します。
ステップ 3: (Response)に応答する
検証者が送信した a 値に基づいて、証明者が応答します:
もし、証明者が(ここでrを彼が以前にランダムに選んだ数)として送信する場合。
もし、証明者が計算して送信する場合、検証者が送信するランダムビットは、aの値に基づいて、証明者が計算します。
最後に、検証者は受け取った g を基に等しいかどうかを検証します。等式が成立した場合、検証者はこの証明を受け入れます。その時、検証者は検証者の計算を行い、右側を検証します; その時、検証者は検証者の計算を行い、右側を検証します。
ここでは、検証者が計算した結果、証明者が検証プロセスに成功したことが示されており、同時に彼の秘密の数字sが漏洩していないことが示されています。ここで、aは0または1のいずれかの値を取ることができるため、可能性は2つしかありません。証明者が運に頼って検証を通過する確率(は、aが0のとき)です。しかし、検証者はその後、証明者に再度挑戦し、証明者は関連する数字を常に変更し、検証者に提出し、常に検証プロセスを成功裏に通過します。こうして、証明者が運に頼って検証を通過する確率(は無限に0)に近づき、証明者が実際にある秘密の数字sを知っているという結論が証明されます。この例は、零知识证明システムの完全性、信頼性、そして零知识性を証明しています。
次に、非対話型のゼロ知識証明
1. 背景
zk-SNARKs(ZKP)は、従来の概念では通常インタラクティブでオンラインのプロトコル形式です; たとえば、Sigmaプロトコルは通常、認証を完了するために3から5ラウンドのインタラクションを必要とします。しかし、即時取引や投票などのシナリオでは、複数回のインタラクションを行う機会がほとんどなく、特にブロックチェーン技術の応用においては、オフライン検証機能が特に重要です。
2. NIZKの提案
1988年、Blum、Feldman、Micaliは非交互式零知识(NIZK)証明の概念を初めて提唱し、複数回のインタラクションなしに、証明者(Prover)と検証者(Verifier)が認証プロセスを完了できる可能性を証明しました。このブレークスルーは