Smart Contract Privacy & Mixer Genealogy — 2013–2025 インタラクティブガイド
2013年のCoinJoinから2025年のJigsawまで、スマートコントラクト・プライバシーとミキサー/匿名決済の2系統を追跡する。SC Privacy系はEnigma→Hawk→ZEXE→VeriZEXEと進化し「データ秘匿→関数秘匿→universal setup」へ。ミキサー系はCoinJoin→Tornado Cash→Privacy Poolsと進化し「単純結合→ZK証明→コンプライアンス対応」へ収斂している。
Enigma(MPC)→Hawk(ZK compiler)→zkay(NIZK自動化)→ZEXE(DPC/関数プライバシー)→Kachina(UC framework)→Eagle/VeriZEXE/SmartFHE/Jigsaw(2023-25の多様化)。データ秘匿から関数秘匿、trust minimization、universal setupへと3段階の進化がある。
プライベートスマートコントラクトを提案した最初の論文。データをShamir秘密分散でsMPCノード群に分散させ、ノードがプレーンテキストを見ることなく計算を実行。ブロックチェーンはコンセンサスとストレージのみ担当し、計算はオフチェーンMPCで実施。後継: Secret Network(TEEベース、MPCから移行)。
限界: MPC委員会の誠実な多数派仮定が必要。通信オーバーヘッドが高く、実用規模の展開が困難。
高レベルプログラムをZKプルーフにコンパイルする最初のSCコンパイラ。「ブロックチェーン暗号モデル」を初めて形式化。Hawk programは2つのパート: public part(ブロックチェーン上)とprivate part(Protocol Manager上)。
核心問題: Protocol Manager(=信頼された第三者)が必要であり、実用展開では中央集権的信頼点となる。zkayはこの問題を解消した。
貢献: "blockchain cryptography model"の形式化、SC privacy研究の基礎フレームワークを確立。
Hawkの最大の欠点であるProtocol Manager信頼を完全に除去。プログラマは@privateアノテーションでプライベートデータを指定するだけで、コンパイラがNIZK証明を自動生成。zkay言語はSolidity互換。
仕組み: @privateタグ付き変数は暗号化状態で保存される。状態遷移時にNIZKが自動生成・検証される。鍵管理はユーザーが担当。
限界: 計算コストが高い (ZK証明生成)。複雑な制御フローに対応困難。
最大の革新: 関数プライバシー(Function Privacy)の実現。 ZEXE以前のシステムはデータを隠せてもどの関数を実行したかは公開されていた。ZEXEは計算内容(関数ロジック)も完全に隠蔽する。
DPCモデル: レコードはpayload/死活状態/application commitmentで構成。spend recordsとcreate recordsに対してlocal computationを証明するZKを生成。全Txが968バイト固定でtransaction graphから計算内容が漏れない。
再帰ZK-SNARK: 任意の計算に対してGroth16を再帰的に合成することでサイズ固定を実現。
影響: Aleo blockchainの理論的基盤。VeriZEXE(2023)でUniversal Setupに拡張。
スマートコントラクト・プライバシーのUniversally Composable (UC) フレームワーク。「primary functionality」を定義し、プライバシー保証の形式的な証明基盤を提供。Eagle(2023)の理論基盤となる。
KachinaをUC adaptive corruption proof対応に拡張。hybrid DPCプロトタイプを実装。Kachina の「static corruption」の限界を解消し、より強いセキュリティ証明を実現。
ZEXEの最大の実用課題だったper-application trusted setupを廃止。Universal CRS(Common Reference String)を採用することで、回路ごとの信頼設定が不要になる。ZEXEのDPCセマンティクスは完全に保持しながら、展開コストを大幅削減。
FHEを用いてプライベートスマートコントラクトを実現するアプローチ。暗号文のまま任意の計算が可能という一般性が最大の利点。計算コストが非常に高いが、trusted setupや信頼第三者が不要。ZK系とは異なるパラダイム。
協調SNARK(colSNARK)とTEE(Trusted Execution Environment)のハイブリッドアーキテクチャ。形式的なセキュリティモデルとRust実装の両方を提供。ZK証明生成の一部をTEEにオフロードすることでパフォーマンスを改善しつつ、セキュリティ保証を維持。2025年現在の最新系。
CoinJoin(2013, UTXO結合)→Tornado Cash(2019, ZK-SNARK mixer)→Privacy Pools(2023, Association Set with compliance)。単純な資金混合から暗号学的証明による匿名性、そしてコンプライアンスと匿名性の共存へと進化している。
複数ユーザーが同一トランザクションにUTXOを結合することで、どの入力がどの出力に対応するかを曖昧にする。オンチェーン証明なし—ユーザー間の協調のみ。
CoinJoin Privacy Adoption (2022): 実際のWasabi Wallet利用データを分析し、現実の匿名集合サイズを測定した実証研究。理論的匿名集合より実際は小さいことを示した。
限界: ユーザー同士の協調が必要。均一金額制約。チェーン分析による部分的追跡が可能。
技術: commitment = hash(secret‖nullifier) をMerkle木の葉として挿入。引き出し時に「commitmentが木に存在すること」をGroth16 SNARKで証明。nullifierHashをオンチェーンに記録して二重引き出しを防ぐ。Relayerモデルで引き出し者のETH残高不要。
法的経緯: 2022年8月OFAC制裁 → 開発者Roman Pertsev逮捕・有罪(オランダ) → 米国5th Circuit「immutable smart contractsへの制裁は超権限」判決(2024) → OFACがTCのスマコントラクトを削除リスト(2025)。プロトコルの中立性と法的責任に関する最重要判例。
TC Nova: 固定金額制限を除去した拡張版。任意量のシールド転送が可能。
Tornado Cashの最大のコスト要因であるMerkle tree更新のgas費用を削減する最適化手法。Merkle Pyramid Builderにより証明サイズと検証コストを大幅削減。プライバシー保証は維持したまま実用コストを7倍改善。
UTXOモデルではなくアカウントモデルで残高を秘匿する。ElGamal暗号で残高を暗号化したまま保持し、Sigma-Bullets(新プリミティブ)でZK証明を実現。Ethereumのアカウントモデルと親和性が高い。TC系とは独立した並行アプローチ。
暗号化された取引と通常の取引を効率的に組み合わせるシステム。プライベートTXとパブリックTXが共存するシナリオでのパフォーマンス最適化を実現。
TC制裁後の反省を踏まえ、サンクションリストチェックをプロトコルレベルで組み込んだコンプライアンス対応ミキサー。ユーザーはサンクション対象でないことをZKで証明する。Privacy Poolsと並行する別アプローチ。
Tornado Cash制裁後、「完全な匿名性はコンプライアンス不可能であり規制リスクが高い」という認識が広まった。Privacy Pools(Buterin et al. 2023)はこの問題に対して「Association Set」という概念で応答する: ユーザーは自分のdepositが「クリーンな」サブセットに属することをZKで証明できるため、プライバシーを保ちながら自発的に資金の正当性を示せる。
Privacy Poolsの拡張として、トランザクションに証明を「持ち運ばせる」アーキテクチャ。各TXが自身の適合性証明を内包することで、チェーン全体でのコンプライアンス検証が可能になる。Privacy Poolsが「withdrawalで証明する」のに対し、Derechodは「TXパス全体に証明を付与する」アプローチ。
| システム | 年 | データ秘匿 | 関数秘匿 | 信頼前提 | 技術基盤 | チェーン/実装 | Tx固定サイズ | 実装状態 |
|---|---|---|---|---|---|---|---|---|
| Enigma | 2015 | ✓ あり | △ 部分的 | MPC委員会 (1/n) | MPC + Shamir SS | Bitcoin/Ethereum | ✗ | → Secret Network |
| Hawk | 2016 | ✓ あり | △ 部分的 | Protocol Manager | ZK-SNARK compiler | Generic blockchain | ✗ | 学術プロトタイプ |
| zkay | 2019 | ✓ あり | ✗ なし | なし (NIZK) | NIZK自動生成 | Ethereum (Solidity) | ✗ | Compiler実装あり |
| ★ ZEXE | 2020 | ✓ あり | ✓ あり | Per-circuit CRS | DPC + Recursive ZK-SNARK | Aleo (理論基盤) | ✓ 968 bytes | Aleo blockchainで実用化 |
| Kachina | 2021 | ✓ あり | ✓ あり | なし (UC) | UC Framework | 理論 (→Eagle) | △ | 理論フレームワーク |
| Eagle | 2023 | ✓ あり | ✓ あり | なし (UC adaptive) | UC adaptive corruption | DPC hybrid prototype | △ | 研究プロトタイプ |
| VeriZEXE | 2023 | ✓ あり | ✓ あり | Universal CRS | ZEXE + Universal Setup | ZEXE後継 | ✓ | 実装研究段階 |
| SmartFHE | 2023 | ✓ あり | ✓ あり | なし | FHE | Generic EVM | ✗ (コスト大) | プロトタイプ |
| Jigsaw | 2025 | ✓ あり | ✓ あり | TEE (ハードウェア) | colSNARK + TEE | Rust実装 | △ | 論文+実装 (2025最新) |
| システム | 年 | 匿名性モデル | コンプライアンス | 技術 | 金額制約 | チェーン | 実用状態 |
|---|---|---|---|---|---|---|---|
| CoinJoin | 2013 | UTXO結合 | ✗ なし | 協調署名 | 均一金額推奨 | Bitcoin | Wasabi/Samourai運用中 |
| Tornado Cash | 2019 | ZKミキサー | ✗ なし 制裁 | Groth16 + circom | 固定 (0.1/1/10/100 ETH) | Ethereum | 制裁後削除2025 |
| TC Nova | 2021 | ZKシールドプール | ✗ なし | ZK + shielded transfer | ✓ 任意量 | Ethereum | デプロイ済み |
| Pay Less for Privacy | 2023 | TC最適化 | ✗ なし | Merkle Pyramid Builder | TC互換 | Ethereum | 7x gas削減実証 |
| Zether | 2020 | 残高秘匿 | ✗ なし | ElGamal + Sigma-Bullets | ✓ 任意量 | Ethereum | 研究実装 |
| Seahorse | 2024 | 混合TX最適化 | △ 部分的 | 暗号化/非暗号化TX混合 | 柔軟 | Generic | 研究段階 |
| Hurricane | 2025 | ZKミキサー | ✓ 組み込み | ZK + サンクションリスト | 柔軟 | Generic | 研究段階 |
| Privacy Pools | 2023 | Association Set | ✓ 設計中核 | ZK + Curator subset | ✓ 任意量 | Ethereum | 0xbowとしてデプロイ済み |
| Derecho | 2024 | PP拡張 | ✓ proof-carrying | Privacy Pools + PCD | 柔軟 | Generic | 研究段階 |