匿名性は常に、暗号通貨コミュニティの非常に貴重な特性の 1 つとみなされてきました。これは代替可能性の先駆けであり、広く使用されている通貨の形式にも必要な機能です。同様に、ほとんどの暗号資産保有者は、自分の資産や取引記録が完全に開示されることを望んでいません。ブロックチェーンにプライバシーを提供するために取り組んでいるさまざまな暗号化テクノロジーの中で、zk-SNARK と zk-STARK の 2 つの注目に値する例です。

zk-SNARK は簡素化された非対話型のゼロ知識証明を表し、zk-STARK は簡略化された完全に透明なゼロ知識証明を表します。 Zk-SNARK は、Zcash や JP モルガン チェース プロジェクトなどのブロックチェーン ベースの決済システムで、またクライアントからサーバーへの安全な検証方法としてすでに使用されています。しかし、zk-SNARK はすでに十分に確立され広く使用されていますが、zk-STARK は現在、zk-SNARK の以前の欠点の多くに対処することを目的としたプロトコルの新しい改良版として宣伝されています。

  

アリババの洞窟の寓話

1990 年、暗号学者の Jean-Jacques Quisquater は (他の共同研究者とともに) 「子供たちにゼロ知識証明プロトコルを説明する方法」というタイトルの論文を発表しました。この記事では、アリババの洞窟のたとえを取り入れて、ゼロ知識証明の概念を紹介します。この寓話はその創作以来何度も改作され、現在ではいくつかのバージョンがあります。しかし、表現される内容は基本的に同じです。

入り口と 2 つの道を分ける魔法のドアがある円形の洞窟を想像してみましょう。魔法のドアを開けるためには、正しい秘密をささやく必要があります。そこで、アリス (黄色) が、パスワードが何であるかを知っていることをボブ (青色) に証明したいと考えているとします。同時にパスワードを秘密にしておきます。これを行うために、ボブはアリスが洞窟に入り、最後までの 2 つの道のうちの 1 つを選択するまで外で待つことに同意します。この場合、彼女はパス 1 を通過することを決定します。

zk-SNARKs和zk-STARKs解释

しばらくして、ボブは入り口まで歩き、アリスをどちら側から出てきてほしいかを叫びます (この場合、パス 2 になります)。

zk-SNARKs和zk-STARKs解释

アリスがパスワードを知っていれば、ボブが要求するパスを正しくたどることができます。

zk-SNARKs和zk-STARKs解释

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

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


zk-SNARKs

Zcash は、zk-SNARK の最初の広範なアプリケーションです。 Monero のようなプライバシー プロジェクトでは、送信者を保護するために効果的に煙幕を作成するリング署名やその他の技術も採用されていますが、zk-SNARK はデータの共有方法を根本的に変えます。 Zcash のプライバシーは、ネットワーク内のトランザクションを暗号化できながらも、ゼロ知識証明を使用することで正当性を検証できるという事実に由来しています。したがって、コンセンサス ルールを適用する人は、各トランザクションに関するすべてのデータを知っている必要はありません。 Zcash のプライバシー機能はデフォルトでは無効であり、手動設定の対象となるオプションであることに注意してください。

ゼロ知識証明を使用すると、ある人が発言の有効性を超える情報を明らかにすることなく、自分の発言が真実であることを別の人に証明できます。関係者は証明者や検証者と呼ばれることが多く、当事者が保持する秘密は証拠と呼ばれます。これらの機能の主な目的は、2 者間でのデータ交換をできるだけ少なくすることです。言い換えれば、人々はゼロ知識証明を使用して、知識自体に関する情報を明らかにすることなく、自分が何かを知っていることを証明できます。

SNARK の頭字語の最初の文字「succinct」は、これらの証明が単純で、すぐに検証できることを意味します。 「非対話型」とは、証明者と検証者の間に対話がほとんどないことを意味します。古いバージョンのゼロ知識証明プロトコルでは、通常、証明者と検証者が通信する必要があったため、「対話型」ゼロ知識証明と見なされていました。しかし、「非対話型」構造では、証明者と検証者は関連する証明を交換するだけで済みます。

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

元の公開設定が今日の zk-SNARK 実装の基礎となっていますが、研究者たちは、対話プロセスで必要な信頼を減らす代替手段を見つけるために取り組んでいます。生成されたパラメーターのランダム性に誰かがアクセスすると、バリデーターにとって有効な偽のプルーフを作成する可能性があるため、初期設定フェーズは偽の支払いを防ぐために重要です。 Zcash では、初期設定フェーズはパラメータ生成プロセスと呼ばれます。

「ARguments」という略語についてもう一度話しましょう。 zk-SNARK は合理的に計算可能であると考えられています。これは、偽の証明者がシステムの不正行為に成功する可能性は非常に低いことを意味します。この特性はロバスト性と呼ばれ、証明者の計算能力が限られていることを前提としています。理論的には、十分な計算能力を持つ証明者は偽造証明を作成することができます。これが、量子コンピューターが zk-SNARK やブロックチェーン システムに対する潜在的な脅威であると多くの人が考えている理由の 1 つです。

最後のイニシャルは「知識」で、証明者は自分の発言を裏付ける実際の知識(または証人)がなければ証拠を構築できないことを意味します。

ゼロ知識証明は迅速に検証でき、通常、標準的なビットコイントランザクションよりもはるかに少ないデータしか必要としません。これにより、zk-SNARK テクノロジーを匿名性とスケーラビリティのソリューションとして使用するための新しい道が開かれます。

 

zk-STARKs さん

zk-STARK は、zk-SNARK プロトコルの代替バージョンとして作成され、このテクノロジーのより高速で便利な実装と考えられています。しかし、より重要なことは、zk-STARK は初期の信頼設定を必要としないことです (したがって、透明性を表す文字「T」です)。

技術的には、Zk-STARK はハッシュ関数の衝突によるより効率的な対称暗号化方式に依存しているため、初期化された信頼できるセットアップは必要ありません。このアプローチは、計算コストが高く、量子コンピューターによる攻撃に対して理論的に脆弱である zk-SNARK の数理論の仮定も排除します。

Zk-STARK がより便利で高速な実装を提供する主な理由の 1 つは、証明者と検証者間の通信量が計算の増加に対して一定のままであるためです。対照的に、zk-SNARK では、必要な計算が増えるほど、当事者がメッセージを送受信する回数も増えます。したがって、zk-SNARK の全体的なデータ サイズは、zk-STARK 証明のデータ サイズよりもはるかに大きくなります。

zk-SNARKS と zk-STARK の両方が匿名性に関する疑問を増大させていることは明らかです。暗号通貨の世界では、これらのプロトコルは、広く使用されるための画期的なアプローチとなる大きな可能性を秘めています。