
著者:Lita Foundation、翻訳:ビットチェーンビジョンXiaozou
「将来5年間、ブロックチェーンプロトコルの適用など、ゼロ知識プロトコルの適用について説明します。過去数年間にブレークスルーによって放出される可能性は、暗号化の主流を一掃します。「
————エスプレッソシステムCSOジル、、、、2021年5月
2021年以来、ゼロ知識証明書(ZK)パターンは、複数のフィールドにわたるプライマリ、ネットワーク、およびアプリケーションで構成される多様なエコシステムに進化してきました。しかし、ZKの徐々に開発されたにもかかわらず、ZK駆動型のロールアップ(StarknetやZksync時代など)の発売は、ZKユーザーと暗号化フィールド全体のフィールドでの最新の進歩を示しました。ZKのほとんどは依然として謎です。
しかし、時代は変化しています。Zero -Knowledge暗号化は、ソフトウェアセキュリティの拡大と保護に使用できる強力で普遍的なツールであると考えています。簡単に言えば、ZKは大規模な暗号化で使用されるブリッジです。Jillをもう一度引用すると、Web2であろうとWeb3であろうと、ゼロ知識証明(ZKP)を含むものはすべて、大きな価値(基本的な価値と投機的価値を含む)を生み出します。暗号化分野で最高の才能は、反復を更新しようとしており、ZKエコノミーを実現可能で準備ができています。それでも、私たちが想定していたモデルが現実になる前に、業界にはまだ多くのことがありました。
ZKの使用をビットコインと比較することを、BlackRockによって承認された「デジタルゴールド」の1つの理由にビットコインのインターネット通貨の理由の1つは、開発者とコミュニティのクリエイティブコンテンツが増加し、栽培が培われたことです。 。現在、ZKは泡の泡に存在しています。情報は分散型です。誰もがゼロ知識が証明されていることを知っている人(専門家と素人)は知っているようですが、実際にどのように機能するかは誰も説明できません。
ゼロ知識のパラダイムに貢献するチームの1つとして、私たちは私たちの仕事の謎を明らかにし、より広範な視聴者がZKシステムとアプリケーションの標準化された基盤を確立し、関連当事者と議論の間の教育と宣伝を促進するのを支援したいと考えています。関連する情報を広めて広めることができます。
この点で、ゼロ知識証明とゼロ知識仮想マシンの基本的な知識を紹介し、ZKVMの動作プロセスを要約し、最後にZKVMの評価基準を分析します。
1、基本知識の知識証明ゼロ
ゼロとは何ですか – 知識証明書(ZKP)?
要するに、ZKPは、1つの当事者(Prover Proof)が何かを知っていることを反対側(Verifier Verifier)に証明することを可能にしますが、特定のコンテンツまたは問題のその他の情報を開示する必要はありません。より具体的には、ZKPは、データまたは入力コンテンツを開示せずに、データまたは計算結果の認識の段落を証明しています。ゼロ知識認証を作成するプロセスには、一連の数学モデルが含まれ、計算結果を他のケースの成功した実行に変換します。
場合によっては、複数の代数変換と暗号構造の証明が操作計算に必要なワークロードよりも少ないことを確認するために必要なワークロードが必要です。セキュリティとスケーラビリティのこのユニークな組み合わせにより、知識の暗号化が強力なツールになりました。
zksnark:ゼロ知識のシンプルではない非インタラクティブな知識のデモンストレーション
・検証のためのパラメーターを確立するための初期(信頼できるまたは信じられない)設定プロセスに依存する
・必要な証明と検証の間に少なくとも1つの相互作用
・検証が少なく簡単であることを証明します
・zksync、scroll、lineaのようにロールアップします。スナークベースの証明
zkstark:Zero-認識可能な拡張と透明な知識のデモンストレーション暗い
・信頼される必要はありません
・公開されているランダム性、つまり証明および検証することが証明され、それによって高い透明性を提供するランダムパラメーターを生成することで信頼する必要のない検証可能なシステムを作成します。
・基礎となる証言(データ)が大きい場合でも(常にではない)、迅速に証明を生成および検証できるため、高度にスケーラブルです。
・証明と検証の間に相互作用はありません
・価格は、スタークがより大きな証拠を生成することです。これは、スナークよりも検証がより困難です。
・証明は、いくつかのZKSNARK証明よりも検証するのが難しいが、他の証明と比較して検証するのは簡単だ。
・StarkNetとZKVM(Lita、Risc Zero、簡潔なラボなど)はStarkを使用します。
(知らせ:簡潔な橋使用スナーク、しかしSP1に基づくスターク合意)
すべてのスタークがスナークであることは注目に値しますが、すべての嗅覚が厳しいわけではありません。
2何ですかZKVM交差点
Virtual Machine(VM)は、プログラムを実行するためのプログラムです。コンテキストでは、ZKVMは仮想コンピューターであり、システム、一般的な回路、またはツールとして実装されており、プログラムまたは計算にZKVMを生成するためのゼロ認識証明を生成します。
ZKVMは、複雑な数学と暗号設計とZKのエンコードを学習する必要はないため、開発者はお気に入りの言語で書かれたプログラムを実行し、ZKP(ゼロ知識証明書)を生成できます。広い意味で、ほとんどのZKVMは、仮想マシン自体だけでなく、実行プログラムに接続された仮想マシンを含むコンパイラツールチェーンおよび認証システムを意味します。以下に、ZKVMの主要なコンポーネントと機能を要約します。
>
各コンポーネントの設計と実装は、ZKVMの証明(SnarksまたはStarks)と命令セットアーキテクチャ(ISA)の選択によって制御されます。従来、ISAは、CPUの機能(データ型、レジスタ、メモリなど)の操作順序を指定し、プログラムを実行するときに実行されたCPUを指定しています。コンテキストでは、ISAはVMで説明および実行できるマシンコードを決定します。ISAを選択すると、ZKVMのアクセシビリティと可用性の基本的な違いを生み出し、処理プロセスの速度と効率を証明し、ZKVMの構築をサポートできます。
参照のみを参照するために、ZKVMとそのコンポーネントの例をいくつか紹介します。
>
ここで、各コンポーネント間の高いレベルの相互作用に焦点を当て、後続の記事でフレームワークを提供して、ZKVMの代数と暗号化プロセスと設計バランスを理解できるようにします。
3抽象的なZKVMプロセス
以下の図は、抽象的で一般的なZKVMフローチャートです。
>
ZKVMのプロセスは一般に次のとおりです。
(1)コンパイルフェーズ
コンパイラは、最初に従来の言語(C、C ++、錆、堅牢性)によって記述されたプログラムをマシンコードにコンパイルします。マシンコードの形式は、選択したISAによって決定されます。
(2。VMステージ
VMはマシンコードを実行し、実行追跡を生成します。これは、基礎となるプログラムの一連のステップです。その形式は、アルゴリズムの選択と多項式の制約によって決定されます。一般的なアルゴリズムには、GROTH16のR1C、HalO2のPlonkishアルゴリズム、Plonky2およびPlonky3の空気が含まれます。
(3)検証フェーズ
Prooferは追跡を受信し、一連の制約によって制限された一連のポリノマとして表現します。これは、数学マッピングの事実が変換されるという事実によって、本質的に代数に変換されます。
プロバーは、これらの多項式を提出するために、多項式コミットメントスキーム(PCS)を使用します。コミットメントプランは、Xのコンテンツを漏らすことなくXに関する事実を証明するためにXへのコミットメントと呼ばれるXの指紋をProoferが作成できるようにする契約です。PCSは指紋であり、計算された拘束の「事前処理」簡潔なバージョンです。これにより、証明者は、検証担当者によって検証された人によって提案されたランダム値を使用して、計算の事実を証明することができ、現在は多項式方程式で表されています。
Prooferは、多項式相互作用Oracle Proof(PIOP)を実行して、証明によって提出された多項式が与えられた制約を満たす実行軌跡を表していることを証明します。PIOPは、ポリノミアルにコミットメントを送信するインタラクティブな証明プロトコルです。マナー。
Fiat-Shamir Inspirationalアプリケーション。暗号化では、Fiaat-Shamirのインスピレーションは、インタラクティブな知識を変換して、検証のためにデジタル署名に証明します。このステップは、暗号化されており、証明し、ゼロの知識証明にします。
証明者は検証担当者を説得する必要があり、検証装置に送られたと主張された多項式評価は正しいです。これを行うために、Prooferは、多項式コミットメントスキーム(指紋)によって提供される「評価」または「開く」証明書を生成します。
(4)検証段階
Verifinsは、制約または約束を使用して、証明システムの検証契約に従うことにより、出所を確認します。検証は、証明の妥当性に基づいて結果を受け入れるか拒否します。
要するに、ZKVMは、指定された結果と与えられた最初の条件に与えられた手順にいくつかの入力があることを証明しているため、プログラムは指定された初期条件から与えられた結果を生成します。このステートメントをプロセスと組み合わせて、ZKVMの以下の説明を取得できます。
ZKVMそれが与えられたことを証明することを証明しますVMプログラムと与えられた出力にはいくつかの入力があり、特定のプログラムがVM実行中の特定の出力。
4、評価するZKVM
ZKVMの標準は何ですか?言い換えれば、あるZKVMは別のZKVMよりも優れていると言うべきですか?実際、答えはユースケースに依存します。
Litaの市場調査によると、ほとんどの商業用ユースケースでは、速度、効率、およびシンプルさの間の最も重要な属性は、アプリケーションに応じて速度またはコア時間効率のいずれかであることが示されています。一部のアプリケーションは、価格に敏感であり、これらのアプリケーションの低いエネルギー消費と低コストに最適化することを望んでいます。他のアプリケーション、特に財務または取引関連のアプリケーションは、遅延に非常に敏感であり、速度を最適化する必要があります。
ほとんどのパフォーマンスはもちろん、スピードをより懸念していますが、速度は非常に重要ですが、それは包括的な尺度ではありません。ZKVMの信頼性を測定できるいくつかの重要な属性もありますが、それらのほとんどは、市場をリードする古いファッションの企業でさえ、生産基準を満たしていません。
ZKVMは次の基準に従って評価され、2つの小さなカテゴリに分割されることをお勧めします。
>
ベースライン:測定に使用されますZKVM信頼性
・正しさ
・ 安全
・信頼の仮定
パフォーマンス:測定に使用されますZKVM能力
・ 効率
・ スピード
・ 単純
(1)ベースライン:正確性、セキュリティ、信頼の仮定
主要なタスクアプリケーションのZKVMを評価する場合、ベンチマークとして正確性とセキュリティを使用する必要があります。正確性に自信を持ち、十分なステートメントセキュリティを持つ十分な理由があります。さらに、アプリケーションの場合、信頼の仮定は十分に弱い必要があります。
これらの属性がなければ、ZKVMは、指定された方法に応じて実行できず、ユーザーをハッキングおよび脆弱性攻撃に公開することができないため、アプリケーションでは役に立たない場合よりも役に立たない場合があります。
正確さ
・VMは、予想どおり計算する必要があります
・システムが主張するセキュリティ属性を満たさなければならないことを証明します
正しさには3つの主要な属性が含まれています。
・安定性:プルーフシステムは本物であるため、それが証明するものはすべて真実です。検証者は虚偽の陳述の証拠を受け入れることを拒否し、実際の計算結果の計算結果のみを受け入れました。
・完了:システムが完了しており、すべての実際のステートメントを証明できることを証明します。Prooferが計算結果を証明できると主張する場合、その検証を許容可能な証明を生成できる必要があります。
・ゼロ – 知識証明:結果自体と比較して、証明を持つことは入力の計算に関する情報を明らかにすることはできません。
あなたは、システムが虚偽の陳述を含むすべてを証明していることを証明しているが、それは完全ではないことを証明するかもしれません。また、システムがプログラムの存在を証明できない場合は、音を立てることもできませんが、明らかに(結局のところ、虚偽の陳述を証明したことはありません)が、完了。
安全
・関連する許容範囲、完全性、およびゼロ知識証明書
実際には、3つの正しい属性はすべて、非ゼロの公共の違いがあります。これは、すべての証明が正確さの統計的確率であり、絶対に確実ではないことを意味します。許容範囲とは、属性障害の最大許容耐性確率を指します。Zero Gongの違いはもちろん理想的ですが、実際には、ZKVMはこれらすべての属性にゼロパブリックの違いを達成していません。完全な安定性と完全性は、シンプルさと互換性があるようであり、完全なゼロ知識証明を達成するための既知の方法はありません。安全性を測定する一般的な方法は、1 /(2^n)の耐性がnビットセキュリティと呼ばれるセキュリティビットに基づいています。ビットが高いほど、安全性が向上します。
ZKVMが完全に正しい場合、必ずしも信頼できることを意味するわけではありません。循環性とは、ZKVMがその主張の耐性の範囲内でセキュリティ属性を満たすことを意味します。これは、耐性が市場に参入するのに十分低いという意味ではありません。さらに、ZKVMが十分に安全な場合、それが正しいことを意味するものではありません。ZKVMが完全に正しく安全である場合にのみ、ZKVMは請求された許容範囲内で信頼できる可能性があります。
予測
・ZKVMの信頼できる操作の結論を引き出すために、証明と検証として検証されたものの完全性を仮定します。
ZKVMに信頼の仮定がある場合、通常、信頼できる設定の形式が採用されます。プルーフシステムを使用して最初の証明を生成する前に、ZKプルーフシステムの設定プロセスは1回実行され、「設定データ」と呼ばれる情報を生成します。クレジット設定プロセス中、1人以上の個人がある程度のランダム性を生成します。
実際には、2つの一般的な信頼の仮定モデルがあります。
「正直な」信頼の仮説的な仮定は、Nの半分以上が、システムとの特定の相互作用において正直に機能することを示しています。
「1 / n」の信頼は、Nのグループの間で、これらの人々の少なくとも1人がシステムとの特定の相互作用において誠実さを示していると仮定しています。
一般に、他の条件下では、ZKVMはZKVMよりも仮定を信頼していないと信じられています。
(2。ZKVM3つのジレンマ:ZKVM中速、効率、およびシンプルなバランス
>
速度、効率、およびシンプルさは、スケーラブルな属性です。これらすべての要因により、ZKVMのエンドユーザーコストが増加します。評価でそれらを比較検討する方法は、アプリケーションによって異なります。一般に、最速のソリューションは最も効果的または最も単純なものではなく、最も単純なソリューションは最速または最も効果的ではありません。それらの関係を説明する前に、各属性を定義しましょう。
スピード
・証明の証拠の証拠はどれくらい速いか
・クロック時間に計算します。つまり、最初から最後までの時間を計算します
速度を定義し、特定のテストプログラム、入力、システムに従って測定して、速度を定量的に評価できるようにする必要があります。このインジケーターは、これらのアプリケーションの遅延において重要です。
効率
・Prooferによって消費されるリソースが少ないほど、より良い。
・ユーザーの時間、つまりプログラムコードに費やされたコンピューター時間に似ています。
プルーパーは、カーネルの時間と空間の2つのリソースを消費します。したがって、効率は、コア時間効率と空間効率に細分化できます。
コア時間効率:Proverには、すべてのカーネルを実行してProverのコアを実行する平均時間を掛けます。
単一のコアプレーバーの場合、カーネルの時間消費と速度は同じものです。マルチコアシステムで実行されているマルチコア関数プローバーの場合、カーネルの時間消費と速度は同じではありません。プログラムが5秒以内に5つのカーネルまたはスレッドを完全に使用している場合、これは25秒のユーザー時間と5秒のクロックになります。
スペース効率:RAMなどの使用されるストレージ容量を指します。
コンピューティングを実行することで消費されるエネルギーとしてユーザー時間を使用することは非常に興味深いです。ほとんどすべてのカーネルが完全に使用されているため、CPUのエネルギー消費は比較的一定でなければなりません。この場合、主にユーザーモードで使用されるCPUによって制限されるユーザーの時間は、コード実行によって消費されるワットタイム(エネルギー)の線形割合である必要があります。
十分な証明操作の観点から見ると、エネルギー消費の節約またはコンピューティングリソースの使用は興味深い問題になるはずです。これらの理由から、ユーザーの時間は興味深い尺度です。低コストにより、サービスプロバイダーは低価格をコストに敏感な顧客に渡すことができます。
両方の効率は、証明プロセスで使用される資金の額と証明プロセスで使用される資金の量に関連しており、資金の量は証明の財務コストに関連しています。測定効率の定義を作成するには、この定義は、1つ以上のテスト手順、各プログラムの1つ以上のテスト入力、および1つ以上のテストシステムに関連している必要があります。
シンプルさ
・証明のサイズと検証の複雑さ
シンプルさは、3つの異なる指標の組み合わせです。
・サイズの証明:証明の物理サイズは通常、数千バイトによって結合されます。
・証明検証時間:証明を確認するのに必要な時間。
検証空間を証明する:検証中のメモリ使用の証明。
検証は通常単一のコア操作であるため、この状況では、速度とカーネルの時間効率が通常1つのことです。速度や効率と同様に、簡潔さの定義には、テスト手順、テスト入力、テストシステムの指定が必要です。
各パフォーマンス属性を定義した後、他の属性ではなく属性を最適化することの影響を実証します。
・速度:証明の高速な証明はより大きな証明を引き起こしますが、証明された検証速度は遅くなります。より多くのリソースが生成されるほど、効率が低くなります。
・シンプル:Proverは、証明を圧縮するためにより多くの時間が必要です。しかし、検証の証明は速いです。証拠が簡潔なほど、計算費用は高くなります。
・効率:リソース使用の使用を最大化するために、証明の速度が低下し、証明の単純さが減少します。
一般的に言えば、最適化とは、一方で最適化されていないため、ケースに基づいて最良のソリューションを選択するために多次元分析が必要であることを意味します。
評価でこれらの属性を比較検討する良い方法は、各属性の許容度を定義し、どの属性が最も重要かを決定することです。最も重要な属性を最適化する必要がありますが、他のすべての属性について良好なレベルを維持します。
以下に、さまざまな属性とその重要な考慮事項を要約します。
>