ChatGPTによる「ゼロ知識証明」をテーマとした物語

とある王国に、不思議な扉があった。鍵穴はあるが、開け方を知る者はほとんどいない。扉の向こうには王の宝が眠っていると言われていた。
旅人リオは、その扉を開けられるただ一人の人物だった。しかし、王に扉の開け方を教えるつもりはなかった。なぜなら、それが知られれば悪人に悪用される危険があるからだ。
けれど王は言った。「扉を開けられるなら、それを証明してみせよ。ただし、方法は教えるな。」
リオはうなずき、扉の前に立った。そして王の家臣に、こう提案した。
「この扉にはAの道とBの道、二つの通路がある。私は扉の先に入って、AかBどちらかの道から戻ってきます。あなたは外から、私がどちらから戻るかをランダムに言ってください。もし私が本当に鍵を持っているなら、どちらの道を選ばれても、扉を通って戻ってこられます。」
王はそれを20回繰り返すよう命じた。リオはすべてに正しく応えた。
王は満足げにうなずいた。「お前が扉を開けられることは、今や疑いようがない。だが鍵の秘密は、誰にも漏れていない。」
リオは微笑んだ。「それが、“ゼロ知識証明”です。」
【注】この物語と画像は、生成AIのChatGPTで作ってます。明らかな表記ゆれがある部分は、修正しています。
感想
日ごろ、「情報セキュリティ」について考えるとき、どうしても気になってしまうのが、「ビジネスを推進すること」と「情報セキュリティを守ること」との間に存在する「矛盾」です。
ビジネスは、お互いの信頼関係があるから成立します。そのためには「相手のことを知る」必要があります。一方、情報セキュリティは「個人の権利」を守ることです。そのためには、相手に自分のプライバシーを明かさないで済むような仕組みが必要です。
たとえば、劇場では「大人の料金」と「学生の料金」が異なるのは、よくあることです。大人料金に比べて学生料金は格安です。
その際、成人を超えた人が、学生料金で入場されると、劇場側は困ってしまいます。そこで、学生料金を適用するお客様には、「学生証」の提示を求めるのが普通です。
学生証には、通っている「学校名」のほか、「本人の名前」や「顔写真」が印刷されてます。
劇場の係員は、学生証を拝見して、チケットを購入する顧客が「学生である」ことを認識して、学生料金でチケットを受け渡しします。

これは、何と言うこともない取引ですが、情報セキュリティ的な視点で見ると、望ましくはありません。
なぜなら、劇場側が知るべきことは、チケットの購入客が、「学生である」こと以上でも以下でもないからです。「学生」であることを知るため、客の個人情報を特定する「氏名」や通っている「学校名」までを本来は提示しなければならない理由はないのです。
あえて、知る必要のない情報まで、客が提示しなければならないのは、それ以外に手段がないからです。
ただ、最近は学生証の提示を求めない劇場も増えてる気がします。これはオンラインチケットの増加という背景も当然あります。ただ、学生証の確認によって生じるトラブルを避けたいという狙いもあると思います。係員が提示された学生証の内容を目視で確認することで、個人情報が係員の脳にインプットされます。そこから、情報漏洩が起きるかもしれません。劇場側が学生証の提示を求めること自体をやめれば、このリスクは根本的に防げます。
でもそれは、正当なビジネスとは言えません。学生料金は、学生にだけ適用されるものです。一般の大人が学生と偽って、安いチケットを購入するのは、正当な行為ではありません。
今回、ChatGPTに提示をお願いした「ゼロ知識証明」をテーマとした物語・・・そもそも、ゼロ知識証明とは「自分がある秘密(知識)を持っていることを、相手に何も教えずに証明する技術」を指す言葉です。
現時点で「ゼロ知識証明」を活用した技術は、一般の生活まで普及していません。特定の分野や実証実験で、使われ始めている段階です。
ChatGPTが提示した物語は、ジャン=ジャック・キスケータらの論文「我が子にゼロ知識証明をどう教えるか」にある「洞窟の問題」をモチーフにしてます。ストーリーは若干違いますが、これは理解しにくい「ゼロ知識証明」をイメージさせる例として、よく使われるお話です。ただ、わたしはその物語を読んでも、「ゼロ知識証明」について、ピンとは来ませんでした(笑)。

まだまだ、実験段階にあるとはいえ、「ゼロ知識証明」は、確実に浸透していくと思います。おそらく技術的な壁は遠くない未来に克服されるでしょう。ただ、社会的な常識・・・劇場の例なら、「学生証の提示で学生と認識する」とか、、運用が定着するには、法律的な壁というのもありそうです。
「ゼロ知識証明」について、先ほど書いた劇場の例を使うなら、顧客が学生証の提示を係員にする代わりに、次の2つを証明できれば、OKということになります。
- 匿名認証:チケットを購入した本人であることを証明するものです。匿名ですので名前は知らせる必要はありません。
- 属性証明:ある属性を持つことだけを証明するものです。学生であることを証明できれば、学校名は知らせる必要はありません。
推し活のファンクラブでも使えそうです。名前や会員番号が分からない状態で、匿名でファンクラブのサイトにログインするなどです。