ゼロ知識証明とzkSNARK:初心者ガイド

ゼロ知識証明は暗号化された錬金術であり、その価値は、ステートメントについて何も明らかにせずにステートメントを証明するという一見逆説的な特性にあります。ある意味で、ゼロ知識証明を与えられた検証者は、これがそうであると神によって言われることになっています.

しかし、目前の文脈における神の機能は、シナリオが行われる基礎となるプロトコルまたは設定の1つです。そして重要なのは、組織機関としてのブロックチェーンエージェンシーの目的のために、悪意のある参加者をプロトコルに強制することを可能にします。.

もし私が時間しかなく、あなたが脳だけを持っていたら.

―ルイス・キャロル、スナーク狩り

PおよびNP複雑性動物園

いくつかの基本的な概念は、ブロックチェーンテクノロジーに関連しているため、ゼロ知識証明についての優れた直感を習得する上で理解することが重要です。コンピュータサイエンスでは、Pクラスの問題とは、ある種のコンピュータ(チューリングマシンまたは他のモデル)で適度に高速なプログラムによって解決できる問題、つまり、次のように改良できる実装可能なソ​​リューションがある問題を指します。いわゆる多項式時間(事実上、高速時間と同義).

最も重要なことは、多項式(ギリシャ語からの「多くの名前」)は指数関数(つまり、の累乗)ではなく、線形、2次、3次、および同様のタイプの算術回路の問題にマップされます。必要なステップ数は次のとおりです。問題のサイズと比較して許容できる。つまり、迷路や掛け算などの問題、またはそのような問題に還元できる問題です。.

ポリグラフマシン

ポリグラフ、複式簿記

トランザクションの制定が同じ出力を再現する多くの分散ノード間の単一の台帳で大規模に複製されるブロックチェーンのファブリックでは(基本的な原則として、ポリグラフ嘘発見器と同様)、一連の計算ステップの数が重要です。指示は最小限に抑えられます.

これが、そのような環境でのゼロ知識証明が「簡潔」である必要があり、その実行の有効性を実証するために実行を再現する必要がない理由です。.

一方、NP(非決定論的多項式時間の場合)複雑度クラスは、解の健全性に、その多項式の決定論的計算、またはたとえば線形順次ブロックチェーン時間によって効率的に検証できる証明がある問題を記述します。.

つまり、特定の問題を解決するために必要な精神的作業を削減するか、特定の二分決定木を展開する思考プロセスを機械化できるより単純な問題に変換することができます。.

また、ブロックチェーン自体は、グローバルコンセンサスの整合性を維持するために厳密な決定論を必要とするため(同じ入力は常に偏差がほとんどまたはまったくない同じ出力を生成する必要があります)、実行/書き込みではなく検証/読み取りのみを行うと、スケーリングが大幅に向上します。.

このシナリオのzk-SNARKは、ブロックチェーンをオフチェーンの一般的な計算整合性の検証者として使用する方法を最適化し、検証時間は実行時間よりもオンチェーンの大きさで、対数(つまり、指数の逆数)で実行されます。関係するステップまたはサイクル(Ethereumブロックチェーンのガス消費量で測定).

これには、ブロックチェーンエージェンシーを制度的取引の仲介者として使用することから、悪意を持って詮索好きな目の注意をそらすために多額の残高や取引をクローキングすること、バンドワゴンやボットによってアクティブ化される「クジラ」効果を防止すること、補完的なスケーリングソリューションに至るまで、多くの潜在的なアプリケーションがあります。マルウェア検出器の一種としてのブロックチェーン.

そして、おそらくもっと広く、信頼の最も貴重な社会的資源が​​、以前は平衡状態になかったゲーム理論シナリオでの人間の協力を促進するために再明確化され、行動的に変換される方法.

ゼロ知識証明

ゼロ知識証明は、本質的に、トリッキーな問題を解決するために形式論理をどこまで取ることができるかを調査する暗号構造です。 ZKPでは、証明者であるペギーと検証者のビクター(ことわざのアリスとボブの代わりに)が一連の手順で相互作用し、ペギーがステートメントについて何も明らかにすることなく、ステートメントの有効性をビクターに証明できるようにします、両方が同じプロトコルの制約に従うことを考えると.

基本的な考え方は、アリババの洞窟の有名な例とともに一般的な暗号の民俗学に示されています。入り口と反対側の端に魔法のドアが側面を塞いでいるリング状の洞窟を想像してみてください.

ペギーはビクターに、そのフレーズを明かさずにドアを開ける秘密のフレーズについての知識を証明したいと考えています。それで、ビクターは少し外で待って、それから入って、ペギーが現れて欲しい側を叫びます。これは、ペギーが単に幸運であることが判明した確率がゼロに近づくまで繰り返されます.

ゼロ知識証明の例

アリババの洞窟。の礼儀 スコット・トゥンブリー

インタラクティブなゼロ知識証明システムの概念 最初に導入されました 1980年代後半のShafiGoldwasserとSilvioMicaliによるものであり、特定のステートメントの証明自体に、そのステートメントの唯一の真偽の妥当性よりも多くの知識が含まれているという一般的な仮定(補助入力、「トラップドア」などを利用) 。)以来、現代の暗号化の多くを支えています.

ゼロ知識証明は、定義上、次の3つの特性を満たす必要があります。

  • 完全:ステートメントが真であり、両方の当事者が同じプロトコルに正しく従う場合、検証者は自然に確信するようになります.
  • 健全性:ステートメントが偽の場合、検証者はほぼ確実に納得しません(確率的にチェック可能な証明構造は、虚偽または単純なコイントスの確率がゼロに近づくまで繰り返しに依存します).
  • ゼロ知識:検証者はそれ以上の情報を学習しません.

それを引き受けて、ミカリとマヌエル・ブラムはすぐに続きました さらに調査する 相互作用の通信ラウンド(最も計算コストがかかる傾向がある)を排除し、代わりに共有またはパブリックランダムビーコン(たとえば、同じガイガーカウンター)から派生した共通の参照文字列に依存することにより、貴重なリソースを節約する可能性.

過去20年間で、ゼロ知識証明システムの研究は、特定のアプリケーションの効率の最適化とさまざまなパラメータシナリオの改善に重点を置いて徐々に改善されており、共通の参照文字列の長さとサイズの両方が劇的に削減されています。証明.

zk-SNARKS:ゼロ知識の簡潔な非対話型の知識の主張

zk-SNARKの構築には、次の3つの相互作用アルゴリズムが含まれます。

  • キージェネレータ:キーペアを生成するためのパラメータを設定します。たとえば、信頼できる人々のセットが秘密/公開鍵ペアを生成し、秘密部分を破棄してから、公開部分から別の鍵ペアが生成され、特定のプログラムの証明鍵と検証鍵が生成されます。.
  • 証明者:証明者は、プログラムの意図されたコンテキストを満たすように、提供された証明キー、指定された公開入力、および非公開の証人を取得し、証明を生成します.
  • 検証者:検証は、検証キー、公開入力、および提供された証明から計算され、証明が正しいかどうかに応じてtrueまたはfalseのいずれかに評価されます(何が何を満たすために検証されているかというコンテキストで).

これをより鮮明に表現するために、正当性が与えられた場合、ほとんどの場合一致することから大きく逸脱しないと予想される2つの多項式文字列が生成され、次に、一致することを確認するために任意の場所で多数のクイックランダムチェックが実行されます。.

ZCashの実装

Zcashコイン

Fotolia経由の画像

ビットコイン取引は匿名化できるので 追跡と分析によって キャッシュフローパターン(ランドリーミキサーに関係なく)、ZCashは、上記の一般的なメカニズムを実装することにより、ビットコインコードベースの上に分散型の匿名支払いスキームを構築します( ピノキオプロトコル, もともとは、外部委託された計算を検証するための実用的な方法として開発されました).

これは、ブロックチェーンブロードキャストトランザクションの2つの体制を提供します。透過的とシールドされたものです。前者は通常のビットコイン取引に似ていますが、ユーザーには、送信者、受信者、取引金額を隠し、後者のシールドされたプールで取引を行うというオプションのプライバシー機能が提供されます。裁量的な「選択的開示」により、他のレーダーがトリガーする可能性のあるものを回避しながら、監査人に正当性を証明することができます.

ZCashの信頼できるセットアップフェーズには、次の複雑な式典が含まれます。 マルチパーティ計算プロトコル さまざまな地理的場所に分散している一連の参加者が協力して公開鍵を組み立て、対応する秘密の破片を破壊します。与えられたプロトコルでは、1人の参加者だけが秘密鍵を正常に消去して、公開鍵の派生元である秘密鍵全体を再構築できないようにするだけで十分です。.

この種の信頼できる設定を回避するための量子耐性のある代替手段には、zk-STARK構造(知識のスケーラブルな透過的引数)に関する活発な調査が含まれています。 エリ・ベン・サッソン教授 イスラエルの工科大学テクニオン校など.

ZoKrates:イーサリアムでの概念実証ツールボックスの実装

ZoKrates Solidity Ethereum Smart Contractsでゼロ知識証明を作成および検証するためのプロトタイピングツールボックスです(まだそれほど強力ではありません)。これは、プログラムを記述し、セットアップフェーズ、監視計算、および証明生成をサポートするチェーン上での実行を検証するための高級言語を提供します(まだ実験の初期段階ですが)。.

Pythonのような構文は、プリミティブuint型(正の数)、命令型代数ステートメント、forループ、条件付きifステートメントおよび関数定義で構成されます。コンパイラは、条件を算術回路の制約システム(数独と考えてください)に変換し、そこからzk-SNARKが生成されます。次に、検証キーをスマートコントラクトにエクスポートして、ブロックチェーン上の証明の検証を可能にします。.

オンチェーン検証アルゴリズムのビルディングブロックは、事前にコンパイルされたコントラクトとしてブロックチェーン上に存在し、提供された証明に対する検証アルゴリズムの結果を使用して、他のオンチェーンアクティビティをさらにトリガーできます(つまり、trueの場合).

これにより、たとえば、機密残高のあるトークンコントラクトを作成できると同時に、(ERC-621拡張機能を介して)メタ通貨またはトークンの供給を増減できるようになります。.

ただし、ユーザーはクライアント側の残高を追跡する必要があり(Etherscanには表示されないため)、何よりも、Ethereumプラットフォームは、のリソースの制約内で経済理論やアイデアの究極のテストの場を提供することを常に覚えておく必要があります。現実の連鎖ガス支出、その構成要素は問題についての経済的思考を強制する傾向があるものです.

クォーラムブロックチェーンへの統合

2017年5月22日、ZCashは、JPモルガンのエンタープライズイーサリアムベースでのプライバシーレイヤーテクノロジーの概念実証を発表しました。 定足数 ブロックチェーン、それに続いてZCashの価格が急上昇しました(Ethereum Enterprise Allianceに参加した直後にも).

クォーラムは、機関金融市場向けに特別に設計された独自のスマートコントラクト言語(コンステレーション)を備えた最小限のイーサリアムフォークです。ゼロ知識証明は、個人のプライバシーと機関の整合性の間の細い線をたどるので、デジタル資産のプライベート決済を確保するのに理想的です。クォーラム元帳.

注目すべきことに、JPモルガンは、独自のエンタープライズブロックチェーンフレームワークの開発において、過去にその過程でパブリックチェーンの開発と強化に大きく貢献してきました。.

Fotolia経由の注目の画像

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me