ゼロ知識証明(ZKP)は、1980年代初頭にS. Goldwasser、S. Micali、およびC. Rackoffによって最初に提案された暗号技術で、論文「インタラクティブ証明システムの知識複雑性論文では、数学的な文を検証する問題を明らかにせずに解決するための理論モデルとして概念化されました。この概念は、従来の暗号技術の枠を挑戦し、機密情報を処理する新しい方法を提供するため、学術界で広範な関心を集めています。
ZKPは、抽象的な理論的概念から具体的なプロトコルに進化し、さまざまなアプリケーションに統合できるようになりました。2010年に、Grothが「」というタイトルの論文を発表しました。短いペアリングベースの非対話型ゼロ知識引数「zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)」の理論的なマイルストーンとなり、ZKPにおいて重要な解決策となった。ゼロ知識証明の応用において最も重要な進展は、2015年にZ-cashが使用したゼロ知識証明システムであり、取引や金額のプライバシー保護を提供している。その後、スマートコントラクトとzk-SNARKが組み合わさり、その応用範囲がさらに広がる。
従来のZKPは3つの原則に従います:
ZKPの原理は、簡単な例を通じて理解することができます: AにBの電話番号を証明する必要がある場合、直接Bの電話番号を明らかにする必要はありません。その代わりに、直接Bの電話番号にダイヤルし、それを通過した後にBの電話番号を持っていることを証明することができます。このプロセスではBの電話番号は漏洩しません。
zk-SNARKは、次の特性でこれらの原則をさらに強化しています。
Grothの論文では、非対話型ゼロ知識証明方法がペアリングに基づいて提案され、計算問題を二次算術プログラム(QAP)に変換します。この方法は楕円曲線暗号とハッシュ関数を使用して効果的な証明を構築します。その後のzk-SNARK設計には一般的に4つのステップが含まれます。
簡単な例で説明すると、埋蔵された宝物の正確な位置を示す宝の地図を持っていると仮定しましょう。宝の位置を知っていることを誰かに証明したいが、宝の地図の内容や宝の実際の位置を明かしたくありません。zk-SNARK技術を使用する場合、宝の地図の複雑なパズルを作成する必要があります。重要なパズルの一部(証拠)を選択して他の人に示し、その人に、宝の位置など、全体のパズルがどのように組み合わさるかを知っていると納得させますが、全体のパズルを明かさずに済みます。ただし、このためには、信頼できる印刷所から特別な印を取得する必要があります。この印は、パズルの一部の正当性を証明するために使用されます。
前回の議論で、zk-SNARKは共通の参照文字列を設定することを可能にし、これは制約を実行中の回路に設定できることを意味します。Gate.ioの準備を例に取ると、回路に5つのコア制約を設定しています。下記に示す通りです:
①ユーザーの純資産をMerkleツリーに挿入する前に、ユーザーIDに対応するノードが空である。
②ユーザーの総資産/負債を、ユーザーの資産リストと各資産の価格に基づいて計算します。総資産は総負債よりも大きくなければなりません。
③ユーザーの資産/負債を取引所の資産/負債に追加します。
④ユーザーの状態ハッシュを、ユーザーID、総資産/負債、資産リストを使用して計算します。ユーザーの状態をMerkleツリーに挿入して、新しいMerkleルートを取得します。
⑤ 前のユーザーがユーザー操作を作成する前のツリーのルートノードのハッシュ値は、後続のユーザーがユーザー操作を作成した後のハッシュ値と等しくなければなりません。
(Operation ①では、ノードデータが偽にならないようにできます。操作②では、負の残高アカウントを回避できます。操作⑤では、操作前後でユーザーデータが変更されないようにできます。)
これにより、負の残高の問題が解決されます。取引データは回路を通過するだけで、制約チェックを自動的に実行し、資産番号を取得する必要があります。ただし、この解決策には一定の計算能力とハードウェア条件が必要です。32コアのマシンに128GBのRAMを搭載して、1000万人のユーザーの資産証明を計算すると、15日かかります。Reservesの証明の計算は並列化できます。10台のマシンがあれば、1.5日しかかかりません。
関連する制約を設定することで、zk-SNARKは負の値の問題の発生を回避し、ユーザーのプライバシーとセキュリティをよりよく保護することができます。Gate.ioのプルーフオブリザーブは、現在100以上のコインの準備率を証明することができ、ユーザーは簡単にクリックするだけでそれを表示できます。リンク. 次のレッスンでは、3分以内に資産のセキュリティを確認する方法を説明します。
ゼロ知識証明(ZKP)は、1980年代初頭にS. Goldwasser、S. Micali、およびC. Rackoffによって最初に提案された暗号技術で、論文「インタラクティブ証明システムの知識複雑性論文では、数学的な文を検証する問題を明らかにせずに解決するための理論モデルとして概念化されました。この概念は、従来の暗号技術の枠を挑戦し、機密情報を処理する新しい方法を提供するため、学術界で広範な関心を集めています。
ZKPは、抽象的な理論的概念から具体的なプロトコルに進化し、さまざまなアプリケーションに統合できるようになりました。2010年に、Grothが「」というタイトルの論文を発表しました。短いペアリングベースの非対話型ゼロ知識引数「zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)」の理論的なマイルストーンとなり、ZKPにおいて重要な解決策となった。ゼロ知識証明の応用において最も重要な進展は、2015年にZ-cashが使用したゼロ知識証明システムであり、取引や金額のプライバシー保護を提供している。その後、スマートコントラクトとzk-SNARKが組み合わさり、その応用範囲がさらに広がる。
従来のZKPは3つの原則に従います:
ZKPの原理は、簡単な例を通じて理解することができます: AにBの電話番号を証明する必要がある場合、直接Bの電話番号を明らかにする必要はありません。その代わりに、直接Bの電話番号にダイヤルし、それを通過した後にBの電話番号を持っていることを証明することができます。このプロセスではBの電話番号は漏洩しません。
zk-SNARKは、次の特性でこれらの原則をさらに強化しています。
Grothの論文では、非対話型ゼロ知識証明方法がペアリングに基づいて提案され、計算問題を二次算術プログラム(QAP)に変換します。この方法は楕円曲線暗号とハッシュ関数を使用して効果的な証明を構築します。その後のzk-SNARK設計には一般的に4つのステップが含まれます。
簡単な例で説明すると、埋蔵された宝物の正確な位置を示す宝の地図を持っていると仮定しましょう。宝の位置を知っていることを誰かに証明したいが、宝の地図の内容や宝の実際の位置を明かしたくありません。zk-SNARK技術を使用する場合、宝の地図の複雑なパズルを作成する必要があります。重要なパズルの一部(証拠)を選択して他の人に示し、その人に、宝の位置など、全体のパズルがどのように組み合わさるかを知っていると納得させますが、全体のパズルを明かさずに済みます。ただし、このためには、信頼できる印刷所から特別な印を取得する必要があります。この印は、パズルの一部の正当性を証明するために使用されます。
前回の議論で、zk-SNARKは共通の参照文字列を設定することを可能にし、これは制約を実行中の回路に設定できることを意味します。Gate.ioの準備を例に取ると、回路に5つのコア制約を設定しています。下記に示す通りです:
①ユーザーの純資産をMerkleツリーに挿入する前に、ユーザーIDに対応するノードが空である。
②ユーザーの総資産/負債を、ユーザーの資産リストと各資産の価格に基づいて計算します。総資産は総負債よりも大きくなければなりません。
③ユーザーの資産/負債を取引所の資産/負債に追加します。
④ユーザーの状態ハッシュを、ユーザーID、総資産/負債、資産リストを使用して計算します。ユーザーの状態をMerkleツリーに挿入して、新しいMerkleルートを取得します。
⑤ 前のユーザーがユーザー操作を作成する前のツリーのルートノードのハッシュ値は、後続のユーザーがユーザー操作を作成した後のハッシュ値と等しくなければなりません。
(Operation ①では、ノードデータが偽にならないようにできます。操作②では、負の残高アカウントを回避できます。操作⑤では、操作前後でユーザーデータが変更されないようにできます。)
これにより、負の残高の問題が解決されます。取引データは回路を通過するだけで、制約チェックを自動的に実行し、資産番号を取得する必要があります。ただし、この解決策には一定の計算能力とハードウェア条件が必要です。32コアのマシンに128GBのRAMを搭載して、1000万人のユーザーの資産証明を計算すると、15日かかります。Reservesの証明の計算は並列化できます。10台のマシンがあれば、1.5日しかかかりません。
関連する制約を設定することで、zk-SNARKは負の値の問題の発生を回避し、ユーザーのプライバシーとセキュリティをよりよく保護することができます。Gate.ioのプルーフオブリザーブは、現在100以上のコインの準備率を証明することができ、ユーザーは簡単にクリックするだけでそれを表示できます。リンク. 次のレッスンでは、3分以内に資産のセキュリティを確認する方法を説明します。