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を単なる輸送の利便性ではなく、プライバシー問題として扱っているからです。


主要ソース:

言及箇所:

関連項目: