NIP-70は、著者がシンプルなタグ["-"]でイベントを保護済みとしてマークする方法を定義します。保護イベントは、relayがその動作をサポートすることを選択し、認証された発行者がイベント著者と同じpubkeyであることを確認した場合にのみ受け入れられます。

仕組み

コアルールは簡潔です。イベントに["-"]タグが含まれている場合、relayはデフォルトでそれを拒否すべきです。保護イベントをサポートしたいrelayは、まずNIP-42 AUTHフローを実行し、認証したクライアントが自身のイベントを公開していることを確認する必要があります。

これによりNIP-70は公開権限ルールとなり、暗号化ルールではありません。コンテンツは引き続き読み取り可能です。変更されるのは、タグを尊重するrelayにそのイベントを配置できる人です。これにより、relayはセミクローズドフィードや、著者が第三者による再公開をrelayに拒否させたいその他のコンテキストをサポートできます。

{
  "id": "cb8feca582979d91fe90455867b34dbf4d65e4b86e86b3c68c368ca9f9eef6f2",
  "pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
  "created_at": 1707409439,
  "kind": 1,
  "tags": [
    ["-"]
  ],
  "content": "hello members of the secret group",
  "sig": "fa163f5cfb75d77d9b6269011872ee22b34fb48d23251e9879bb1e4ccbdd8aaaf4b6dc5f5084a65ef42c52fbcde8f3178bac3ba207de827ec513a6aa39fa684c"
}

AUTHフローへの影響

保護イベントは、relayが公開時に著者のアイデンティティを実際に強制する場合にのみ有用です。NIP-70がNIP-42に直接依存する理由はここにあります。一致する認証チェックなしに["-"]イベントを受け入れるrelayは、タグをポリシーではなく装飾として扱っていることになります。

Relayの動作と制限

NIP-70はコンテンツが永遠に封じ込められることを約束しません。受信者は見たものをコピーして別の場所に新しいイベントとして公開できます。仕様はrelayに著者の意図を尊重し、保護イベントの直接的な再公開を拒否するための標準的な方法を提供するのみです。

フォローアップ作業が重要な理由がここにあります。PR #2251は、保護イベントを埋め込むリポストにもルールを拡張し、元のイベントは保護されているがラッパーイベントは保護されていないという容易な回避策を塞ぎます。

実装

  • strfry PR #156 - 保護イベント用のNIP-42認証サポートを追加
  • strfry PR #176 - 保護イベントを埋め込むリポストを拒否
  • SNSTR v0.3.3 - 保護イベント処理に関連するヘルパーサポートを追加

主要ソース:

掲載号:

関連項目: