アウトプット記録

いろんなことをアウトプットします

ゼロ知識証明の記事について考えてみた

はてブ見てたらこんな記事があったので少し自分の考えを書いてみたいと思います。

 

note.mu

元記事はこちらです。

blog.goodaudience.com

 
コメントにあった例1,2だけ考えてみますね。

例1
アリスがボブにウォーリーを見せることで「アリスがパズルからウォーリーを見つけたこと」を証明しています。
ここでのポイントは
①アリスがボブに見せたウォーリーが本当にパズルのウォーリーなのか
②「見つけたこと」以外の情報は伝わっていないか
ということです。
それ踏まえると、以下のようだと理解しました。

証明1
アリスからはウォーリー以外の情報がないので、ボブとしてはこれが本当のウォーリーかどうか判断できません。
したがって、透かしを入れる例がありますが、これは例えばボブが渡す段階でウォーリーに名札でもつけておく、というのでもいいと思います。
アリスから届いたウォーリーが名札付きウォーリーなら他にも居ない、だから渡したパズルからとったのだろう、と検証できます。
そしてアリスからボブにはウォーリーしか伝わっていないので、パズルにおけるウォーリーの位置、は少なくともアリスからボブには伝わっていません。

証明2
(これがちょっとわからないのであくまで自分の理解、ということで了承ください)
パズルのサイズとは異なるカードボードを重ねて、ボブにウォーリーを見せたあとでカードボードを外せば元のパズルの上にカードボードがあった、ということを伝えられます。
そしてサイズが異なるカードボードを使うことで「パズルのウォーリーの位置」≠「カードボードのウォーリーの位置」となるため、「パズルのウォーリーの位置」は伝えずに済みます。
ただこれは外した段階でどこにいるかが伝わるんじゃないか、と思うので今ひとつピンときてないです。

 

 

例2
ボブがアリスに対してアリスがボールを入れ替えたかどうかを伝えることで「ボブは色が見えていること」を証明しています。
ここでボブはアリスに対して伝えていることは
 ・アリスがボールを入れ替えた
 ・アリスがボールを入れ替えていない
だけです。アリスが何色のボールを持っているかも、どの手にボールを持っているか、も伝えていません。誰かにこの情報の伝達をお願いしたとしても、何ら困ることはないのです。

 


暗号理論では「その暗号が安全である」ことを証明する事が必要で、ゼロ知識証明はその証明のための一つのテクニック(技術や手法、といってもいいかもしれません)、といえます。
(厳密に言えば、どんな仮定で、どんな根拠で、どれだけ安全か、ということもセットにしないといけません。)

仮想通貨はその話題性から色々話題になっていますが、その根本には暗号的な技術があるわけで、そういう意味では今後も目が離せない分野だと思っています。