PS-sigs — 短い再ランダム化可能署名
Pointcheval & Sanders · CT-RSA 2016 · 2020 年代のコンプライアンスプライバシーの実質的標準となった
解決する問題
KVAC は発行者 = 検証者が必要。しかし現実のシナリオ (銀行が KYC を発行、DeFi プロトコルが検証) では、彼らは異なる当事者。非リンク可能性を損なわずに公的に検証可能な匿名資格情報が必要。
キー洞察: 再ランダム化可能署名
署名を再ランダム化可能にしつつ公的に検証可能に保つ。保有者は各提示前に再ランダム化 — 各提示は完全に異なる → 非リンク可能。公開鍵を持つ誰もが正当性を検証可能。
再ランダム化メカニズム
発行フェーズ:
─────────────────────────────────────────────────
発行者: (sk, pk) ← KeyGen()
σ = (σ₁, σ₂) = (g^r, g^(r·(x + y·m))) ← 2 つの群元素
ここで m = 属性
→ σ を Alice に送信
提示フェーズ (毎回):
─────────────────────────────────────────────────
Alice: r' ←$ Zp (毎回新しい乱数)
σ' = (σ₁^r', σ₂^r') ← 再ランダム化署名
証明: π = ZKProof("I know m s.t. e(σ₁', pk·g^m) = e(σ₂', g)")
→ (σ', π) を公開 — 検証者は毎回異なる σ' を見る
検証:
─────────────────────────────────────────────────
検証者: e(σ₁', pk) · e(σ₁', g)^m = e(σ₂', g) をチェック
ペアリング e: G₁ × G₂ → Gₜ を使用 (例. BLS12-381)
特性
署名特性
- 短い: ちょうど 2 つの群元素 (σ₁, σ₂)
- 再ランダム化可能: 無効化しながら再ランダム化
- 非リンク可能: 各提示は新しく見える
- 公開検証可能: pk を持つ任意の当事者が検証可能
- 選択的開示: 選択した属性のみ開示
技術要件
- ペアリングフレンドリー曲線が必要 (BLS12-381 が標準)
- Type-3 ペアリング: G₁ × G₂ → Gₜ
- 公開鍵サイズ = n 個の属性に対して O(n)
- 証明/検証: 2 つのペアリング (最新ハードウェアで高速)
- 属性コミットメントに対する ZK 知識証明
選択的開示
// 資格情報が属性を持つ: [country, age, accreditation_status, AML_score]
// シナリオ A: DeFi アクセス制御 — 適格認可のみを証明
π_A = ZKProve("I hold PS-sig on attrs where accreditation_status = 'accredited'")
// → 開示: accreditation_status. 隠蔽: country, age, AML_score
// シナリオ B: 年齢ゲート — 正確な年齢を開示せず 18 歳以上を証明
π_B = ZKProve("I hold PS-sig on attrs where age ≥ 18")
// → 開示: age_range (≥18). 隠蔽: 正確な年齢, country など
// 両証明: 非リンク可能 (異なる σ' 再ランダム化) + 選択的開示
PS-sigs が標準になった理由
他の代替案との利点
| スキーム | 署名サイズ | 公開検証 | 再ランダム化 |
| CL signatures | 大 (RSA) | あり | なし |
| BBS+ | 1 元素 | あり | なし |
| KVAC | 2 元素 | 発行者のみ | あり |
| PS-sigs | 2 元素 | あり | あり |
PS-sigs を使用するシステム
Coconut 閾値 PS-sig 拡張
PEReDi 中央銀行委員会を伴う CBDC
Platypus 信頼分散型の CBDC
ZKBob コンプライアンス対応のシールド転送
Fabric AT Hyperledger Fabric 監査可能トークン
Balancing Privacy 学術調査 (2022)
量子耐性の注意点
PS-sigs はペアリングフレンドリー曲線 (BLS12-381) に依存し、量子コンピュータに脆弱 (Shor アルゴリズムが離散対数を破る)。同等の機能を持つ量子耐性等価物は現在存在しない。これは活発な未解決問題。