プライバシーは、暗号通貨コミュニティ内で常に貴重な機能と見なされてきました。これは、広く使用される通貨に不可欠な代替可能性の前兆です。同様に、ほとんどの暗号資産保有者は、保有資産と取引履歴が完全に公開されることを望んでいません。ブロックチェーンにプライバシーを提供することを目的としたさまざまな暗号化技術の中で、zk-SNARK 証明と zk-STARK 証明は、注目すべき 2 つの例です。

zk-SNARK はゼロ知識簡潔非対話型知識論証の略称で、zk-STARK はゼロ知識簡潔透明知識論証を表します。zk-SNARK 証明は、暗号通貨プロジェクト (Zcash など)、ブロックチェーン ベースの支払いシステム、およびサーバーに対してクライアントを安全に認証する方法として使用されます。しかし、zk-SNARK が十分に確立され採用されるよう大きく前進した一方で、zk-STARK 証明は現在、プロトコルの新しい改良版として宣伝されており、zk-SNARK の以前の欠点の多くに対処しています。

アリババの洞窟の寓話

1990 年、暗号学者 Jean-Jacques Quisquater 氏 (および他の共同研究者) が「ゼロ知識プロトコルを子供に説明する方法」と題する論文を発表しました。この論文では、アリババの洞窟に関する寓話で zk 証明の概念を紹介しています。この寓話は作成されて以来、何度も改変され、現在では複数のバリエーションがあります。それでも、基礎となる情報は基本的に同じです。

入り口が 1 つしかないリング状の洞窟と、2 つの脇道を隔てる魔法の出入り口を想像してみましょう。魔法の出入り口を通るには、正しい秘密の言葉をささやく必要があります。そこで、アリス (黄色) がボブ (青) に秘密の言葉を知っていることを証明したいと考えます。ただし、その秘密は秘密のままにしておきましょう。そのために、ボブはアリスが洞窟に入り、2 つの可能な道のどちらかの終わりまで歩く間、外で待つことに同意します。この例では、アリスは道 1 を通ることにします。

しばらくすると、ボブは入り口を通り過ぎ、アリスをどちら側から出現させたいかを叫びます (この場合はパス 2)。

アリスが本当に秘密を知っているなら、彼女はボブが指定した道から確実に現れるはずです。

アリスが運によって正しい道を選んでいるのではないことを確認するために、このプロセス全体を数回繰り返すことができます。

アリババの洞窟の寓話は、zk-SNARK および zk-STARK プロトコルの一部であるゼロ知識証明の概念を示しています。ZK 証明は、特定の知識を所有していることを、その知識に関する情報を一切公開せずに証明するために使用できます。

zk-スナーク

Zcash は、zk-SNARK を使用するプロジェクトの最も初期の例の 1 つです。Monero などの他のプライバシー プロジェクトではリング署名やその他の技術が採用されていますが、zk-SNARK はデータの共有方法を根本的に変更します。Zcash のプライバシーは、ネットワーク内のトランザクションが暗号化されたままでも、ゼロ知識証明を使用して有効であると検証できるという事実から生まれています。そのため、コンセンサス ルールを強制する人は、各トランザクションの基礎となるデータをすべて知る必要はありません。Zcash のプライバシー機能はデフォルトでは有効ではなく、オプションであり、手動設定に依存していることに留意してください。

ゼロ知識証明は、ある個人が、その文の妥当性以外の情報を開示することなく、別の個人に対してその文が真実であることを証明することを可能にします。関係する当事者は一般に証明者と検証者と呼ばれ、彼らが秘密に保持する文は証人と呼ばれます。これらの証明の主な目的は、2 者間でできるだけデータを開示しないことです。言い換えれば、ゼロ知識証明を使用すると、知識自体に関する情報を開示することなく、特定の知識を持っていることを証明できます。

SNARK の頭字語では、「簡潔」とは、これらの証明のサイズが小さく、迅速に検証できることを意味します。「非対話型」とは、証明者と検証者の間で対話がほとんどまたはまったくないことを意味します。ゼロ知識プロトコルの古いバージョンでは通常、証明者と検証者が相互に通信する必要があるため、「対話型」ZK 証明と見なされます。ただし、「非対話型」構成では、証明者と検証者は 1 つの証明を交換するだけで済みます。

現在、zk-SNARK 証明は、証明者と検証者の間の初期の信頼できるセットアップに依存しています。つまり、ゼロ知識証明を構築し、プライベート トランザクションを構築するには、一連の公開パラメータが必要です。これらのパラメータは、ゲームのルールのようなもので、プロトコルにエンコードされており、トランザクションが有効であることを証明するために必要な要素の 1 つです。ただし、パラメータは多くの場合、非常に小さなグループによって策定されるため、潜在的な集中化の問題が発生します。

初期の信頼できるセットアップは、今日の zk-SNARK 実装の基本ですが、研究者はプロセスに必要な信頼の量を減らす方法として他の代替手段を見つけようと取り組んでいます。初期セットアップ フェーズは、偽造支出を防ぐ上で重要です。なぜなら、誰かがパラメータを生成するランダム性にアクセスした場合、検証者にとって有効と思われる偽の証明を作成できるからです。Zcash では、初期セットアップ フェーズはパラメータ生成セレモニーと呼ばれています。

頭字語の「知識の議論」の部分に移ります。zk-SNARK は計算上健全であると考えられており、不正な証明者が自分の主張を裏付ける知識 (または証人) を実際に持たずにシステムを不正に操作する可能性は非常に低いことを意味します。この特性は健全性と呼ばれ、証明者の計算能力が限られていることを前提としています。

理論的には、十分な計算能力を持つ証明者は偽の証明を作成する可能性があり、これが量子コンピューターが zk-SNARK (およびブロックチェーン システム) に対する脅威であると多くの人に考えられている理由の 1 つです。

ゼロ知識証明はすぐに検証可能で、通常は標準的なビットコイン取引よりもはるかに少ないデータしか必要としません。これにより、zk-SNARK テクノロジーをプライバシーとスケーラビリティの両方のソリューションとして使用する道が開かれます。

zk-STARKs

zk-STARK は、イスラエル工科大学の教授である Eli-Ben Sasson によって作成されました。zk-SNARK 証明の代替バージョンとして、zk-STARK は一般に、この技術のより効率的な変種であると考えられており、実装によっては、より高速で安価になる可能性があります。しかし、さらに重要なのは、zk-STARK では初期の信頼できるセットアップが必要ないことです (したがって、「T」は透過的を意味します)。

技術的に言えば、zk-STARK は衝突耐性ハッシュ関数によるよりスリムな暗号化に依存しているため、初期の信頼できるセットアップを必要としません。このアプローチにより、計算コストが高く、理論的には量子コンピューターによる攻撃を受けやすい zk-SNARK の数論的仮定も排除されます。

言い換えれば、zk-STARK 証明は、暗号の仮定の点ではより単純な構造を示しています。ただし、この新しいテクノロジーには少なくとも 1 つの大きな欠点があります。証明のサイズが zk-SNARK と比較して大きいことです。このようなデータ サイズの違いは、使用状況に応じて制限を生じる可能性がありますが、テクノロジーがさらにテストされ、調査されるにつれて、おそらく解決できるものになるでしょう。

終わりに

zk-SNARK と zk-STARK はどちらも、プライバシーに関する高まる懸念に訴えかけるものであることは明らかです。暗号通貨の世界では、これらのプロトコルは大きな可能性を秘めており、主流への採用に向けた画期的な道となる可能性があります。