技術 ブログ

読書メモ:ゼロ知識証明入門



ゼロ知識証明の概要やメリットについては、前回読んだ「暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書」およびethereum.orgの「ゼロ知識証明」の記事やその技術を応用した「ゼロ知識ロールアップ」である程度理解することができます。

しかし、具体的に秘密計算を用いて、パスワードや個人情報などの機密情報に結び付くものを与えずに証明する「知識の証明」、個人の年収など秘密にあたる特定の値の範囲を与えずに証明する「範囲の証明」、具体的な値を隠したままある計算をしたことを証明する「演算の証明」をどのように達成するかについてはブラックボックスのままでした。

また、パスワードなどの機密情報を一方向性を持つハッシュ関数で変換した場合との違いなども同様に不明でした。

しかし、この本を読んで、これらの疑問点が解決でき、完全ではありませんが「数学的」に理解することができました。

その中でもゼロ知識証明で重要となるゼロ知識性を「シュノアプロトコル」や「QAP (Quadratic Arithmetic Programs)」でどのように達成するのかについて具体的に説明されています。

また、ハッシュ関数との比較では、良く知られている単純なパスワードや英単語については、巨大な対応表を用いて推測可能ですが、ゼロ知識証明を使うと推測することはほぼ不可能という意味でより暗号強度が高いことも明確に理解することができました。

ITの知識は必要ですが、数学書のように数式や証明地獄のような内容ではなく、なるべく言葉で理解させようと著者が工夫してくれているので、高校の理系クラス卒業程度ならば難なく読めると思います。

また、実際に暗号プリミティブであるsnarkjsやcircumを使って実際にゼロ知識証明を作成する方法も詳細に解説されています。

そのため、この本を読めばアプリの開発でも応用ができるようになっています。

おまけに、イーサリアムへVeriferコントラクトとして演算の証明をブロックチェーンに登録する方法まで解説されております。

数学的な内容は、ブログなどの記事では、品質上理解しにくいものが多いですが、この本はかなり理解しやすいように書かれています(付録にあるQAPの証明は自分にはヘビーで数回寝落ちしましたが・・・)。

「ゼロ知識証明」の数学的な理解だけでなく、アプリでも応用したい人におすすめしたい本です。





コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です