ゼロ知識証明
はじめに
技術的なお話になるとめっちゃ難しくなるので、ざっくり概要だけ理解してもらえるように書いていきます。
ゼロ知識証明(Zero-Knowledge Proof, ZKP)は、証明者が何かを知っていることを証明するための暗号技術の一種です。
簡単にいうと次の通りです。
「木箱の中にイチゴが入っている。木箱の中身を相手に見せずに、木箱の中身はイチゴであると相手に証明すること」
木箱の中身を見ていないけど(ゼロ知識)、木箱の中身がイチゴであると証明できる(証明)という仕組みがゼロ知識証明です。
以下でゼロ知識証明についてもう少しだけ掘り下げますが、概要だけ知りたい人はここまで読めば十分です。
お疲れ様でした。
ゼロ知識証明の特徴
ゼロ知識証明は3つの特徴を持っています。
それぞれ見ていきましょう。
1.完全生
証明したい人の主張が正しい場合、検証側はその主張の正しさを高確率で検証できます。
証明者と検証者の双方がゼロ知識証明のプロトコル(ルール)に従っている限り、検証者は証明者の主張が正しいことを確認できるということです。
2.健全性
証明者の主張が嘘の場合、証明者が何をしようが検証者はその主張が嘘であることを見抜けます。
つまり、健全性を備えたプロトコルにおいては、証明者は検証者を騙すことができません。
3.ゼロ知識性
検証者が証明者から何らかの情報を盗もうとしても、証明者の主張が正しいということ以上の情報は得られません。
うん…難しいですね笑
まとめ
この技術を仮想通貨に利用することで、取引のプライバシーを保護しながら、トランザクションの正当性を検証することができます。
つまり、送金元のアドレスや送金先のアドレス、送金量について匿名でやり取りが可能となります。
実際にこの機能を搭載している仮想通貨は存在していますが、マネロンの危険性があると騒がれがちです。
反対に、一部の企業や政府機関は、自分たちが送信したトランザクションの詳細情報を公開したくない場合があります。
このような場合はゼロ知識証明を使用することで、トランザクションの正当性を検証しながら、トランザクションに関する情報を秘匿することができます。
ゼロ知識証明の技術は悪用できる可能性はありますが、使い方によってはとても便利な技術になります。
仮想通貨はWeb3.0の一部にすぎないため、ゼロ知識証明の技術発展により、匿名性が高く利便性の良いサービスが日常に浸透していって欲しいと思っています。