Skip to main content

フェーズ3:Midnight のしくみ

Kachina:秘密の契約のしくみ

Midnight が「秘密を持ったままのスマート契約」を成り立たせる土台、Kachina の考えかたを、やさしい比喩と開発者の視点で。秘密ステート・証明・公開台帳の橋わたしを整理します。


公開・秘密・証明の置きどころ で「秘密は手元、公開はチェーン、証明が橋」と学びました。 その橋のしくみに名前がついています。それが Kachina(カチナ) です。 Midnight Academy のフェーズ3でも「Kachina と private smart contracts」が扱われます。

⚠️ Kachina はもともと学術的なモデル(研究)に由来する考えかたです。ここでは考えかたの骨子をやさしく説明します。正確な仕様は公式ドキュメントや論文で確認してください(ここでは断定しません)。

なんのためにあるの?

ふつうのスマート契約(Ethereum など)は、状態も処理もぜんぶ公開で動きます。みんなが同じ計算をやり直して検証できるからです。 でもそれだと「秘密のまま計算する契約」は作れません。

Kachina は「秘密はユーザーの手元に置いたまま、契約として正しく動かす」を成り立たせるための考えかたです。

たとえ話:答案は見せず、採点結果だけ提出

テストを思い出してください。

  • ふつうの契約:答案(中身)をみんなに見せて、全員で採点(再計算)して正しさを確認する。
  • Kachina 的な契約:答案は自分の手元に置いたまま、「この採点(状態の変化)はルール通り正しい」というゼロ知識証明だけを提出する。先生(チェーン)は証明を確認するだけ。

これで「中身は秘密、でも正しさはみんなが確認できる」が両立します。

秘密は手元、正しさだけ公開へ(証明が橋)

どういう仕組み?(3つの登場)

Kachina の考えかたは、置きどころで見た3つを橋わたしします。

登場 役わり このアプリでの呼びかた
秘密ステート(手元) ユーザーの端末にだけある秘密の状態 ふでばこ
証明(ZK proof / SNARK) 「正しく状態が変わった」ことを中身なしで示す 合格スタンプ
公開台帳(チェーン) みんなが見える結果と、検証の場 けいじ板

流れ(イメージ):

Compact で書いた契約は、コンパイルするとゼロ知識回路になります。Kachina 的に言うと、その回路が「手元の秘密の計算が、公開のルールに合っている」ことを保証する橋になります。

ZK-SNARK ってここで出てくるの?

  • Academy では Kachina と一緒に ZK-SNARK という言葉が出ます。
  • SNARK は「短くて・速く確認できるゼロ知識証明」の総称だと思ってください(くわしくは ZKの部品箱 の「方式」を参照)。
  • Kachina は、その SNARK を使って「秘密の契約」を成り立たせる設計の枠組み、という関係です。

気をつけること

  • Kachina は「新しい暗号アルゴリズム」というより、「秘密ステート+証明+公開台帳をどう組み合わせるかの枠組み」です。
  • 「全部が秘密になる」わけではありません。公開に残す結果手元に隠す中身を、設計で分けます(→ 置きどころ)。
  • 細かい仕様(どんな証明を、いつ、どう作るか)は公式/論文が正本。ここでは骨子だけです。

開発者として理解すべきこと

  • Midnight の「秘密の契約」は、手元計算 → ZK証明 → 公開台帳に結果+証明、という流れで成り立つ
  • Compact 契約のコンパイル結果(ZK回路)が、その「正しさの橋」になっている
  • 何を手元に隠し、何を公開し、何を証明で渡すか」の設計が、そのまま Kachina 的な設計になる
  • 正確な仕様は公式/論文で確認する(このアプリは考えかたの入口)

公式Docsではどこ?

今日のまとめ

  • Kachina=「答案は見せず、採点結果(と証明)だけ出す」契約のしくみ
  • 秘密ステート → ZK証明 → 公開台帳、という橋わたし
  • 細部は公式/論文。ここでは骨子だけ(断定しない)

今はここだけでOK

「中身(答案)は手元、正しさ(合格スタンプ)だけチェーンへ」——これが Kachina の心です。

📘 もっと正確に(原文準拠コース)

Academy 原文に忠実な詳しい版はこちら:

つぎに読むページ

➡️ お金の動きと2つの台帳へ。2つの台帳と Zswap