MIP-05: プライバシー保護プッシュ通知
MIP-05は、Marmotクライアント向けのpush-notificationプロトコルを定義します。通常のモバイルpushシステムではdevice tokenやアカウント関係が露出しやすい環境で、プライバシーを保つことを狙っています。
仕組み
- device tokenはECDH+HKDFとChaCha20-Poly1305で暗号化される
- ephemeral keyによって通知間の相関を防ぐ
- 3イベントのgossip protocol(kinds 447-449)が暗号化されたtokenをグループメンバー間で同期する
- NIP-59のgift wrappingを使ったdecoy tokenでグループサイズを隠す
プライバシーモデル
- push notification serverはユーザーを識別できない
- 通知パターンからグループメンバーシップが分からない
- device tokenをメッセージ間で相関付けできない
具体的な改善点は、push providerが見るのは不透明な配送tokenであって、グループメンバーから端末への直接的な対応表ではないことです。これで通知が絶対に匿名になるわけではありませんが、push層が既定で学習できる情報量を減らせます。
イベントKind
- Kind 447: 暗号化されたdevice tokenの公開
- Kind 448: token同期リクエスト
- Kind 449: token同期レスポンス
トレードオフ
MIP-05は、調整作業を増やすことでプライバシーを得ます。クライアントは暗号化されたtoken状態をグループメンバー間で同期する必要があり、decoy tokenは意図的にメッセージオーバーヘッドを増やします。
つまり実装者は、配送の信頼性とmetadata保護のバランスを取る必要があります。このプロトコルが有用なのは、pushを単なる輸送の利便性ではなく、プライバシー問題として扱っているからです。
主要ソース:
言及箇所:
関連項目: