NIP-40は、eventをいつ削除すべきかをrelayへ伝えるexpirationタグを定義します。

仕組み

eventにはUnix timestampを含むexpirationタグを入れます。

["expiration", "1734567890"]

この時刻を過ぎたら、relayはeventを削除し、配信を拒否するべきです。

なぜ重要か

  • 設定時間後に消えるべき一時的なcontent
  • 期間限定のofferやannouncement
  • marketplaceでのlisting有効期限(例: Shopstr)
  • relay storage要件の削減

expirationは保持期間のヒントであり、取り消しの仕組みではありません。staleなcontentに対するrelayの挙動をそろえる助けにはなりますが、別のrelay、client、archiveがすでにeventをコピーしていれば、消去を保証するものではありません。

信頼とセキュリティの注意点

  • relayはexpirationを守る義務はありませんが、多くは守ります。
  • clientは、セキュリティ上重要なcontent削除をexpirationに頼るべきではありません。
  • いったん別のclientがcontentを取得すると、cacheや再公開が起こり得ます。
  • expirationは、eventが存在した事実までは隠しません。timestamp経過後も、event id、quote、relay外のcopyは残る可能性があります。

主要ソース:

言及箇所:

関連項目: