ここが Midnight の心臓部です。 名前はむずかしいけど、考えかたはとてもシンプル。1回でぜんぶ分からなくて大丈夫です。
なんのためにあるの?
「正しいことを証明したい。でも、中身は見せたくない」——そんなわがままをかなえる技です。
中身を見せずに、「これは正しいよ」とだけ、相手に納得させる。
これを ゼロ知識証明(ゼロちしきしょうめい / ZKP) と言います。
たとえ話:パスワードを見せずに証明する
あなたは、あるアプリの正しいパスワードを知っています。 でも、パスワードそのものはぜったいに見せたくないですよね。
ゼロ知識証明を使うと、
- パスワードは見せない
- でも「正しいパスワードを知っている」ことだけは、相手にちゃんと納得させられる
「答えは見せないけど、ちゃんと解けたよ」と証明できる、魔法みたいな技です。
3つの約束(これだけ覚えよう)
ゼロ知識証明は、つぎの3つを守ります。
この3つがそろって、はじめて「見せずに証明する」が成り立ちます。
登場人物(だれが何をする?)
⚠️ prover も verifier も「人」とはかぎりません。アプリの中で、同じプログラムが両方の役を演じることもあります。「役わりの名前」だと思ってください。
1回だけで終わる証明(ブロックチェーン向き)
- やり取りしながら納得させるやりかた(interactive)もありますが、
- ブロックチェーンでは「1回つくった証明を、後からだれでも1人で確かめられる」必要があります。
- だから Midnight では「1回で完結する証明」(non-interactive)が前提です。
気をつけること(よくあるかんちがい)
- ゼロ知識証明は「暗号で隠して運ぶ」しくみではありません。「事実だけを納得させる」しくみです。
- 「回路(circuit)」を書くのは、あとで出てくる Compact の役目。今は入口だけでOK。
開発者として何を学べばいい?
- まずは「中身を見せずに、正しさだけ渡せる」というイメージをつかむこと
- 3つの約束(完全性・健全性・ゼロ知識)を、言葉だけでも覚えておくこと
- 「prover / verifier / witness」という役わりの名前に慣れておくこと
今日のまとめ
- ゼロ知識証明=中身を見せずに「正しい」とだけ納得させる技
- 約束は3つ:正しければ通る・うそは通らない・中身はもれない
- ブロックチェーンでは「1回で完結する証明」を使う
今はここだけでOK
「答えを見せずに、解けたことだけ証明できる」——このイメージが持てたら大成功です。
📘 もっと正確に(原文準拠コース)
Academy 原文に忠実な詳しい版はこちら:
つぎに読むページ
➡️ では、その「見せかた」をどう設計する? 必要なことだけ見せる
📚 もっとくわしく(公式・むずかしめ): Midnight Academy(外部リンク・別タブで開きます) / ZKP とは(ブログ)(外部リンク・別タブで開きます)