a16z:マジックショーを通じてゼロ知識証明を理解する方法
原文:a16z
原文作者 :Michael Blau
编译 :Odaily 星球日报 Azuma
编者按:Cryptoが拡張性やプライバシーなどの多くの方向で発展するための「秘訣の書」として、ゼロ知識証明(zero-knowledge proofs、略してZKPs)は業界から非常に高い期待を寄せられています。しかし、この概念に関する説明的な内容は、主に一定のコンピュータサイエンスや暗号学の基礎を持つ人々を対象としているため、一般のユーザーにとってはこの概念を完全に理解することには一定の障壁があります。
9月8日、a16zのパートナーであるMichael Blauはゼロ知識証明に関する普及的な記事を発表しました。この記事は、ゼロ知識証明の概念自体が抽象的な数学的思考部分を巧妙に避け、マジックパフォーマンスを利用してZKPの有用性を具体的に示しました。
以下は、Odaily星球日报がMichael Blauの原文内容(第一人称口調)を翻訳したもので、読みやすさを考慮して一部削除や改変があります。
『2001年宇宙の旅』の著者クラークは言いました:「十分に進んだ技術は、魔法と変わらない。」
ゼロ知識証明は、まさにそのような魔法のような技術の一つであり、実際には暗号学の概念で、Web3における二つの重大な課題、すなわち拡張性とプライバシーを解決するために使用されます。
有用性の観点から見ると、ゼロ知識証明を採用することで、オンチェーン取引のコストを削減し、新しいプライバシー保護型アプリを設計することで、Cryptoを10億人規模のユーザーに広めることができます。Cryptoを除けば、ZKPは機密データの安全な送信にも応用される可能性があり、違法な金融システムの撲滅や氾濫する詐欺情報への対抗に役立つでしょう。
しかし、ゼロ知識証明とは一体何なのでしょうか?一部の研究者や開発者にとっては、ネット上に多くの詳細な説明が見つかりますが、これらの内容はコンピュータサイエンスや暗号学の経験が少ない一般のユーザーには向いていません。いくつかの先駆者が類似の普及的な記事を書いたこともありますが、今日に至るまで、一般の人々がその魔力を正確に把握するための簡潔でわかりやすいゼロ知識証明に関する説明を見つけることは簡単ではありません。
そこで、この記事では、私のCryptoとマジック業界の背景を組み合わせて、ゼロ知識証明を偉大なマジックとして想像するという新しい類比を探求します。
まず、基本的な知識が必要です。
私はまずゼロ知識証明(特にその古典的なアルゴリズムzk-SNARK)の「高度な」定義とその主要な特性を共有し、それからこれらの「部品」を一つ一つマジックに対応させていきます。
a16zの研究パートナーであるJustin Thalerがzk-SNARKについて提供した定義は次の通りです:「zk-SNARKは、ある人(証明者)が信頼できない別の人(検証者)に対して、データに関する情報を明らかにすることなく、何らかのデータを知っていることを証明することを可能にします。」
マサチューセッツ工科大学のコースでは次のように定義されています:「ゼロ知識プロトコルは、私が事実を知っていることをあなたに証明することを可能にしますが、事実そのものをあなたに伝える必要はありません。」
これはブロックチェーンの文脈において非常に大きな応用価値を持っています。なぜなら:
(プライバシーに対応)ゼロ知識証明は、プライベート情報を保護しながら、他者が情報の真実性を検証できるようにします。
(拡張性に対応)ゼロ知識証明は「簡素化」し、「節約」することができます。「簡素化」とは、「証明」のサイズが証明される「データ」自体よりも小さいことを意味します。「節約」とは、検証者が「証明」を検証する効率が、原始的な「データ」を分析するよりも高いことを意味します。イーサリアム上では、スマートコントラクトが処理するデータが少なくなるため、ユーザーのガスコストが低くなり、Layer2もこれらの特性を利用して、Dappsがより低コストでより多くのデータを処理できるようになります。
要するに、ゼロ知識証明には二つの主要な特性があります:
一つはプライバシー性:あなたが証明している「データ」(または「事実」、または「知識」)は検証者に明らかにされません。
二つは可拡張性:証明を検証することは、原始的なデータを直接分析するよりも効率が高いです。
これがゼロ知識証明の古典的な説明ですが、聞こえは依然として謎かけのようです ------ 一人の人間は、情報を共有せずにどのようにして自分がその事を知っていると証明できるのでしょうか?
もう一度この定義を見直してみましょう。しかし、今度はマジックに変えてみます。
マジック自体がゼロ知識証明です。
簡単に言えば、マジックパフォーマンスにおいて、「マジック」自体がゼロ知識証明です。マジックを完成させるために、「マジシャン」は背後にある「秘密」を掌握する必要があります。この秘密を知っているからこそ彼らはパフォーマンスを行うことができますが、彼らはその秘密を「観客」に明かしたくはありません ------ これは明らかにマジックの効果を損なうことになります。
- Odaily星球日报注:ここでは四つの役割を引用符で囲んでいます。
「秘密」は原始的な「データ」に対応します;
「マジック」は「証明」に対応します;
「マジシャン」は「証明者」に対応します;
「観客」は「検証者」に対応します。
次に、前の段落でのゼロ知識証明の「高度な」定義をこのマジックに持ち込み、マジシャンを「証明者」、観客を「検証者」と想像します。
マジックパフォーマンスは「証明者」が「検証者」に証明するプロセスです。 もしパフォーマンスが成功すれば、それは証明が有効であることを意味します。観客はマジシャンが背後の秘密を理解していることを確認できます;もしパフォーマンスが失敗すれば、それは証明が無効であることを意味します。観客は失望しながら、マジシャンが関連する技術を知らない可能性があることに気づくでしょう。
明らかに、マジックはゼロ知識証明のプライバシー性を明確に示しています。観客は常に背後の秘密が何であるかを知らされません。では、可拡張性はどうでしょうか?この比喩に戻りましょう…
観客がマジシャンが秘密を掌握しているかどうか(「証明者」が原始的な「データ」を理解しているかどうか)を知りたい場合、通常のパフォーマンスをスキップして、マジシャンに背後の秘密そのものを共有するように要求することができます。しかし、マジックの技術は一般的に非常に複雑で煩雑であり、観客は短時間でこれらの技術の設計メカニズムや実現効果を理解することは難しく、完全に把握することはさらに困難です。マジシャンが間違った技術を提供することも可能であり、観客はその真偽を見分けることが難しいのです。したがって、秘密そのものを分析して証明を完成させるには、通常、長い時間と大きな労力が必要です。
これは、原始的な「データ」を直接分析することがより時間がかかり面倒であるのと同じで、「証明」を検証する効率が高いことを示しています。これがゼロ知識証明の可拡張性です。
カードを例に挙げてみましょう。
簡単な例を挙げると、私が「逆洗牌」のスキルを持っていると自慢して、混乱したトランプを私が望む効果に洗うことができるとしましょう。では、私はどのようにあなたに証明すればよいのでしょうか?
最も効率的な方法は、私が直接一定の規則を持つカードを洗い出すことです。あなたがそのカードを見たとき、私は確かにそのスキルを持っていることを確認できます。これは私があなたに技術を共有する必要もなく、あなたが自分でゆっくり学ぶよりも早いです。
要するに、私はこの類比がゼロ知識証明の神秘的なベールを取り除く助けになることを望んでいます。「マジック」「秘密」「マジシャン」「観客」のこの説明は、ゼロ知識証明の主要な特性を理解するための有効なモデルとして機能し、より多くの一般ユーザーがこの概念に触れる手助けとなるでしょう。
再度強調しますが、マジックは本質的にゼロ知識証明であり、ゼロ知識証明は魔法と変わらないのです。