中級者用語を調べる
ゼロ知識証明とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
ゼロ知識証明は、ある主張が正しいことだけを相手に示し、その根拠となる情報は一切明かさない技術です。「20歳以上であること」を生年月日を見せずに証明する、といった使い方ができます。ブロックチェーンでは、取引の中身を隠したまま正当性を検証したり、大量の計算を一度の検証で済ませたりするために使われます。
要点
- 正しさだけを示し、根拠のデータは明かさない
- 完全性・健全性・ゼロ知識性の3条件を満たす
- プライバシー用途と処理圧縮用途の両方がある
- 検証は軽く、証明の生成は重いのが一般的
定義
証明者が持つ秘密の情報を明かさずに、ある命題が真であることだけを検証者に納得させる暗号プロトコル。
満たすべき条件は3つです。主張が本当に正しければ証明が通ること(完全性)、正しくなければほぼ確実に見破られること(健全性)、そして検証者が証明から「正しい」以外の情報を得られないこと(ゼロ知識性)。この3つ目があるからこそ、パスワードや残高を見せずに検証が成立します。
ブロックチェーンでの応用は大きく2方向あります。1つはプライバシーで、送金者・受取人・金額を隠したまま「二重支払いでない」ことだけを証明します。もう1つはスケーリングで、ZKロールアップは数千件の取引をまとめて実行し、その実行が正しかったという証明1本だけをイーサリアム本体に載せます。検証コストが取引数に比例しないのが利点です。
身近な例では、ウォレットが保有証明を出すときに使えます。取引所が「顧客資産を全額保有している」ことを、個々の顧客残高を公開せずに証明する準備金証明(Proof of Reserves)の一部にも、ゼロ知識証明の手法が使われています。
注意点
- · 「ゼロ知識証明採用」と書かれていても、何を証明しているかは製品ごとに違う
- · 証明が正しくても、証明の対象となる回路に誤りがあれば無意味になる
- · 匿名性の強い設計は、国や取引所によって取り扱いが制限される場合がある