3-1 ゼロ知識証明の特性の直感的な理解
ゼロ知識証明には、一般に、完全性、健全性、ゼロ知識性の3つの特性を備えていることが求められる。本節では、第1章で紹介したワインの例を題材に、それぞれの特性がどのようなことを意味しているか例示する(図表3-1)。
完全性とは、命題が正しいことを確認する側(検証者)は、証明者が持っている命題が正しい(真である)場合、それが真であることが必ずわかることである。これにより、証明者が持っている命題が正しいのに、正しくないと判断されることはなく、正しい命題を持つ証明者は必ず保護され、取引の安定が保護される。ワインの例に当てはめると、「検証者は、証明者がワインを見分ける方法を知っている場合、証明者がワインを見分ける方法を知っていることがわかる(証明者がワインを見分ける方法を知っているのに、検証者は証明者が見分ける方法を知らないと判断してしまうことがない)」ことが完全性である。
健全性とは、証明者が持っている命題が誤っている(偽である)場合、検証者は高い確率でそれが偽であると見抜けることである。ワインの例では、「検証者は、証明者がワインを見分ける方法を知らない場合、高い確率で証明者は見分ける方法を知らないと見抜ける(試行回数が多い時、証明者がワインを見分ける方法を知らないのにすべて正答する確率は無視できるほど小さい)」ことが健全性である。
健全性の定義によれば、証明者が持っている命題が誤っていても、検証者がそれを正しいと判断してしまう可能性は残っている。しかし、実用時にはこの確率が無視できるほど小さくなるように構成する(ワインの例であれば試行回数を増やす)ことができ、また、現在使用されている暗号技術も解読される可能性がゼロではないことも考慮すれば、このことは直ちには問題にならない。
ゼロ知識性とは、証明者の持つ命題が真であるなら、検証者が証明者から知識を盗もうとしても、「命題が真である」こと以外の何の知識も得ることができないことである。ワインの例に当てはめると、「検証者は、証明者が用いているワインを見分ける方法を知ることができない(検証者は入れ替えたか入れ替えていないかを証明者に質問するだけなので、どうやって見分けたかはわからない)」ことがゼロ知識性である。これがゼロ知識証明の特徴とも言えるもので、まさに流出する知識がゼロであるから「ゼロ知識」ということになる。