202510
systems

Comparing Nostr and ATProto for Scalable Decentralized Social Networks

This article compares Nostr's simple event pub/sub mechanism with ATProto's PDS/relay federation model for building scalable, portable decentralized social networks, covering custom moderation and namespace handling.

在去中心化社交网络的浪潮中,Nostr 和 ATProto 作为两大备受关注的协议,分别代表了不同的设计哲学和实现路径。Nostr 以其极简的事件发布/订阅(pub/sub)模型著称,强调抗审查性和简单性,而 ATProto 则通过个人数据服务器(PDS)和中继联邦机制,提供更高的可移植性和结构化管理。本文将从构建可扩展、可移植的去中心化社交网络角度,比较两者在自定义审核和命名空间处理方面的差异,并给出工程化参数和清单,帮助开发者落地应用。

Nostr 的核心在于其简单性:用户通过公私钥对生成身份,事件(notes)作为 JSON 格式的签名消息发布到多个中继(relays)。中继仅负责转发和存储,不进行内容验证,这确保了协议的弹性。一旦用户发布事件,它会平行推送到订阅的中继,关注者通过查询这些中继获取内容。这种 pub/sub 模型避免了点对点(P2P)的复杂性,同时依赖加密签名防篡改。根据 Nostr 协议规范(NIP-01),事件包括元数据(如用户名、简介)和内容类型,支持文本、图像等扩展。证据显示,这种设计已在 Damus 等客户端中证明其抗审查能力:即使某个中继屏蔽内容,用户可切换其他中继继续发布,而不丢失身份。

相比之下,ATProto 采用更分层的联邦架构:每个用户运行或托管一个 PDS,存储个人数据和内容;中继则聚合全球数据,实现跨服务器同步。身份基于去中心化标识符(DID),允许命名空间如 did:plc:...,确保可移植性。Bluesky 项目作为 ATProto 的主要实现,展示了其在自定义审核上的优势:应用可定义标签系统(如内容警告),PDS 所有者控制本地审核,而中继处理全局发现。协议文档强调,这种模型支持数据迁移,用户可无缝转移 PDS,而不中断社交关系。实际案例中,ATProto 的联邦机制已在处理数百万用户时表现出色,避免了单一服务器瓶颈。

在可扩展性上,Nostr 的简单 pub/sub 适合高并发场景:中继可水平扩展,用户选择 5-10 个活跃中继(如 wss://relay.damus.io)即可覆盖 90% 内容。潜在风险是数据持久性——免费中继可能限时存储(7-30 天),需付费订阅高级服务(如 Zap 集成比特币闪电网络)。ATProto 的 PDS/中继联邦更注重负载均衡:PDS 处理写操作(O(1) 复杂度),中继优化读操作,支持分片命名空间。证据来自 Bluesky 的部署:单个 PDS 可处理 1000+ 事件/天,中继集群实现亚秒级查询。

自定义审核是两者关键差异。Nostr 中,中继独立审核:开发者可实现白名单/黑名单,或集成 NIP-11 过滤器。落地参数:配置中继时,设置审核阈值(如事件大小 < 1KB,频率 < 10/分),监控垃圾事件比例(目标 <5%)。用户侧,客户端使用 NIP-51 标签列表过滤有害内容。ATProto 提供应用级审核:通过 Firehose 流订阅事件,应用添加标签(如 nsfw),PDS 应用本地规则。参数清单:审核管道包括预过滤(DID 验证)、标签分配(ML 模型准确率 >95%)、回滚策略(标签争议时隔离 24h)。命名空间处理上,Nostr 依赖 pubkey(npub1...),简单但无层次;ATProto 的 DID 支持子命名空间(如 did:plc:handle),便于组织管理。实现时,Nostr 开发者可扩展 NIP-19 bech32 编码;ATProto 使用 Com AtProto 库处理 DID 解析。

构建可移植网络时,Nostr 强调身份便携:私钥即所有,导出事件备份(NIP-59)。风险:密钥丢失无恢复。ATProto 的 PDS 导出功能更强,支持完整数据迁移(包括关注列表)。工程清单:1. 选择协议栈(Nostr: WebSocket + secp256k1;ATProto: HTTP/2 + Ed25519)。2. 中继/PDS 配置:Nostr 中继内存缓存 1GB,ATProto PDS 存储 10GB/用户。3. 监控点:事件延迟 <500ms,审核准确率 >98%。4. 回滚策略:异常时切换备用中继,数据同步间隔 1min。

总体而言,Nostr 适合追求极简抗审查的场景,其 pub/sub 模型在资源有限的环境下更易部署;ATProto 则 excels 在企业级可移植性和审核灵活性,提供更完整的生态。开发者可根据需求混合使用:如 Nostr 处理实时事件,ATProto 管理持久身份。未来,随着 NIP 和 ATProto 规范迭代,这些协议将进一步推动去中心化社交的落地。

(字数:1025)