ゼロ知識証明って何だろう?
今回は暗号資産(仮想通貨)を知る上で大切な「ゼロ知識証明」について説明します。
西口さんは、「ゼロ知識証明」って知ってますか?
深くは知らないけど、仕事関係でそのフレーズは見たことあるかな。
暗号技術の1つだったよね?
さすがですね。その通り、暗号技術の1つです。
暗号資産にも使用されていて、イーサリアム(ETH)などの通貨が挙げられます。
今回は暗号技術の1つである「ゼロ知識証明」を解説します。
「ゼロ知識証明」は暗号技術の1つであり、プライバシーを強化されるために使用されます。
企業などの注目性も高く、実際にイーサリアム(ETH)などのサービスで利用されています。
「ゼロ知識証明」は、ある情報を直接伝えることはせずに、別の情報を用いて証明することです。
情報が適切であることを証明したいが、その情報を直接相手に渡したくはない時に有効です。
例えば、海外へ入国する際は、関税などで個人を証明するために「パスポート」を用いますよね。
「ゼロ知識証明」を利用することで、「パスポート」を渡さず、検証者である審査官に私が「高山くん」ということを伝えます。
1つの案として、私の父と母の特定情報を伝えれば、「高山くん」を証明できるというものです。
この「ゼロ知識証明」を知ることでより暗号技術を深く知ることができ、ファンダメンタルズ分析に活用ができます。
なるべくイメージができやすいよう簡単に説明するので、最後までご覧ください。
実際のサービス
実際のサービスとしては、パスワードなど秘匿すべき情報を直接相手に送りたくない際に、その値の代わりとなるものを送ります。
パスワードは教えないけど、パスワードを知っていることを代わりの情報で伝えます。
二重決済(二重支払い)を証明する時に、取引情報の代わりに「ゼロ知識証明」が利用されています。
暗号資産の多くはトランザクションからアドレス、取引金額、送り先などが分かるようになっており、プライバシーは確保されていません。
そこで一部のプライバシーな情報を隠しつつ、その情報が不正でないことを証明するために「ゼロ知識証明」が必要とされています。
3つの性質
「ゼロ知識証明」は3つの性質を持っており、全てを満たしていないといけません。
①完全性
②健全性
③ゼロ知識
①完全性は、データに不正なく、正確であり正しく処理されることを指します。しかし、簡単に辿り着ける解では意味がありません。
②健全性は、検証者がデータを正しく発見することができることを指します。証明者が解を示せないなら検証者は拒否できます。
③ゼロ知識は、与えられた情報以外のものを得ることができないことを指します。
①の完全性にポイントがあり、離散対数問題や素因数分解のような、簡単に答えられない問題であるからこそ、「ゼロ知識証明」が活かせれます。
2つのケース
「ゼロ知識証明」が利用されるケースは2つあるとされています。
1つは、「ゼロ知識対話証明」です。
「対話型」ともいわれます。
こちらが一般的になっています。
もう1つは、「非対話ゼロ知識証明」です。
「非対話型」ともいわれます。
ゼロ知識対話証明(対話型)
対話型は「証明者」と「検証者」の相互のやり取りにより、情報が正しいかを確かめていきます。
対話型は検証する際に、毎回「証明者」に答えを求めます。
毎回答えを聞かれるため時間がかかり、決済システムではそのやり取りがデメリットとなります。
また、「悪意ある証明者」だけではなく、「悪意ある検証者」が出てくると証明が厄介となります。
非対話ゼロ知識証明(非対話型)
一方、非対話型ではその名の通り、お互いのやり取りが発生しません。
非対話型は特別な条件下でのみ使用されていて、暗号資産(仮想通貨)に使用されているのはこちらの方です。
状況を整えることで、「証明者」が証明を渡し、後に「検証者」が確認をします。
非対話型の場合は、誰でも証明を確認することができます。
お互いのやり取りが発生しないため、決済システムに取り入れた場合、レスポンスが早いです。
しかし、特定の条件下という制限があるため、幅広く利用できないのはデメリットといえます。
対話型の例
今までの話をまとめて、対話型の分かりやすい例を出したいと思います。
条件
「ダッチ」と「レベッカ」という2人がいたとします。
「ダッチ」=「証明者」で、「レベッカ」=「検証者」となります。
「ダッチ」は、ポーカーでバカ勝ちしている「ロックの秘密を知っている」と言います。
「レベッカ」は、だったら「証明してみろ」と言います。
しかし、「ダッチ」は証明はしてもいいが、秘密についてはバラさないと言います。
「ダッチ」は並べられているトランプのカードを5枚選び、俺が見ていない間、「レベッカ」にランダムに混ぜて伏せろと指示します。
「ダッチ」は「スペードのA」を当てると宣言します。
「レベッカ」はささっと選べと催促します。
「ダッチ」はその中から1枚選び、「スペードのA」を当てました。
ただのまぐれだ言う「レベッカ」に、「ダッチ」はさらに20回連続で「スペードのA」を当てて見せました。
21回まぐれで当てた場合、1/476837158203125となり天文学的な確率となります。
これをまぐれで当てたというには無理があり、「ロックの秘密を知っている」ということをほぼ証明できます。
「ロックの秘密」=「カードの裏にある傷を見てイカサマしている」を「レベッカ」に伝えずに、証明したという例でした。
非対話型の例
これを説明するには、数式が簡単なのですが、数学が嫌いな人にはハードルが高いので、またトランプの話にします。
非対話型では「証明者」が、一方的に情報を送りつけ、「検証者」がそれを後に証明します。
ある条件下で計算すると、必ず1になることを証明します。
条件
「ダッチ」=「証明者」で、「その他の登場人物」=「検証者」となります。
ある日、「レベッカ」と「ロック」宛てにビデオレターが届きます。
「ダッチ」はビデオレターの中で、マジックを披露すると息巻いています。
「計算すると、必ず1になる」とダッチは言います。
馬鹿らしいと思いつつ、「レベッカ」と「ロック」は付き合うこととしました。
「ダッチ」は1~13までの中で好きな数を選ぶように言います。
その数字を思い浮かべたらその数に4を足して、さらに倍にするよう言います。
そこから6を引き、2で割った後、最初に選んだ数を引くとどうなるかと問います。
その後間髪入れずに「ダッチ」は、お前さんたちの数字は1になると満足気に言い放ちます。
「レベッカ」「ロック」はまんまと数字が1となることを検証しました。
悔しいので他の数字を選んで挑戦しましたが、何度やっても1となりました。
お互いのやり取りは必要としなくても、後に証明することができるこれを「非対話型」といいます。
まとめ
いかがだったでしょうか。
【暗号通貨入門】ゼロ知識証明について簡単に解説と題して、情報をお伝えしてきました。
今回の内容を簡単にまとめます。
・「ゼロ知識証明」は、ある情報を直接伝えることはせずに、別の情報を用いて証明すること
・秘匿したい情報がある際に役立つ技術
・①完全性、②健全性、③ゼロ知識の3つの性質を持っている
・「ゼロ知識証明」には、「対話型」と「非対話型」が存在する
・「対話型」は幅広い場面で使えるが、毎回通信をするデメリットがある
・「非対話型」は限定的だが、「検証者」とのやり取りがないため処理が速い
2021年6月現在では、ビットコイン(BTC)などの暗号資産の多くは、アドレスから資金の移動を割り出すことができ、プライバシーは確保されていません。
マネーロンダリングのために取引の透明性を高めて、色々な対策を講じても、悪意ある人間を排除することはできません。
であれば、悪意ある者にアドレス、取引金額などの情報を提供する必要はありません。
取引情報から個人を特定することも不可能ではないため、プライバシー強化が図れる「ゼロ知識証明」は非常に有効といえます。
ビットコイン(BTC)も「シュノア証明」というプライバシー強化の技術を、11月頃の大型アップデート(Taproot)で実装する予定です。
この「シュノア証明」についても今後解説するので、是非楽しみにしてください。
自由を掴むため、これからも一緒に学んでいきましょう。
それではまた!
コメント