Shielded Pool Deep Dive

Shielded Pool(シールドプール)の構造・実装・課題の決定版。Zerocash 理論から Zcash 系譜、Tornado/Aztec/RAILGUN/ZKBob/Privacy Pools の EVM 実装、Penumbra/MASP の DeFi 統合、そして anonymity set フラグメンテーション・規制圧力・計算コストまで、20 論文 + 15 実装で深堀り。

ZK proof core Zcash genealogy EVM impl DeFi integration Compliance Open problems
20収録論文
15+主要実装
9タブ構成
9SVG 図解
6大課題
2014→2025系譜

01Shielded Pool とは何か

Shielded Pool(シールドプール)とは、複数ユーザーの暗号化された残高を同一プールに集約し、誰が誰にいくら送ったかを ZK 証明で隠したまま検証可能にする仕組み。Zerocash (2014) を理論基盤とし、Zcash/Tornado/Aztec/RAILGUN/Penumbra 等の中核として 10 年で実装が進化してきた。核心は commitment + nullifier + Merkle tree + ZK proof の 4 要素の組み合わせ。

1 行で言うと

「全員の残高を一つの巨大な集合(pool)に commitment として登録し、移動・引出は『私はこの集合のどれかの所有者だが、どれかは言わない』を ZK 証明する」

Public Chain vs Shielded Pool の対比

通常のアカウント (Ethereum / Bitcoin) — 全員に丸見え — 0xABC...: 100 USDC visible 0xDEF...: 50 USDC visible 0x123...: 2000 USDC visible 転送: 0xABC → 0xDEF (50 USDC) 送信者・受信者・金額・残高すべて公開 → 取引履歴・関係・残高がすべて追跡可能 Shielded Pool — commitment + ZK proof — Merkle Tree (commitments) c1 = H(50, pk_A, r1) hidden c2 = H(30, pk_B, r2) hidden c3 = H(120, pk_C, r3) hidden 転送: ZK proof のみ公開 送信者・受信者・金額: 隠蔽 公開: nullifier + new commitment + proof
図 1: Ethereum の Account モデル (左) では全情報が公開。Shielded Pool (右) では commitment が hash で隠され、転送は ZK 証明のみが残る。

なぜ Shielded Pool が必要か

パブリックチェーンの問題
  • 取引履歴の永続追跡: アドレスと実名が紐づくと過去すべて公開
  • 残高フロントランニング: 大口の動きが MEV bot に丸見え
  • 競合分析: 企業の入金パターンから戦略が読まれる
  • 制裁・差別: 特定アドレスから受け取ると tainted 扱い
  • 給与公開: 雇用者・労働者の支払いがオープン
Shielded Pool が解く問題
  • 送受信者の unlinkability: pool 内では誰から誰へか不明
  • 金額の hiding: balance/transfer 金額が公開されない
  • 残高プライバシー: アドレスごとの残高が漏れない
  • graph 解析無効化: pool 経由で transaction graph が切れる
  • 選択的開示: 必要時のみ viewing key で監査可能

核心アイデア: 4 要素の組合せ

Shielded Pool の本質

1. Commitment: 「いくら・誰が・乱数」を hash で隠して登録 (c = H(v, pk, r))

2. Nullifier: 二重消費を防ぐ「使用済みマーク」(nf = H(sk, c))

3. Merkle Tree: 全 commitment を集合化、root のみオンチェーン

4. ZK Proof: 「私は集合のどれかの所有者で、nullifier が正しい」ことを内容を明かさず証明

UTXO 風 vs Account 風 の二大設計

UTXO 風 Shielded Pool

代表: Zcash / Tornado / Aztec / RAILGUN / Penumbra

モデル: 各 note が独立、消費 → 新 note 生成

parallel spend OK anonymity set 大 wallet が全 note 追跡 decryption コスト

各 transaction は input notes を nullify し output notes を作る。Bitcoin 風で並列性が高い。

Account 風 Shielded Pool

代表: Zether / Anonymous Zether

モデル: 各 account に暗号化残高 (ElGamal/AHE)

wallet 軽量 EVM 自然 anonymity set 小 epoch / front-running 課題

Zether は同種準同型暗号で残高を保持。N-out-of-anonymity set は ring proof で実現するが scaling が課題。

実装上の支配的選択は UTXO 風。Zcash 系譜の note モデルがほぼすべての shielded pool 実装で採用される。本ページでも以降は UTXO 風を中心に解説する。

02Shielded Pool の 4 暗号コンポーネント

どの shielded pool 実装も、内部構造は commitment / nullifier / Merkle tree / ZK proof の 4 要素に分解できる。本タブでは各コンポーネントの目的・数式・性質・実装例を 1 セットずつ解剖する。これを理解すれば、Zcash・Tornado・Aztec・RAILGUN・Penumbra の違いも「同じ骨格の異なる肉付け」として捉えられる。

4 要素の全体像

① Commitment 登録 c = H(v, pk, r) value を hash で隠す hiding + binding Pedersen / Poseidon ② Nullifier 使用済みマーク nf = H(sk, c) double-spend 防止 deterministic + unlinkable commitment と非リンク ③ Merkle Tree 集合化 root = MR(c1,...,cn) depth 32 ≈ 40億 note root のみオンチェーン path の existence 証明 ④ ZK Proof 統合証明 π ← Prove(x, w) ①②③ を 1 つの SNARK で証明 Groth16 / Halo2 / PLONK
図 2: 4 コンポーネントの役割と関係。Commitment で「隠して登録」、Nullifier で「二重消費防止」、Merkle Tree で「集合化」、ZK Proof で「①②③ を統合的に証明」。

(1) Commitment — いくらを誰が持つかを隠して登録

目的

note の中身(金額・所有者・乱数)を hash で隠して、オンチェーンに「登録」する。後で「私はこの commitment の note を持っている」と ZK で証明できる。

数式
c = Hash(value, owner_pk, randomness)
2 つの性質
  • Hiding: c から (v, pk, r) は復元不能(r が一様乱数)
  • Binding: 後で別の (v', pk', r') を主張できない(衝突困難)
実装例

Sapling (Zcash): Pedersen commitment cm = COMM(g^v · h^r)。楕円曲線群上の準同型あり。

Aztec / RAILGUN: Poseidon hash。ZK-friendly な algebraic hash で constraint 数が小さい。

Tornado Cash: MiMC hash (BN254 上)。後発実装は Poseidon に移行。

Orchard: Sinsemilla hash(Pallas curve)。lookup table 活用。

value v owner pk randomness r Hash Pedersen/Poseidon c = commitment → Merkle Tree に追加
図 3: Commitment 生成プロセス。3 つの input を hash 関数に通して 1 つの c を得る。c が公開、内訳は秘密。

(2) Nullifier — 二重消費防止の core 機構

解く問題

commitment c を「消費」したことをチェーンに記録する必要がある。しかし c 自体を公開すると linkability が生じ(誰の note か特定)、shielded の意味が消える。

解: c とは別の値 nf を生成し、nf を「使用済み集合」に追加する。cnf の関係は ZK proof 内のみで検証される。

数式と性質
nf = Hash(sk, c) または nf = Hash(sk, position)
  • Deterministic: 同じ note なら毎回同じ nf(二重 spend を nullifier set で検出)
  • Unlinkable: 外部からは nfc の対応が不明(sk が secret)
  • Collision-free: 異なる note は異なる nf(誤検出なし)
実装比較

(3) Merkle Tree — 全 commitment の集合をコンパクトに表現

全ユーザーの commitment を扱う集合は数百万〜数十億規模になる。これをオンチェーンに保持できない。解は Incremental Merkle Tree: depth 32 で 2³² ≈ 40 億 note を持ち、オンチェーンには root(32 bytes)のみ を保存する。

Incremental Merkle Tree (depth 4 デモ) ROOT ← オンチェーン公開 L1_0 L1_1 L2_0 L2_1 L2_2 L2_3 c0 c1 c2 c3 c4★ c5 c6 c7 c4 = my leaf path (sibling) root verified
図 4: Merkle Tree。c4 (★) を所有することを証明するには、c4 の sibling c5、L2 の sibling L2_3、L1 の sibling L1_0 の 3 つの hash を提供すれば root を再計算できる(depth d なら d 個)。
なぜインクリメンタル ?

新 commitment が増えるたび root を更新する必要があるが、全 tree を再計算すると O(n)。インクリメンタル構造は O(log n) で root を更新(次の leaf 位置のみ)。Zcash・Tornado・Aztec すべて採用。

Aztec の "Append-only sparse tree" は深さを変えずに insertion を高速化。

クライアント側コスト

オンチェーンは root だけだが、クライアントは全 tree を再構築する必要がある。Zcash で chain head までスキャンに数分かかる課題。

解: compact block / FlyClient / wallet-as-a-service。Penumbra は client-side state management に強く投資。

(4) ZK Proof — ①②③ を統合的に証明

shielded transfer 1 件で証明する内容は以下を 1 つの SNARK にまとめる:

Statement: // 公開入力
  - merkle_root (現在のツリー root)
  - nullifiers[]  (使用済みマークの集合)
  - new_commitments[]  (新規 note の commitment)
  - public_value  (deposit/withdraw 額)

Witness: // 秘密入力
  - input_notes[]      (value, pk, r, position)
  - merkle_paths[]     (各 input の path)
  - spending_keys[]    (各 input の sk)
  - output_notes[]     (value, pk, r)

Constraints:
  ① ∀ i: commitment(input_notes[i]) ∈ tree (merkle_path[i] で証明)
  ② ∀ i: nf_i = Hash(sk_i, c_i)         (nullifier 正しい)
  ③ ∀ i: owner_verify(sk_i, pk_i)        (所有権)
  ④ Σ input.value + public_in = Σ output.value + public_out + fee  (balance)
  ⑤ ∀ j: new_c_j = Hash(out_v_j, out_pk_j, out_r_j)  (output commitment 正しい)

証明系の選択

  • Groth16: 最小 proof (192B)、circuit-specific trusted setup。Zcash Sapling / Tornado / RAILGUN / ZKBob で採用
  • PLONK: universal setup, proof やや大きい。Aztec Connect
  • Halo2: trustless(recursive proof)、setup 不要。Zcash Orchard
  • Honk / UltraHonk: Aztec 3 で採用、TurboPLONK 改良

性能の桁感

  • Groth16 (Sapling): prove 1-7s, verify ~5ms, proof 192B
  • Tornado Cash: prove 5-30s (browser), verify ~300k gas
  • Halo2 (Orchard): prove ~10s, verify ~80ms(オンチェーンは別)
  • Aztec Connect: prove 数十秒, batch でアモタイズ
SNARK の役割

「私は集合のどれかの所有者で、二重 spend しておらず、balance が合っており、新 commitment が正しい」すべてを 1 つの proof π で証明。検証者は π・root・nullifier 集合・new commitment 集合だけを見ればよい。

これが shielded pool の magic: 4 要素が SNARK の constraint 内で結合し、外には何も漏れない。

03Shielded Pool のライフサイクル

Shielded pool 内の note は Mint (Deposit) → Transfer → Burn (Withdraw) の 3 ステージを循環する。各ステージで「何が公開され、何が秘匿されるか」が変わる。本タブでは ZK proof の statement を含めて 3 ステージを decompose する。

3 ステージの全体フロー

SHIELDED POOL Merkle Tree (commitments) + Nullifier Set (使用済み) 入金者・所有者・残高は全て暗号学的に隠蔽 ① Mint (Deposit) ② Transfer (内部) ③ Burn (Withdraw) Public Account 100 USDC → shield to pool Public: amount, depositor Internal Move A → B (shielded) Public: nf, c_new, π Public Account 50 USDC ← unshield from pool Public: amount, recipient
図 5: Shielded Pool の 3 ステージ。Mint で外部資産が pool に入り、Transfer で pool 内を循環し、Burn で外部に出る。Transfer は外から見ると nullifier と新 commitment の対のみ。
Stage 1

① Mint (Deposit / Shield) — 公開資産を pool に入れる

外部の public ETH / USDC / Token を shielded pool に「変換」する。新しい note を作成し、その commitment を Merkle tree に追加する。

公開される情報
  • 入金額 (例: 100 USDC)
  • 送信者アドレス (msg.sender)
  • 新 commitment c
  • commitment の tree 内 position
秘匿される情報
  • note の receiver (自分の private viewing key)
  • note の randomness r
  • (Tornado 等同額固定型は depositor は公開だが note 識別は不能)

ZK proof は通常不要 (deposit 時)。理由: 公開金額・公開送信者・新 commitment だけで「資金が pool に入った」ことは public visibility で検証できる。Tornado 等の単純実装では「deposit に proof 不要、withdraw に proof 必須」。

例外: Aztec Connect / RAILGUN は shielded mint with proof をサポート。任意金額入金時に金額が hidden な note を作る場合は proof 必要。

// Tornado Cash deposit (簡略)
function deposit(bytes32 commitment) external payable {
  require(msg.value == DENOMINATION);
  uint32 idx = _insert(commitment);  // Merkle tree に追加
  emit Deposit(commitment, idx, block.timestamp);
}
Stage 2

② Transfer — pool 内で送受信(最重要)

これが shielded pool の本命。pool 内のある note を消費し、別の note を作る。誰から誰へ・いくらか、すべて隠蔽される。

公開される情報
  • nullifier nf (消費したマーク)
  • 新 commitment c_new
  • ZK proof π
  • fee(gas 用、しばしば公開)
  • encrypted memo(受信者用、暗号化)
秘匿される情報
  • 送信者・受信者の identity
  • 転送金額
  • 消費した note (nullifier から逆算不能)
  • 新 note の所有者・金額

ZK proof が証明すること (statement):

(input_note, sk, merkle_path, output_note, r_out):
  ① commitment(input_note) ∈ tree (root) // merkle path で
  ② derive_pk(sk) == input_note.pk        // 所有権
  ③ nf == Hash(sk, input_note)            // nullifier 正しい
  ④ output_note.value == input_note.value - fee  // balance
  ⑤ c_new == commitment(output_note)      // 新 commitment

外部観察者は「誰かが pool 内のどれかの note を消費し、新しい note を作った」しか分からない。anonymity set = 全 unspent note 数

マルチ in/out 拡張: 実際の Zcash transfer は最大 2 input・2 output。RAILGUN は最大 13 input・10 output。複雑な合算・分割が 1 transaction で可能。

Stage 3

③ Burn (Withdraw / Unshield) — pool から外部に出す

shielded note を消費し、対応する金額を public address に払い出す。

公開される情報
  • 引出金額 (例: 50 USDC)
  • 受信者アドレス (recipient)
  • nullifier nf (消費マーク)
  • ZK proof π
秘匿される情報
  • pool 内の source note (どの commitment か)
  • 過去の transfer history
  • note の元所有者

Withdraw bottleneck: nullifier + recipient 公開は deanonymization 攻撃面。timing analysis で「deposit 直後の withdraw は同一人物」と推定可能。Tornado Cash はこれを relayer + delay で緩和。

ZK proof statement:

(input_note, sk, merkle_path):
  ① commitment(input_note) ∈ tree
  ② derive_pk(sk) == input_note.pk
  ③ nf == Hash(sk, input_note)
  ④ input_note.value == public_withdraw_amount + fee  // 残高一致

recipient は public input なので、prover はそれを受け取って proof を生成。recipient が後で変更されると proof が invalid になる(malleability 防止)。

3 ステージのプライバシー比較

ステージ送信者匿名受信者匿名金額匿名主リスク
Mint公開秘匿公開誰が pool に入金したか
Transfer秘匿秘匿秘匿timing analysis のみ
Burn秘匿公開公開deanonymize の主面
Anonymity Set の本質

shielded pool の匿名性 ≈ 「Mint した全ユーザー」の集合サイズ。Transfer は内部循環で set を増やさず、新規 Mint のみが set を拡大する。

そのため Mint アクティビティを高く保つことが pool 価値の源泉。Tornado Cash の denomination 固定はこれを最大化する設計。

04Zcash 系譜 — Zerocash から Orchard までの 10 年

Shielded pool のすべては Zcash の 4 世代の進化に追従している。Zerocash (2014 理論) → Sprout (2016 launch) → Sapling (2018 高速化) → Orchard (2022 trustless) の各段階で「曲線・hash・commitment scheme・proving system」が再設計され、それぞれが次世代 shielded pool 設計の base lineになった。

Zcash 進化のタイムライン

Zerocash 2014 理論基盤 BCTV14 SNARK S&P paper Sprout 2016 BN254 curve proving 数分 mainnet launch Sapling 2018 Jubjub/BLS12-381 Pedersen comm proving ~3s Orchard 2022 Halo2 + Pallas Trustless setup no Powers of Tau NU6+ 2025+ ZSF / Crosslink
図 6: Zcash 4 世代の進化。2014 理論 → 2016 実装 → 2018 高速化 → 2022 trustless 化。
2014 — Zerocash (Sasson, Chiesa, Garman, Green, Miers, Tromer, Virza, S&P 2014)

理論基盤の確立

Zerocoin (2013) の改良。Zerocoin は anonymity だけだったが、Zerocash は 金額秘匿 も加えた。SNARK で「私は pool 内のどれかの coin を持ち、その serial number が未消費」を証明。

キーアイデア: commitment scheme + accumulator (Merkle) + zk-SNARK の組み合わせ。これ以降のすべての shielded pool が踏襲する骨格。

暗号構成: BCTV14 SNARK (Ben-Sasson, Chiesa, Tromer, Virza), Curve25519, SHA-256 commitment

限界: proving ~minutes (理論モデル)、circuit が巨大、trusted setup 必要

2016 — Sprout (Zcash mainnet launch, 2016-10-28)

初の production shielded pool

Zerocash 論文の最初の実装。BN128 (BN254) 曲線上で BCTV14 SNARK。

Spend description: (nullifier, anchor_root, ZK_proof)

Output description: (commitment, encrypted_note_ciphertext, ZK_proof)

Jubjub scalar: spending key sk → derive a_pk = PRF(sk)、a_sk → derive nullifier

Powers of Tau ceremony: 6 参加者の MPC で trusted setup。1 人でも誠実なら secure。

限界:

  • proving time 数十秒〜数分(mobile 不可)
  • BCTV14 の 2018 年に発見されたバグ(counterfeit unlimited Zcash 可能性)— Sapling で修正
  • Single-asset (ZEC のみ)

2018 — Sapling (NU2 upgrade, 2018-10-28)

高速化の革命: proving 数分 → 数秒

Sprout の致命的な遅さを根本解決した世代。BLS12-381 / Jubjub という ZK-friendly な曲線ペアを採用。

Note 構造:

  • d: diversifier (受信者 unlinkability)
  • pk_d = [ivk]·g_d: diversified transmission key
  • value: 金額 (64 bit)
  • rcm: commitment trapdoor
  • ρ: nullifier 入力 (initial randomness)

Commitment: Pedersen cm = NoteCommit_{rcm}(g_d, pk_d, v)。準同型性活用。

Nullifier: nf = PRF^{nk}(ρ)

BLAKE2s for Sprout-compatible, Pedersen + Bowe-Hopwood for in-circuit hashing。

パフォーマンス: spend proving ~3s(CPU)、output proving ~1s。mobile wallet 実用化。

Diversified address: 1 つの spending key から無数の receiving address を派生。各 address は unlinkable。

2022 — Orchard (NU5 upgrade, 2022-05-31)

Trustless setup の達成

Sapling の trusted setup を完全排除した世代。Halo2 + Pallas curve(Vesta との cycle of curves)。

Halo recursion: 再帰的 SNARK で polynomial commitment が trusted setup なしで動く。Ian Miers, Sean Bowe らの理論成果。

Action description: spend + output を 1 つにまとめた構造。balance proof は Pedersen commitment の準同型で。

Action:
  - cv (value commitment)
  - nf (nullifier)
  - rk (randomized verification key)
  - cm_new (output commitment)
  - epk_new (ephemeral pubkey for encryption)
  - enc_ciphertext (encrypted note)
  - out_ciphertext (encrypted output to recipient)
  - π (Halo2 proof)

Sinsemilla hash: lookup-based、circuit 内で Pedersen より高速

限界:

  • Halo2 proving は Sapling より計算量大(trade-off)
  • Bundle of bundles で transaction structure が複雑化

Penumbra・Iron Fish 等の後続 shielded chain も Halo2 / Pallas 系を採用。

2024+ — NU6 / Zcash Shielded Finance / Crosslink

次世代の方向

ZSA (Zcash Shielded Assets): Orchard に multi-asset support(MASP に似た拡張)。Anoma/Namada との収斂。

Crosslink: Zcash の hybrid PoW/PoS への移行案。finality 高速化。

NU6.1 (2025): dev funding 構造の調整、Orchard memo の最適化。

FROST / threshold: shielded address の threshold signature support。

世代別: 主要パラメータ比較

世代曲線SNARKCommitmentHash (in-circuit)SetupSpend proving
SproutBN128BCTV14SHA256SHA256Trusted (Powers of Tau)~30-60s
SaplingJubjub / BLS12-381Groth16PedersenBowe-HopwoodTrusted (Sapling MPC)~3s
OrchardPallas / VestaHalo2Pedersen on PallasSinsemillaTrustless (recursive)~5-10s
なぜ Zcash 系譜が標準なのか

(a) 理論的厳密性: Sasson et al. の S&P paper が peer review済み・正式 cite 可能。(b) 10 年の運用実績: Sprout/Sapling/Orchard すべて mainnet で大規模稼働。(c) open source rust crates: zcash_proofs / orchard / halo2 を直接 fork できる(Aztec / Penumbra / Iron Fish はこの spec を base に)。(d) セキュリティ研究の蓄積: Sprout の counterfeit bug 発見・修正など、攻撃耐性が経験的に検証されている。

05EVM 上の Shielded Pool 実装 — 7 大プロジェクト深掘り

Ethereum 上で shielded pool を実装する試みは 2019 以降ほぼ毎年生まれてきた。Tornado / Aztec Connect / Aztec 3 / RAILGUN / ZKBob / ZeroPool / Privacy Pools の 7 プロジェクトを、暗号構成・規制対応・教訓の観点から比較する。

EVM 実装系譜タイムライン

Tornado Cash 2019 同額固定 mixer ZeroPool 2020 UTXO 汎用回路 Aztec Connect 2021 L2 DeFi bridge → 2024 shutdown RAILGUN 2022 ERC-20 任意額 ZKBob 2022 stablecoin pool Privacy Pools 2023→25 AS compliance Aztec 3 2024+ private contracts 2019 2025
図 7: EVM shielded pool 7 大実装の系譜(2019-2025)。Tornado の単純さから、規制対応 (Privacy Pools)・private contracts (Aztec 3) まで進化。

各実装の詳細

Tornado Cash Sanctioned 2022 Court vacated 2024

Launch: 2019 / 暗号: Solidity + Circom + Groth16 + BN254 / Hash: MiMC (later Poseidon variants)

設計: 単純 mixer。deposit(commitment)withdraw(nullifier, proof, recipient) のみ。同額固定 (0.1 / 1 / 10 / 100 ETH)。

// Tornado の depth=20 Merkle tree
2^20 = 1,048,576 commitments per pool
circuit: ~5879 lines of Circom
proof: Groth16, ~30s browser proving

Relayer support: gas を recipient ETH 残高なしで支払えるメタトランザクション。重要 UX。

OFAC sanctions (2022-08): 米財務省が smart contract address を SDN list に追加。前例なき事態。

5th Circuit ruling (2024-11): "immutable smart contracts cannot be sanctioned" として制裁取消。法的勝利。

限界: composability 0 (DeFi 連携不可)、denomination 制限で時間ベース linkability、wallet が deposit/withdraw を別々に管理する必要

TVL ピーク: ~$7B+ cumulative deposits

Aztec Connect (2021-2024) Shutdown 2024

暗号: PLONK + BN254 / 言語: Solidity + barretenberg / L2 rollup (zkRollup)

キー革新: DeFi bridge contracts。Aztec 内の shielded note を Lido・Element・Yearn 等の外部 DeFi プロトコルに「橋渡し」できる。Bridge は Solidity contract で、Aztec rollup が batch して呼び出す。

// Aztec Connect bridge interface
interface IDefiBridge {
  function convert(
    AztecTypes.AztecAsset inputAsset,
    AztecTypes.AztecAsset outputAsset,
    uint256 inputValue,
    uint256 interactionNonce,
    uint64 auxData
  ) external returns (uint256, uint256, bool);
}

2024-03 shutdown 発表: TVL ピーク ~$250M。理由: 規制不確実性 (Tornado 制裁後) + UX (proving が browser で重い) + composability 制限。

教訓: "privacy + DeFi for retail" の市場需要は当時想定より遥かに小さい。enterprise 路線へシフト示唆。

Aztec 3 / Aztec Network (2024+) Testnet

暗号: UltraHonk + BN254 / 言語: Noir(独自 ZK DSL)

転換: Connect の bridge model を捨てて、fully private smart contracts のチェーンへ。Hawk (2016) のビジョンを 8 年遅れで本格実装。

Private kernel circuits: 5 phases (init / inner / reset / tail / verifier)。各 contract call は client-side で proof 生成、aggregator が collect。

~427k total gates: private execution の全コスト。クライアント側数十秒。

Public + Private hybrid: 1 つの transaction で private と public function を呼べる。Noir で #[private]#[public] アノテーション。

RAILGUN (2022+) Production

暗号: 54 Groth16 circuits + Poseidon + BN254 / 多 chain: Ethereum / BSC / Polygon / Arbitrum mainnet

設計: 任意 ERC-20 amount の shielded transfer。最大 13 input × 10 output / transaction。54 circuit は input/output 数の組み合わせ別。

PPOI (Private Proof of Innocence) [2023]: 自分の funds が tainted (制裁 address 由来) でないことを ZK で証明する optional 機能。Buterin 提案の Privacy Pools コンセプトを RAILGUN が先行実装。

// PPOI の statement (簡略)
∀ ancestor c in commitment lineage:
  c.depositor ∉ public_blocklist
→ recipient can verify "innocence" off-chain

TVL: ~$50M+ / 制裁対応: PPOI で銀行 / regulator との連携可能性

ZKBob (2022) Polygon mainnet

暗号: ZeroPool fork (Circom 化) + Groth16 + BN254

BOB stablecoin focused: ZKBob は BOB(USD pegged stablecoin)専用の shielded pool。複数 asset を扱わないので回路が単純化。

Compliance Manager Key: pool 管理者は特定 transaction を viewing key で監査可能。"private but not anarchic" のスタンス。

Relayer network: gasless transaction。Polygon の低 gas と組み合わせて mobile UX 重視。

限界: BOB stablecoin の発行・採用が限定的 → pool 流動性も小

ZeroPool (2020) Origin of ZKBob

RAILGUN・ZKBob の 祖先。Substrate / Polkadot origin、後に Circom 化。

UTXO 回路の汎用化: arbitrary input/output count を回路で扱う設計を最初に提案。

Diversified address: Zcash Sapling のアイデアを EVM に持ち込み。1 spending key から無数の receive address。

本体は wind-down だが、技術的 DNA は ZKBob / Tornado Nova / RAILGUN に継承。

Privacy Pools (2023 theory → 2025-03 mainnet) 0xbow

論文: Buterin, Bünz et al. "Blockchain Privacy and Regulatory Compliance" (2023)

核心アイデア: Association Set (AS)。withdraw 時に「私は AS のどれかから出ている」を証明。AS は curator が選んだ「クリーンな」commitment 集合。

// Privacy Pools の statement
∃ note ∈ Anonymity Set: // 通常 shielded pool
∧ note ∈ Association Set: // NEW: 規制対応
∧ nullifier 正しい
∧ balance OK

Derecho (2024): Privacy Pools 理論基盤の formal 化。AS 設計の properties (soundness/completeness/anonymity-vs-compliance trade-off)。

0xbow Mainnet (2025-03): 初の production deployment。AS は 0xbow が curate、tainted commitment を排除。

意義: 规制 friendly な mixer という従来矛盾していた 2 つを ZK で和解する初の試み。Tornado 制裁後の業界正解候補。

EVM 実装の規制対応スペクトラム

実装規制対応機構監査可能性状態
Tornado CashNone (pure mixer)NoneSanctioned → vacated
Aztec ConnectNoneViewing key (個別)Shutdown 2024
Aztec 3TBD (Noir で programmable)Per-contractTestnet
RAILGUNPPOI (private innocence)Optional disclosureProduction
ZKBobCompliance Manager KeyPool operator が viewingProduction
Privacy PoolsAssociation Set curationAS exclusion で blocklistProduction 2025

06DeFi 統合 — Shielded Pool × Multi-Asset / DEX

Vanilla shielded pool は単一資産前提だが、DeFi に持ち込むには multi-assetAMM 相当の swap が必要になる。MASP (Anoma) / Penumbra zswap / Manta / Aleo の 4 アプローチを数式で比較する。

Vanilla shielded pool の限界 → DeFi 拡張の必要性

Vanilla の制約

Zcash / Tornado / RAILGUN(原型) はすべて 1 asset = 1 pool。USDC pool と DAI pool が独立し、interaction できない。

DeFi の本質は資産間 swap。AMM / lending / derivatives はすべて multi-asset を前提とする。shielded pool で DeFi をやるには、pool 内に複数 asset を共存させる仕組みが必要。

MASP (Multi-Asset Shielded Pool, Anoma 2022)

もっとも素直な拡張: commitment に asset_type field を追加。balance 制約も asset 別に分離する。

通常 shielded pool vs MASP Vanilla (Zcash) c = H(value, owner_pk, r) Balance 制約: Σ in.value = Σ out.value + fee → 1 pool = 1 asset。multi-asset 不可 MASP (Anoma) c = H(value, asset, owner_pk, r) Balance 制約 (asset 毎): ∀ a: Σ in.value(a) = Σ out.value(a) + fee(a) → 単一 pool で複数 asset 共存可能
図 8: MASP の数式拡張。commitment に asset_type を追加し、balance 制約を asset 別に分離。anonymity set を asset 横断で共有可能。
MASP の利点
  • Anonymity set 共有: USDC・DAI・ETH 等の全 user が同一 pool に集まる → set が桁違いに大きい
  • Cross-asset transfer (in shielded): 同一 note 内で USDC を DAI に swap する余地
  • Storage 効率: 1 Merkle tree で全 asset 管理
MASP の課題
  • Asset linkability via balance: 各 asset の総量はチェーンで分かる(mint/burn で)。低 liquidity asset は anonymity 弱い
  • Convert ロジック: asset 間変換に oracle 価格 or AMM が必要
  • Production: Namada (Anoma の MASP 実装チェーン) が初の mainnet 化、2024 稼働開始
// MASP の transfer constraint (簡略)
circuit MASP_Transfer {
  // Inputs (public)
  merkle_root, nf[], c_new[]
  asset_in[], asset_out[]  // asset type per note

  // Witnesses (private)
  notes_in[], sk[], paths[]
  notes_out[]

  // Constraints
  ∀ i: c_i = H(value_i, asset_in[i], pk_i, r_i)
  ∀ i: c_i ∈ tree (via path_i)
  ∀ i: nf_i = H(sk_i, c_i)
  ∀ j: c_new_j = H(value_out_j, asset_out[j], pk_out_j, r_out_j)
  ∀ asset a:
    Σ value_i [asset_in[i] == a] == Σ value_out_j [asset_out[j] == a] + fee(a)
}

Penumbra zswap (2024) — Shielded DEX without leaking

Penumbra は Cosmos chain で shielded pool + AMM を提供。AMM 部分が zswap。標準 CFMM (x·y=k) ではなく batch clearing で価格を決定する。

// zswap の 4 stage flow
Stage 1 (private): User が input note を burn し、swap intent を submit
  intent = (asset_in, value_in, asset_out, claim_address)
  → swap NFT が mint される (transient)

Stage 2 (public): Validator が同一 block の全 intent を集約
  All intents in epoch e for (asset_in → asset_out) アグリゲート

Stage 3 (public): Batch clearing price 決定
  price_e = f(aggregated_inflow, aggregated_outflow, liquidity_positions)
  →   全 intent が同じ price で約定

Stage 4 (private): User が claim
  swap NFT を burn し、output note を mint
  output_note = (asset_out, value_out = price_e · value_in)
zswap の革新

(a) Individual intent は隠蔽: 自分が swap したことすら他 user から不可視。

(b) Batch clearing: 同一 epoch の全 trade が同一 price で約定 → MEV 完全排除(front-running 不可能)。

(c) Liquidity positions: LP も shielded で position を持てる(concentrated liquidity 風)。

zswap の限界

Epoch latency: instant swap 不可、epoch (数秒〜数十秒) 待つ必要。

Aggregate volume leak: batch ごとの total volume・price は public。長期的に統計的攻撃の余地。

採用状況: 2024 mainnet 稼働開始だが liquidity・user base は限定的。Cosmos エコシステム内に閉じる。

Manta (2021 → 2024 pivot)

原型: Substrate (Polkadot parachain) + Groth16。Zcash Sapling 的な shielded asset を Polkadot エコシステムに持ち込む試み。

MantaPay: shielded transfer 機能。USD/ETH/DOT 等の wrapped asset を shield。

2024 Pivot: pure shielded pool の market fit を達成できず、ZK Compression / Manta Pacific (general purpose ZK L2) に転換。shielded pool は legacy 化。

教訓: shielded だけでは流動性が集まらない。"why shield" の use case が決定的に重要。

Iron Fish (2023) — Zcash Sapling fork chain

暗号: Sapling fork (Rust, Jubjub/BLS12-381) / 独自 chain (Bitcoin 互換 PoW)

Multi-asset: 任意 asset を発行可能、各 asset が shielded 扱い。MASP より単純(asset type を note に含めるだけ、cross-asset balance はそのまま)。

Bridge to Ethereum: 双方向 bridge で WBTC・USDC 等を shielded で扱える。

差別化: Zcash の technical 系譜を尊重しつつ multi-asset + ergonomic wallet で retail 向け。Coinbase 等 listing も。

Aleo (2023) — Private SC platform with Leo DSL

暗号: Marlin SNARK + 独自曲線 / 言語: Leo (Rust-like DSL for private SC)

Records: Aleo の note 相当。任意 struct を private に保存可能(Zcash の note を一般化)。

客観的には Aztec 3 の競合。Aztec が Noir なら、Aleo は Leo。両方とも general private smart contract platform 目指す。

限界: 2023 mainnet 後、user / 開発者の絶対数は限定的。Cosmos の Penumbra 同様、ニッチ内のリーダー。

DeFi 統合 4 アプローチの比較

アプローチMulti-AssetSwap 機能MEV 耐性Production
MASP / NamadaYes (in commitment)Convert (limited)部分的2024 mainnet
Penumbra zswapYes (multi-pool)Batch clearing完全2024 mainnet
MantaYes (wrapped)外部 DEX 経由なしPivot 済
Iron FishYes (任意 asset)なし (transfer のみ)N/A2023 mainnet
AleoYes (records)Programmable未定2023 mainnet
結論: DeFi × shielded は 2024 時点で local maximum

Penumbra (batch clearing) と Namada (MASP) が現時点の最も洗練された設計。だが両者とも独自 chain で、Ethereum L1 への return は未解決問題。Aztec 3 の private contracts が EVM-compatible でこの gap を埋められるかが 2025-2026 の watch point。

0715 実装の比較マトリクス

これまで議論した実装を 1 つの表に集約。曲線・証明系・asset 性質・production status・規制対応の 8 軸で 15 実装を並べる。続いて anonymity set vs composability の散布図で全体地図を描く。

15 実装 × 8 properties

実装言語証明系曲線UTXO/AccMulti-Asset本番化規制対応
Zcash SproutC++BCTV14BN254UTXONo (ZEC)2016None
Zcash SaplingRustGroth16Jubjub/BLS12-381UTXONo (ZEC)2018Selective disclosure
Zcash OrchardRustHalo2Pallas/VestaUTXONo (ZSA pending)2022Selective disclosure
Tornado CashSolidity+CircomGroth16BN254UTXONo (固定額)2019Sanctioned
Aztec ConnectTypeScript+barretPLONKBN254UTXOYes2021-24Shutdown
Aztec 3Noir+RustUltraHonkBN254UTXO+SCYes準備中Programmable
RAILGUNSolidity+CircomGroth16BN254UTXOYes (ERC-20)2022PPOI
ZKBobSolidity+CircomGroth16BN254UTXONo (BOB)2022CMK viewing
ZeroPoolSubstrate→CircomGroth16BN254UTXOLimited2020None
MantaSubstrateGroth16BLS12-381UTXOYes (wrapped)2021→pivotNone
Iron FishRustSapling-forkJubjub/BLS12-381UTXOYes (任意)2023None
PenumbraRustGroth16decaf377UTXOYes (zswap)2024None
MASP / NamadaRustGroth16BLS12-381UTXOYes (full)2024Compliance keys
Privacy Pools (0xbow)Solidity+CircomGroth16BN254UTXONo2025-03Association Set
AleoRust+LeoMarlinBLS12-377Records (UTXO+)Yes2023Programmable

Anonymity Set × Composability の散布図

→ Anonymity Set サイズ (大きいほど匿名性高) → Composability (上ほど DeFi 統合可能) 小 set × 高 composable 理想領域 小 set × 低 composable 大 set × 低 composable Tornado Zcash Aztec Connect Aztec 3 RAILGUN ZKBob Penumbra MASP/Namada Iron Fish Aleo Privacy Pools 点の大きさは production maturity
図 9: Anonymity Set × Composability の 2 軸プロット。Tornado / Zcash は右下(大 set / 低 composable)、Aztec / Penumbra は左上(小 set / 高 composable)に位置する。理想領域(右上)は未到達。

暗号 stack の収束

BN254 + Groth16 が EVM 標準

Tornado / RAILGUN / ZKBob / Privacy Pools すべて BN254 + Groth16。理由: Ethereum precompile (0x06/07/08) で pairing 検証が安価 (~80k gas)。proof 192B 固定。

Pallas + Halo2 が trustless 派

Zcash Orchard が pioneer、Penumbra・Iron Fish 等が継承。trusted setup 不要が最大利点だが、verifier が EVM precompile に乗らないので EVM 直接デプロイは難しい(rollup or Cosmos chain 経由が現実解)。

08Shielded Pool の 6 大現状課題

10 年の実装進化にもかかわらず、shielded pool は 普及・規制・性能の 3 軸で大きな壁を抱える。各課題に「なぜ難しいか / 既存試み / 研究機会」を付ける。

6 課題の俯瞰マップ

Shielded Pool が直面する 6 大課題 Shielded Pool 課題 ① Anonymity Set 分断 chain ごとに pool 独立 ② 流動性 / 採用 Aztec Connect 教訓 ③ 計算コスト Groth16 prove 5-30s ④ Withdraw bottleneck timing analysis ⑤ Trusted Setup Halo2 で部分解 ⑥ 規制圧力 OFAC / FATF / MiCA
図 10: 6 課題の関係マップ。① 〜 ④ は技術課題、⑤ は理論側、⑥ は外部 (規制) 圧力。互いに連動する。

01Anonymity Set フラグメンテーション

shielded pool の匿名性は set サイズの log に比例する。各 chain・各 asset・各 implementation ごとに独立 pool を立てると、set が小さく分割され、effective anonymity が大幅に劣化する。

なぜ難しいか

chain 間の commitment / nullifier 整合性を保つには cross-chain ZK bridge が必要。bridge 自身が trust point になるか、計算コストが膨大になる。

既存試み 研究機会

Cross-chain shielded pool: 複数 chain の commitment が同じ Merkle tree に乗る設計。recursive ZK + bridge proof で技術的には可能だが production 例なし。

02流動性 / 採用

Aztec Connect TVL ピーク ~$250M で 2024-03 shutdown。Penumbra mainnet も流動性は限定的。「privacy + DeFi」の retail 需要は当時の見立てより遥かに小さいのが 2024 時点の現実。

なぜ難しいか

(a) ガス高い (Mainnet で proof verify ~300k+ gas)、(b) UX 複雑 (proving 数十秒、wallet sync 数分)、(c) 「shield する理由」を retail user が持たない、(d) shielded asset は CEX 入金できない。

既存試み 研究機会

Shielded UX 改善: client-side proving の高速化 (recursive ZK)、social recovery for shielded address、shielded → public CEX bridge。B2B 路線: payroll・treasury・OTC 向けの enterprise shielded pool。

03計算コスト (Client-side proving)

Groth16 proof generation は circuit 規模に応じ 5-30 秒。Mobile wallet では Browser WASM 制約 + memory 制約で 数分 かかる場合も。これが UX を壊す主因。

なぜ難しいか

shielded transfer は constraint 数 ~100k-500k。これを browser で多項式展開・MSM・FFT する。GPU 加速も browser/mobile では限定的。

既存試み 研究機会

WebGPU 活用 / WASM SIMD 最適化 / mobile dedicated proving SDK / TEE-assisted proving (proof gen を SGX に委譲、user の secret は seal)

04Withdraw bottleneck (Deanonymization)

Mint と Burn は public side が露出する。特に Burn (withdraw) は recipient + amount が公開されるため、timing analysis 攻撃で「直前 deposit と同一人物」と推定される。

なぜ難しいか

shielded pool は internal transfer のみ匿名。external interaction が必須なので、必ずどこかで「公開境界」が生じる。

既存試み 研究機会

Forced delay shielded pool: smart contract レベルで withdraw を最低 N 時間遅延。Batched withdraw: 同一 epoch 内の全 withdraw を集約して order を decorrelate。

05Trusted Setup (部分解決済)

Groth16 は circuit-specific な trusted setup が必要。Powers of Tau ceremony で「1 人でも誠実なら secure」とはいえ、心理的・規制的なハードルが残る。

既存解 残課題

Halo2/STARK の EVM verify cost。現状 BN254 precompile に乗らないので production EVM デプロイで Groth16 が依然支配的。Layer-2 や custom precompile (RISC-V upgrade) で改善余地。

06Regulatory 圧力 (最大の壁)

2022 OFAC Tornado 制裁、2024 Aztec Connect shutdown。EU MiCA・米 FATF Travel Rule・UK FCA 等、「無条件 anonymity」へのプレッシャーが継続強化されている。

なぜ難しいか

規制要求 (KYC, audit trail, sanctions screening) と shielded pool の core property (unlinkability, hidden balances) が原理的に対立する。

既存試み (compliance-friendly shielded) 研究機会

規制対応の標準化: AS curation の governance、blocklist の cross-implementation 共有、travel rule との整合 (FATF), CBDC との接続。長期的な勝者はおそらく「規制対応 mode と pure mode を切替可能な dual shielded pool」。

総括: shielded pool 2026 の見通し

3 つの可能性

(A) 規制 friendly 派の優勢: Privacy Pools / RAILGUN PPOI 系が business adoption。Tornado-like pure mixer は legacy 化。

(B) Native shielded chain 路線: Penumbra / Namada / Iron Fish が独自 ecosystem 内で完結。Ethereum L1 との bridge は限定的。

(C) Aztec 3 / private SC platform: shielded pool を超えた "private smart contracts" として再起動。retail よりも enterprise (DeFi protocol、treasury) 向け。

2026 時点で最も賭けられるのは (A) と (C) の組合せ。pure shielded pool (B) は地政学的・経済的逆風が大きい。

09論文インデックス — 20 論文

Shielded pool の理論・実装・応用に関する 20 論文を 4 カテゴリで整理。各カードは title・著者・会議・要点・暗号構成・限界・後継への影響を含む。クリックで詳細展開。

Zerocash: Decentralized Anonymous Payments from Bitcoin
2014
Sasson, Chiesa, Garman, Green, Miers, Tromer, Virza
IEEE S&P 2014
要点

Shielded pool の理論基盤。commitment + accumulator + zk-SNARK で「金額秘匿付き匿名送金」を実現。後の全 shielded pool の祖先。

暗号構成

BCTV14 SNARK on Curve25519, SHA-256 commitment, JoinSplit primitive

限界

理論モデル。実装側で proving 数分、circuit が巨大。

後継への影響

Zcash Sprout / Sapling / Orchard、Tornado、Aztec、RAILGUN すべての base。

クリックで詳細展開

SNARKUTXOfoundation
Zcash Sapling: Pedersen Commitments & Jubjub Curve
2018
Hopwood, Bowe, Hornby, Wilcox (Electric Coin Co.)
Zcash NU2 spec / IEEE 2019
要点

Sprout の致命的遅さを解決。BLS12-381/Jubjub で proving 数秒へ。Pedersen commitment + Bowe-Hopwood hash。

暗号構成

Groth16 + BLS12-381 / Jubjub, Pedersen commitment, BLAKE2s for Sprout-compat

限界

Sapling MPC ceremony (trusted setup) が依然必要。

後継への影響

Iron Fish が直接 fork。Aztec / RAILGUN が note 構造を踏襲。

クリックで詳細展開

Groth16Pedersenproduction
Zcash Orchard: Halo2 + Pallas Trustless Setup
2022
Bowe, Grigg, Hopwood (Electric Coin Co.)
Zcash NU5 / Halo2 paper
要点

Trusted setup を完全排除。Halo2 + Pallas/Vesta cycle of curves。Sinsemilla hash で in-circuit hashing 高速化。

暗号構成

Halo2 PLONKish + Pallas/Vesta + Sinsemilla hash

限界

EVM precompile に乗らない。verify cost が pairing なしで重い。

後継への影響

Penumbra・Aleo 等が Halo2 系を採用。Orchard = trustless shielded の standard。

クリックで詳細展開

Halo2trustlessPallas
Tornado Cash: Non-custodial Anonymity Mixer
2019
Pertsev, Semenov, Storm
Tornado Cash whitepaper
要点

EVM 上 shielded pool の最初の成功例。同額固定 + Circom + Groth16。$7B+ cumulative deposit。

暗号構成

Solidity + Circom Groth16 + BN254 + MiMC, depth-20 Merkle tree

限界

Composability 0、固定 denomination の linkability、wallet UX 課題

後継への影響

RAILGUN・ZKBob・Privacy Pools が UX 反省点を踏襲。2022 OFAC 制裁 → 2024 court 取消。

クリックで詳細展開

TornadoEVMsanctioned
Aztec Connect: Privacy-Preserving DeFi via L2
2021
Williamson, Aztec Network
Aztec Connect docs / blog series
要点

Bridge contract で外部 DeFi protocol と shielded pool を連携する初の本格実装。Lido / Element / Yearn 統合。

暗号構成

PLONK + BN254, L2 zkRollup, barretenberg backend

限界

2024-03 shutdown。TVL ピーク $250M、規制不確実 + UX 重さで持続不可。

後継への影響

Aztec 3 (private SC) への pivot のきっかけ。"shielded + DeFi retail" 市場の小ささを実証。

クリックで詳細展開

PLONKL2shutdown
Aztec 3 / Noir: Private Smart Contracts
2024
Aztec Network team
Aztec yellow paper / Noir docs
要点

Connect の bridge model を捨て、Hawk 型の fully private smart contracts へ。Noir DSL + UltraHonk + private kernel circuits。

暗号構成

UltraHonk + BN254, Noir compiler, 5-phase private kernel (init/inner/reset/tail/verifier)

限界

~427k total gates の重さ、testnet 段階、ecosystem 構築中

後継への影響

未来形。2025-26 mainnet で評価。

クリックで詳細展開

NoirUltraHonkprivate SC
RAILGUN: ERC-20 Shielded Transfers with PPOI
2022
RAILGUN Privacy Project
RAILGUN whitepaper / PPOI v2
要点

任意 ERC-20 amount の shielded pool。54 Groth16 circuits で input/output の組合せ対応。PPOI で innocence 証明。

暗号構成

Solidity + Circom Groth16 + Poseidon + BN254, multi-chain (ETH/BSC/Polygon/Arbitrum)

限界

複雑な circuit 数、cross-chain pool 独立、流動性まだ限定的

後継への影響

PPOI が Buterin の Privacy Pools と並ぶ規制対応標準候補に。

クリックで詳細展開

RAILGUNERC-20PPOI
ZKBob / ZeroPool: Stablecoin Shielded Pool
2020-22
BOB Protocol / ZeroPool team
ZKBob docs / ZeroPool spec
要点

BOB stablecoin focused shielded pool。Polygon mainnet。Compliance Manager Key で operator viewing 機能。

暗号構成

Circom Groth16 + BN254, ZeroPool fork, relayer network

限界

BOB stablecoin 自体の adoption が低く pool 流動性も限定

後継への影響

Compliance Manager Key 設計が「監査可能 mixer」モデルとして参照される。

クリックで詳細展開

ZKBobstablecoinCMK
Manta Network: Substrate Shielded Asset
2021
Calamari / Manta team
Manta whitepaper
要点

Polkadot parachain で shielded transfer。MantaPay で USD/ETH/DOT wrapped を shield。後に ZK Compression へ pivot。

暗号構成

Substrate + Groth16 + BLS12-381

限界

市場 fit 不足で 2024 にメイン製品を ZK rollup 一般 (Manta Pacific) にシフト

後継への影響

Pure shielded pool での retail 採用の難しさを実証。

クリックで詳細展開

Substratepivot
Iron Fish: Sapling Fork with Multi-Asset
2023
Iron Fish Foundation
Iron Fish whitepaper
要点

Sapling 直接 fork に multi-asset 拡張。独自 chain (PoW)。Coinbase listing。Bitcoin 互換 wallet UX 重視。

暗号構成

Rust + Sapling-style Groth16 + Jubjub/BLS12-381, custom asset issuance

限界

独自 chain ゆえ DeFi 流動性は薄い、Bridge 依存

後継への影響

Sapling spec を multi-asset に拡張する素直なパスを示す。

クリックで詳細展開

Sapling-forkmulti-asset
Penumbra: Shielded DEX with Batch Clearing
2024
Penumbra Labs (Hayden, Buterin et al.)
Penumbra protocol spec
要点

Cosmos chain で shielded transfer + zswap (batch clearing DEX)。Individual intent 隠蔽 + MEV 完全排除。

暗号構成

Groth16 + decaf377, IBC interoperability, custom Sapling-style notes

限界

Epoch latency、Cosmos エコシステムに閉じる、aggregate volume leak

後継への影響

Batch clearing が MEV-resistant DEX の reference design に。

クリックで詳細展開

zswapCosmosMEV-free
MASP: Multi-Asset Shielded Pool (Anoma/Namada)
2022
Yulin Liu, Pratyush Mishra, Anoma team
Anoma blog / MASP spec
要点

commitment に asset_type を加え、balance 制約を asset 別に分離。Namada chain で 2024 mainnet。

暗号構成

Sapling-style + asset_type field, Groth16 + BLS12-381

限界

Convert ロジック (asset 間変換) は別途。低 liquidity asset の anonymity 弱い。

後継への影響

Multi-asset shielded のreference 設計。Iron Fish もこの線。

クリックで詳細展開

MASPmulti-assetNamada
Privacy Pools: Blockchain Privacy and Regulatory Compliance
2023
Buterin, Bünz, Wahrstätter, Soleimani
SSRN preprint / FC adjacent
要点

Association Set (AS) で shielded pool に規制対応を追加。withdraw 時に AS 内 commitment 由来を証明。

暗号構成

Solidity + Circom + Groth16 + BN254, double-Merkle (anonymity set + association set)

限界

AS curator の信頼問題、tainted vs clean の境界判定

後継への影響

2025-03 0xbow が初の production 化。Tornado 後の業界正解候補。

クリックで詳細展開

Privacy PoolsAScompliance
Derecho: Privacy Pools with Set Membership Proofs
2024
Aragona, Tessaro et al.
USENIX Security / FC 2024
要点

Privacy Pools の理論基盤を formal 化。AS 設計の soundness/completeness/anonymity-vs-compliance trade-off を証明。

暗号構成

Set membership proof, range proof, ZK-SNARK

限界

理論モデル中心、production deployment は別実装に依存

後継への影響

Privacy Pools v2 / 0xbow の理論裏付けに。

クリックで詳細展開

theoryAS formal
Aleo: Decentralized Private Application Platform
2023
Aleo Network team (Howard Wu et al.)
Aleo whitepaper
要点

Records (Zcash note の一般化) で任意 struct を shielded で扱う。Leo DSL で private SC 開発。

暗号構成

Marlin SNARK + BLS12-377, Edwards-BLS12 for in-circuit, snarkOS runtime

限界

User / 開発者の絶対数は限定。Cosmos の Penumbra 同様、ニッチ内のリーダー。

後継への影響

Aztec 3 と並ぶ private SC platform の二大勢力。

クリックで詳細展開

AleoLeorecords
Quisquis: Strong Anonymity with Updatable Anonymity Sets
2019
Fauzi, Meiklejohn, Mercer, Orlandi
AsiaCrypt 2019
要点

Account-based shielded pool。account の updatable anonymity set。Zether の前駆。

暗号構成

UC framework, ElGamal-like commitments, Σ-protocols

限界

Production 実装少ない、UTXO 系に主流が流れた

後継への影響

Anonymous Zether の理論先駆。Account 派の代表。

クリックで詳細展開

account-basedUC
Anonymous Zether: Account-Based Shielded Pool
2020
Bünz, Agrawal, Zamani, Boneh
Financial Cryptography 2020
要点

Zether (2019) の anonymity 拡張。N-out-of anonymity set を ring proof で実現。account-based shielded の代表。

暗号構成

ElGamal AHE, Σ-Bullets, Sigma proofs over BN254

限界

Anonymity set サイズで proof cost 線形、epoch / front-running 課題

後継への影響

Account 派の理論ピーク。実装 adoption は UTXO 派に劣後。

クリックで詳細展開

Zetheraccountring
Veksel: Coin-Based Mixer with Better Anonymity
2022
Engelmann et al.
AsiaCCS 2022
要点

Tornado 系 mixer の改良。anonymity set を時間で更新する設計。

暗号構成

SNARK-based, sliding-window anonymity set

限界

Production 実装は limited

後継への影響

Anonymity set の時間管理に関する重要な参照点。

クリックで詳細展開

mixersliding window
ZEXE: Decentralized Private Computation Framework
2020
Bowe, Chiesa, Green, Miers, Mishra, Wu
IEEE S&P 2020
要点

DPC (Decentralized Private Computation) framework。Records + birth/death predicate で general private SC。

暗号構成

Marlin SNARK + BLS12-377 / Edwards-BLS12 cycle

限界

Proof aggregation overhead, complex constraints

後継への影響

Aleo / VeriZexe / Aztec 3 の records モデル前駆。

クリックで詳細展開

DPCrecordsframework
ZeroPool: UTXO Generic Circuits for Shielded Pool
2020
ZeroPool team
ZeroPool spec / docs
要点

RAILGUN・ZKBob の祖先。任意 input/output count を扱う UTXO 回路の汎用化を初めて提案。

暗号構成

Substrate origin → Circom Groth16 + BN254, Diversified address

限界

本体は wind-down、技術的 DNA のみ継承

後継への影響

RAILGUN・ZKBob・Tornado Nova の base。

クリックで詳細展開

ZeroPoolgeneric UTXO