ゼロ知識証明(ゼロ・ナレッジ・プルーフ)
巨大デジタル企業にとって、個人情報は極めて重要なものとして考えられています。GAFAM及びソーシャルメディアのユーザーの個人情報を不適切に乱用されたり、マーケティング戦略のため第三者へ情報を売ったりすることによる利益は数百億円を突破しています。*1
世界中の皆さんの個人情報が利用されています。そして、パワフルなツールが開発されているため、個人情報の収集・分析をすることがとても容易になっています。
個人情報で利益を出す企業の「データビジネス」よりも、2018年の選挙コンサルティング会社の英ケンブリッジ・アナリティカによる、フェイスブック利用者のデータの不正共有についてのスキャンダルは、民主主義を危険にさらすということを示しました。
Web広告の分野では、データを収集・分析します。これは「顧客体験を向上させる」ためとしていますが、実際は個人情報の取扱いが適切であるか、誰がどんな目的のために取り扱うかは謎です。
2018年5月25日から施行された「RGPD」(EU一般データ保護規則)は、データ収集を行う際、ユーザーから明確な同意を得ることを目的とした管理規則で、2021年の3月にフランス政府はこの規制を導入しました。
さらに、中央サーバーにある中央集権型のデータはハッカーにとても狙われやすいです。毎日のようにハッキングされ、ダークウェブでは個人情報などの違法取引(売買)が横行しています。*2
XSLラボは、本人が個人情報を取り扱うことができるソリューションを提供します。ゼロ知識証明プロトコル(ゼロ・ナレッジ・プルーフまたは「ZKP」)は、重要な情報を伝えず、真実であることのみを証明できる仕組みです。ZKP技術は個人情報についてのトラブルを解説するソリューションだと考えています。
ゼロ知識証明の歴史
ある人(証明者「prover」または「holder」)が別の人(検証者、承認者「verifier」)に対する対話というプロトコルです。与えられた情報が「真実であるステートメント」ということを証明する手法で、このステートメント以外の情報を相手に伝えません。
80年代にGoldwasser、MicaliとRackoffにより*3「ゼロ知識対話証明」という概念が示されました。ZKPは両当事者での「相互作用」として、証明を提供して検証されるシステムです。さらに、ステートメントを納得させたい証明者と証明の正しさを確かめる検証者が存在し、納得させる暗号プロトコルです。
ZKPは完全性、健全性、ゼロ知識性という、三つの不可欠な性質を満たしています。
完全性→真であることを確認する検証者は、証明する証明者のステートメントが真であるならば、「真実である」ことが必ず分かります。
健全性→証明者のステートメントが偽であるなら、検証者は高い確率でそれが偽であると見抜けます。(ですので、基本的にズルすることはできません)
ゼロ知識性→証明者のステートメントが真であるなら、検証者は「真である」以外の何の知識も得られず、これ以外の情報は提示されることはありません。
ゼロ知識対話証明(ZKIP)プロトコルは、Σプロトコル(シグマ、sigma)とよく呼ばれ、この技術を構成する3つの要素を満たしています。
信頼性→証明者(holder)は検証者(verifier)へ情報が「真実」であることを証明できると約束。
チャレンジ→検証者(verifier)からの応答。
返答→証明者(holder)によるこのチャレンジへの応答。
「アリババの洞窟」の比喩
知識なしの証明を提示する仕組み(ゼロ知識証明-ZKP)を理解するため、「アリババと40人の盗賊」という有名な物語に基づいた「How to explain Zero-Knowledge Protocols to your Children」*4(子供にゼロ知識証明プロトコルを簡単に説明する)を紹介します。
主人公のアリババは財布を盗まれ、泥棒が洞窟に逃げた。洞窟は円状になっており、二つの道2(A左とB右)がある。アリババは洞窟まで泥棒を追いかけたが、泥棒が右に行ったか、左に行ったか、アリババは分からない。左に行ってみたら、袋小路だ。右に行ったってことね!とアリババは思う。しかし、右の道を歩いたら、また袋小路になってしまった。
数日経って、ある泥棒はもう一回アリババの財布を盗んで、同じく洞窟に逃げたが、また消えてしまった。そして一か月後、とうとうアリババは、毎回泥棒と違う道を選んでしまうなんて偶然じゃない!と思うようになった。アリババは洞窟に隠れて泥棒を待ち、そしてアリババは信じられないものを目にした。洞窟内に呪文を唱えると通れる、 2つの通路をつなぐ隠しドアがあったのだ。
では、今、「アリス」と「ボブ」というキャラクターを創造してみましょう。
そして、魔法の言葉で開けられるドアがあって、外につながっています。ボブは、アリスに魔法の言葉を教えずに、魔法の言葉を知っていることを、アリスに証明したいと考えています。(情報を開示せず、知っていることだけをアリスに証明したいとのことです)。
このため、下記のステップが必要になります:
ステップ1: アリスはなにも見ずに、アリスは洞窟の外で待っている。ボブはAかB道を使って洞窟の中に入って、ドアの前で待っている。
ステップ2: アリスは道にある二股の前まで行って、コインを指で弾く。結果によって、要求した道、「A」また「B」を、ボブに叫んで伝える。
ステップ3: アリスが要求した道からボブが戻ってくるか確認し、要求通りであれば検証できるとのことです。
Zero Knowledge Proof
そうすると、ボブが魔法の言葉を本当に知っているなら、アリスが選んだ道から戻ってくるはずです。しかし、もし魔法の言葉が分からないのであれば、1回目で成功する確率は50%になります。数回試してみたら、たとえば20回、成功する確率は(1/(2^20)) * 100 %になってしまいます。100万分の1回以下しか成功する可能性がありません。
つまり、このシナリオでは、1回だけでボブは魔法の言葉が分かることは信じがたいですが、数回やってもボブは間違えないなら、魔法の言葉が分かっていると確率的に判断することができます。
他のシナリオも想像してみましょう。ボブは1回のみで魔法の言葉を知っていることをアリスに証明したいです。最初からアリスは道にある二股の前で待っていて、ボブはA道から出て、B道から戻ってきます。これが意味するのは、魔法の言葉 を知っているということです。
ちなみに、このシナリオをアリスまた第三者・誰でも「保存」することができます。このため、ボブが魔法の言葉を知っていることが誰でも分かってしまいます。
最初のシナリオでは、ゼロ知識対話証明「ZKIP」(Zero-Knowledge Interactive Proof)ケースといいます。二人でのゲームのように、HolderがVerifierにProofを提示して検証する際、ZKPプロトコルを使います。理解しましたでしょうか。
データ保護とZKP
2018年9月に公開されたレポートにおいて、フランス共和国データ保護機関(CNIL)は、RGPD (EU一般データ保護規則)の条件をブロックチェーンに適用することはできないと述べました。*5 その理由は、ブロックチェーンの特徴はデータの「不可逆性」です。
つまり、ブロックチェーンに保存されているデータを変更・削除することができません。たしかに、ブロックチェーンは偽造・改変が不可能だけでなく、削除も不可能です。そうなると、データへのアクセス権および「データポータビリティ」権を共有・管理することができますが、データを訂正・削除する権利を付与することは無理です。仏CNILは「本人よりリクエストされても、ブロックチェーンでの登録された情報を改変・削除することは不可能です」と述べました。このため、暗号化されていない個人情報をブロックチェーン技術により登録しないこと、としています。
たとえば、全ての伝統的なトランザクション(ビットコインなど)の取引は、基本的にパブリックブロックチェーンの仕組みを採用しています。ブロックチェーンでのユーザーの資産残高を確認することができるし、本名ではなくユーザー名を使うので、プライバシーが守られていると感じるユーザーが多いかもしれませんが、実は、ユーザー名から個人情報を調べることが可能ですので、保護されているとは言えないかもしれません。*6
匿名性が高い仮想通貨「Zcash」(ジー・キャッシュ)のプロジェクトは、暗号理論の非対話ゼロ知識証明(NIZK)を用いてパブリックブロックチェーン上で取引のプライバシーを保護するプロジェクトです。このように、すべてのデータが隠れています。*7
このプロジェクトは「zk-SNARKs」と関連しています。「zk-SNARKs」は、ブロックチェーンでの秘匿化やイーサリアムのスケーリング問題のソリューションとして考えられています。(英:「Zero-Knowledge Succinct Non-Interactive Argument of Knowledge」:「ゼロ知識」(Zero-Knowledge)、「簡潔」(Succinct)、「非対話型」(Non-interactive)、「知識の議論」(ARgument of Knowledge))
簡単に言うと、知識なしで非常に小さい証明(1つのメッセージのみ)を生成し、証明において証明者と検証者の間での対話をする必要がない仕組みです。
JPモルガン及びINGグループなども、この「ゼロ知識証明」の仕組みを取引のプライバシーを確保するために興味を示しています。*8
まず、ZKPの2つのプロトコル:ぜロ知識対話証明「ZKIP」(Zero-Knowledge Interactive Proof)および非対話ゼロ知識証明「NIZK」(Non-Interactive Zero-Knowledge Proof)の違いを説明します。ZKIPプロトコルというのは、証明者と検証者の間で何度も対話をする必要がありますが、NPIKプロトコルの方は、1つのステートメントで証明し、すべての検証者はアクセス可能です。
XSL Labsでの「SDIソリューション」は、ZKPの仕組みと同じように働く予定です。
典型的な例を挙げましょう。年齢確認の場合、本当の年齢の証明を提出する必要もなく、「未成年者ではない」証明を提出したら十分です。このため、本人の生年月日及び本当の年齢は誰にも分かりません。さらに、身分証や免許証に記載されている重要な個人情報を提示する必要ありません。もっと簡単なケースを見てみましょう。預金残高を明らかにせず、十分なお金を持っているかどうかのみを開示することは可能です(「Yao’s Millionnaire Problem」*9は、ZKPソリューションのおかげで解決できます)。
つまり、ZKP技術は、データの安全保障の問題およびRGPDの厳しい規則に関しての将来の有望なソリューションだと考えています。ゼロ知識証明の仕組みは、さまざまな業界にて少しづつ活用され、現在、金融機関はすでにこのテクノロジーを活用しています。個人情報の保護、認証、電子投票などのために、そろそろアプリもZKPを利用するでしょう。ZKPの使用はこれから広く採用され、未来、標準的な機能として使われると信じています、XSL Labは、インターネットの信頼性に貢献し、インターネットの新しい使い方に革命を起こすというミッションを遂行しています。
(1) https://washingtonmonthly.com/magazine/july-august-2019/what-your-data-is-really-worth-to-facebook/
(2) https://www.futura-sciences.com/tech/actualites/cybersecurite-vaut-votre-profil-facebook-twitter-dark-web-81572/
(3) https://core.ac.uk/download/pdf/194164868.pdf
(4) http://pages.cs.wisc.edu/~mkowalcz/628.pdf
(5) https://www.cnil.fr/sites/default/files/atoms/files/la_blockchain.pdf
(6) https://orbilu.uni.lu/bitstream/10993/18679/1/Ccsfp614s-biryukovATS.pdf
(7) https://z.cash/technology/zksnarks/
(8) https://www.ing.com/Newsroom/News/Blockchain-innovation-improves-data-privacy-for-clients.htm
(9) https://research.cs.wisc.edu/areas/sec/yao1982-ocr.pdf