Skip to main content

原文準拠 Phase 2:ゼロ知識証明

2.4 デュアル台帳システム

Midnight Academy Phase 2 / Unit 2 / 2.4 の原文準拠版。シールド台帳とアンシールド台帳という2つの台帳、NIGHT と DUST、4種類のトークン、pallet-midnight と Zswap を正確に・やさしく。


📘 Academy原文準拠 | Phase 2 · Unit 2 · Lesson 2.4 Midnight’s Dual Ledger System 内容に忠実な日本語版です。原文(英語)・図・動画は公式 Academy(外部リンク・別タブで開きます)を正本に。

これまでのレッスンで、Midnight がなぜ UTXO モデルとアカウントモデルの両方を使うのか(Lesson 16)、そして Kachina が「公開のオンチェーン状態」と「秘密のオフチェーン状態」というデュアルステートでプライベートなスマートコントラクトをどう実現しているか(Lesson 17)を見てきました。

今度は、それらがインフラのレベルでどうひとつにまとまるのかを見ていきます。

Midnight には台帳がひとつだけ、ではありません。2つあります。シールド台帳(shielded ledger)アンシールド台帳(unshielded ledger)です。この2つがどう協力して動くのかを理解することが、プライバシー・コンプライアンス(法令順守)・パフォーマンスのバランスをとったアプリを作るカギになります。

プライバシーのスペクトラム問題

ほとんどのブロックチェーンは「どちらか一方」の選択を迫ってきます。Ethereum は何でも公開。Monero は最初から何もかも隠します。でも現実のニーズはそんなに単純ではありません。

  1. 企業は、企業秘密をさらさずにコンプライアンスを証明したい。
  2. ユーザーは、個人の取引はプライベートにしたいけれど、ローンを申し込むときには透明性を見せたい。
  3. 規制当局は、大量監視をせずに監査できる仕組みがほしい。

Midnight はこれを「取引ごとに、プライバシーのスペクトラム(連続したものさし)のどこに座るかを自分で選べる」ようにすることで解決します。それを可能にしているのがデュアル台帳アーキテクチャです。

シールド vs アンシールド

あなたのトランザクションが「あなたが選ぶ」分岐を経て、非シールド台帳(見えるアドレス・公開金額・透明な履歴)とシールド台帳(隠されたアドレス・非公開金額・機密の履歴)のどちらかへ進むことを示すフロー図

アンシールド台帳は、ふつうの公開ブロックチェーンと同じように動きます。取引は見えます。ウォレットアドレスは公開です。誰がいくら誰に送ったかを、誰でも見られます。これは、公的な財源(トレジャリー)、取引所への上場、監査可能な資金、規制順守など、完全な透明性が必要な場面で役立ちます。

シールド台帳は、ゼロ知識証明(zero-knowledge proofs)を使って取引の詳細を秘密に保ちます。

  • ウォレットアドレスや金額は、取引相手にも公開台帳にも明かされません。
  • それでもネットワークは取引が正しいことを検証できます。ただし観察者は、参加者や金額について何も知ることができません。

両方の台帳は同じネットワーク上で動き、同じバリデータが処理し、同じコンセンサス機構で守られています。違いは純粋に「どの情報が明かされるか」だけです。

図のかわりに(テキスト説明):同じネットワーク・同じバリデータ・同じコンセンサスという1本の土台の上に、2つの台帳が並んで載っているイメージです。アンシールド側は中身が透けて見え、シールド側は中身が隠れたまま検証だけが通る、という対比になっています。

NIGHT と DUST

NIGHTトークン(非シールド・取引可能)が継続的に生成して Dustリソース(シールド・取引不可)を生み、その DUST が支払いに使用されてトランザクションになる流れを示す横方向のフロー図

DUST の残量が時間とともに変化する様子を示す折れ線グラフ。NIGHT 受取や上限変更を境に、上限まで増える「生成」フェーズと、切り離し後に減っていく「減衰」フェーズに分かれ、上限は保有 NIGHT 量に応じて決まることを示す

Midnight のネイティブな資産が、このシールド/アンシールドの使い分けを実際に体現しています。

NIGHT はユーティリティトークンです。アンシールドであり、つまりすべての NIGHT 取引は公開で透明です。NIGHT の残高を見たり、移動を追跡したり、保有を検証したりできます。この透明性は意図的なものです。NIGHT はガバナンス、コンセンサスへの参加、ブロック生成報酬に使われ、これらの機能には可視性が必要だからです。

ですが NIGHT には、もうひとつ大事な性質があります。NIGHT は DUST を生み出すのです。

DUST は、買ったり取引したりするトークンではありません。NIGHT を保有していることで継続的に生成されるシールドされたリソースです。NIGHT をソーラーパネル、DUST をそれが生み出す電気だと考えてみてください。NIGHT を持っているかぎり、DUST が生まれ続けます。

図のかわりに(テキスト説明):NIGHT(公開・取引可能な投資資産)→ そこから DUST(シールドされた手数料用リソース)が継続的に湧き出す、という発電のイメージです。

DUST は、Midnight 上で取引手数料を実際に支払うのに使うものです。DUST はシールドされているため、あなたの取引活動が見える形の足あとを残しません。たとえ完全に公開な操作をしていても、その取引の支払い行為そのものはプライベートなままです。

  • あなたの投資(NIGHT)は透明で取引可能
  • あなたの運用活動(DUST を使うこと)はプライベート

ネットワークを使うためだけに投資資産を切り崩す必要がなく、しかも取引パターンというメタデータを漏らすこともありません。

DUST はまた、生成元の NIGHT トークンから切り離されると時間とともに減衰(decay)します。これは溜め込み(hoarding)を防ぎ、DUST が投機的な資産ではなく再生可能なリソースとして機能することを保証します。

台帳トークン vs コントラクトトークン

NIGHT と DUST のほかに、Midnight はユーザーが作れる2つのカテゴリのトークンをサポートします。

  1. 台帳トークン(Ledger Tokens) は、ブロックチェーン上に直接存在し、コアプロトコルが管理します。これらは UTXO として存在し、最大のパフォーマンスと効率を与えてくれます。Midnight の最適化された UTXO エンジンが扱うため、どんなスマートコントラクトのコードも信頼する必要がありません。

    台帳トークンはシールドにもアンシールドにもできます。シールドな台帳トークンは「プライベートなデジタル現金」のように動きます。送り手・受け手・金額を明かさずに送金できます。アンシールドな台帳トークンは、NIGHT の動き方と同じように完全な透明性を提供します。

  2. コントラクトトークン(Contract Tokens) は、Compact スマートコントラクトが作成・管理します。これらはアカウントベースのパターンを使い、Ethereum の ERC-20 トークンに似た形で残高や状態を保ちます。Solidity でのトークン開発に慣れているなら、コントラクトトークンはなじみがあるはずです。

    コントラクトトークンもシールド/アンシールドの両方をサポートします。シールドなコントラクトトークンは「プログラマブルなプライバシー」を与えます。トークンにカスタムロジックを持たせつつ、送金は秘匿されたままにできます。アンシールドなコントラクトトークンは、完全な透明性を持つ従来の ERC-20 のように動きます。

トークン・マトリックス(4種類のトークン)

Midnight のトークン種類を「透明/非公開」と「コントラクト(アカウントモデル)/台帳(UTXO モデル)」の2軸でまとめた2×2マトリックス。非シールド台帳トークン、シールド台帳トークン、非シールドコントラクトトークン、シールドコントラクトトークンの4種類を示す

置き場所(台帳 vs コントラクト)とプライバシー(シールド vs アンシールド)を組み合わせると、4つの異なるトークン種が得られます。

トークン種 特徴 向いている用途
シールド台帳トークン ネイティブなプライバシー+最大の効率 プライベートな支払い、秘匿された価値移転、複雑なロジックなしで速くプライベートな取引が要る場面
アンシールド台帳トークン 完全な透明性+高いパフォーマンス。NIGHT が代表例 公的な財源、取引所上場資産、監査可能性が要るもの
シールドコントラクトトークン プログラマブルなプライバシー+カスタムロジック 送金は秘匿だが議決権は検証可能な私企業株式、ロジックは複雑だが受取人は秘匿な報酬配布など
アンシールドコントラクトトークン 完全なプログラム可能性+透明性 従来型 DeFi トークン、ガバナンストークン、ゲーム資産。ERC-20 で作るもの全般を Midnight のインフラ上で

台帳は実際にどう動くのか

内部では、Midnight の台帳は Polkadot SDK のモデルの上に構築されています。コアロジックは WebAssembly にコンパイルされ、すべてのノードで一貫して動きます。鍵となる部品が pallet-midnight で、プライバシーを保つ取引ロジックをすべて扱います。

これがふつうのブロックチェーンと違うのは、取引の検証のされ方です。従来の署名ベースの検証ではなく、pallet-midnight は各取引に埋め込まれた暗号学的な証明を処理します。これが Lesson 17 で話したゼロ知識証明です。

シールド取引を送信すると、バリデータは現在の台帳状態に対してあなたの ZK 証明を検証します。証明が通れば、バリデータは秘密の詳細を一切見ることなく状態遷移を適用します。新しい状態がオンチェーンにコミットされ、その中には全 Midnight Ledger 状態へのコミットメントも含まれていて、すべてを検証可能なまま保ちます。

アンシールド取引の場合は、処理はもっと単純です。詳細が見えているので、バリデータは ZK 証明を必要とせず、取引ロジックを直接検証できます。

Zswap:すべてを結びつけるもの

Midnight は Zswap(外部リンク・別タブで開きます) と呼ばれる取引スキームを使います。これは Zcash と SwapCT のアイデアを組み合わせたものです。Zswap はいくつかの重要なことをやってのけます。

  1. 複数の取引を、秘匿を保ったままマージできる。プライバシーを犠牲にせずに効率を上げます。
  2. 複数の資産タイプをネイティブにサポートする。シールドトークンは1種類に限られません。異なる台帳トークンを、すべて同じ仕組みでシールドできます。
  3. アトミックスワップを可能にする。あるシールド資産を別のシールド資産と、1つの取引の中で、両方とも保護されたまま交換できます。これはプライベートな DeFi アプリを作るうえでの土台になります。

正しいアプローチの選び方

Midnight 上で作るとき、ユースケースに合うトークン種を決める必要があります。実用的な判断のフレームワークはこうです。

  • 台帳トークンを選ぶ:最大のパフォーマンス、ネイティブなプライバシー機能、または複雑なロジックなしのシンプルな価値移転が必要なとき。UTXO モデルの並列性により、台帳トークンは決済システム、送金プラットフォーム、大量取引のシナリオに最適です。
  • コントラクトトークンを選ぶ:プログラマブルなロジック、複雑な状態管理、または他のスマートコントラクトとの連携が必要なとき。コントラクト内のアカウントモデルにより、DeFi プロトコル、ゲーム資産、洗練された配布の仕組みを持つトークンに向きます。
  • シールド版を選ぶ:取引のプライバシーが重要なとき。プライベートな支払い、秘匿された商取引、メタデータの漏洩が懸念される場面。
  • アンシールド版を選ぶ:透明性が求められるとき。公的なガバナンス、規制順守、取引所上場、監査可能な財源。

ひとつのアプリの中で、効率的な価値移転には台帳トークンを、複雑なロジックにはコントラクトトークンを、と使い分けられます。同じユーザーがシールド資産とアンシールド資産の両方を持ち、対話ごとに適切なプライバシーレベルを選ぶ、ということさえできます。

Midnight のデュアル台帳システムは「合理的なプライバシー(rational privacy)」を実装するインフラです。Monero のように全員を匿名へ押し込む「デフォルトでプライバシー」でもなく、Ethereum のように何もかもさらす「デフォルトで透明」でもありません。

そのかわり、スペクトラム(連続したものさし)を与えます。各トークン種、各取引、各対話を、あなたの実際のニーズに応じて、そのものさしの適切な位置に置けるのです。企業はコンプライアンスの選択肢を、ユーザーはプライバシーの選択肢を、開発者は柔軟性を得ます。

次のレッスンでは、取引が作成され、証明が生成され、検証されるまでの完全なライフサイクルを追い、これらの部品が実際にどう協力して動くかを見ていきます。

開発者として押さえる点

  • Midnight は台帳が2つシールド台帳(ZK で詳細を秘匿)とアンシールド台帳(公開・透明)。両者は同じネットワーク・同じバリデータ・同じコンセンサス上で動く。
  • ネイティブ資産は NIGHT(アンシールドのユーティリティ/ガバナンストークン)と DUST(NIGHT 保有で継続生成されるシールドな手数料リソース。切り離されると減衰する)。手数料は DUST で払うので、支払い行為自体がプライベート。
  • ユーザー作成トークンは「置き場所(台帳=UTXO/コントラクト=アカウント)」×「プライバシー(シールド/アンシールド)」で4種類。台帳トークンは高速・コード信頼不要、コントラクトトークンは ERC-20 的でプログラマブル。
  • 台帳は Polkadot SDK ベースで WebAssembly にコンパイル。中核は pallet-midnight。シールド取引は ZK 証明を、アンシールド取引はロジックを直接、バリデータが検証する。
  • Zswap(Zcash + SwapCT 由来)が、秘匿マージ・複数資産ネイティブ対応・アトミックスワップを実現し、プライベート DeFi の土台になる。
  • 設計指針は「合理的なプライバシー」:取引ごと・トークンごとに、プライバシーと透明性のものさしの上で適切な点を選ぶ。

やさしい版・公式へ

つぎに読むページ

➡️ 原文準拠コースの入口へ戻る。このコースについて(次のレッスンは順次追加します)