このドキュメントは、Zeneca @ZENECA メールマガジン「Letters from a Zeneca」"Letter 47: ZK-Proofs (Part 1)"の内容を要約したものです。
イントロダクション
暗号の分野で新しいことを学ぶとき、特に技術的なことを学ぶとき、私のプロセスはたいてい次のようなものです。
➀一度聞いたことは無視する
➁もう一度聞く、無視する
➂何十回も聞けば、ほんの少し注意を払うようになるかもしれない
➃ググる
物事が複雑で専門的であればあるほど、私はググったり深く調べたりする要素を後回しにしてしまいがちです。だから、何年もの間、暗号資産という「暗号の世界」にいたのに、今になって「ゼロ知識性」(zero knowledge)がいったい何なのかを理解しようとしているのです。
要点を述べると、「ゼロ知識性」は私たちのスケールを助ける、空想的な数学/暗号学的なものであり、イーサリアムの開発者ヴィタリック・ブテリン(Vitalik Buterin)は、このことに本当に興奮しているということ。私はしばらくの間、「ゼロ知識性」について極めて素人的な理解をしていました。
「ゼロ知識」「ゼロ知識証明」について、早速見てみましょう。
この話は、おそらく「前編/後編」あるいは、それ以上のシリーズになるように思います。今回の話は、恐らくハイレベルな内容になるでしょう。私はエンジニアではないので、「ゼロ知識証明」の複雑さ、奥深さを理解しているふりはしません。「ゼロ知識証明」とは何か、 どのように暗号の世界で使われているのか、なぜ重要なのかを説明したいだけです。
ゼロ知識証明(zero-knowledge proof)とは何か?
「ゼロ知識(ZK)」は "Zero Knowledge" 、「ゼロ知識証明(ZK-P)」"Zero Knowledge Proofs" をそれぞれ指しています。これらは、一体どういう意味でしょうか?
極めて簡単に言えば、「情報そのものを明かすことなく、ある情報を知っていることを証明する方法」のことです。
言い換えると?…「相手に秘密を直接伝えず、秘密を知っていることを証明する方法」。
もっと端的に?…「パスワードを教えずに、パスワードを知っていることを証明する方法」。
こう考えると、分かりやすいでしょうか。
「ゼロ知識証明」の典型的な例として、よく挙げられるのが『ウォーリーを探せ』です。「ゼロ知識証明」は、ウォーリーの居場所を指し示したり、居場所に関する追加情報を公開することなく、「私は、ウォーリーの居場所を知っています」と証明することを可能にします。どうでしょう…ちょっとクレイジーですか?
でも事実、可能なんです。
※この「ウォーリーを探せ」の例を分かりやすく説明しているnoteがあります。esさんが書かれたnoteにて詳しく解説がされていますので、ぜひご覧ください。
ウォーリーの正確な場所を教えることなく、見つけたことを証明するには…
ウォーリーだけが見えるように、ウォーリーの形に切りぬいた大きな紙を用意すればいいんです。こうすることで、ウォーリーだけを見ることができます。ウォーリーの正確な位置は一切開示していません。この紙を絵に被せるだけでいつでも、ウォーリーを見つけたことを証明できます。
※これは、上記のnoteで示された「証明2」に該当します。
この(やや)単純な概念を数学的に証明するのは難しいものです。このアイデアは、1985年にMITの論文でシャフィ・ゴールドワッサーとシルヴィオ・ミカリによって発表されました。
ゼロ知識証明は、どのように利用されているのか?
「ゼロ知識証明」は暗号通貨の分野では、新しいものではありません。「ゼロ知識証明」をベースとした、2つの人気のレイヤー1ブロックチェーンとして、MoneroとZcashがあり、それぞれ2014年と2016年にローンチされています。
※「レイヤー1って…?」という方は、ぜひコチラの記事をご覧ください。
https://miuradonuts.com/2023/08/10/from-zeneca007/
これらが、「プライバシー重視」のブロックチェーンとして知られているのは、ビットコインやイーサリアムのように公開台帳へウォレット残高や取引履歴・取引データが含まれているのとは異なり、MoneroやZcashでは「ゼロ知識証明」を使ってその情報さえも暗号化・隠蔽しているからだと言われています。
例えばZcashでは、ブロックチェーンにトランザクションを送る時。パブリックブロックチェーンに、トランザクションを送るとの違って、自分の過去のトランザクションを明かすことなく、二重払いしていないことの証拠を送るようになっています。
この種の、秘匿性の高いブロックチェーンには賛否両論があるのも事実です。例えば、記録を見られるようにしたり、証明や説明責任のために、取引を公開請求されるのはよくあることでしょう。
ゼロ知識証明は、なぜ重要か?
「ゼロ知識証明」は、人と人との間のプライバシー、セキュリティ、信頼性を大幅に向上させることができます。
例えば…
・個人情報を明かすことなく、あなたが本物の人間であることを証明できる
・口座の残高を明かすことなく、残高が○○円以上であることを証明できる
・パスワードを入力することなく、パスワードを知っていることを証明できる
プライバシー、セキュリティー、そして信頼性を重視する空間において、「ゼロ知識証明」は探求すべき可能性の世界全体を切り開くでしょう。
「ゼロ知識性」がどのようなものなのか、このようなフレーズが飛び交うのを聞いたり見たりしたときに、少しでも理解していただければ幸いです。暗号における「ゼロ知識証明」の実用的な用途の背後にある長所と短所について、さらに深く掘り下げて理解するのが楽しみです。
次回へ続きます。