NIP-17:私密直接消息
NIP-17 使用 NIP-59 gift wrapping 定义了具有发送者隐私保护的私密直接消息。与在外层事件中暴露发送者的 NIP-04 私信不同,NIP-17 将发送者隐藏于 relay 和普通观察者之外。
工作原理
消息被包裹在多层加密中:
- 实际消息内容存在于 kind 14 的 rumor 事件中。
- seal 将该内容加密给接收者。
- gift wrap 再次加密 seal,并使用一次性密钥对发布。
外层 gift wrap 使用随机的一次性密钥对,因此 relay 和观察者无法确定谁发送了消息。
消息结构
- Kind 14 - 包裹层内部的实际私信内容
- Kind 1059 - 发布到 relay 的外层 gift wrap 事件
- 在包裹流程中使用 NIP-44 加密载荷
- 规范已优化以更好地支持交互式私信功能,如反应
安全与信任模型
- relay 无法看到发送者(被 gift wrap 的一次性密钥对隐藏)
- 接收者可见(在 gift wrap 的
p标签中) - 消息时间戳在一个时间窗口内随机化
- relay 上没有可见的线程或对话分组
接收者在解包后仍然能知道谁发送了消息。NIP-17 隐藏的是发送者身份不被网络看到,而非不被对方看到。当人们将其描述为"私密私信"时,这是一个重要的区别。
重要意义
NIP-04 私信加密内容但保留可见的元数据:
- 发送者公钥是公开的
- 接收者公钥在
p标签中 - 时间戳是精确的
NIP-17 以更复杂的实现为代价隐藏了发送者。
这种复杂性换来了真正的隐私改善。relay 仍然能看到一条包裹消息的收件人,但它无法像处理 kind 4 消息那样,直接从外层事件元数据构建发送者-接收者关系图。
互操作说明
NIP-17 还定义了用于私密消息的收件箱 relay 列表。客户端可以发布 kind 10050 事件,以便发送者知道应将私信投递到哪些 relay。将私信 relay 路由与公共内容路由分开,有助于避免将私密流量发布到错误的位置。
主要来源:
提及于:
另请参阅: