監査可能決済 + 匿名資格情報

理論と DeFi 応用 — 1999 → 2024 系統図

核となる課題

プライバシーを保護する決済システムで、規制当局や監査者がなおコンプライアンスを検証できる方法とは?ユーザーの匿名性を破壊することなく。

答えには 2 つの相互に結合したプリミティブが必要です。

監査可能決済
zkLedger / PGC / UTT 族
+
匿名資格情報
KVAC / PS-sigs / Coconut
コンプライアント・プライベート DeFi
PEReDi / Platypus / Privacy Pools

1999 → 2024 系統図タイムライン

1999 2005 2015 2017 2018 2019 2020 2021 2022 2024 Sander-TaShma Crypto 1999 監査可能電子現金 Compact E-Cash Eurocrypt 2005 CHL — 祖先 Coconut NDSS 2019 閾値 PS-sigs PS-sigs CT-RSA 2016 再ランダム化可能署名 SyRA 2024 Sybil 耐性・匿名 説明責任 付きプライバシー 2016 · Zerocash+trace Solidus CCS 2017 PVORM / ORAM zkLedger NSDI 2018 NIZK 和証明 PGC ESORICS 2020 Twisted ElGamal MiniLedger ESORICS 2021 コンパクト zkLedger UTT 2022 KVAC + 予算 基礎暗号技術(上側) コンプライアンス / 監査システム(下側) 匿名資格情報プリミティブ 初期コンプライアンス試行

重要な洞察:3 つの設計軸

誰が監査するか 完全透明 監査者鍵(PGC) 閾値委員会(Coconut) 任意の検証者(zkLedger)
いつ 常にオープン イベント前メタデータ(Solidus) イベント後オープン(PGC) ポリシートリガー(zkLedger 和)
許可制 既知参加者 Solidus / Fabric(銀行コンソーシアム) | オープン参加 zkLedger / PGC / UTT

監査可能決済システム

1999–2022 年間における 8 つのシステム。年代順に並べてあります。

システム 年 / 会議 コア・プリミティブ 監査方法 許可制 長所 短所
Sander-TaShma Crypto 1999 ブラインド署名 + 公開ログ 監査可能な合計のみ 初の形式的扱い。個人は完全匿名 集計のみ。個別コイン監査なし
Compact E-Cash Eurocrypt 2005 CHL MAC + ウォレット構造 二重支払い検出 k コインを O(1) ウォレットで処理。現代匿名資格情報の祖先 規制監査チャネルなし
説明責任付きプライバシー 2016 Zerocash + トレーシング鍵 当局鍵復号化 完全プライバシーから公開まで。当局がすべてをトレース可能 トレーシング鍵は単一障害点
Solidus CCS 2017 PVORM / ORAM(Cecchetti ら) 銀行内部 ORAM。公開証明 銀行向け最適。MPC+ZK で銀行側機密決済。初の同類 ORAM オーバーヘッド重い。銀行仲介のみ
zkLedger NSDI 2018 Pedersen コミットメント + NIZK テーブル 任意の検証者が列和チェック 監査者鍵不要。監査者は集計証明のみ確認 トランザクション単位で全コミットメントテーブル更新。スケーリング困難
PGC ESORICS 2020 Twisted ElGamal + Bulletproofs 監査者鍵復号化 分散化 + 監査可能。加法準同型 AND 復号化可能 監査者鍵は SPOF。範囲証明仍多額
MiniLedger ESORICS 2021 zkLedger + アキュムレーター 和証明 + 履歴剪定 ログサイズ削減。監査可能性を保ちながら剪定可能 複雑なアキュムレーター更新。zkLedger スケーラビリティ限界を継承
Fabric Auditable 2020 PS-sigs + ZK 証明 発行者 / 監査者鍵 Hyperledger ネイティブ。エンタープライズ適性強い 発行者信頼必須。許可制のみ
UTT 2022 KVAC + ZK(予算トレース) 支出制限強制 分散電子現金 + ユーザー単位予算監査。直接 CBDC 祖先 KVAC 表現力限界。発行者 = 検証者制約

設計軸 — 詳細

軸 1:誰が監査できるか

最も制限的 完全透明(Ethereum)
→ 監査者鍵 — 鍵を持つ者(PGC、Accountable Privacy)
→ 閾値委員会(Coconut: t-of-n)
最もオープン 公開証明を持つ任意の検証者(zkLedger)

軸 2:何が監査をトリガーするか

常にオープン(透明チェーン)
→ イベント前メタデータ(Solidus、ZKBob)
→ イベント後、鍵でオープン(PGC)
→ ポリシートリガー集計(zkLedger 和証明)

軸 3:許可制 vs 非許可制

許可制 — Solidus、Fabric Auditable Tokens
既知参加者、銀行コンソーシアム、強い信頼

非許可制 — zkLedger、PGC、MiniLedger、UTT
オープン参加、弱い信頼仮定

重要な論文:zkLedger(NSDI 2018)

著者: Narula、Vasquez、Virza(MIT)。パターン: 各列が参加者残高を表すコミットメント・テーブル。

コミットメント・テーブル・レイアウト: ───────────────────────────────────────────── tx_1 │ commit(v_A) │ commit(v_B) │ ... │ commit(v_n) tx_2 │ commit(v_A) │ commit(v_B) │ ... │ commit(v_n) ───────────────────────────────────────────── 監査者証明:Σ commit(v_i) = commit(total) → 監査者は個別 v_i を見ずに集計を検証 → 各参加者:自分のコミットメントが適切に形成されたことを NIZK で証明

重要な洞察:監査者はどの参加者がどの額を保有しているかを学びません。列和が正しいことだけ確認します。これは「データ公開なしのポリシー検証」です。

匿名資格情報ピラミッド

コンプライアンス対応 DeFi すべてを可能にするコア・プリミティブ。3 層が相互に構築されます。

KVAC / 代数 MAC Chase、Meiklejohn、Zaverucha — CCS 2014 MAC 基盤 · 発行者 = 検証者 · ペアリング不要 · 高速 短い再ランダム化署名 Pointcheval & Sanders — CT-RSA 2016 公開検証可能 · 再ランダム化可能 · 選択開示 · ペアリング Coconut Sonnino ら — NDSS 2019 閾値 t-of-n · 分散発行 Coconut 閾値 · CBDC / コンソーシアム PS-sigs デファクト標準 · KYC/DeFi KVAC 高速 · UTT 内部 / SNARK レイヤー 1 基礎 レイヤー 2 標準 レイヤー 3 分散

比較:KVAC vs PS-sigs vs Coconut

性質 KVAC(CCS 2014) PS-sigs(CT-RSA 2016) Coconut(NDSS 2019)
発行者 1 1 n(分散)
誰が検証できるか 発行者のみ 誰でも 誰でも
署名サイズ 2 群要素 2 群要素 2 要素 + シェア・データ
ペアリング必須 いいえ はい はい
非リンク可能性 提示ごとに再ランダム化 提示ごとに再ランダム化 提示ごとに再ランダム化
選択開示 限定的 はい はい
信頼モデル 1 発行者 — SPOF 1 発行者 — SPOF t-of-n — 閾値安全
主要ユースケース UTT 内部 / SNARK 互換資格情報 KYC / 許可台帳 / Fabric CBDC / 銀行コンソーシアム / PEReDi

PS-sigs が非リンク可能性を実現する方法

-- 発行 -- 発行者が属性 m = (m_1, ..., m_k) に署名: σ = (h, h^(x + Σ y_i·m_i)) ここで x,y_i は秘密鍵 -- 各提示時に再ランダム化 -- σ' = (h^r, (h^(x + Σ y_i·m_i))^r) ここで r ← Z_p ランダム → σ と σ' は非リンク可能。提示ごとに異なる -- 占有証明 ZK -- π: "I know σ' and attributes m_1,...,m_k such that σ' is valid AND m_age ≥ 18 AND m_country ∈ {US, EU}" → 選択開示:必要なものだけ公開

Coconut 閾値発行

ユーザー
資格情報要求
当局 1
σ_1 部分
当局 2
σ_2 部分
当局 t
σ_t 部分
集計された σ
有効な PS-sig

セキュリティ:t-1 以下の当局が結託 → ユーザー属性について情報論的ゼロ。t 個の当局が協力したときのみ有効な資格情報が生成。

DeFi KYC 応用マップ

匿名資格情報が DeFi コンプライアンス要件と出会う 3 つの応用カテゴリ。

KYC / アイデンティティ
zkKYC(2021) 一般 SSI + ZKP コンセプト。ユーザーが身元を明かさずに KYC 属性を証明。設計空間をブートストラップ。
zkKYC-DeFi(2022) KYC 発行者 + DON(分散オラクル・ネットワーク)。オンチェーン検証可能な ZK 証明、オフチェーン KYC。TradFi コンプライアンスを DeFi に橋渡し。
ZEBRA(2022) SNARK 化 KVAC + Sybil 耐性。オンチェーン検証可能。1 資格情報 1 人の制約を非リンク可能性なしで保持。
CanDID(S&P 2021) Web2 OAuth ID を分散資格情報に橋渡し。TEE + MPC 委員会。単一発行者がアイデンティティを制御しない。
監査可能決済
UTT(2022) KVAC 基盤分散電子現金。予算トレース:時間窓ごとの支出制限。CBDC 設計で匿名資格情報を用いる直接祖先。
PEReDi(CCS 2022) Coconut 閾値資格情報 → 規制 CBDC。5-of-10 発行者委員会。強い非リンク可能性 + コンプライアンス選択開示。
Platypus(CCS 2022) PS-sigs → 強い非リンク可能性を持つ CBDC。匿名トークンで予算強制。PEReDi との同時発表、異なる設計トレードオフ。
Fabric Auditable Tokens PS-sigs → Hyperledger Fabric。エンタープライズグレード。発行者と監査者は別鍵。許可制だが監査可能。
Privacy Pools(2023) 関連セット + ZK メンバーシップ証明。完全脱匿名化なしのコンプライアンス:「悪いセットにいない」を身元公開なしで証明。
Sybil 耐性
CanDID(S&P 2021) MPC 委員会が OAuth 資格情報検証。閾値発行:単一方が Sybil 鍛造不可。Web2 互換。
SyRA(2024) Sybil 耐性匿名署名。文脈ごとに一意の疑似名タグ:同じユーザーは同文脈で同タグ、文脈間で異なる。クロスアプリ・リンケージ防止。
ZEBRA(2022) SNARK 化 KVAC。ナリファイア二重使用防止。オンチェーン検証可能 Sybil 耐性、非リンク可能性なし。
Worldcoin / IDs バイオメトリック PoP → 匿名資格情報。一意の人間性 ZK 証明。関連設計空間だが虹彩バイオメトリック使用。

応用アーキテクチャ・パターン

パターン A:オフチェーン KYC → オンチェーン ZK

従来 KYC プロバイダーが資格情報をオフチェーン発行。ユーザーが資格情報属性の ZK 証明を生成。スマートコントラクトが身元を見ずに証明を検証。

zkKYC-DeFi DON 橋

パターン B:閾値発行委員会

n 当局各々が KYC 文書を独立検証。t-of-n 部分署名が資格情報に集計。単一当局が脱匿名化不可。

Coconut PEReDi DART

パターン C:Web2 橋(CanDID)

Google/GitHub 等の OAuth トークンが TEE 内 MPC 委員会で処理。出力:ブロックチェーン ZK 証明互換の分散資格情報。

TEE+MPC CanDID

パターン D:予算 / 支出制限

ユーザーが符号化支出予算を持つ匿名資格情報を保有。各支出が予算減少コミットメントを公開。監査者が合計 ≤ 制限を個別支払いを見ずに検証。

UTT Platypus ZKBob

プライバシー・コンプライアンス・トレードオフ・マップ

プライバシー・レベル → 監査可能性 → Ethereum(透明) Solidus zkLedger PEReDi / Platypus PGC Zerocash Privacy Pools ★ パレート・フロンティア

パレート・フロンティア:フロンティア上のシステムは与えられたプライバシー・レベルで監査可能性を最大化。Privacy Pools(2023)は悪いセット非メンバーシップを証明してフロンティアを推進することを目標とする。

CBDC 接続:Coconut から本番へ

PS-sigs と Coconut がどのように規制 CBDC 設計と本番隣接システムに流れ込むか。

系統:Coconut → PEReDi → DART

PS-sigs(2016)
Pointcheval-Sanders
再ランダム化可能署名
Coconut(NDSS 2019)
Sonnino ら
閾値 t-of-n 発行
PEReDi(CCS 2022)
Luo ら
規制 CBDC プロトコル
DART
本番隣接
本番 CBDC 提案

PS-sigs 基盤

コア・プリミティブを提供:2 要素署名で再ランダム化可能(非リンク可能提示)かつ選択開示可能(必要な属性のみ表示)。

重要:ペアリング親和的群は高速発行と高速検証の両方を可能にします。BLS12-381 が標準実装化。

Coconut 追加

PS-sig 発行を分散化。t-of-n 当局各々が部分署名を生成。クライアントが有効な完全 PS-sig に集計。単一当局が属性を学習しない。

主要用途: 「銀行コンソーシアム」または「中央銀行委員会」を集合発行者として、単一点信頼を回避。

PEReDi 設計

Coconut 資格情報を用いた完全 CBDC プロトコル:

  • 銀行委員会:5-of-10 部分署名発行
  • ユーザー:匿名トークン資格情報を保有
  • 支払い:トークン有効性 ZK 証明 + 金額範囲証明
  • 規制:監査者が個別リンケージなしに合計フロー集計

Platypus(CCS 2022)

PS-sigs を直接使う同時 CBDC 設計(閾値ではなく単一発行者)。フォーカス:

  • 支払いセッション間の強い非リンク可能性
  • 匿名トークンで予算強制
  • コンプライアンス向け効率的範囲証明

PEReDi とのトレードオフ:よりシンプル(1 発行者)だが信頼仮定強い。

アーキテクチャ・フロー:規制 CBDC 支払い

中央銀行委員会 5-of-10 当局 Coconut 部分署名 σ_1 ... σ_10 → σ_agg 資格情報発行 ユーザー 資格情報 σ を保有 σ を再ランダム化 → σ' π(ZK 証明)を生成 支払い + π マーチャント / 台帳 π を検証 ナリファイアをチェック 身元を学習しない フロー・データ を集計 規制当局 / 監査者 Σ 金額のみを確認 ポリシー:AML ≤ 閾値 ナリファイア・レジストリ 二重支払いを防止 公開。身元情報なし nf = PRF(sk, nonce) KYC 当局 身元を一度検証 → 委員会に信号

主要な設計差別化要因

性質PEReDiPlatypusUTTDART
資格情報プリミティブ Coconut(閾値 PS-sigs) PS-sigs(単一発行者) KVAC(発行者=検証者) Coconut 亜種
発行者構造 5-of-10 委員会 単一中央銀行 単一発行者 閾値
予算強制 はい はい はい はい
非リンク可能性 完全(再ランダム化) 完全(再ランダム化) 部分的 完全
監査方法 集計コンプライアンス 監査者鍵 予算トレース 選択的トレース
会議 CCS 2022 CCS 2022 2022(arXiv) 産業

実装ガイド

決定木、コード構造ヒント、ビルダー向けオープン問題。

決定木:どの資格情報プリミティブを使うか

資格情報ユースケース? ここから開始 第三者検証が必要か? (発行者検証のみではなく) いいえ KVAC 高速、ペアリングなし UTT / ZEBRA パターン はい 複数発行者 / 委員会か? 銀行コンソーシアム / CBDC いいえ PS-sigs 公開検証可能 Fabric / Platypus パターン はい Coconut t-of-n 発行 PEReDi / DART パターン

どの監査システムを使うか

zkLedger パターンを使う場合…

  • 既知参加者セット(銀行コンソーシアム)
  • 任意の検証者に証明可能な集計和が必要
  • 単一監査者鍵は受け入れられない
  • 参加者:<100(テーブルサイズ制約)
zkLedger MiniLedger

PGC / 監査者鍵パターンを使う場合…

  • 分散化 / オープン参加
  • 規制当局がマスター鍵を保有可能
  • オンデマンド・トランザクション単位監査で許容
  • Twisted ElGamal が十分高速
PGC ZKBob

Solidus / ORAM パターンを使う場合…

  • 銀行仲介モデル許容
  • 銀行が独自アクセス・パターンを隠す必要
  • 監査者への強いコンプライアンス証明が必要
  • パフォーマンス予算が余裕あり(ORAM オーバーヘッド)
Solidus Fabric Auditable

Coconut / CBDC パターンを使う場合…

  • 中央銀行または規制コンソーシアム
  • 信頼のため閾値発行が必須
  • リテール CBDC のための強い非リンク可能性
  • AML コンプライアンスに予算強制が必要
PEReDi Platypus DART

コード構造ヒント

実践での PS-sigs(BLS12-381)

-- 鍵生成 -- (sk, pk) = KeyGen(): x, y_1, ..., y_k ← Z_p X = g^x, Y_i = g^(y_i) # in G_1 X̃ = g̃^x, Ỹ_i = g̃^(y_i) # in G_2 pk = (g, X, Y_1..k, g̃, X̃, Ỹ_1..k) -- メッセージ・ベクトル m = (m_1,...,m_k) に署名 -- Sign(sk, m): h ← G_1 \ {1} # ランダム生成元 σ = (h, h^(x + Σ y_i·m_i)) -- 匿名提示のため再ランダム化 -- Randomize(σ): r ← Z_p σ' = (σ_1^r, σ_2^r) # 新規、非リンク可能 -- 検証 -- Verify(pk, m, σ'): e(σ'_1, X̃ · Π Ỹ_i^m_i) == e(σ'_2, g̃) -- 占有証明 ZK(Schnorr 形式) -- Prove(σ', m_hidden, m_disclosed): π ← NIZK{ (σ', m_hidden): Verify(pk, m, σ') ∧ policy(m) }

Coconut 閾値集計

-- 当局 i からの部分署名 -- PartialSign(sk_i, m): h ← G_1(共有公開生成元) σ_i = (h, h^(x_i + Σ y_i_j · m_j)) -- t-of-n 部分署名集計 -- Aggregate(σ_1,...,σ_t): # 指数での Lagrange 補間 λ_i = Π_{j≠i} (-j / (i-j)) for i=1..t σ = (h, Π σ_i_2^λ_i) # 結果:結合鍵での有効な PS-sig -- セキュリティ保証 -- # 任意 t-1 当局の部分署名:ゼロ情報 # t 以上:一意の有効資格情報

オープン問題

研究ロードマップ:順序で読むべき内容

1. Compact E-Cash
CHL Eurocrypt 2005
基礎
2. PS-sigs
CT-RSA 2016
コア・プリミティブ
3. KVAC
CCS 2014
MAC 代替案
4. zkLedger
NSDI 2018
監査パターン
5. Coconut
NDSS 2019
閾値
6. UTT / PEReDi
2022
CBDC 設計
7. SyRA 2024
Sybil 耐性
オープン・フロンティア

速査:論文 → DeFi 応用

論文重要技術DeFi 応用ステータス
zkLedger(NSDI 2018) NIZK 列和証明 銀行コンソーシアム向け AML コンプライアンス 研究
PGC(ESORICS 2020) Twisted ElGamal + Bulletproofs 監査者鍵付き機密決済 研究
PS-sigs(CT-RSA 2016) 再ランダム化可能署名 KYC / 許可台帳 / コンプライアンス証明 デプロイ済(Fabric)
Coconut(NDSS 2019) 閾値 PS-sigs PEReDi CBDC、DART プロトタイプ
UTT(2022) KVAC + 予算 ZK 規制電子現金、CBDC 設計 研究
CanDID(S&P 2021) TEE+MPC OAuth 橋 Web2 ID からの分散化 KYC 研究
SyRA(2024) 文脈固有の疑似名 複数アプリ Sybil 耐性 研究
Privacy Pools(2023) 関連セット ZK メンバーシップ コンプライアント・ミキシング / 出金 プロトタイプ