出典: chainden community
zk-SNARKとzk-STARKとは何でしょうか。どちらもゼロ知識証明ですが、それぞれの性質と比較はどのようなものでしょうか。
ゼロ知識証明(ZKP:Zero Knowledge Proofs)は暗号プロトコルであり、ある当事者(証明者)が別の当事者(検証者)に対して、その発言自体の正当性以上の情報を明らかにすることなく、ある発言が真実であると説得することを可能にします。ZKPはブロックチェーンエコシステムにおける革命的な技術であり、第2層のソリューションを通じてブロックチェーンのスケーラビリティを実現し、プライバシーを保護するアプリケーションを構築します。ZKPの最も顕著な2つのタイプはzk-SNARKとzk-STARKであり、それぞれ異なる特徴とユースケースを持っています。
この記事では、zk-SNARKとzk-STARK、それらの主な特徴、および互いの比較について説明します。
前提条件
ZKPを理解する: 回路、制約、証人、検証者、および証明者が何であるかを知る必要があります。
Zk-SNARK (Succinct Non-Interactive Argument from Knowledge)とは
Zk-SNARKは、非対話的なZKPシステムの広いクラスです。通信である。これは、最初の証明が生成された後、証明者と検証者が通信を行ったり来たりすることがないことを意味する。ZKPはその効率性で知られており、短い証明サイズと高速な検証時間を提供し、複雑さに関係なく一定である。
zk-SNARKの主な特徴
Trusted setup: SNARKは信頼されたセットアップフェーズを必要とし、そこで初期パラメータのセットが生成されます。SRS)と呼ばれる。このセットアップフェーズでは、公開された場合、このセットアップを使用して作成された後続のすべての証明のセキュリティを破ることになる秘密を使用する。この設定データはしばしば「有害廃棄物」と呼ばれる。信頼された設定は、潜在的な信頼の問題を引き起こすため、しばしば不利とみなされます。ユーザーは、設定が正しく実行され、その後秘密が破棄されたと信じなければなりません。
楕円曲線暗号(ECC):SNARKの多くの構成は、離散対数問題(DLP)の難しさに応じて楕円曲線暗号に依存しています。
人気のあるzk-SNARKプロトコル
Groth16: Groth16は最も広く使われているSNARKプロトコルの1つです。回路固有の信頼できるセットアップを必要とし、非常に効率的で、非常に小さな証明と高速な検証時間を生成します。
PLONK (Placing Arguments Based on Lagrangian Arguments for Universal Non-Interacting Knowledge):PLONKはより柔軟なSNARKプロトコルで、汎用かつ更新可能なSNARKプロトコルを使用します。strong>かつ更新可能なSRSであるため、どのような回路にも使用でき、より大規模な回路をサポートするように変更することもできる。Groth16とは異なり、PLONKの設定は特定の回路に特化したものではなく、複数の回路に再利用できます。このため、信頼できるセットアップを繰り返す必要が少なくなり、セットアップ全体をやり直すことなく、新しいプログラムや回路を簡単に追加できます。
zk-SNARKの特長
実績のあるサイズ:小型のため、SNARKは帯域幅やストレージが制限されたアプリケーションに適しています。
ポスト量子セキュリティ:ECCに依存しているため、限定的です。 SNARKは量子耐性がありません。十分に強力な量子コンピューターがDLPに対処できる可能性があるためです。
信頼されたセットアップ:これが必要です。(ほとんどのSNARKにおいて)。セットアップ段階では、適切に管理されなければ潜在的なセキュリティリスクをもたらす可能性のある信頼の前提が導入されます。
スケーラビリティ:コンパクトな証明と高速な検証を必要とするアプリケーションでは非常に効率的ですが、高度に動的な環境では信頼されたセットアップの必要性が制限となる可能性があります。
zk-STARK (Scalable Transparent Knowledge Argumentation)とは
zk-STARKは、zk-SNARKの欠点に対処するために設計されたZKPの別のクラスです。Zk-STARKは拡張可能で「透過的」であるように設計されており、信頼されたセットアップフェーズを必要としません。その代わりに、zk-STARKは証明を構築するためにハッシュ関数と公知のランダム性を使用し、その安全性と拡張性を高めています。
zk-STARKの主な特徴
Transparent setup:STARKは秘密のパラメータに依存しません。その代わりに、その証明はオープンなランダム性を使って生成されます。つまり、システムを壊す可能性のある「有害廃棄物」がなく、信頼できる設定を必要としません。
ハッシュベースのセキュリティ:STARKは楕円曲線暗号化ではなく、SHA-256などのハッシュ関数に依存しています。ハッシュ関数は現在の暗号の仮定では量子コンピューターに対して安全であると考えられているため、これは量子攻撃に対する耐性となります。
STARKの特性
Proof size:STARKの証明はSNARKの証明の数倍大きくなる可能性があり、検証時間が長くなり、帯域幅やストレージが限られた環境では不利です。限られた環境では不利です。これは、その透明性、多項式コミットメントの使用、およびスケーラビリティを達成する方法によるものです。
ポスト量子セキュリティ:強力です。STARKは楕円曲線暗号の代わりにハッシュ関数を使用するため、現在の暗号学的前提の下では量子攻撃に対する脆弱性が低い。
信頼されたセットアップ:必要ありません。STARKは透過的なセットアップを使用するため、セットアップ段階での信頼が不要になり、セキュリティが強化されます。
スケーラビリティ:スケーラビリティが高く、特に大規模な計算に適しており、複雑さが増すにつれて、より大きなパフォーマンス上の利点があります。新しいアプリケーションやユースケースごとにセットアップをやり直す必要がないため、信頼できるセットアップが必要なく、より柔軟です。
zk-SNARK vs. zk-STARK
![7316066 Ehoj8l2DeFZaehMMHxVLv7NfC17OCor9jS0XohvM.jpeg](https://img.jinse.cn/7316066_watermarknone.png)
概要
Zk-SNARKはゼロ知識証明システムです。効率的な証明サイズと高速な検証時間を提供しますが、信頼できるセットアップを必要とし、楕円曲線暗号を使用するため、量子攻撃に対して脆弱です。
Zk-STARKは一方で、信頼できるセットアップを必要としません。その代わりに、セキュリティのためにハッシュ関数に依存し(量子耐性がある)、大規模な計算に対してよりスケーラブルです。しかし、証明サイズが大きく、小規模な計算では検証に時間がかかります。
これら2つの主要なZKPは、ブロックチェーンエコシステムでZKプロトコルを構築し、第2層のソリューションを通じてブロックチェーンのスケーラビリティを可能にし、プライバシーを保護するアプリケーションを構築するために重要です。