ブロックチェーン業界におけるゼロ知識証明プロジェクト(ZKP)の現在の成長率は驚異的であり、特に拡張とプライバシー保護の2つのレベルでのZKPアプリケーションの台頭により、さまざまなゼロ知識証明プロジェクトにさらされています。 ZKPの非常に数学的な性質により、暗号化愛好家がZKを深く理解することは非常に困難です。 したがって、ZKPの理論と応用における当初からの変化を整理し、読者と一緒に暗号業界への影響と価値を探り、HashKey Capital研究チームの考えの要約でもあるいくつかのレポートを通じて一緒に学びたいと考えています。 本記事はシリーズ第1回で、主にZKPの開発経緯、応用、基本原理について紹介します。
現代のゼロ知識証明システムは、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はより広いアプリケーションシナリオに入りました。
この期間中のいくつかの重要な学業成績は次のとおりです。
PLONK、Halo2などを含む他の開発も非常に重要な進歩であり、zk-SNARKにもいくつかの改良が加えられています。
ゼロ知識証明の最も普及している2つの用途は、プライバシー保護と容量拡張です。 初期の頃、プライバシー取引の開始と、ZcashやMoneroなどのいくつかの有名なプロジェクトにより、プライバシー取引はかつて非常に重要なカテゴリになりました。 しかし、プライバシー取引の必要性が業界が期待するほど顕著ではなかったため、この種の代表的なプロジェクトは減速し始めました。 ゆっくりと第2層と第3層のキャンプに入ります(歴史の段階から撤退しないでください)。 アプリケーションレベルでは、2020年にイーサリアム2.0(コンセンサスレイヤーに改名)がロールアップ中心のルートに変貌するほど、拡張の必要性が高まっています。 ZKシリーズは正式に業界の注目を集め、注目を浴びるようになりました。
プライバシー取引:SNARKを使用したZcash、Bulletproofを使用したMonero、Dashなど、プライバシー取引を実装しているプロジェクトはたくさんあります。 Dashは厳密な意味でZKPを使用するのではなく、アドレスのみを隠すことはでき、金額は隠せないシンプルで粗雑な通貨混合システムを使用しています。 ここでは触れません。
Zcashによって適用されるzk-SNARKsトランザクションステップは次のとおりです。
出典:Zcashにおけるzk-SNARKsの役割の謎を解く
ZcashはUTXOに基づいているため、ゼロ知識の使用にはまだ制限があり、トランザクション情報の一部はシールドされているだけで、実際には隠蔽されていません。 ビットコインの設計に基づく独立したネットワークであるため、拡張(他のアプリケーションとの組み合わせ)が困難です。 シールド(つまり、プライベートトランザクション)の実際の使用率は10%未満であり、プライベートトランザクションが正常に拡張されていないことを示しています。 (2202年から)
Tornadoが使用する単一の大規模なミキシングプールは、より用途が広く、イーサリアムのような「試行錯誤された」ネットワークに基づいています。 Torndaoは基本的にzk-SNARKを使用した通貨混合プールであり、信頼設定はGroth 16の論文に基づいています。 Tornado Cashで利用できる機能は次のとおりです。
ヴィタリック氏は、拡張に比べると、プライバシーは比較的簡単に実装できると述べている。 いくつかの拡張プロトコルが確立されれば、プライバシーは基本的に問題になりません。
拡張: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ロールアップの長所と短所:
出典:イーサリアム調査
データの可用性と証明方法に基づいて、StarkwareはL2の古典的な分類図を持っています(Volitionのデータ可用性レイヤーはオンチェーンまたはオフチェーンで選択できます)。
ソース: Starkware
現在市場に出回っている最も競争力のあるZKロールアッププロジェクトには、StarkwareのStarkNet、MatterlabsのzkSync、AztecのAztec connect、PolygonのHermezとMiden、Loopring、Scrollなどがあります。
基本的には、SNARK(およびその改良版)とSTARKの選択、およびEVMのサポート(互換性または同等性を含む)が技術的なルートにあります。
EVMの互換性の問題を簡単に説明します。
ZKシステムとEVMの互換性は常に頭痛の種であり、ほとんどのプロジェクトは2つのどちらかを選択します。 ZKを重視する人は、独自のシステムで仮想マシンを構築し、独自のZK言語やコンパイラを持つかもしれませんが、これでは開発者の習得が難しくなり、基本的にオープンソースではないため、ブラックボックスになってしまいます。 一般的に言って、業界には現在2つの選択肢があります。 1つはSolidityのオペコードと完全に互換性を持つこと、もう1つはZKフレンドリーでSolidityと互換性のある新しい仮想マシンを設計することです。 業界は当初、このような迅速な統合を期待していませんでしたが、ここ1、2年のテクノロジーの急速な反復により、EVMの互換性が新しいレベルに引き上げられ、開発者はある程度のシームレスな移行(つまり、イーサリアムのメインチェーンからZKへのロールアップ)を達成できることはエキサイティングな開発であり、ZKの開発エコシステムと競争環境に影響を与えるでしょう。 この点については、今後のレポートで詳しく説明します。
Goldwasser、Micali、Rackoffは、ゼロ知識証明には3つの特性があると提案しました。
したがって、現在のブロックチェーンアプリケーションの多くはSNARKから始まっているため、ZKPを理解するためにzk-SNARKから始めます。 まずはzk-SNARKについてです。
zk-SNARKは、ゼロ知識証明(zh-SNARK)は、知識のゼロ知識のサクシント非対話型ARgumentsを意味します。
Groth16のzk-SNARKの証明原理は次のとおりです。
出典: https://learnblockchain.cn/article/3220
手順は次のとおりです。
次回は、zk-SNARKの原理と応用について検討し、いくつかの事例を通してZK-SNARKの開発を振り返り、zk-STARKとの関係を探っていきます。
ブロックチェーン業界におけるゼロ知識証明プロジェクト(ZKP)の現在の成長率は驚異的であり、特に拡張とプライバシー保護の2つのレベルでのZKPアプリケーションの台頭により、さまざまなゼロ知識証明プロジェクトにさらされています。 ZKPの非常に数学的な性質により、暗号化愛好家がZKを深く理解することは非常に困難です。 したがって、ZKPの理論と応用における当初からの変化を整理し、読者と一緒に暗号業界への影響と価値を探り、HashKey Capital研究チームの考えの要約でもあるいくつかのレポートを通じて一緒に学びたいと考えています。 本記事はシリーズ第1回で、主にZKPの開発経緯、応用、基本原理について紹介します。
現代のゼロ知識証明システムは、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はより広いアプリケーションシナリオに入りました。
この期間中のいくつかの重要な学業成績は次のとおりです。
PLONK、Halo2などを含む他の開発も非常に重要な進歩であり、zk-SNARKにもいくつかの改良が加えられています。
ゼロ知識証明の最も普及している2つの用途は、プライバシー保護と容量拡張です。 初期の頃、プライバシー取引の開始と、ZcashやMoneroなどのいくつかの有名なプロジェクトにより、プライバシー取引はかつて非常に重要なカテゴリになりました。 しかし、プライバシー取引の必要性が業界が期待するほど顕著ではなかったため、この種の代表的なプロジェクトは減速し始めました。 ゆっくりと第2層と第3層のキャンプに入ります(歴史の段階から撤退しないでください)。 アプリケーションレベルでは、2020年にイーサリアム2.0(コンセンサスレイヤーに改名)がロールアップ中心のルートに変貌するほど、拡張の必要性が高まっています。 ZKシリーズは正式に業界の注目を集め、注目を浴びるようになりました。
プライバシー取引:SNARKを使用したZcash、Bulletproofを使用したMonero、Dashなど、プライバシー取引を実装しているプロジェクトはたくさんあります。 Dashは厳密な意味でZKPを使用するのではなく、アドレスのみを隠すことはでき、金額は隠せないシンプルで粗雑な通貨混合システムを使用しています。 ここでは触れません。
Zcashによって適用されるzk-SNARKsトランザクションステップは次のとおりです。
出典:Zcashにおけるzk-SNARKsの役割の謎を解く
ZcashはUTXOに基づいているため、ゼロ知識の使用にはまだ制限があり、トランザクション情報の一部はシールドされているだけで、実際には隠蔽されていません。 ビットコインの設計に基づく独立したネットワークであるため、拡張(他のアプリケーションとの組み合わせ)が困難です。 シールド(つまり、プライベートトランザクション)の実際の使用率は10%未満であり、プライベートトランザクションが正常に拡張されていないことを示しています。 (2202年から)
Tornadoが使用する単一の大規模なミキシングプールは、より用途が広く、イーサリアムのような「試行錯誤された」ネットワークに基づいています。 Torndaoは基本的にzk-SNARKを使用した通貨混合プールであり、信頼設定はGroth 16の論文に基づいています。 Tornado Cashで利用できる機能は次のとおりです。
ヴィタリック氏は、拡張に比べると、プライバシーは比較的簡単に実装できると述べている。 いくつかの拡張プロトコルが確立されれば、プライバシーは基本的に問題になりません。
拡張: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ロールアップの長所と短所:
出典:イーサリアム調査
データの可用性と証明方法に基づいて、StarkwareはL2の古典的な分類図を持っています(Volitionのデータ可用性レイヤーはオンチェーンまたはオフチェーンで選択できます)。
ソース: Starkware
現在市場に出回っている最も競争力のあるZKロールアッププロジェクトには、StarkwareのStarkNet、MatterlabsのzkSync、AztecのAztec connect、PolygonのHermezとMiden、Loopring、Scrollなどがあります。
基本的には、SNARK(およびその改良版)とSTARKの選択、およびEVMのサポート(互換性または同等性を含む)が技術的なルートにあります。
EVMの互換性の問題を簡単に説明します。
ZKシステムとEVMの互換性は常に頭痛の種であり、ほとんどのプロジェクトは2つのどちらかを選択します。 ZKを重視する人は、独自のシステムで仮想マシンを構築し、独自のZK言語やコンパイラを持つかもしれませんが、これでは開発者の習得が難しくなり、基本的にオープンソースではないため、ブラックボックスになってしまいます。 一般的に言って、業界には現在2つの選択肢があります。 1つはSolidityのオペコードと完全に互換性を持つこと、もう1つはZKフレンドリーでSolidityと互換性のある新しい仮想マシンを設計することです。 業界は当初、このような迅速な統合を期待していませんでしたが、ここ1、2年のテクノロジーの急速な反復により、EVMの互換性が新しいレベルに引き上げられ、開発者はある程度のシームレスな移行(つまり、イーサリアムのメインチェーンからZKへのロールアップ)を達成できることはエキサイティングな開発であり、ZKの開発エコシステムと競争環境に影響を与えるでしょう。 この点については、今後のレポートで詳しく説明します。
Goldwasser、Micali、Rackoffは、ゼロ知識証明には3つの特性があると提案しました。
したがって、現在のブロックチェーンアプリケーションの多くはSNARKから始まっているため、ZKPを理解するためにzk-SNARKから始めます。 まずはzk-SNARKについてです。
zk-SNARKは、ゼロ知識証明(zh-SNARK)は、知識のゼロ知識のサクシント非対話型ARgumentsを意味します。
Groth16のzk-SNARKの証明原理は次のとおりです。
出典: https://learnblockchain.cn/article/3220
手順は次のとおりです。
次回は、zk-SNARKの原理と応用について検討し、いくつかの事例を通してZK-SNARKの開発を振り返り、zk-STARKとの関係を探っていきます。