May 21, 2021

ゼロ知識証明 (ゼロ・ナレッジ・プルーフ)

5 MIN READ – TEAM XSL LABS

Share on twitter
Share on telegram
Share on email
Share on linkedin
Share on facebook

ゼロ知識証明

(ゼロ・ナレッジ・プルーフ)

大手企業には個人情報の課題は大きなチャレンジとして考えられています。IT個人のGAFAM及びソーシャルメディアからのユーザーの個人情報を不適切な乱用され、マーケティング戦略のため、第三者へこの重要な情報を売ったり、利益は数百億円を突破したりしています。*1

世界の皆さんの個人情報が使われています。そして、非常にパワフルなツールが開発されているため、個人情報の収集・分析をすることがとても簡単になりました。

個人情報で利益を出す企業の「データビジネス」よりも、2018年、選挙コンサルティング会社の英ケンブリッジ・アナリティカによりフェイスブック利用者のデータの不正共有についてのスキャンダルは、民主主義を危険にさらすということを示しました。

Web広告の分野では、データを収集・分析します。「顧客体験を向上させる」ためと言われるが、実は、個人情報の取扱いが適切であるか、誰が、どんな目的のために取り扱うか誰にも分からなくて、謎です。

2018年5月25日から施行された「RGPD」(EU一般データ保護規則)は、データ収集を行う際、ユーザーから明確な同意を得ることを目的とした管理規則で、2021年の3月、フランス政府はこの規制を導入しました。

さらに、このデータ収集とビッグデータ以外、中央サーバーにある集中型のデータはハッカーにとても狙われやすいです。毎日、ハッキングされ、ダークウェブでは個人情報などの違法取引(売買)が横行しています。*2

XSL Labsは、本人が個人情報を取り扱うことができるソリューションを提供します。ゼロ知識証明プロトコル(ゼロ・ナレッジ・プルーフまたは「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回消えてしまうなんて、偶然じゃない!と思っている。アリババは洞窟に戻って、洞窟の底に隠れて泥棒を待っている。アリババは見たことが信じられない:洞窟内にマジックドアがあって、呪文を唱えると通れる! 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)ケースと言います。2二人でのゲームのように、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

Copyright © 2020 XSL Labs – All rights reserved