1. ダークプール研究の全景
1.1 ダークプールの三大論点
① カウンターパーティ発見
「売りたい人」と「買いたい人」が出会う仕組み。
暗号化したまま match(buy, sell) をどう走らせるか、
また LP がいない初期状態(cold start)をどう乗り越えるか。
PSI / bulletin board / Renegade のリレイヤー設計が代表例。
② MEV・front-running 耐性
operator が user の encrypted order から情報を抜けないか、 pre-trade と post-trade の差分から intent を再構成できないか。 Atlas-X が指摘した Correlated-Output DP はこの軸の代表的脅威。
③ 規制・KYC・監査可能性
SEC Regulation ATS, MiFID II SI, FinCEN Travel Rule への適合。 auditor backdoor を破壊せずに埋め込む設計(threshold decryption / view key / ZKP attestation)が 未だに研究の最前線。
1.2 設計空間(プライバシー強度 × パフォーマンス)
1.3 何を「深掘り」するのか
本ページは既存の 設計空間概観・ 系譜図・ トリレンマ・ 実装解剖 とは独立に、以下を扱う:
- 各論文の 回路擬似コード・MPC ラウンド数・通信量・攻撃モデル の比較
- FHE における TFHE bootstrapping・programmable bootstrap・priority queue 演算 の解剖
- Bucket 量子化の Δ vs anonymity set の数式と曲線
- Atlas-X が発見した Correlated-Output DP の脅威モデル
- 4 つの 構造的バリア と 10 の 未解決研究テーマ
1.4 タイムライン(2009 → 2026)
2. MPC ダークプールの解剖
f = match(orders) を、operator も含む全員が暗号空間で実行する。
本タブでは MPC ダークプールの 4 つのマイルストーン論文を、回路・ラウンド数・通信量・線形性制約 の観点で解剖する。
2.1 マイルストーン論文 4 本の比較
| 論文 | 年/会議 | 規模 | throughput | プロトコル | 攻撃モデル | 制約 |
|---|---|---|---|---|---|---|
| MPC Goes Live | FC 2009 | n=3 (sugar beet) | ~1200 bidder/30 min | BGW + Shamir | honest majority, semi-honest | auction (1 回限り) |
| MPC Dark Side | 2019 (Cartlidge & Smart) | n=3 | ~800 orders/sec | SPDZ 2-party | dishonest majority, malicious | volume match のみ |
| All-for-One | FC 2022 | n≤100 | AWS < $1/auction | SPDZ + GPU (LowGear/HighGear) | dishonest majority, malicious | 線形演算のみ |
| Prime Match (JPM) | USENIX 2023 | n=2 (bilateral) | ~10 instr/sec | SPDZ-2k variant | malicious + abort | midpoint pricing 固定 |
2.2 MPC Goes Live (FC 2009) — 史上初の MPC 実用化
デンマークの sugar beet root の年次 auction(約 1200 農家)を 3 サーバ(DKS, SCRG, Partisia)で BGW プロトコル+Shamir secret sharing で執行。 2008 年 1 月 14 日に実運用、当日 1229 入札を 30 分で確定。MPC が 論文の世界から本番取引に渡った瞬間として歴史的価値を持つ。
計算する関数(auction clearing price)
// 入力: 各農家 i の 1 ロット辺り入札ベクトル b_i = (b_i^1, ..., b_i^4000)
// 出力: 市場清算価格 p* と各農家の確定数量 q_i
p* = argmin_p | Σ_i sell_i(p) − Σ_i buy_i(p) |
q_i = quantity at p*
MPC レベルでの注意点
- 線形演算のみで表現するため、価格は離散グリッド上で step-wise 探索する
- 3 サーバ間の通信は SSL、各サーバは別組織が運用 → honest majority 仮定の現実化
- liveness:1 サーバダウンでも継続可能、ただし 2 サーバが結託すれば leakage
2.3 MPC Dark Side (2019) — Cartlidge & Smart
「市場マイクロストラクチャ屋」と「MPC 研究者」が初めて手を組み、金融現実とプロトコル仮定のギャップ を初めて言語化した論文。 SPDZ 2-party, ~800 orders/sec の volume-match dark pool を PoC 実装。
ダークプール特有の MPC 演算プリミティブ
// 共通入力: encrypted order (side, qty, account)
// 公開入力: ベンチマーク価格 p_mid(lit market から)
// プリミティブ① 線形比較(マッチング)
matched_qty = min(buy_qty, sell_qty) // 比較は dirty work:bit-decomposition で表現
// → SPDZ では ~log(2^32) = 32 round
// プリミティブ② 残量更新
buy_qty −= matched_qty
sell_qty −= matched_qty
// プリミティブ③ FIFO キュー操作
queue.dequeue() // index は secret → oblivious selection が必要
性能内訳(800 orders/sec)
- 各 order 当たり ~125 ms ラウンドトリップ、内訳は比較 80%・I/O 15%・暗号 5%
- pre-processing(multiplication triple 生成)を offline phase に切り出すことで online を加速
- 線形演算のみに限定したため limit order book 全体はサポートしない(volume-match 限定)
2.4 All-for-One (FC 2022) — n≤100 の壁を AWS < $1/auction で破る
大規模 sealed-bid auction を MPC で執行する場合、n^2 通信 がボトルネック。本論文は SPDZ + LowGear/HighGear pre-processing + GPU 加速 + AWS m5.24xlarge で n=100 でも 1 ドル未満で 1 回 auction を捌く設計を提案。
通信量モデル
where R = depth of comparison circuit ≈ log(price_grid)
n=100, σ=64, R=20 で サーバ間総通信 ~12 GB/auction。GPU 上で SPDZ multiplication を batch 化し、 従来 30 分かかっていた MPC pre-processing を ~90 秒に短縮。
2.5 Prime Match (USENIX 2023) — JPMorgan の本番運用記録
世界初の 銀行本番 MPC dark pool。2021-09 から JP Morgan の機関顧客向けに稼働、 bilateral matching(n=2)+ midpoint pricing という思い切った simplification で本番品質を実現。
simplification の哲学
| 機能 | 従来 dark pool | Prime Match | 理由 |
|---|---|---|---|
| マッチング相手数 | n 多者 | n=2 (bilateral) | n^2 通信を回避、Bank-Client の自然な構造 |
| 価格決定 | 各種 (mid / VWAP / pegged) | midpoint 固定 | price discovery を MPC 外に逃がす |
| 注文タイプ | limit / market / iceberg / pegged | indication of interest (IOI) のみ | 非線形演算を排除 |
| partial fill | あり | あり (matched = min(buy, sell)) | 線形演算で表現可能 |
結果:~10 instr/sec というスループットでも 銀行 - 顧客の bilateral 性 ゆえに業務上は十分。 「academic な multi-party setting に固執せず、2-party で良い実利問題 を切り出した」ことが商用成功の鍵。
2.6 MPC vs FHE 性能比較
3. FHE ダークプールの解剖
3.1 FHE スキーム選択(TFHE / CKKS / BFV)
| スキーム | 得意演算 | 不得意演算 | ダークプール適性 |
|---|---|---|---|
| TFHE | bit-level 比較・条件分岐 programmable bootstrap | 大きな整数の乗算 | ★★★★★ (matching に最適) |
| CKKS | 近似実数・SIMD batching | 厳密比較 | ★★ (price aggregation 用途) |
| BFV / BGV | 整数 SIMD batching | 条件分岐 / 比較 | ★ (sealed-bid 集計のみ) |
3.2 Secret Match (ICAIF 2020)
Goldman Sachs のチームによる、FHE のみで完結する dark pool の概念実証。 CKKS を使い volume-match と continuous-time matching を実装。operator が暗号鍵を持たないため、operator は trust 不要。
マッチング回路(擬似コード)
Encrypted match(Enc(order_buy[]), Enc(order_sell[])) {
for i in 1..N:
for j in 1..N:
// すべての (i,j) ペアを舐める(oblivious)
cond = Enc.LessEq(order_sell[j].price, order_buy[i].price)
qty = Enc.Min(order_buy[i].qty, order_sell[j].qty)
fill = Enc.Mul(cond, qty)
order_buy[i].qty = Enc.Sub(order_buy[i].qty, fill)
order_sell[j].qty = Enc.Sub(order_sell[j].qty, fill)
output[i][j] = fill
return output
}
性能(論文値)
- N=10 で 1 マッチング ~5 秒、N=100 で ~5 分(O(N²) 比較ペア)
- CKKS の近似性により 厳密な qty 整合性 は post-decrypt で再確認が必要
- bootstrapping が 各 Mul / LessEq の度に発生するのが律速
3.3 Priority Queue (PETS 2023)
FHE で order book 風の優先度付きキュー を実現する画期的な技法。TFHE の programmable bootstrap を駆使し、
暗号文のまま insert / extract-min / decrease-key をすべて oblivious に実行。
programmable bootstrap とは
bootstrap と同時に任意関数 f を適用。乗算ノイズリセットも兼用。
従来の TFHE では bootstrap は identity しか適用できなかったが、 programmable 化により 暗号空間で if-then-else・min・max・LUT 全般 が可能になった。
Encrypted Priority Queue の構造
// 各 slot は (Enc(priority), Enc(payload)) のペアを保持
// すべての操作は LUT (Look-Up Table) として 1 PBS で表現
insert(c_p, c_v):
for i in 1..size:
cond_i = PBS(c_p − slot[i].priority, sign_LUT) // 比較
slot[i] = oblivious_swap(slot[i], (c_p, c_v), cond_i) // 条件付き入替
extract_min():
min_idx = argmin_PBS(slot[].priority) // O(size) PBS
result = oblivious_select(slot, min_idx)
slot[min_idx].priority = Enc(+∞)
return result
限界
- 1 操作あたり O(size) の PBS が必要 → size=64 で 1 操作 ~10 秒
- FHE のノイズ管理が深刻:insert / extract を交互に大量実行するとノイズ蓄積で再 bootstrap 増加
- operator は trust 不要だが liveness は依存 → operator-DoS 攻撃に弱い
3.4 FHE ダークプールの根本的トレードオフ
強み
- operator は trust 不要、鍵は client が保持
- n=1 サーバで完結 → 通信パターン leakage が無い
- 非対話型なので latency は 計算時間そのもの
弱み
- Bootstrap が圧倒的に重い(~1ms / PBS、operation あたり ~100-1000 PBS)
- 非線形演算(比較)が 1 演算 = 1 PBS 単位で逐次
- 並列化が 暗号文の冪乗構造に縛られ、単純な GPU SIMD と相性が悪い
- 鍵管理:client 鍵を失うと 注文が永久に復号不能
4. Bucket / 量子化系:Kicking-the-Bucket 解剖
4.1 量子化数式と幾何学
注文ボリューム v を粒度 Δ でバケット化:
direction (買い/売り) は bucket index の偶奇に埋め込む:
Observer は encoded_id しか見えないので、同じ bucket に落ちた全 user が 区別不能。
ただし bucket 内の 正確な volume や 注文時刻 は別の sub-protocol で隠蔽が必要。
4.2 Δ vs anonymity set の数学的関係
4.3 攻撃モデル
passive observer
encoded_id のみ観測。同じ bucket に多数 user がいれば k-anonymity 成立。 ただし注文時刻からのタイミング攻撃は別途対策必要(mixnet / batching が必要)。
colluding pool participant
同 bucket の 1 user が attacker だった場合、残り (k-1) 人に anonymity が縮退。 Kicking-the-Bucket では bucket 当たり最低 k_min 人が揃うまで matching を遅延(k-anonymous batching)。
4.4 制約と限界
- tiny order の grouping:retail size の注文は同 bucket に大量に集まりやすい → anonymity 高
- large order の splitting:機関の block trade は単独で 1 bucket を埋める → anonymity 1(裸)
- これを救うため 動的 splitting(block を Δ 単位に分割)が提案されているが、 splitting pattern 自体がフィンガープリントになるという新たな leakage が発生
- bucket 粒度の 事前公開 が必要 → adversary も Δ を知っており、Δ - ε のオーダーで確実に bucket 1 を埋める攻撃が可能
4.5 Kicking-the-Bucket vs 他系統
| 軸 | Bucket | MPC | FHE | DP |
|---|---|---|---|---|
| 性能 | CEX 同等 | 中 | 低 | 高 |
| プライバシー保証 | k-anonymity (heuristic) | computational (semantic) | computational (semantic) | (ε,δ)-DP (formal) |
| operator trust | 必要 | 不要 (n-1 まで) | 不要 | 必要 |
| 大規模 order | 弱い | 対応 | 対応 | 対応 (noise 加算) |
| 実装難度 | 低 | 中 | 高 | 中 |
5. DP ダークプール:Atlas-X と Correlated-Output DP の発見
5.1 古典 DP のおさらい
Pr[M(D) ∈ S] ≤ exp(ε) × Pr[M(D') ∈ S] + δ
典型的にはガウス雑音 / ラプラス雑音を出力に加える。 ダークプール文脈では「個別 user の order が含まれているかどうかを観測者が判別できない」を意味する。
5.2 素朴な DP の何が問題か(Atlas-X の発見)
古典 DP は 1 回の releasing に対する保証である。しかしダークプールでは:
- 同じ user が 複数 day / 複数 venue に注文を分散
- 各 venue が独立に DP-noise を加える
- attacker は 複数の DP-noisy outputs を結合 してノイズを平均化 → user 単位で intent が判明
これを Correlated-Output DP (CO-DP) 問題と呼ぶ。Atlas-X は明示的にこの脅威を fomalize し、 standard composition theorem では捕捉できないことを示した。
5.3 Correlated-Output DP の脅威モデル
5.4 Atlas-X の対策:Indifferential Privacy
Atlas-X は Indifferential Privacy という強化定義を提案。
Pr[M(D) ∈ S | aux] ≤ exp(ε) × Pr[M(D') ∈ S | aux] + δ
つまり attacker が任意の auxiliary 情報(他 venue の noisy output 含む)を持っていても プライバシー保証が崩れない。 これは Composition theorem ではなく 定義レベル での補強。
5.5 Indifferential Privacy (2025) の追加技法
- noise schedule の coordination:複数 pool が同一 user に対しては 正の相関を持つ noise を意図的に加える → 平均化攻撃を無効化
- bounded queries per user:1 user の合計クエリ数に上限 → privacy budget の漏洩境界を確定
- dummy traffic injection:低ボリューム時間帯に decoy order を注入 → 真の volume の anonymity set 拡大
5.6 Atlas-X と他系統の関係
Renegade (ZK + MPC) への影響
Renegade は handshake はオフチェーン MPC、settlement は ZK proof という設計。 しかし matching 後の settlement event の timing パターン は CO-DP の脅威を受ける。 → Renegade は random delay + batched settlement で対応中。
Penumbra (sealed-bid batch auction) への影響
Penumbra は ZSwap で per-block sealed-bid batching。 連続 block 間で同一 user の participation が判別可能なら CO-DP リスク。 → Penumbra は per-block fresh ZSwap key + decoy で軽減。
6. 設計トリレンマ:4 つの構造的バリア深掘り
6.5 4 バリアの相互依存
4 バリアは独立ではなく、互いを悪化させる relationships を持つ:
- computation cost を下げると(precompiles に移すなど)→ operator centralization が増す
- counterparty discovery を改善すると(active relayer 設置)→ output correlation leakage 増(active prober として機能)
- output correlation を抑えると(dummy traffic / random delay)→ computation + UX cost 増
結果として「4 すべてを同時に最適化する設計」は数学的に不可能、というのが現状の業界感覚。
7. 未解決問題:研究機会 10 マップ
n=1000 以上のスケーリング問題
非線形演算サポート(limit / partial fill / iceberg)
マルチアセット dark pool
公開価格発見(public price discovery without leakage)
MEV 耐性の形式的証明
規制対応:auditor backdoor の安全な設計
liquidity bootstrapping(cold start 問題)
operator による front-running 防止
cross-pool dark pool 連携
encrypted mempool との融合
7.11 研究機会ヒートマップ
8. 論文インデックス(23 本詳細カード)
raw/papers/dark-pool/ 配下 23 本を 家族・要点・数式・課題 で詳細カード化。
フィルタで family ごとに絞り込み、クリックで展開。
要点:BGW + Shamir secret sharing で 3-server n=1229 の sealed-bid double auction。2008-01-14 当日 30 分で清算完了、MPC が論文から本番取引へ。
数式:p* = argmin_p |Σ sell(p) − Σ buy(p)|、価格は離散グリッド step-wise 探索
課題:年次 1 回限り、線形演算限定、honest majority 仮定
MPChonest majorityproduction
要点:SPDZ 2-party、volume-match のみ。市場マイクロストラクチャ屋 × MPC 屋 の最初の真面目な対話。
数式:matched_qty = min(buy_qty, sell_qty) を SPDZ で 32 round 比較
課題:limit order book サポート無し、operator collusion で全 leak
MPCmaliciousPoC
要点:SPDZ + LowGear/HighGear preprocessing + GPU 加速で n=100 を実用化。preprocessing を別 phase 化することで online 軽量化。
数式:通信量 O(n² × R × log(2^σ))、n=100 で 12 GB/auction
課題:preprocessing 段階の設定の重さ、線形演算限定
MPClarge-scaleGPU
要点:n=2 + midpoint pricing + IOI のみ という思い切った simplification で 銀行本番を達成。2021-09 から稼働。
数式:fill = min(client_qty, jpm_qty)、価格は p = (best_bid + best_ask) / 2
課題:~10 instr/sec の throughput、bilateral 限定で multilateral discovery 無し
MPCproductionJPM
要点:MPC dark pool を multi-agent simulation 上で性能評価。market quality 指標(spread, depth, price impact)を測定。
課題:実際の trader 行動 modeling の妥当性、attack scenario の網羅性
MPCsimulation
要点:CKKS で volume-match を実装、operator は 鍵を持たないため trust 不要。N=10 で ~5 秒。
数式:fill[i][j] = LessEq(sell[j].price, buy[i].price) × Min(buy[i].qty, sell[j].qty)
課題:O(N²) ペアループ、bootstrapping 律速、CKKS 近似性
FHEtrustless operator
要点:暗号文のまま insert / extract-min を実行、order book 風機能を FHE で初実装。
数式:PBS(c, f): Enc(x) → Enc(f(x)) で 1 PBS 当たり LUT 1 適用
課題:1 操作 O(size) PBS、size=64 で 10 秒、ノイズ蓄積
FHETFHEpriority queue
要点:bucket(v) = ⌊v/Δ⌋ × Δ、direction を bucket index 偶奇に埋め込み。CEX 同等 throughput 達成。
数式:encoded_id(v, side) = 2⌊v/Δ⌋ + (side==BUY ? 0 : 1)
課題:large block trade で anonymity set=1、Δ-ε 攻撃
Bucketk-anonymity
要点:複数 query の output 相関から DP guarantee が崩れる現象を formalize。standard composition では捕捉できないことを示す。
数式:Pr[M(D) ∈ S | aux] ≤ exp(ε) Pr[M(D') ∈ S | aux] + δ (Indifferential Privacy)
課題:実装コスト(noise coordination)、auxiliary information のモデリング
DPCO-DP
要点:Indifferential Privacy + noise coordination + dummy traffic の 3 段構成。multi-pool / multi-day attacker に対する保証。
数式:noise coordination — pool A と pool B の noise を 正に相関させ平均化攻撃を無効化
課題:noise coordination の oracle 設計、privacy budget の管理
DPmulti-pool
要点:bounded queries per user、dummy traffic injection、cross-pool budget coordination の 3 技法を組合せ。
数式:privacy budget per user Σ ε_i ≤ ε_total、超過時は matching reject
課題:UX 影響(reject される user)、dummy traffic の経済負担
DPproduction-ready
要点:handshake は off-chain 2-party MPC、settlement は on-chain ZK proof。relayer は中央集権だが、open set で入替可能。
数式:handshake は commit(order) → MPC compare → reveal match、settlement は SNARK(state_transition)
課題:relayer 信頼、CO-DP 攻撃(settlement timing leakage)
ZKMPCproduction
要点:ZK で encrypted order book を実装、formal game-theoretic な MEV 耐性を主張。
数式:order = (commit(price), commit(qty), nullifier)、match は Plonk style circuit で検証
課題:proving time、relayer-MEV の completely 排除は未達
ZKgame-theoretic
要点:MPC matching + on-chain settlement の合わせ技、cross-chain assets サポート。
課題:cross-chain message の atomicity、operator economics
Hybridcross-chain
要点:batched sealed-bid auction を ZK で証明、Penumbra 系の進化形。per-block fresh circuit で CO-DP 軽減。
課題:proving time per block、validator overhead
ZKbatched auction
要点:Solana の高速性を活かし、encrypted intent + AMM matching。Light Protocol の compressed account を使用。
課題:encryption overhead、Solana validator の TEE 信頼
AMMSolana
要点:VDF (Verifiable Delay Function) で時相的 commit-reveal を強制、committee-free sealed-bid auction。
課題:VDF parameter、liveness が VDF prover に依存
Sealed-bidVDF
要点:on-chain sealed-bid を smart contract で実現、commit-reveal scheme + 経済 deposit。
Sealed-bidsmart contract
要点:threshold encryption committee + smart contract の組合せ、fairness を経済罰で保証。
Sealed-bidthreshold
要点:TEE (SGX) + MPC を組合せ、derivatives 取引のプライバシー保護。centralized exchange の operator-side プロトタイプ。
課題:SGX side-channel、TEE attestation chain の信頼
Sealed-bidTEEMPC
要点:MiFID II 下での Turquoise Plato Block Discovery の運用解析。LLM Wiki 文脈では 規制対応 reference。
analysisMiFID II
要点:dark pool の取引 receipt から逆算する WKA 攻撃 をモデル化。CO-DP の前駆研究。
attacktheory
要点:Deep Ocean は industry-side dark pool 設計提案、Jigsaw は 2025 の最新 ZK + intent-based dark pool 提案。
designindustry
関連ページ
- Dark Pool Design Space Survey — 設計空間概観
- Dark Pool Research Genealogy — 系譜図
- Dark Pool Trilemma & Adversary Models — トリレンマと脅威モデル
- Dark Pool Implementation Anatomy — 実装解剖
- Sealed-Bid Auction Survey — sealed-bid auction の系譜
- FHE in DeFi Survey — FHE 全般
- DP in DeFi Survey — DP 全般
- MEV & Privacy Survey — MEV 文脈