プライバシーコイン深掘りガイド
CT / RingCT / Zerocash / MimbleWimble / Account型 — 5技術系譜の完全比較。送信者・受信者・金額・関数の秘匿技術を解剖する。
CT系 (Bitcoin)
RingCT系 (Monero)
Zerocash系 (Zcash)
MimbleWimble系
Account型 (Ethereum)
Account型 (Solana)
プライバシー保護次元 × 技術系譜
技術の歴史的系譜 (2012–2025)
各系譜の核心技術サマリー
CT系 (Confidential Transactions)
Pedersen Commitment: C = r·G + v·H
加法準同型性で「インフレなし」を金額非公開のまま検証。金額のみを秘匿。送受信者は公開。Liquid Network (2018) で初の本番採用。Bitcoin はソフトフォーク議論中。Range proof の進化: Borromean → Bulletproofs(80%削減)。
RingCT系 (Monero)
3つの秘匿を1つのプロトコルで:
• 送信者: MLSAG リング署名(デコイ16個混合)
• 受信者: One-time stealth address
• 金額: Pedersen Commitment
2018年 Bulletproofs 導入でTxサイズ80%削減。CLSAG (2020) で更に25%改善。統計的に真の送信者を特定できる脆弱性("0 mixin era"問題)。
Zerocash/Zcash系
zk-SNARK による完全匿名化:
送信者・受信者・金額をすべて ZK-SNARK で秘匿。Zerocash (2014, Miers/Green) → Sprout (2016, ~1分証明) → Sapling (2018, 100x高速化) → Orchard (2021, Halo2・信頼セットアップ不要)。問題: Zcash の実態は約5%のみシールドTx(大半が透明アドレス)。
MimbleWimble系
CT + Cut-Through:
アドレスなし設計。CT で金額秘匿 + 使用済みUTXOを「カットスルー」で削除してブロックチェーンをコンパクトに。送受信者情報はTx構築時にのみ存在。Grin (2019, Linux的コミュニティ) vs Beam (2019, 企業系)。MWEB として Litecoin に拡張提案。
Account型 (Ethereum系)
暗号化残高のままEVMで演算:
Zether (2020, Stanford/Visa): ElGamal暗号化残高。「残高 ≥ 送金額」をZKPで証明。新プリミティブ Σ-Bullets。MASP (Anoma/Namada): Zcash Sapling のマルチアセット版。SwapCT/zSwap: トークンスワップでも種別を秘匿。
Account型 (Solana系)
SPL Token Confidential Transfer (2024):
Solana の SPL Token 拡張として ZK-ElGamal 暗号化残高を本番実装。オプトイン方式。ZK proof で残高 ≥ 送金額を証明。Zcash 相当のプライバシーを Solana の TPS で提供。本番稼働中。
Confidential Transactions (CT) — Greg Maxwell (2015)。金額のみを Pedersen Commitment で秘匿。送受信者は公開のまま。加法準同型性により「全インプット = 全アウトプット + fee」を金額非公開で検証可能。
Pedersen Commitment の仕組み
CT採用プロジェクト比較
| プロジェクト | 実装 | 金額秘匿 | 送受信者 | Range Proof | ステータス |
| Bitcoin | 未採用 | 非秘匿 | 公開 | - | ソフトフォーク議論中 |
| Liquid Network | CT + Bulletproofs | 秘匿 | 公開 | Bulletproofs | 本番稼働(サイドチェーン) |
| Elements | CT + 複数資産 | 秘匿 | 公開 | Bulletproofs | 本番稼働(実験チェーン) |
| Grin | MimbleWimble (CT ベース) | 秘匿 | 秘匿 | Bulletproofs | 本番稼働 |
| Litecoin MWEB | Extension Blocks | 秘匿 | 秘匿 | Bulletproofs | ソフトフォーク済(2022) |
Confidential Assets — 複数資産への拡張
Poelstra et al. (2019): 金額だけでなくアセット種別も秘匿する拡張。Pedersen Commitment に asset generator H_a を追加し、asset tag を blinding factor で隠す。Elements プロジェクトで実装。これにより「ETH を持っているか USDC を持っているか」すら公開されない。
RingCT — Shen Noether (Monero Research Lab, 2015)。Ring Signature + Pedersen Commitment + One-time Stealth Address の3要素で送信者・受信者・金額をすべて秘匿。Monero に 2017 統合。
3コンポーネントの組み合わせ
Monero の進化史
2012
CryptoNote
Ring signatures + stealth address。金額は公開のまま。
2015
RingCT 1.0 論文 (Shen Noether)
Pedersen Commitment で金額秘匿を追加。Borromean ring signatures でrange proof。
2017
Monero に RingCT 統合
全 Tx で RingCT 必須化。リングサイズ 4。Borromean range proof(数KB)。
2018
Bulletproofs 採用
range proof を Bulletproofs に変更。Tx サイズ 80%+ 削減。リングサイズ 11 に拡大。
2020
CLSAG (Compact Linkable Spontaneous Anonymous Group)
MLSAG を改良。署名サイズ 25% 削減、検証速度 10% 向上。
提案中
Triptych / Seraphis
log-size ring signatures → 匿名性集合を数万規模に拡大。Bulletproofs+ との組み合わせで将来のMonero構造へ。
匿名性の限界: 統計的攻撃
Monero 追跡可能性問題 (2018年論文)
Kumar et al. (ESORICS 2017) / Möser et al. (2018): リング署名の匿名性はリングサイズ理論値より実際には低い。
- "0 mixin era": 初期 Monero はリングなし (mixin=0) Tx が大量。事後追加不可で、その期間の Tx は事実上全追跡可能。
- Spent output bias: 使用済みアウトプットほどデコイとして混入されやすく、統計モデルで「真のインプット」を確率的に特定。
- 現状: リングサイズ 16 でも匿名性集合は理論値より小さい。Triptych で数万規模を目指す。
Zerocash (2014) — Miers/Garman/Green/Rubin/Sasson/Chiesa。zk-SNARK で送信者・受信者・金額をすべて完全秘匿。「Pour transaction」概念。後に Zcash として実装。最も強力な暗号的プライバシー保証。
Zcash 世代別進化
| 世代 | 年 | 証明システム | 証明時間 | 信頼セットアップ | 主な改善 |
| Sprout | 2016 | Groth16 前身 | ~1分/Tx | Powers of Tau (CRS) | 初の本番 zk-SNARK 決済 |
| Sapling | 2018 | Groth16 | ~2-3秒/Tx | Sapling CRS (Ceremony) | 100x高速化。Jubjub曲線。Viewing keys。 |
| Orchard | 2021 | Halo2 (PLONKish) | ~1秒/Tx | 不要(Recursive Proof) | 信頼セットアップ排除。Pallas/Vesta曲線。 |
| ZEXE (2020) | 2020 | Recursive SNARK | 計算時間 + <1分 | アプリ別 CRS | 関数プライバシー(何のアプリか秘匿)。968バイト固定Tx。 |
| VeriZEXE (2023) | 2023 | Universal Setup | ZEXE 相当 | 不要 | アプリ別 trusted setup 排除。Universal SRS。 |
ZEXE: 関数プライバシーの革新
DPC (Decentralized Private Computation)
ユーザーがオフラインで任意の計算 f(input) = output を実行し、「正しさの ZK 証明」だけをオンチェーンに送信。
- データだけでなく関数ロジック(何のアプリか)も秘匿
- Tx サイズ: 968バイト固定(計算の複雑さ無関係)
- 検証: 定数時間(バリデーターは計算内容を知らない)
- 著者: Bowe, Chiesa, Green, Miers, Mishra, Wu
秘匿次元の比較
| システム | データ | 関数 |
| Zerocash | ✓ | × |
| Hawk | ✓ | × |
| ZEXE | ✓ | ✓ |
| VeriZEXE | ✓ | ✓ |
Zcash 採用問題: シールドTx は ~5%
Zcash 匿名性分析 (2018年論文)
Kappos et al. (2018): Zcash の実態分析。
- 全 Tx の約5-6%のみシールド(z-addr)。残りは完全透明(t-addr)。
- シールドプール→透明の移動でリンク可能性が回復するケースが多い。
- 真の匿名性集合はシールドプール内の 未移動 Tx のみ。
- Monero と対照的: Monero は全 Tx がプライベート(強制匿名)。Zcash はオプトイン匿名。
教訓: 技術的に強力でも採用率が低ければ実際の匿名性は低下する。プライバシーはネットワーク効果に依存する。
Quisquis (2019) — Account型 Zerocash の試み
Fauzi/Meiklejohn/Mercer/Orlandi (2019): UTXO ではなくアカウントモデルで Zerocash 相当の匿名性を実現。Updatable keys: 各 Tx でアカウントの公開鍵を更新し、Tx グラフのリンカビリティを排除。ZKP で残高と鍵更新の正しさを証明。EVM 上での実装が理論的に可能。
MimbleWimble (2016, "Tom Elvis Jedusor") — CT + Cut-Through + No Addresses。アドレスなし設計でブロックチェーンをコンパクトに。古いUTXOを削除してスケーラビリティを向上させつつ、金額・送受信者を秘匿する。
MimbleWimble のコアメカニズム
Grin vs Beam 比較
| 項目 | Grin | Beam |
| 発足 | 2019年1月 | 2019年1月 |
| プロジェクト性格 | Linux的コミュニティ運営、完全オープンソース | 企業系(VC資金調達)、財団あり |
| 発行スケジュール | 線形(永続インフレ、Satoshi-like発想) | デフレモデル(ハービング的) |
| 追加機能 | 基本 MimbleWimble | Lelantus-MW(任意スペンド)、オプション監査 |
| 現状 | コミュニティ維持 | Beam 財団継続 |
MimbleWimble の限界
Tx構築の対話性
送信者と受信者がオンラインで共同署名する必要がある(UTXO-based ではなく interactive)。コールドウォレットへの一方的送信が困難。
スクリプト機能の欠如
Bitcoin Script に相当する機能がなく、スマートコントラクトとの統合が難しい。Lightning Network 等の上位プロトコルの構築が制限される。
Account型プライバシー — UTXO モデルではなく、アカウント(残高)モデルでプライバシーを実現。ElGamal 暗号化残高 + ZKP で「残高 ≥ 送金額」を証明する。EVM との親和性が高い。
Zether (2020, Stanford/Visa Research)
コアアイデア
各アカウントの残高を ElGamal 暗号化した状態で保持。送金時に ZKP で「暗号化残高 ≥ 送金額」を証明。残高の実際の値は非公開のまま。
- 新プリミティブ: Σ-Bullets(sigma protocol + Bulletproofs の合成)
- 基本版: 送金額のみ秘匿(送受信者は公開)
- 拡張版 (ZetherX): 送受信者も秘匿
- 実装: Solidity スマートコントラクト
ElGamal 暗号化残高
残高 v の暗号化: (r·G, r·pk + v·H)
where pk = ユーザー公開鍵, r = random
準同型性: 暗号文同士を足し合わせることで、残高を復号せずに更新可能。
→「暗号化されたまま残高を増減できる」
Many-out-of-many (2021): 複数受信者への効率的送金拡張。
MASP — マルチアセット シールドプール
MASP (Multi-Asset Shielded Pool, Anoma/Namada, 2022): Zcash Sapling をマルチアセット対応に拡張。単一のシールドプールで複数の異なるトークンを同時に匿名化。ZEXE-style のアセット管理。
- 1つのプール内で ETH / USDC / DAI 等が混在 → 匿名性集合が大幅に拡大
- アセット種別も秘匿可能
- Namada プロトコルに統合
Solana Confidential Transfer (2024)
SPL Token Extension による本番実装
Solana の SPL Token プログラム拡張として ZK-ElGamal 暗号化残高をオプトイン提供。
技術仕様
ElGamal 暗号化 + ZKP(残高≥送金額)
Groth16 proof system
オプトイン方式(既存 SPL Token と互換)
特徴
Solana の高TPS を活かした高速プライバシーTx
本番稼働中(2024)
監査者鍵による選択的開示もオプションで可能
SwapCT / zSwap — プライバシー付きトークンスワップ
| 論文 | 年 | ベース | 主な貢献 |
| SwapCT (PETs 2021) | 2021 | RingCT 拡張 | Ring CT ベースでアトミックスワップ。トークン種別まで秘匿。 |
| zSwap (PETs 2022) | 2022 | Zcash 拡張 | Zcash シールドプールからマルチアセットアトミックスワップ。 |
| Zether + swap | 2021 | Zether | Ethereum 上での暗号化残高間スワップ。 |
全体比較マトリックス (10システム × 8次元)
| システム |
送信者秘匿 |
受信者秘匿 |
金額秘匿 |
アセット種別 |
関数プライバシー |
信頼前提 |
Txサイズ |
本番ステータス |
| Bitcoin CT (提案) |
× |
× |
● |
× |
× |
なし |
大 (BP range) |
未採用 |
| Liquid Network |
× |
× |
● |
● |
× |
フェデレーション |
中 |
本番稼働 |
| Monero (RingCT) |
◑ (ring16) |
● |
● |
× |
× |
なし(強制匿名) |
中 |
本番稼働 |
| Zcash Sapling |
● |
● |
● |
× |
× |
Trusted setup (CRS) |
小 (~2KB) |
本番稼働(~5% 使用) |
| Zcash Orchard |
● |
● |
● |
× |
× |
なし (Halo2) |
小 |
本番稼働 |
| ZEXE |
● |
● |
● |
● |
● |
アプリ別 CRS |
968B 固定 |
研究段階 |
| VeriZEXE |
● |
● |
● |
● |
● |
なし (Universal) |
968B 固定 |
研究段階 |
| Grin (MimbleWimble) |
● |
● |
● |
× |
× |
なし |
小 (cut-through) |
本番稼働 |
| Zether (Ethereum) |
× |
× |
● |
◑ |
× |
なし |
大 (ZK証明) |
実装あり |
| Solana Conf. Transfer |
× |
× |
● |
◑ |
× |
なし (オプトイン) |
中 |
本番稼働 (2024) |
3つの設計思想の対立
強制匿名 (Monero)
全 Tx が自動的にプライベート。ユーザーがプライバシーを「選ぶ」必要がない。匿名性集合が全体に広がる。代償: Tx サイズが大きく、規制当局との摩擦が強い。
オプトイン匿名 (Zcash)
最強の暗号的保証 (zk-SNARK) を持つが採用率が低い (~5%)。シールドプールが小さいほど匿名性集合も小さくなるジレンマ。プライバシーとユーザビリティのトレードオフ。
構造的匿名 (MimbleWimble)
アドレス非存在で構造上プライバシーが組み込まれる。cut-through でブロックチェーン自体をコンパクト化。代償: スクリプト機能の欠如、対話的 Tx 構築の必要性。
最も強いプライバシー保証: ZEXE / VeriZEXE(関数プライバシーまで含む)
実用上最も広く使われるプライバシー: Monero RingCT(全Tx強制、本番稼働)
新興の注目株: Solana Confidential Transfer(高TPS + 金額秘匿、2024本番)