ゼロ知識証明の初心者向けガイド:開発の歴史、アプリケーション、および基本原則

初級編1/6/2024, 7:13:44 PM
本記事では、ゼロ知識証明の開発経緯や基本原理を体系的に紹介します。

ブロックチェーン業界におけるゼロ知識証明プロジェクト(ZKP)の現在の成長率は驚異的であり、特に拡張とプライバシー保護の2つのレベルでのZKPアプリケーションの台頭により、さまざまなゼロ知識証明プロジェクトにさらされています。 ZKPの非常に数学的な性質により、暗号化愛好家がZKを深く理解することは非常に困難です。 したがって、ZKPの理論と応用における当初からの変化を整理し、読者と一緒に暗号業界への影響と価値を探り、HashKey Capital研究チームの考えの要約でもあるいくつかのレポートを通じて一緒に学びたいと考えています。 本記事はシリーズ第1回で、主にZKPの開発経緯、応用、基本原理について紹介します。

1. ゼロ知識証明の歴史

現代のゼロ知識証明システムは、1985年に提唱され、1989年に出版されたGoldwasser、Micali、Rackoffが共同で発表した論文「The Knowledge Complexity of Interactive Proof Systems (GMR85)」に端を発しています。 この論文では主に、対話型システムでの対話をKラウンドした後、ステートメントが正しいことを証明するためにどれだけの知識を交換する必要があるかを説明します。 交換された知識をゼロにできる場合、それはゼロ知識証明と呼ばれます。 証明者は無制限のリソースを持ち、検証者は限られたリソースしか持たないと仮定します。 対話型システムの問題は、確率が非常に小さい(1/2^n)にもかかわらず、証明が数学的に完全に証明可能であるのではなく、確率的な意味で正しいことです。

したがって、対話型システムは完全ではなく、近似的な完全性しか持っていません。 これに基づいて生まれた非対話型システム(NP)システムは完全性を持ち、ゼロ知識証明システムに最適な選択肢となります。

初期のゼロ知識証明システムは、効率や使い勝手が悪かったため、常に理論的なレベルにとどまっていました。 彼らが繁栄し始めたのは、最後の10年になってからでした。 暗号技術が暗号で顕著になるにつれて、ゼロ知識証明が最前線に登場し、重要な方向性になりました。 特に、証明サイズが限られている、一般的で非対話的なゼロ知識証明プロトコルの開発は、最も重要な探索の方向性の1つです。

基本的に、ゼロ知識証明は、証明の速度、検証の速度、証明のサイズの間のトレードオフです。 理想的なプロトコルは、高速プルーフ、高速検証、および小さなプルーフサイズです。

ゼロ知識証明における最も重要なブレークスルーは、2010年のGrothの論文「Short Pairing-based Non-interactive Zero-Knowledge Arguments」であり、ZKPにおける最も重要なzk-SNARKs群の理論的先駆者でもあります。

ゼロ知識証明の応用における最も重要な進展は、2015年にZ-cashが使用したゼロ知識証明システムであり、取引と金額のプライバシーを保護しました。 その後、zk-SNARKとスマートコントラクトの組み合わせに発展し、zk-SNARKはより広いアプリケーションシナリオに入りました。

この期間中のいくつかの重要な学業成績は次のとおりです。

  1. 2013年のピノキオ(PGHR13):ピノキオ:証明と検証の時間を適用可能な範囲に圧縮するNearly Practical Verifiable Computationは、Zcashが使用する基本的なプロトコルでもあります。
  2. 2016年のGroth16:証明のサイズを単純化し、検証効率を向上させるペアリングベースの非対話型引数のサイズについて、現在最も広く使用されているZK基本アルゴリズムです。
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions and More 2017 では、信頼できるセットアップを必要としない非常に短い非対話型のゼロ知識証明である Bulletproof アルゴリズムが提案されました。 6ヶ月後にMoneroに適用され、非常に高速です。 理論と応用の組み合わせ。
  4. 2018年、zk-STARKs(BBHR18)Scalable, transparent, and post-quantum secure computational integrityは、信頼できる設定を必要としないZK-STARKアルゴリズムプロトコルを提案しました。 これも現在のZK開発の目を引く方向性であり、これもまた、これに基づいて、最も重要なZKプロジェクトであるStarkWareが誕生しました。

PLONK、Halo2などを含む他の開発も非常に重要な進歩であり、zk-SNARKにもいくつかの改良が加えられています。

2. ゼロ知識証明の応用について簡単に説明する

ゼロ知識証明の最も普及している2つの用途は、プライバシー保護と容量拡張です。 初期の頃、プライバシー取引の開始と、ZcashやMoneroなどのいくつかの有名なプロジェクトにより、プライバシー取引はかつて非常に重要なカテゴリになりました。 しかし、プライバシー取引の必要性が業界が期待するほど顕著ではなかったため、この種の代表的なプロジェクトは減速し始めました。 ゆっくりと第2層と第3層のキャンプに入ります(歴史の段階から撤退しないでください)。 アプリケーションレベルでは、2020年にイーサリアム2.0(コンセンサスレイヤーに改名)がロールアップ中心のルートに変貌するほど、拡張の必要性が高まっています。 ZKシリーズは正式に業界の注目を集め、注目を浴びるようになりました。

プライバシー取引:SNARKを使用したZcash、Bulletproofを使用したMonero、Dashなど、プライバシー取引を実装しているプロジェクトはたくさんあります。 Dashは厳密な意味でZKPを使用するのではなく、アドレスのみを隠すことはでき、金額は隠せないシンプルで粗雑な通貨混合システムを使用しています。 ここでは触れません。

Zcashによって適用されるzk-SNARKsトランザクションステップは次のとおりです。

出典:Zcashにおけるzk-SNARKsの役割の謎を解く

  1. システム セットアップ フェーズでは、KeyGen 関数を使用して、証明キー (暗号化証明多項式) と検証キーを生成します
  2. CPAフェーズ:ECIES暗号化方式(Elliptic Curve Integrated Encryption Scheme)を使用して、公開鍵と秘密鍵を生成します
  3. コインの鋳造ステージ、生成された新しいコインの数。 パブリックアドレスとコインコミットメント
  4. 注湯ステージでは、zk-SNARK 証明書が生成され、現場打ちコンクリート トランザクション台帳に追加されます。
  5. 検証フェーズでは、検証者はMintとPourのトランザクション量が正しいかどうかを検証します。
  6. 受信段階では、受取人はコインを受け取ります。 受け取ったコインを使用する場合は、引き続きPouringを呼び出してzk-SNARK検証を形成し、上記の手順4〜6を繰り返してトランザクションを完了します。

ZcashはUTXOに基づいているため、ゼロ知識の使用にはまだ制限があり、トランザクション情報の一部はシールドされているだけで、実際には隠蔽されていません。 ビットコインの設計に基づく独立したネットワークであるため、拡張(他のアプリケーションとの組み合わせ)が困難です。 シールド(つまり、プライベートトランザクション)の実際の使用率は10%未満であり、プライベートトランザクションが正常に拡張されていないことを示しています。 (2202年から)

Tornadoが使用する単一の大規模なミキシングプールは、より用途が広く、イーサリアムのような「試行錯誤された」ネットワークに基づいています。 Torndaoは基本的にzk-SNARKを使用した通貨混合プールであり、信頼設定はGroth 16の論文に基づいています。 Tornado Cashで利用できる機能は次のとおりです。

  1. 出金できるのは入金されたコインのみです。
  2. コインを2回引き出すことはできません
  3. 証明プロセスは、通貨の無効化通知(無効化)にバインドされます。 証明が同じで無効化が異なるハッシュでは、コインの引き出しは許可されません。
  4. セキュリティは 126 ビットであり、構成によって低下することはありません。

ヴィタリック氏は、拡張に比べると、プライバシーは比較的簡単に実装できると述べている。 いくつかの拡張プロトコルが確立されれば、プライバシーは基本的に問題になりません。

拡張:ZKの拡張は、Minaなどの第1層ネットワーク、または第2層ネットワーク(zk-roll up)で実行できます。 ZKロールアップのアイデアは、2018年のVitalik氏の投稿「On-chain scaling to potentially ~500 tx/sec through mass tx validation」に端を発している可能性があります。

ZK-rollup には 2 種類のロールがあり、1 つは Sequencer で、もう 1 つは Aggregator です。 シーケンサーはトランザクションのパッケージ化を担当し、アグリゲーターは多数のトランザクションのマージとロールアップの作成、SNARKプルーフの形成を担当します(他のアルゴリズムに基づくゼロ知識プルーフにすることもできます)。 この証明は、Layer1の以前の状態と比較され、イーサリアムマークルツリーを更新し、新しい状態ツリーを計算します。

ソース: Polygon

ZKロールアップの長所と短所:

  1. 利点:経済的に攻撃されるOPとは異なり、低コストで、取引を遅らせる必要がなく、プライバシーを保護でき、ファイナリティを迅速に達成できます
  2. デメリット:ZKプルーフの形成には大量の計算が必要、セキュリティ上の問題(SNARKには信頼できる設定が必要)、量子攻撃に耐性がない(SNARK、STARKは可能)、トランザクションの順序が変更される可能性がある

出典:イーサリアム調査

データの可用性と証明方法に基づいて、StarkwareはL2の古典的な分類図を持っています(Volitionのデータ可用性レイヤーはオンチェーンまたはオフチェーンで選択できます)。

ソース: Starkware

現在市場に出回っている最も競争力のあるZKロールアッププロジェクトには、StarkwareのStarkNet、MatterlabsのzkSync、AztecのAztec connect、PolygonのHermezとMiden、Loopring、Scrollなどがあります。

基本的には、SNARK(およびその改良版)とSTARKの選択、およびEVMのサポート(互換性または同等性を含む)が技術的なルートにあります。

  1. アステカは、一般化されたSNARKプロトコル-Plonkプロトコルを開発しました。 実行中の Aztec3 は EVM をサポートする可能性がありますが、EVM の互換性よりもプライバシーが優先されます。
  2. Starnetはzk-STARKという信頼できる設定を必要としないzkpを使用していますが、現在はEVMをサポートしておらず、独自のコンパイラと開発言語を持っています。
  3. zkSync は plonk も使用し、EVM をサポートします。 zkSync 2.0 は EVM 互換で、独自の zkEVM を搭載
  4. EVM互換のZKロールアップであるScrollは、イーサリアム財団のzkEVMプロジェクトにも重要な貢献をしています

EVMの互換性の問題を簡単に説明します。

ZKシステムとEVMの互換性は常に頭痛の種であり、ほとんどのプロジェクトは2つのどちらかを選択します。 ZKを重視する人は、独自のシステムで仮想マシンを構築し、独自のZK言語やコンパイラを持つかもしれませんが、これでは開発者の習得が難しくなり、基本的にオープンソースではないため、ブラックボックスになってしまいます。 一般的に言って、業界には現在2つの選択肢があります。 1つはSolidityのオペコードと完全に互換性を持つこと、もう1つはZKフレンドリーでSolidityと互換性のある新しい仮想マシンを設計することです。 業界は当初、このような迅速な統合を期待していませんでしたが、ここ1、2年のテクノロジーの急速な反復により、EVMの互換性が新しいレベルに引き上げられ、開発者はある程度のシームレスな移行(つまり、イーサリアムのメインチェーンからZKへのロールアップ)を達成できることはエキサイティングな開発であり、ZKの開発エコシステムと競争環境に影響を与えるでしょう。 この点については、今後のレポートで詳しく説明します。

3. ZK SNARK導入の基本原則

Goldwasser、Micali、Rackoffは、ゼロ知識証明には3つの特性があると提案しました。

  1. 完全性:妥当な証人がいるすべての陳述は、検証者によって検証することができます
  2. 健全性:不合理な証人のみによるすべての主張は、検証者によって検証されるべきではありません
  3. ゼロ知識:検証プロセスはゼロ知識です

したがって、現在のブロックチェーンアプリケーションの多くはSNARKから始まっているため、ZKPを理解するためにzk-SNARKから始めます。 まずはzk-SNARKについてです。

zk-SNARKは、ゼロ知識証明(zh-SNARK)は、知識のゼロ知識のサクシント非対話型ARgumentsを意味します。

  1. ゼロ知識: 証明プロセスはゼロ知識であり、冗長な情報は公開されません。
  2. 簡潔化:検証サイズが小さい
  3. 非対話型: 非対話型プロセス
  4. ARguments: 計算は信頼性が高く、つまり、計算能力が限られている証明者は証明を偽造できず、計算能力が無制限の証明者は証明を偽造できます。
  5. 知識の:証明者は、有効な情報を知らずにパラメータと証明を構築することはできません
  6. 証明者は、証人(ハッシュ関数の入力やマークルツリーノードを決定するためのパスなど)を知らずに、パラメータと証明のセットを構築することは不可能です。

Groth16のzk-SNARKの証明原理は次のとおりです。

出典: https://learnblockchain.cn/article/3220

手順は次のとおりです。

  1. 問題を回路に変換する
  2. 回路をR1CSの形に平坦化します。
  3. R1CSをQAP(Quadratic Arithmetic Programs)形式に変換する
  4. 信頼できるセットアップを確立し、PK(証明キー)やVK(検証キー)などのランダムなパラメータを生成します
  5. zk-SNARKのプルーフ生成と検証

次回は、zk-SNARKの原理と応用について検討し、いくつかの事例を通してZK-SNARKの開発を振り返り、zk-STARKとの関係を探っていきます。

免責事項:

  1. この記事は[HashKey Capital]からの転載です。 すべての著作権は原著作者[HashKey Capital]に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。

ゼロ知識証明の初心者向けガイド:開発の歴史、アプリケーション、および基本原則

初級編1/6/2024, 7:13:44 PM
本記事では、ゼロ知識証明の開発経緯や基本原理を体系的に紹介します。

ブロックチェーン業界におけるゼロ知識証明プロジェクト(ZKP)の現在の成長率は驚異的であり、特に拡張とプライバシー保護の2つのレベルでのZKPアプリケーションの台頭により、さまざまなゼロ知識証明プロジェクトにさらされています。 ZKPの非常に数学的な性質により、暗号化愛好家がZKを深く理解することは非常に困難です。 したがって、ZKPの理論と応用における当初からの変化を整理し、読者と一緒に暗号業界への影響と価値を探り、HashKey Capital研究チームの考えの要約でもあるいくつかのレポートを通じて一緒に学びたいと考えています。 本記事はシリーズ第1回で、主にZKPの開発経緯、応用、基本原理について紹介します。

1. ゼロ知識証明の歴史

現代のゼロ知識証明システムは、1985年に提唱され、1989年に出版されたGoldwasser、Micali、Rackoffが共同で発表した論文「The Knowledge Complexity of Interactive Proof Systems (GMR85)」に端を発しています。 この論文では主に、対話型システムでの対話をKラウンドした後、ステートメントが正しいことを証明するためにどれだけの知識を交換する必要があるかを説明します。 交換された知識をゼロにできる場合、それはゼロ知識証明と呼ばれます。 証明者は無制限のリソースを持ち、検証者は限られたリソースしか持たないと仮定します。 対話型システムの問題は、確率が非常に小さい(1/2^n)にもかかわらず、証明が数学的に完全に証明可能であるのではなく、確率的な意味で正しいことです。

したがって、対話型システムは完全ではなく、近似的な完全性しか持っていません。 これに基づいて生まれた非対話型システム(NP)システムは完全性を持ち、ゼロ知識証明システムに最適な選択肢となります。

初期のゼロ知識証明システムは、効率や使い勝手が悪かったため、常に理論的なレベルにとどまっていました。 彼らが繁栄し始めたのは、最後の10年になってからでした。 暗号技術が暗号で顕著になるにつれて、ゼロ知識証明が最前線に登場し、重要な方向性になりました。 特に、証明サイズが限られている、一般的で非対話的なゼロ知識証明プロトコルの開発は、最も重要な探索の方向性の1つです。

基本的に、ゼロ知識証明は、証明の速度、検証の速度、証明のサイズの間のトレードオフです。 理想的なプロトコルは、高速プルーフ、高速検証、および小さなプルーフサイズです。

ゼロ知識証明における最も重要なブレークスルーは、2010年のGrothの論文「Short Pairing-based Non-interactive Zero-Knowledge Arguments」であり、ZKPにおける最も重要なzk-SNARKs群の理論的先駆者でもあります。

ゼロ知識証明の応用における最も重要な進展は、2015年にZ-cashが使用したゼロ知識証明システムであり、取引と金額のプライバシーを保護しました。 その後、zk-SNARKとスマートコントラクトの組み合わせに発展し、zk-SNARKはより広いアプリケーションシナリオに入りました。

この期間中のいくつかの重要な学業成績は次のとおりです。

  1. 2013年のピノキオ(PGHR13):ピノキオ:証明と検証の時間を適用可能な範囲に圧縮するNearly Practical Verifiable Computationは、Zcashが使用する基本的なプロトコルでもあります。
  2. 2016年のGroth16:証明のサイズを単純化し、検証効率を向上させるペアリングベースの非対話型引数のサイズについて、現在最も広く使用されているZK基本アルゴリズムです。
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions and More 2017 では、信頼できるセットアップを必要としない非常に短い非対話型のゼロ知識証明である Bulletproof アルゴリズムが提案されました。 6ヶ月後にMoneroに適用され、非常に高速です。 理論と応用の組み合わせ。
  4. 2018年、zk-STARKs(BBHR18)Scalable, transparent, and post-quantum secure computational integrityは、信頼できる設定を必要としないZK-STARKアルゴリズムプロトコルを提案しました。 これも現在のZK開発の目を引く方向性であり、これもまた、これに基づいて、最も重要なZKプロジェクトであるStarkWareが誕生しました。

PLONK、Halo2などを含む他の開発も非常に重要な進歩であり、zk-SNARKにもいくつかの改良が加えられています。

2. ゼロ知識証明の応用について簡単に説明する

ゼロ知識証明の最も普及している2つの用途は、プライバシー保護と容量拡張です。 初期の頃、プライバシー取引の開始と、ZcashやMoneroなどのいくつかの有名なプロジェクトにより、プライバシー取引はかつて非常に重要なカテゴリになりました。 しかし、プライバシー取引の必要性が業界が期待するほど顕著ではなかったため、この種の代表的なプロジェクトは減速し始めました。 ゆっくりと第2層と第3層のキャンプに入ります(歴史の段階から撤退しないでください)。 アプリケーションレベルでは、2020年にイーサリアム2.0(コンセンサスレイヤーに改名)がロールアップ中心のルートに変貌するほど、拡張の必要性が高まっています。 ZKシリーズは正式に業界の注目を集め、注目を浴びるようになりました。

プライバシー取引:SNARKを使用したZcash、Bulletproofを使用したMonero、Dashなど、プライバシー取引を実装しているプロジェクトはたくさんあります。 Dashは厳密な意味でZKPを使用するのではなく、アドレスのみを隠すことはでき、金額は隠せないシンプルで粗雑な通貨混合システムを使用しています。 ここでは触れません。

Zcashによって適用されるzk-SNARKsトランザクションステップは次のとおりです。

出典:Zcashにおけるzk-SNARKsの役割の謎を解く

  1. システム セットアップ フェーズでは、KeyGen 関数を使用して、証明キー (暗号化証明多項式) と検証キーを生成します
  2. CPAフェーズ:ECIES暗号化方式(Elliptic Curve Integrated Encryption Scheme)を使用して、公開鍵と秘密鍵を生成します
  3. コインの鋳造ステージ、生成された新しいコインの数。 パブリックアドレスとコインコミットメント
  4. 注湯ステージでは、zk-SNARK 証明書が生成され、現場打ちコンクリート トランザクション台帳に追加されます。
  5. 検証フェーズでは、検証者はMintとPourのトランザクション量が正しいかどうかを検証します。
  6. 受信段階では、受取人はコインを受け取ります。 受け取ったコインを使用する場合は、引き続きPouringを呼び出してzk-SNARK検証を形成し、上記の手順4〜6を繰り返してトランザクションを完了します。

ZcashはUTXOに基づいているため、ゼロ知識の使用にはまだ制限があり、トランザクション情報の一部はシールドされているだけで、実際には隠蔽されていません。 ビットコインの設計に基づく独立したネットワークであるため、拡張(他のアプリケーションとの組み合わせ)が困難です。 シールド(つまり、プライベートトランザクション)の実際の使用率は10%未満であり、プライベートトランザクションが正常に拡張されていないことを示しています。 (2202年から)

Tornadoが使用する単一の大規模なミキシングプールは、より用途が広く、イーサリアムのような「試行錯誤された」ネットワークに基づいています。 Torndaoは基本的にzk-SNARKを使用した通貨混合プールであり、信頼設定はGroth 16の論文に基づいています。 Tornado Cashで利用できる機能は次のとおりです。

  1. 出金できるのは入金されたコインのみです。
  2. コインを2回引き出すことはできません
  3. 証明プロセスは、通貨の無効化通知(無効化)にバインドされます。 証明が同じで無効化が異なるハッシュでは、コインの引き出しは許可されません。
  4. セキュリティは 126 ビットであり、構成によって低下することはありません。

ヴィタリック氏は、拡張に比べると、プライバシーは比較的簡単に実装できると述べている。 いくつかの拡張プロトコルが確立されれば、プライバシーは基本的に問題になりません。

拡張:ZKの拡張は、Minaなどの第1層ネットワーク、または第2層ネットワーク(zk-roll up)で実行できます。 ZKロールアップのアイデアは、2018年のVitalik氏の投稿「On-chain scaling to potentially ~500 tx/sec through mass tx validation」に端を発している可能性があります。

ZK-rollup には 2 種類のロールがあり、1 つは Sequencer で、もう 1 つは Aggregator です。 シーケンサーはトランザクションのパッケージ化を担当し、アグリゲーターは多数のトランザクションのマージとロールアップの作成、SNARKプルーフの形成を担当します(他のアルゴリズムに基づくゼロ知識プルーフにすることもできます)。 この証明は、Layer1の以前の状態と比較され、イーサリアムマークルツリーを更新し、新しい状態ツリーを計算します。

ソース: Polygon

ZKロールアップの長所と短所:

  1. 利点:経済的に攻撃されるOPとは異なり、低コストで、取引を遅らせる必要がなく、プライバシーを保護でき、ファイナリティを迅速に達成できます
  2. デメリット:ZKプルーフの形成には大量の計算が必要、セキュリティ上の問題(SNARKには信頼できる設定が必要)、量子攻撃に耐性がない(SNARK、STARKは可能)、トランザクションの順序が変更される可能性がある

出典:イーサリアム調査

データの可用性と証明方法に基づいて、StarkwareはL2の古典的な分類図を持っています(Volitionのデータ可用性レイヤーはオンチェーンまたはオフチェーンで選択できます)。

ソース: Starkware

現在市場に出回っている最も競争力のあるZKロールアッププロジェクトには、StarkwareのStarkNet、MatterlabsのzkSync、AztecのAztec connect、PolygonのHermezとMiden、Loopring、Scrollなどがあります。

基本的には、SNARK(およびその改良版)とSTARKの選択、およびEVMのサポート(互換性または同等性を含む)が技術的なルートにあります。

  1. アステカは、一般化されたSNARKプロトコル-Plonkプロトコルを開発しました。 実行中の Aztec3 は EVM をサポートする可能性がありますが、EVM の互換性よりもプライバシーが優先されます。
  2. Starnetはzk-STARKという信頼できる設定を必要としないzkpを使用していますが、現在はEVMをサポートしておらず、独自のコンパイラと開発言語を持っています。
  3. zkSync は plonk も使用し、EVM をサポートします。 zkSync 2.0 は EVM 互換で、独自の zkEVM を搭載
  4. EVM互換のZKロールアップであるScrollは、イーサリアム財団のzkEVMプロジェクトにも重要な貢献をしています

EVMの互換性の問題を簡単に説明します。

ZKシステムとEVMの互換性は常に頭痛の種であり、ほとんどのプロジェクトは2つのどちらかを選択します。 ZKを重視する人は、独自のシステムで仮想マシンを構築し、独自のZK言語やコンパイラを持つかもしれませんが、これでは開発者の習得が難しくなり、基本的にオープンソースではないため、ブラックボックスになってしまいます。 一般的に言って、業界には現在2つの選択肢があります。 1つはSolidityのオペコードと完全に互換性を持つこと、もう1つはZKフレンドリーでSolidityと互換性のある新しい仮想マシンを設計することです。 業界は当初、このような迅速な統合を期待していませんでしたが、ここ1、2年のテクノロジーの急速な反復により、EVMの互換性が新しいレベルに引き上げられ、開発者はある程度のシームレスな移行(つまり、イーサリアムのメインチェーンからZKへのロールアップ)を達成できることはエキサイティングな開発であり、ZKの開発エコシステムと競争環境に影響を与えるでしょう。 この点については、今後のレポートで詳しく説明します。

3. ZK SNARK導入の基本原則

Goldwasser、Micali、Rackoffは、ゼロ知識証明には3つの特性があると提案しました。

  1. 完全性:妥当な証人がいるすべての陳述は、検証者によって検証することができます
  2. 健全性:不合理な証人のみによるすべての主張は、検証者によって検証されるべきではありません
  3. ゼロ知識:検証プロセスはゼロ知識です

したがって、現在のブロックチェーンアプリケーションの多くはSNARKから始まっているため、ZKPを理解するためにzk-SNARKから始めます。 まずはzk-SNARKについてです。

zk-SNARKは、ゼロ知識証明(zh-SNARK)は、知識のゼロ知識のサクシント非対話型ARgumentsを意味します。

  1. ゼロ知識: 証明プロセスはゼロ知識であり、冗長な情報は公開されません。
  2. 簡潔化:検証サイズが小さい
  3. 非対話型: 非対話型プロセス
  4. ARguments: 計算は信頼性が高く、つまり、計算能力が限られている証明者は証明を偽造できず、計算能力が無制限の証明者は証明を偽造できます。
  5. 知識の:証明者は、有効な情報を知らずにパラメータと証明を構築することはできません
  6. 証明者は、証人(ハッシュ関数の入力やマークルツリーノードを決定するためのパスなど)を知らずに、パラメータと証明のセットを構築することは不可能です。

Groth16のzk-SNARKの証明原理は次のとおりです。

出典: https://learnblockchain.cn/article/3220

手順は次のとおりです。

  1. 問題を回路に変換する
  2. 回路をR1CSの形に平坦化します。
  3. R1CSをQAP(Quadratic Arithmetic Programs)形式に変換する
  4. 信頼できるセットアップを確立し、PK(証明キー)やVK(検証キー)などのランダムなパラメータを生成します
  5. zk-SNARKのプルーフ生成と検証

次回は、zk-SNARKの原理と応用について検討し、いくつかの事例を通してZK-SNARKの開発を振り返り、zk-STARKとの関係を探っていきます。

免責事項:

  1. この記事は[HashKey Capital]からの転載です。 すべての著作権は原著作者[HashKey Capital]に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!