3. 项目分析
3.1. 项目背景
Nostr 项目产生的背景是多方面的。首先,它是对现有社交媒体模式的一种反思和创新,特别是在抗审查和去中心化方面。其次,Nostr 的出现是对中心化社交平台控制下的数据隐私侵犯和审查政策的回应。在这样的背景下,Nostr 旨在通过一种去中心化的方法来重新定义人们的网络社交体验,使用户能够绕过中心化社交媒体公司的控制和审查机制。
3.1.1. 发展背景
Nostr 协议的设计理念来源于对现有社交媒体模式的挑战,尤其是对言论自由和抗审查的追求。由于现有社交平台的审查和隐私问题,人们逐渐寻求一种更加开放、自由的社交网络环境。Nostr 的核心理念是通过一种去中心化的网络协议,为用户提供一个抗审查的社交体验。
3.1.2. 技术背景
技术上,Nostr 采用了基于公私密钥对的账户系统,不依赖传统的用户名和密码,而是使用与加密货币相似的公钥和私钥体系,这增加了用户的匿名性和安全性。公私密钥对是用户身份的核心,公钥类似于用户名,私钥则用于签名,确保信息的来源可验证和安全。Nostr 不依赖于任何中央服务器,而是通过客户端和中继器来运作,其中中继器负责转发用户之间的消息,但不存储任何信息,因此不存在单点故障或审查的可能。
在这样的技术背景下,Nostr 试图打破传统社交媒体公司对用户数据的控制,以及它们可能实施的审查政策。这样的设计让用户拥有了更多的自主性和言论自由。此外,Nostr 的技术架构和哲学也紧密联系着加密货币和 Web3 的理念,它与加密货币社区的紧密结合也是其获得关注的原因之一。
3.2. 项目原理
Nostr 项目的核心理念是建立一个简洁、开源的去中心化社交协议,它的目标是创建一个全球性、抗审查的社交网络平台。Nostr 的工作原理建立在几个基本概念上,包括公私密钥对、客户端和中继器。这些元素共同支持 Nostr 协议的运作。
公私密钥对是 Nostr 账户的基础,类似于加密货币的身份认证方式,其中公钥相当于用户名,私钥则是密码。这种设计确保了用户身份的安全性和私密性,同时也意味着一旦私钥丢失,就无法像传统密码那样重置。
Nostr 不依赖于任何中央服务器,而是通过密码学的密钥和签名来运作。每个用户运行一个客户端,可以是本机或 Web 客户端,并通过中继器进行内容发布和更新。用户需要使用自己的密钥签名内容,并将其发送到多个中继器,这些中继器可以是其他用户或自己托管的服务器。为了获得更新,用户可以查询这些中继器以获取信息。Nostr 的这种设计允许任何人运行中继器,简化了数据传输过程,同时也确保了不需要信任中继器,因为所有的签名都在客户端进行验证。
Nostr 旨在让每个 relay(中继器)甚至每个用户控制自己的数据,减少了对第三方服务的依赖,这与一些现有的社交平台如 Twitter 的运作方式形成对比。Twitter 等平台可能因商业模式、审查政策等因素限制用户,而 Nostr 则尝试通过去中心化的方式解决这些问题。
这个项目的关键原理和核心业务逻辑在于其去中心化的结构和基于密钥的用户身份验证系统,这些设计旨在创建一个持久的、不受中央权威控制和审查的社交网络空间。这种方法允许用户在不牺牲隐私和安全的前提下,自由地交流和发布内容。
3.3. 项目技术特点
Nostr 项目利用了一系列关键技术特点以实现其去中心化社交网络的愿景。该项目采用了一种独特的服务框架,其中包含了客户端和所谓的「Relay」。在这个框架中,客户端可以连接到一个或多个分布在不同地点的 Relay,而这些 Relay 之间并不直接通信,保持独立状态。
这种结构使得客户端能够独立于彼此并且独立于 Relay 运行,而 Relay 则承担着数据存储的角色。用户可以在一些中心化社交平台或通过其他软件私下分享自己的 Relay 访问 URL,这样,其他用户就能通过 Nostr 客户端软件加载到相应 Relay 存储的数据,实现交流。
用户在使用 Nostr 应用时需要满足两个条件:下载 Nostr 客户端软件以及订阅 Relay。用户可以选择自行搭建 Relay 服务器或者订阅现有的公开 Relay 服务。Nostr 的生态中也出现了提供注册功能的「公共 Relay」,用户可以通过它们生成密钥对,无需自行搭建 Relay 服务器即可使用服务。
技术实现方面,客户端在向 Relay 发送数据时,需要将数据发送给所有订阅了的 Relay,这是协议的要求,虽然并非强制。关于账户,Nostr 的用户账号不依赖 Relay,可以在客户端本地直接生成,其中私钥用作密码,公钥则相当于账号。
数据传输方面,客户端与 Relay 之间使用 websocket 协议进行数据传输,数据格式为 Json。标准的数据格式遵循一个简单的结构:「[命令,参数,参数…]」。例如,客户端发布事件时,会使用「EVENT」命令,并附带一个 JSON 格式的事件数据,事件的具体动作取决于参数「kind」的值。



3.4. 项目生态应用
Nostr 的生态系统包含多个项目,除了 Damus,这是一个基于 Nostr 协议的 iOS 应用,提供基本的社交媒体功能,如主页、私信、搜索和通知。另一个应用是 Amethyst,它只在安卓上提供,提供了群聊功能。这些产品的一个关键特点是,用户不需要账号和密码,而是使用私钥登录,并用公钥作为身份 ID。
除了这些应用,Nostr 还推荐了多款前端社交应用,如 Anigma、Branle、Nostr.ch 和 Nostros,它们各自为用户提供了不同风格和不同运行环境的前端界。总的来说,Nostr 生态系统至今已经发展了 46 个项目,包括一些有趣的小应用,例如 NIP-05(一个独特的域名规范提案),Jester(一个基于 Nostr 的在线国际象棋游戏),Blockcore Notes(一个支持 Nostr 和 Web5 的笔记应用)和 NostrID(一个为 iOS 开发的 Nostr ID 管理应用)。
至于项目的运转流程,Nostr 侧重于协议层的社交基础设施,而具体的产品化能力交由第三方 App 来实现,用户在不同 App 间的社交行为是可互通的。这种设计使得 Nostr 的生态系统既去中心化又具有灵活性。
3.5. 项目数据
Nostr 项目自上线以来的数据情况表现出一定的增长态势。2020 年 11 月 16 日 Nostr 项目在 Telegram 中的讨论开始,围绕去中心化社交网络的可能性以及资金支持等问题进行探讨。随后,该团队在接下来的时间里不断地探讨和发展其基于浏览器的应用程序,并在 12 月开始讨论使用私钥、标准化事件类型等技术问题。2022 年 12 月,Twitter 前首席执行官 Jack Dorsey 以支持者和代言人的身份加入 Nostr,为该项目带来了显著的关注度提升,GitHub 上 Nostr 协议的 star 数出现显著增长。至于社交媒体数据,Damus 应用在短短数日内用户数已经突破 72 万。这些数据显示了 Nostr 从初始阶段到目前的发展和用户接受度。