Halo2ライブラリを使ってみる | HashPort技術ブログ
はじめに本稿ではzk-SNARKライブラリhalo2の実装の仕組みの一部を簡単に解説します。実装の概要Halo2ではPLONKish回路と呼ばれる回路を用いて証明を行います。PLONKish回路の出力と証明者の主張する値が一致することを確認
https://tech.hashport.io/3990/
いつもHashPort Wantedlyをご覧いただきありがとうございます。採用担当です。
本日は、エンジニアチームが展開する技術ブログを公開いたします!
クライアント先の会議などで、重要な決定事項について話し合う際、情報の漏洩を防ぎながらも正確な数値や証明を確実に伝え、相手に納得していただくことは重要ですよね。そのような会話を実現するために、『ゼロ知識証明』という数学・暗号学の分野が研究されています。ゼロ知識証明をプログラム上で実現するためのフレームワークは様々ありますが、今回は特に安全性が高いとされる「Halo2」というフレームワークを実際に試してみました。
\ HashPort技術ブログはこちらからご覧ください /
ゼロ知識証明とは
ゼロ知識証明(zero-knowledge proof)とは、証明者(Prover)が検証者(Verifier)に、 自分の持っている命題が真であることを伝えるのに、真であること以外、 何の知識も伝えることなく証明できるような対話(非対話)知識証明プロトコルである。
Aさんは命題Pが真(True)である事を誰かに証明したい。
運転免許証の提示でAさん (Prover)は命題Pが真(True)である事をBさんに証明できるが、生年月日から年齢などの情報が漏れているためにゼロ知識とは言えない。
では、どんなものが『ゼロ知識証明』と言えるのか?
Bさん(Verifier)は自分で生成した乱数[r]を貰うだけなので、 対話終了後に秘密鍵に関する知識を得ていない状態。⇒これを『ゼロ知識』と捉えます。
個人情報を安全に管理するためのVerifiable Credential(検証可能な証明書)などにおいて、将来的にゼロ知識証明の技術を応用する可能性があります。ゼロ知識証明の分野は急速に発展しているため、Halo2以外の他のゼロ知識証明の仕組みも勉強しつつ、最新の研究に追いつけるよう常にキャッチアップしていきます!
次回の技術ブログもお楽しみに!