Skip to main content

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

1.3 プライバシー対透明性

Midnight Academy Phase 2 / Unit 1 / 1.3 の原文準拠版。ブロックチェーンの透明性とプライバシーのトレードオフ、ゼロ知識証明(ZKP)による「選んで見せる」第三の道を正確に・やさしく。


📘 Academy原文準拠 | Phase 2 · Unit 1 · Lesson 1.3 ZKP in Blockchain: Privacy vs Transparency 内容に忠実な日本語版です。原文(英語)・図・動画は公式 Academy(外部リンク・別タブで開きます)を正本に。

ここでは、ゼロ知識証明(Zero-Knowledge Proofs, ZKP)の考え方と、「プライバシー」と「透明性」の関係を見ていきます。

むかし Facebook の合言葉は “move fast and break things”(速く動いて、こわしながら進め)でした。ブロックチェーンの合言葉はさしずめ “verify everything and hide nothing”(すべてを検証し、何も隠さない)でしょう。

ブロックチェーンでは、すべての取引・すべてのスマートコントラクトのやり取り・すべての残高が、誰からでも見えます。しかもずっとです。

この徹底した透明性は、ブロックチェーンが最初から持っていた「機能」であって、バグではありませんでした。これがあるからこそ、誰かを信頼しなくても成り立つ(trustless)仕組みになります。でも同時に、おせっかいな隣人があなたの DeFi の利益を追えてしまったり、企業が企業秘密をオンチェーンに置けなかったりする理由でもあります。

ゼロ知識証明は、この根本的なトレードオフを変えつつあります。どう変えるのかを見ていきましょう。

動画で学ぶ(公式)

🎬 ZKPとプライバシー vs 透明性の概要 YouTubeで開く ↗
🎬 Midnight のアプローチ解説 YouTubeで開く ↗

透明性のパラドックス(The Transparency Paradox)

ZKPの解決策(ゼロ知識証明によりプライバシーとトラストレスを両立)と現在の現実(完全な透明性はトラストレスだがプライバシーなし、完全なプライバシーは秘匿性は高いがトラストレスではない)を対比した図

従来のブロックチェーンは、解けない二択を抱えています。

立場 良い点 こまる点
すべてを見せる Bitcoin 誰でも検証できて信頼が要らない Alice が政治的反体制派だったり、Bob が競合企業だったりすると致命的
すべてを隠す Monero プライバシーは完璧 規制当局に嫌われ、税金を払った証明もできない

Bitcoin では、Alice が Bob に 5 BTC 送ったことを誰でも検証できます。信頼の面ではすばらしい。でも、もし Alice が政治的反体制派だったり、Bob が競合ビジネスを営んでいたりするなら最悪です。

Monero はすべてを隠します。プライバシーは最高ですが、規制当局はこれを嫌い、自分が税金を払ったことも証明できません。

ZKP は第三の道を示します。証明すべきことだけを証明し、それ以外はすべて隠す、という道です。

ブロックチェーンごとのプライバシーへの向き合い方

ここでは、大きく3つの陣営を見ます。

① 透明性ファースト陣営(The Transparency-First Camp)

Bitcoin と Ethereum

すべては「仮名(pseudonymous)」であり、かつ公開されています。あなたのアドレスはあなたの名前ではありません。でも、いったん両者が結びつくと(取引所の KYC、オンラインでの買い物、寄付のためにアドレスを公開する、など)、あなたの金融履歴ぜんぶが露わになります。

2020年、研究者たちは複数のミキサーを通った 1,300万ドル相当の Bitcoin を追跡し、北朝鮮のハッカーへたどり着きました。セキュリティのためのはずだった透明性が、監視のツールになってしまったのです。

② プライバシーコイン(The Privacy Coins)

Monero と Zcash

これらは逆方向へ進み、デフォルトですべてを隠す設計にしました。Monero はリング署名(ring signatures)とステルスアドレス(stealth addresses)を使います。初期の Zcash は完全な取引プライバシーのために zk-SNARKs を使いました。

問題は、取引所がこれらを上場廃止しはじめたことです。日本では全面的に禁止されました。正当な利用者を守るための「完全なプライバシー」が、同時に規制当局を不安にさせたのです。

③ 選択的開示(The Selective Disclosure)

ZKPによる選択的開示の図。取引データを公開情報(支払いを証明・納税を証明)と秘密情報(秘匿のまま保持)に分けて開示する仕組み

ここが ZKP の本領が発揮される場所です。Midnight のような現代のシステム/ブロックチェーンは、何を見せるかを自分で選ばせてくれます。詳しくは後ほどですが、いまはざっと様子を見てみましょう。

  • Tornado Cash(制裁前):ETH を預け、ノート(引換券)を受け取り、後でそれを使って引き出す。引き出しは、預け入れとは結びつきません。ZKP が「自分には引き出す権利がある」ことを、どの預け入れが自分のものかは明かさずに証明します。
  • Aztec Network:Ethereum 上のプライベート DeFi。金額や参加者を隠したまま、取引・貸付・借入ができます。それでもプロトコルは「すべての帳尻が合う」ことを証明します。
  • Polygon ID:生年月日を明かさずに「18歳以上である」ことを証明。銀行口座の明細を見せずに「適格投資家である」ことを証明。

従来の透明な取引(Traditional Transparent Transaction)

つまり「Alice → Bob、100 トークン」がまるごと記録され、誰もが全部を見られる状態です。

ZKP を使う取引(ZKP Transaction)

Alice は「自分には十分なトークンがある/これは正しい取引だ」という証明を作ります。チェーンに記録されるのは、その証明(Proof_Hash_XYZ_Valid)だけ。外から見えるのは「正しい取引が起きた」という事実だけで、詳細を知っているのは Alice と Bob だけです。どのブロックチェーンも、あなたのビジネスが正当だと検証するために、その中身まで知る必要はないのです。

今の実装での限界(Limitation with Current Implementations)

計算コスト(Computation)

ZK 証明を生成するのは重い処理です。単純なプライベート送金でも、スマホ上で証明を作るのに 5〜30 秒かかることがあります。複雑な DeFi 操作では、さらに数分かかることもあります。

いまのプロジェクトはこれをどう解決しているか。

  • 証明サーバ(Proof servers):閲覧(viewing)は任せても、支出(spending)は任せない、という信頼の置き方をします。
  • ハードウェアアクセラレーション:専用の ZKP チップを使います。
  • 再帰的証明(Recursive proofs):証明を作り直すことなく、「自分は証明を持っている」ことを証明します。

データの可用性(Data Availability)

もし何もかもがプライベートだとしたら、次のことはどうやるのでしょう。

  • 失くした鍵からの復旧
  • 規制への準拠
  • 税のための監査

既存の解決策があります。

  • ビューイングキー(Viewing keys):支出はできない「読み取り専用」のアクセスを共有します。
  • コンプライアンス証明(Compliance proofs):すべての取引を明かさずに、税金を払ったことを証明します。
  • しきい値復号(Threshold decryption):複数の当事者が同意して初めてデータを明かせます。

プライバシーツールは、多くの人が使って初めて効果が出ます。Tornado Cash を使う人が10人だけなら、あなたは10人の容疑者の1人です。でも1,000万人が使えば、あなたにはプライバシーが生まれます。

ただし、人は複雑なツールを使ってくれません。だからプロジェクトは、プライバシーを目に見えないものにして、裏側で勝手に効くようにしているのです。

Midnight のアプローチ(The Midnight Approach)

Midnightのデュアルモデルの図。非シールド台帳(公開オペレーション・高速低コスト・ZSwap)とシールド台帳(非公開オペレーション・ZKPで保護)を組み合わせた構成

Midnight は現実的な立場をとります。「すべてをプライベートにする必要はない。でも、どれもプライベートにできる」。

取引ごとに、あなたが選べます。

場面 選ぶもの
コーヒー代の支払い 公開台帳(public ledger)
給与の支払い 遮蔽台帳(shielded ledger)
ローンのために収入を証明したいとき 遮蔽データから ZKP を生成

これは「犯罪を隠すため」という話ではありません(それはプライバシーへの安直な批判です)。本当のねらいは、こういうことです。

  • 病状そのものを露わにせずに、医療記録をオンチェーンに
  • サプライヤーを明かさずに、サプライチェーンを検証
  • 投票は秘密のまま、集計は検証可能、という投票システム
  • 競争上の優位を保てる金融システム

つぎに来るもの(What’s Next?)

私たちは、透明性とプライバシーが「対立するもの」ではなく「選べる選択肢」になる世界へ向かっています。ZKP が可能にするのは、次の3つです。

  1. 選択的な透明性(Selective transparency) — 必要なものは見せ、不要なものは隠す
  2. プログラム可能なプライバシー(Programmable privacy) — プライベートなデータの上で動くスマートコントラクト
  3. 規制に適合する秘匿性(Compliant confidentiality) — 規制を満たすプライバシー

古い論争は「プライバシー 透明性」でした。新しい現実は「それぞれが適切なときの、プライバシー AND 透明性」です。

10年前、ブロックチェーンは「徹底した透明性」を意味しました。今日、ZKP は「徹底した選択肢(radical choice)」を意味します。世界に何を見せるかは、あなたが決める。これはとても強力なことです。

ZKP がなければ、ブロックチェーンは公開向けのアプリに限られます。ほとんどの業務データ・個人情報・競争上の優位は、オンチェーンに置けません。

ZKP があれば、ブロックチェーンは次のようなものまで扱えます。

  • 医療記録(Healthcare records)
  • 財務諸表(Financial statements)
  • 本人確認(Identity verification)
  • サプライチェーンの秘密(Supply chain secrets)
  • 秘密投票(Private voting)
  • 機密オークション(Confidential auctions)

ブロックチェーンを trustless にした透明性は、同時に、現実世界のデータの90%をブロックチェーンで扱えなくしていました。ZKP はそれを直します。ZKP は単にブロックチェーンを良くしているのではなく、ブロックチェーンを完成させているのです。

開発者として押さえる点

  • 透明性のパラドックス:全部見せる(Bitcoin)も、全部隠す(Monero)も極端。ZKP は「証明すべきことだけ証明し、ほかは隠す」第三の道。
  • 3つの陣営を区別する:透明性ファースト(Bitcoin / Ethereum)/プライバシーコイン(Monero / Zcash)/選択的開示(Midnight・Aztec・Polygon ID など)
  • ZKP 取引では、チェーンに残るのは証明(例:Proof_Hash_XYZ_Validだけ。検証者は中身を知らずに「正当性」を確認できる。
  • 実装の限界も知っておく:証明生成は重い(スマホで 5〜30 秒〜数分)。対策が proof servers / ハードウェア / 再帰的証明。
  • データ可用性の道具:viewing keys(読み取り専用共有)・compliance proofs(税の証明)・threshold decryption(複数同意で開示)。プライバシーは多人数のアノニミティセットで効く。
  • Midnight の方針は「not everything needs to be private, but anything could be」。取引ごとに public ledger / shielded ledger を選び、必要なら遮蔽データから ZKP を作る。

やさしい版・公式へ

つぎに読むページ

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