公開・秘密・証明の置きどころ で「秘密は手元、公開はチェーン、証明が橋」と学びました。 その橋のしくみに名前がついています。それが Kachina(カチナ) です。 Midnight Academy のフェーズ3でも「Kachina と private smart contracts」が扱われます。
⚠️ Kachina はもともと学術的なモデル(研究)に由来する考えかたです。ここでは考えかたの骨子をやさしく説明します。正確な仕様は公式ドキュメントや論文で確認してください(ここでは断定しません)。
なんのためにあるの?
ふつうのスマート契約(Ethereum など)は、状態も処理もぜんぶ公開で動きます。みんなが同じ計算をやり直して検証できるからです。 でもそれだと「秘密のまま計算する契約」は作れません。
Kachina は「秘密はユーザーの手元に置いたまま、契約として正しく動かす」を成り立たせるための考えかたです。
たとえ話:答案は見せず、採点結果だけ提出
テストを思い出してください。
- ふつうの契約:答案(中身)をみんなに見せて、全員で採点(再計算)して正しさを確認する。
- Kachina 的な契約:答案は自分の手元に置いたまま、「この採点(状態の変化)はルール通り正しい」というゼロ知識証明だけを提出する。先生(チェーン)は証明を確認するだけ。
これで「中身は秘密、でも正しさはみんなが確認できる」が両立します。
どういう仕組み?(3つの登場)
Kachina の考えかたは、置きどころで見た3つを橋わたしします。
流れ(イメージ):
Compact で書いた契約は、コンパイルするとゼロ知識回路になります。Kachina 的に言うと、その回路が「手元の秘密の計算が、公開のルールに合っている」ことを保証する橋になります。
ZK-SNARK ってここで出てくるの?
- Academy では Kachina と一緒に ZK-SNARK という言葉が出ます。
- SNARK は「短くて・速く確認できるゼロ知識証明」の総称だと思ってください(くわしくは ZKの部品箱 の「方式」を参照)。
- Kachina は、その SNARK を使って「秘密の契約」を成り立たせる設計の枠組み、という関係です。
気をつけること
- Kachina は「新しい暗号アルゴリズム」というより、「秘密ステート+証明+公開台帳をどう組み合わせるかの枠組み」です。
- 「全部が秘密になる」わけではありません。公開に残す結果と手元に隠す中身を、設計で分けます(→ 置きどころ)。
- 細かい仕様(どんな証明を、いつ、どう作るか)は公式/論文が正本。ここでは骨子だけです。
開発者として理解すべきこと
- Midnight の「秘密の契約」は、手元計算 → ZK証明 → 公開台帳に結果+証明、という流れで成り立つ
- Compact 契約のコンパイル結果(ZK回路)が、その「正しさの橋」になっている
- 「何を手元に隠し、何を公開し、何を証明で渡すか」の設計が、そのまま Kachina 的な設計になる
- 正確な仕様は公式/論文で確認する(このアプリは考えかたの入口)
公式Docsではどこ?
- Academy Phase 3(外部リンク・別タブで開きます)(Kachina / private smart contracts / ZK-SNARK)
- How Midnight works(外部リンク・別タブで開きます)
- What is Midnight?(外部リンク・別タブで開きます)(公開/秘密ステート)
今日のまとめ
- Kachina=「答案は見せず、採点結果(と証明)だけ出す」契約のしくみ
- 秘密ステート → ZK証明 → 公開台帳、という橋わたし
- 細部は公式/論文。ここでは骨子だけ(断定しない)
今はここだけでOK
「中身(答案)は手元、正しさ(合格スタンプ)だけチェーンへ」——これが Kachina の心です。
📘 もっと正確に(原文準拠コース)
Academy 原文に忠実な詳しい版はこちら:
つぎに読むページ
➡️ お金の動きと2つの台帳へ。2つの台帳と Zswap