ゼロ知識証明はweb3の可能性を広げる-ZKP(Zero-Knowledge Proof)の未来にあるものとは?

HOME>Journal>ゼロ知識証明はweb3の可能性を広げる-ZKP(Zero-Knowledge Proof)の未来にあるものとは?

ゼロ知識証明というキーワードは2022年後半から、よく聞かれるキーワードになっています。個人的に全く意味が分からなかったので、自分なりに調べて理解しようと思い、インプットしたことをテキストにしてみたいと思います。

言葉や技術に対する理解が浅かったり誤っている可能性がありますがご容赦ください。あくまでも自分の理解の範囲です。

自分の正しさを証明したい、ただし理由を言わずに。

By Mohamed Fouda and Qiao Wang

ブロックチェーンは現在公開データとして全ての人がアクセスできるというメリットがあります。

しかし現状では情報がパブリックな分、情報を曝け出すことになります。例えば自分が本物の自分だというのを証明するには、全ての情報をブロックチェーンに公開しなければいけないことになります。

web3がマスアダプションつまりおじいちゃんおばあちゃんまで使われるようになるには、このような現在の日常では公開したくない情報をセキュアな状態にしつつ、ブロックチェーンの大事な、デジタルデータのオーダーシップがあるということを証明したり、使えることが大事です。

そこで登場する有力なテクノロジーがゼロ知識証明(ZKP)です。ゼロ知識証明(ZKP)は最近生まれた技術ではなく、昔からある理論の一つです。NP完全問題(効率的なアルゴリズムが未知な計算問題)と共通する部分が多く、以前から数学の世界では理論として存在していました。

技術としては、ランダムであることが何かを証明するために有用なものとされているようで、この辺は本来の私たちの本能的な感覚と正反対の技術に感じますね。

それは互いに信用しない人を結びつける技術なので、今後の匿名による取引における不信感を緩和する技術だと言えます。

ブロックチェーン上でのトランザクションは、公開されたデータとして存在していますが、トランザクションを行ったユーザーの個人情報は非公開となっています。ここで、ゼロ知識証明(ZKP)を使用することで、ユーザーは自分の個人情報を公開する必要がなくトランザクションが正当であることを証明することができます。

このように、ゼロ知識証明(ZKP)を使用することで、パブリックにデジタルデータを証明することができ、同時に自分の情報を出さずに自分のものであることを証明することができます。これにより、プライバシーを保護しながら、情報の信頼性を確保することができます。また、ゼロ知識証明(ZKP)を使用することで、情報の共有がより効率的に行われ、ブロックチェーンなどの分散型システムでの利用が可能になります。

ログイン時にゼロ知識証明(ZKP)を使えたらどうなるか?

ログイン時にゼロ知識証明(ZKP)を使える場合、以下のようなプロセスとなります。

  • ユーザーがログイン画面にアクセスすると、サーバーはユーザーにランダムな値を送信する。
  • ユーザーは、このランダムな値を用いて証明を行う。
  • 証明が正しい場合、サーバーはユーザーを認証し、ログインを許可する。
  • 証明が正しくない場合、サーバーはログインを拒否する。

このように、ゼロ知識証明(ZKP)を使用することで、ユーザーは自分が正当なユーザーであることを証明できるため、パスワードを送信する必要がなくなります。これにより、ユーザーの匿名性を維持しながらサービス利用ができるため、セキュリティが向上します。

例えば、オンラインストアで買い物をするとします。通常、商品を注文する際には、名前や住所、支払い方法などの情報を入力し、パスワードを設定します。その後、ログインしてパスワードを入力する必要があります。

ゼロ知識証明(ZKP)を使用する場合は、サイトに登録する際に、個人情報を与えることなく自分だということを証明できるので、購入のトランザクションとゼロ知識証明(ZKP)だけで、代わりにゼロ知識証明を使用します。サイトはあなたが正当なユーザーであることを証明するために、ゼロ知識証明を使用します。このように、ゼロ知識証明を使用することで、購入側も店舗側もよりスムーズで安全なeコマースの取引を行うことができる、というのが魅力です。

ゼロ知識証明(ZKP)の仕組み

ゼロ知識証明(ZKP)は、その情報が何であるかを実際に明らかにすることなく、特定の情報またはデータのセットに関する知識を暗号で証明する技術です。

ZKP (Zero-Knowledge Proof) は、認証者が所有する秘密の情報を証明するための方法です。これにより、認証者は自分が秘密の情報を所有していることを証明することができますが、その秘密の情報を公開する必要はありません。このような方法は、プライバシーを保護するために非常に有用です。

ゼロ知識証明(ZKP)は、数学的に厳密な方法で実装されます。これは、秘密の情報を証明するためのプロトコルであり、認証者が秘密の情報を所有していることを確かめることができます。ゼロ知識証明(ZKP)には、様々な種類がありますが、一般的には、以下の3つの要素から構成されます。

  1. 認証者:秘密の情報を所有する人。
  2. 関係者:認証者が秘密の情報を証明する人。
  3. 認証器:認証者と関係者が手続きを行うためのプロトコル。

ゼロ知識証明(ZKP)により、その情報が何であるかを実際に明らかにすることなく、特定の情報またはデータのセットに関する知識を暗号で情報の一部を知っていること、または情報を公開したり、タスクを正しく完了したことを世界中に証明することができる技術です。

ゼロ知識証明(ZKP)の構築には証明者(Prover)検証者(Validator)が関わります。証明者は、システムの入力の知識から証明を作成しますが、検証者は、証明者が入力を認識したり、自分自身を再計算したりすることなく、計算を正当に評価したことを確認することができます。

例えば、証明者(Prover)自分が20歳を超えた成人だという個人情報の証明をする場合、自分が20歳だという証明の書類や生年月日の情報を渡すことなく、検証者(Validator)に計算値を渡すことにより個人情報が真(True)であることを証明できる、というまるで魔法のような技術です。

そしてゼロ知識証明(ZKP)には事例の通りプライバシーに重点を置いた暗号化ネットワークにおいて最も有効な活用方法となるはずです。

ブロックチェーンにおいて

  1. ブロックチェーンは誰でも情報を見ることができるのでプライバシーの観点で個人情報を暗号化する必要がある。
  2. 暗号化するとマイナーが正当性を確認できない

という課題を解決することにより、ブロックチェーンによる活用範囲が格段に上がります。

ZKPの未来

ZKPはまだまだ発展途上の技術であり、課題が残されています。

その一つが、ZKP を実装するために必要な計算量が非常に大きいことです。ZKPを使用するには、大量の計算を行う必要があります。これは、ZKPを実用化する上での問題となっています。また、ZKPはまだ研究が進んでいる段階であり、今後さらに発展する可能性があります。

ゼロ知識証明についてはWIREDの動画が非常にわかりやすく説明していたので、下部の動画をご覧ください。

参考

個人情報管理のカギとなる「ゼロ知識証明」とは|XSL Labs寄稿

ZKPs in Web 3: Now and the Future

Decentralized Speed: Advances in Zero Knowledge Proofs

本ページについてChat GPTを利用しながら作成しています。

Feature

Latest

Category

Archives

Please feel free to contact us