【ぜろちしきしょうめい】

ゼロ知識証明 とは?

💡 秘密を守ったまま「知ってるよ」と証明する魔法の暗号術
📌 このページのポイント
ゼロ知識証明のイメージ 証明者 (秘密を持つ人) 秘密の情報 証明のみ送信 秘密は送らない ✕ 検証者 (確認する人) 正しい! ✓ 完全性 健全性 ゼロ知識性 応用例 ZK Rollup プライバシー通貨 本人認証
ゼロ知識証明のイメージ
ひよこ ひよこ

ゼロ知識証明って名前からして難しそう…。どういうこと?

ペンギン先生 ペンギン先生

有名なたとえ話があるよ。洞窟に秘密のパスワードで開くドアがあるとする。きみがパスワードを知っていることを証明したいけど、パスワード自体は教えたくない。そこで何度も洞窟に入って、指定された出口から出てくることで「パスワードを知っている」と証明するんだ

ひよこ ひよこ

パスワードを教えなくても、知っていることだけ伝わるんだね

ペンギン先生 ペンギン先生

そう!これがゼロ知識証明の本質だよ。正式には3つの条件を満たす必要があるんだ。完全性(本当に知っているなら必ず証明できる)、健全性(知らない人は証明できない)、ゼロ知識性(証明から秘密の情報は漏れない)の3つだね

ひよこ ひよこ

実際にはどんなところで使われてるの?

ペンギン先生 ペンギン先生

一番注目されてるのはブロックチェーンの分野だね。ZK Rollupではトランザクションの正しさを証明するのに使われてるし、Zcashっていう暗号通貨では送金額や送金先を隠しながら取引の正当性を証明してるよ

ひよこ ひよこ

zk-SNARKsとかzk-STARKsって聞くけど、何が違うの?

ペンギン先生 ペンギン先生

どちらもゼロ知識証明の具体的な方式だよ。zk-SNARKsは証明サイズが小さくて検証が速いけど、初期設定(トラステッドセットアップ)が必要。zk-STARKsはトラステッドセットアップ不要で量子コンピュータにも耐性があるけど、証明サイズが大きい。用途によって使い分けるんだ

ひよこ ひよこ

ブロックチェーン以外でも使えるの?

ペンギン先生 ペンギン先生

もちろん!たとえば年齢確認で「20歳以上です」と証明するのに生年月日を教える必要がなくなったり、パスワード認証でサーバーパスワードを送らずにログインできたりする。プライバシーが重視される時代に、ゼロ知識証明の応用範囲はどんどん広がっているよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ゼロ知識証明」って出てきたら「秘密を見せずに正しさだけ証明する暗号技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「Zero-Knowledge Proof」 = ゼロ知識証明
💬 1985年にGoldwasser、Micali、Rackoffの3人が提唱した概念で、「知識ゼロの状態でも検証できる」という意味から名付けられたんだよ
← 用語集にもどる