Skip to content

度々ブロックチェーンのハッカソンや新規プロジェクトなどで”ゼロ知識証明”という言葉が出てきます。ゼロ知識証明は数学者の論文で提唱された概念ですが、ブロックチェーンが抱える課題を解決するための技術として注目を浴びています。

そんなゼロ知識証明について、本記事では概要と実際にブロックチェーンでどのように使われているのかユースケースを解説していきます。

ゼロ知識証明とは?

結論からお伝えすると、ゼロ知識証明とは「自分だけが知っている秘密の情報を他人に伝えることなくそれが本当であると証明するもの」です。

例えば、あなたがwebサイトにログインするためのパスワードを知っているけれどそのパスワードをwebサイトに入力することなくログインしたいとします。そのような時にゼロ知識証明は活用でき、あなたはパスワードを入力せずに代わりにパスワードを知っていることを何らかの手段でwebサイトに伝えることでログインを実現します。

また、他の例でいうとあなたが不動産屋からアパートを借りたいとします。その際に不動産屋はあなたの年収がちゃんとあるのかを知りたいはずです。しかしあなたは自分のプライベートな情報を誰かに伝えたくないかもしれません。その時にゼロ知識証明を使えば、あなたの所得や年収が不動産屋が条件として求めている所得の範囲にあるかを、あなたの所得を明かすことなく証明できます。

このように、ゼロ知識証明は人のプライバシーを守ったり、そのことが本当であるかどうか検証するために使われます。

ゼロ知識証明3つの基準

では、ゼロ知識証明と呼べるにはどのような基準を満たさないといけないのでしょうか?

イーサリアムが出している記事によると、3つの基準が説明されています。証明者というのは自分があるお題について真実を知っていると主張している人です。検証者は証明者が本当にあるお題について知っているのかチェックする人です。
https://ethereum.org/en/zero-knowledge-proofs/

1.完全性: 正しいinputであれば常にtrueを返す。そうしたら他の内在するステートメントもtrueになり、証明者と検証者が正直に行動すれば、証明は受け入れられる。

2.健全性: 嘘のinputを与えて、検証者をだますことができない。

3.ゼロ知識(無知であること): 検証者はそれが事実であるか証明するために、それについて何も知らなくて良い。これにより検証者が証明から、証明する対象の情報を導くことを防ぐことにもなる

1については、証明する方法が確実に機能することを指しています。証明者と検証者がその方法にきちんと従ったら、いつも正しくその証明方法が動作しなくてはいけません。

2の健全性は、証明者が本当はあるお題について何も知らないのに、検証者に「証明者は本当のことを知っている」と騙せないことを言っています。

3のゼロ知識は、検証者が知っていることは何もなくていいというだけです。

対話型と非対話型とは

ゼロ知識証明には対話型と非対話型と呼ばれる2種類があります。

対話型は何回も証明者と検証者が会話することで、検証者は証明者があるお題について知っていると納得してもらう方法です。具体例として太郎が赤と青のボールを見分けられるかの証明を考えてみましょう。あなたは右手に赤いボールを持っていて、左手に青のボールを持っています。次にあなたはボールを入れ替えるか入れ替えないかを選択します。そして太郎に手を見せてどっちの手に赤いボールがあるかを答えてもらいます。太郎が色を識別できるなら毎回正解するはずです。これが対話型の証明です。

しかし、毎回証明者と検証者がやり取りをしなくてはいけません。そこで、検証者が1回しかチェックしなくていいようにと改善されたのが非対話型のゼロ知識証明です。

ブロックチェーンでのZKPのユースケース

これまで説明したように、ゼロ知識証明は秘密を明かすことなくそれが本当であることを証明します。その特性はブロックチェーンと相性がよく、近年ブロックチェーン業界で注目を浴びています。

ブロックチェーンでは全てのデータの状態はトランザクションに紐づけられ、誰でもそのデータをみることができます。そのため、プライベートな情報をブロックチェーンに書き込んでしまうとそのチェーンがなくならない限り一生データが残ってしまいます。つまり、ユーザーのプライバシーに対して弱いと言えます。

そこで、そのような課題を解決するためにゼロ知識証明が取り入れられています。詳しいユースケースを以下で解説します。

トルネードキャッシュ

トルネードキャッシュはミキシングと呼ばれる複数のアカウントの取引情報を混ぜることで、ブロックチェーン上で特定のユーザーがどのような取引をしたかを秘匿化するものです。資金洗浄に使われることもありますが、ユーザーのトランザクションの秘匿化を通してプライバシー保護の向上に一役買っています。

以下のYouTubeで分かりやすく仕組みが解説されています。
https://www.youtube.com/watch?v=z_cRicXX1jI

分散型アイデンティティ

現在だと自分の国籍を証明するためにパスポートを見せることが求めらると思います。しかしそれだとプライバシーを晒すため、そのような情報を晒すことなく解決する方法として分散型アイデンティティ(Decentralized Identity; DID)が提案されています。

イーサリアムも勝手に自分でアカウントを発行でき誰からもアカウントを管理されないという意味では、ある種の分散型アイデンティティということができます。
https://ethereum.org/ja/decentralized-identity/

実用化に向けて動いている具体的なサービスにはSovrinが挙げられます。詳しくはこちらの記事をご覧ください。
https://gaiax-blockchain.com/sovrin

また、最近だと”Semaphore”というユーザーがグループメンバーかどうかを匿名で証明するプロトコルも話題です。

終わりに

ブロックチェーンでは、日々ゼロ知識証明の可能性が模索され今でもさまざまな取り組みがされています。今後もBlockchain Bizではブロックチェーン×ゼロ知識証明の最新ニュースを追っていきます。

Web3のアプリケーションに特化したセキュリティサース”CryptorReport”を独自に開発中。その傍らGaiaxでブロックチェーンエンジニアとして働く。

ブロックチェーンを学び、新しいことをサービスを作りたい人が集まるコミュニティーを運営しています。
・これから実現したいサービスやプロダクトにブロックチェーンを使いたい
・ブロックチェーンが自分の課題を解決する糸口としたい
・ブロックチェーンの技術を学んでプロダクト開発をしたい

興味のある方は詳細をご覧ください!

Back To Top
Search