略:ZKP。ゼロ知識プロトコルとも。暗号学において、証明者(prover)が他の検証者(validator)に対して、証明者は「その文が本当に真である」という事実以外の追加情報を伝達せずに「真である」ことを証明する方法。
基本的な考え方としては、証明者と検証者がコミュニケーションを取る「対話証明」の方式をとる。具体的には、証明者がある情報を提示し、それを検証者が真であるか検証する。
ゼロ知識証明は、以下の3つの条件下を満たす条件下において成立する。
1: 完全性(Completeness)検証者は、提出された情報が真であれば、正しい証明者によってその事実を確認することができる。
2: 健全性(Soundness) もし情報が偽であれば、証明者は検証者を騙すことができない。
3: ゼロ知識(Zero-knowledge) もし情報が真であれば、検証者はそれ以外の事実を取得しない。証明者は、その情報を知っているだけで、証明すべき秘密を知っている可能性を示すことができる。また、真となる情報を受け取り確認することで、相互作用の「ような」記録を作ることができる。
ゼロ知識証明の最も簡単な検証法として「アリババ洞窟の問題(ジャン=ジャック・キスケータらの論文より)」がある。

①入口が2つに分かれた洞窟の真ん中に扉があり、証明者(子供)は「合言葉」を唱えると扉を開けて反対側に行くことができる。このとき、検証者(大人)は、「証明者がどちら側から入ったか」は知ることができない。
②検証者は、証明者がどちら側から奥に入ったかはわからない。
③検証者が「A(またはB)から出てきて」と証明者に叫ぶ。
④このときのルートが、
・入ってきた側と同じ場合→そのまま出ることで検証者の要求に応えられる
・入ってきた側と反対側の場合→合言葉を知っている場合にのみ、検証者の要求に応えられる
*ただし、この検証方法では、検証者が「証明者が入ってきたルートと同じルートを選択した場合」には、証明者が「合言葉を知っている」かどうかの確証はもてない。
この場合、検証者が無作為に帰還ルートの要求を出す場合、証明者が要求に応えられる確率は50%と考えられる。
この検証方法を10回繰り返した場合、10回連続で検証者の要求に応えられる確率は1/1024となり、これは通常ではほとんど起こらないと言える。
この証明を繰り返し、連続して証明者がリクエストに答えられた場合、証明者は合言葉(ある秘密)を知っていることを「ゼロ知識で」証明することができる、と言える。
上記のような「ゼロ知識証明」は、証明において「検証者と証明者のコミュニケーション」が必須となることから「対話型ゼロ知識証明(interactive zero knowledge proof)」と呼ばれる。
非対話型ゼロ知識証明
ブロックチェーンにおいては、コンピュータによる自動演算アルゴリズムを活用することで「真を明らかにする情報」以外のやりとりを一切行わずにゼロ知識証明を行う「非対話型」が広く採用されている。
対話型では、情報のやり取り(対話)が誰かに傍受されることで「秘密」が漏れる可能性があったが、非対話型では情報の仲介者が不要となる。
非対話型では、証明者は乱数のハッシュを解くなどをすることで取引の正当性を証明する。その答えの証明は、値を明らかにすることなく検証者に返信される。このハッシュの有効性を証明する方法として、演算能力を駆使した総当たりによる「プルーフ・オブ・ワーク」や、バリデータネットワークにプールされた公開鍵の真正性を活用した「プルーフ・オブ・ステーク」などがある。

COFFEの活動を応援いただける方はぜひ、委任(デリゲート)のご検討をお願いいたします😊
TickerまたはPoolIDをクリック(タップ)するとコピーできます。
NAME:CoffeePool☕️
Ticker:COFFE
Poolid:1d2972246d8adda98836626a34e337525f5206e552715d28379b5fdb
cexplorer.ioでの情報はこちら↓