AN

ArNostr:将永存带入Nostr社交网络

0 93

Original by PermaDAO

去中心化社交一直被视为下一个可能取得突破进展的关键赛道。毕竟,无论是在加密从业者中流行的 Twitter,还是中国的国民级应用微信,目前都因为过度中心化而产生了许多严重的问题。

然而现有的许多 Web3 社交项目却往往会在探索的同时走入另外的误区,或者是将 Web2 社交产品的逻辑不加修改地直接上链,抑或是过度依靠代币激励(SocialFi)而忽略了社交作为公共产品的本质属性。直到 Nostr 的出现,才让许多认可加密精神与主权个人的从业者,看到了真正实现去中心化社交的可能。

Nostr 是什么

Nostr 是「Notes and Other Stuff Transmitted by Relays」的缩写,也就是「由中继器传送的笔记与其他资料」的简称。而 Nostr 协议的基本架构也极其简单,整个协议只包括用户使用的客户端(Client),以及负责存储并转发用户数据的中继器(Relay)两种节点。

在 Nostr 中,用户通过私钥生成地址(社交账户)并通过签名向多个 Relay 广播信息。而 Relay 仅负责保存并向该地址的关注者转发消息。由于 Nostr 中的信息都经过发送者私钥的签名,因此 Relay 无法篡改信息。同时又由于用户可以任意连接多个 Relay,因此单个 Relay 也无法对某个用户进行封杀。可以说,Nostr 协议从根本上保障了内容创作者的创作自由以及对内容的个人主权。

但是正如上文所说的,作为一个真正意义上的「去中心化协议」,Nostr 却并没有采用经典的区块链架构。因此 Nostr 对用户发送的内容也不需要在协议层达成共识,进而无法保证对用户社交信息的长期存储。这种架构使得 Nostr 失去了经典区块链系统一个最主要的优势,那就是对历史信息存储的确定性。

虽然目前的 Nostr 客户端都默认连接多个 Relay 节点,且用户可以自由添加新的 Relay,但由于这些节点在存储政策、在线状态等问题上都没有统一的保证,因此用户很难准确预知其社交信息是否已经被保存,以及保存多久。更无法像经典区块链系统那样,通过数学计算出其概率确定性的大小或遭到 51% 攻击的边际成本,以便用户可以可靠地评估该系统的安全性是否满足自己的业务需求。

因此,目前用户在 Nostr 系统中存储的个人社交信息的安全性,一直处于一种很难被计算的不确定状态中。

“hello world in ar”

2023 年 2 月 19 日,随着一笔包含「hello world in ar」信息的交易成功上链,标志着 Nostr 生态第一个采用 Arweave 进行永久存储的 Relay 正式上线。而实现这个产品的,便是由 Arweave 生态的共建者社区 PermaDAO 所资助的开源项目:ArNostr Relay。

ArNostr 与其他 Relay 节点最本质的不同,便是其没有采用中心化的存储方式,而是通过整合 Arweave 实现了对用户信息的去中心化永久存储。上方截图便是 Nostr 用户在链接了 ArNostr Relay 节点后,由 ArNostr 自动在后台帮用户打包上链的交易信息。

这里给还不太了解 Arweave 的读者补充一点背景知识。Arweave 是一条以实现永久存储为核心目标的区块链系统。作为一条名副其实的公链,Arweave 并没有像许多公链一样的区块大小或者 gas 费限制,任何用户提交的交易或文件,只要使用 AR 支付过足够的存储费用,矿工都会无条件将其打包上链,并通过共识机制实现接近于 100% 概率的永久存储。

当然,目前已经上线测试的还只是 ArNostr 产品架构中最基础的 Relay 部分。而完整的 ArNostr 产品是一个包含了 Relay 与客户端,并整合了基础金融服务的完整 Web3 社交产品。

ArNostr 的产品架构

完整的 ArNostr 产品可以分为两个独立的部分,一个是通过 Arweave 进行永久存储的 ArNostr Relay,另一个则是 ArNostr 客户端。其完整的产品架构可以参考以下架构图:

(1)ArNostr Relay

虽然将 Relay 节点的存储功能替换为 Arweave 看上去是个并不复杂的工作,但这种改变对 Nostr 用户「社交资产」安全性的提升其实非常关键。

简单的说,在没有 ArNostr Relay 之前,用户只能通过同时链接多个 Relay 实现存储的备份,但即便这样也不能完全防止其中某些 Relay 会中断服务。一旦这种事件发生,这个 Relay 中存在的某些尚未被其他节点备份的信息,就会永远的从系统中消失。

而 ArNostr 则完全不需要担心节点掉线的问题。即便未来某一天 ArNostr 节点彻底停止服务,用户的社交数据依然会完整的保存在 Arweave 公链之上。用户可以分叉 ArNostr 代码,随时重新运行一个个人版 Relay 来恢复数据。(是的,ArNostr Relay 实现了对自己的 Trustless)

所以 ArNostr 存在的最大意义,是将 Nostr Relay 的安全性,从中心化节点的水平,直接提升到了主流公链的安全性水平。Nostr 协议帮助我们实现了社交的自由,而 ArNostr Relay 则实现了社交信息的可信存储。

其次,将社交数据存储在 Arweave 上还将最大程度的发挥数据的开放与可组合性。其他应用如果想抓取 Nostr 上的社交信息,不再需要通过一个个独立的 Relay 去寻找,而是可以只对 Arweave 上相关交易进行检索,便可以直接利用全部的社交数据。这对未来各类应用的集成也是一个比较大的利好(当然前提是 ArNostr Relay 得到广泛普及)。

最后,还要再提一下 ArNostr Relay 采用的存储技术 Arseeding。要知道,开发者如果想要直接向 Arweave 存储数据也并不是一件容易的事,而采用 Arseeding 技术则可以实现对 Arweave 存储功能的快速整合,这也是 ArNostr Relay 能够在两周时间内便完成开发上线的主要原因。

上文讲了比较多的原理,下面我们就来回答一些具体的用户在使用过程中可能遇到的问题。

(1)如何连接 ArNostr Relay?

非常简单,只要打开你常用的 Nostr 客户端,在 Relay 中添加 ArNostr Relay 的地址:wss://arnostr.permadao.io,就可以免费使用 ArNostr Relay 的永久存储服务了。

(2)ArNostr Relay 的存储费用由谁来支付?

目前用户在 ArNostr Relay 上的存储费用全部由 ArNostr 团队代付。(未来可能根据情况进行调整)

(3)现在可以在 ArNostr Relay 上永存图片和视频吗?

还不行,与目前绝大多数的 Nostr Relay 所采用的解决方案一样,ArNostr Relay 对图片与视频只存储其地址链接。当然随着整个产品的逐渐成熟,未来可能向用户提供自费永久存储的选项。

(4)ArNostr Relay 的存储策略

Nostr 用户接触到的信息包括自己发送的消息、用户所关注的账号(社交图谱)、点赞评论、用户关注对象所发送的消息等。对于这些不同类别的数据,ArNostr Relay 的存储规则如下:

用户发送的消息:在关联 ArNostr Relay 之后发送的消息全部会永存到 Arweave;

用户关注的账号列表(社交图谱):关联 ArNostr Relay 后,每次变化(如新增关注)后都会在 Arweave 永存最新完整的社交图谱(需要客户端同时支持);

点赞评论:关联 ArNostr Relay 之后的点赞评论会全部会永存到 Arweave;

用户关注对象所发送的消息:如果被关注对象使用的客户端也链接了 ArNostr Relay 则存储,否则不存储;

(5)用户如何在 Arweave 上找到自己永存的信息?

所有链上信息都可以通过 Arweave 浏览器(https://viewblock.io/zh-CN/arweave)进行验证。目前通过 ArNostr Relay 永存的消息都通过 Arseeding 的地址(https://viewblock.io/zh-CN/arweave/address/uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68)进行存储。经测试,一般在用户发出消息后五分钟左右,便可以在 Arweave 浏览器中查询到对应的存储交易。

但目前查询 ArNostr 存储交易记录的方式较为繁琐,随着未来 ArNostr Client 的推出,预计团队将会提供更简便的验证方式。

(2)ArNostr Client

ArNostr Client(客户端)同样是 ArNostr 产品中十分重要的组成部分,目前仍处于开发阶段。

ArNostr 客户端主要希望实现对社交与基本金融服务的整合。我们知道,目前的主流 Nostr 客户端,大多集成了比特币闪电网络作为支付系统。但对于大多数 Web3 用户来说,其更熟悉的还是稳定币、以太坊等支付手段。

为了满足这部分用户的需求,ArNostr 客户端将会整合 everPay 支付与 Permaswap 资产兑换功能。everPay 与 Permaswap 都是基于 Arweave 构建的上层金融应用,其可以向用户提供即时的支付结算体验。同时在支持的资产种类方面,又可以提供更多的选择。

当然,无论是 ArNostr 的 Relay 还是客户端,用户都可以根据自己的需求自由选择,两者并不存在必须共同使用的关系。并且,ArNostr Relay 与客户端的代码都以开源形式进行开发,任何人都可以分叉并修改 ArNostr 的代码(https://github.com/permadao/ArNostr-relayer),形成自己的 Relay 或客户端版本。

同时,未来 ArNostr 团队也将推出方便用户个人部署的 ArNostr Relay 版本,对于自身数据永存有更高需求的用户,可以通过自己运行的 Relay 节点,直接将重要的个人信息永存到 Arweave 中,避免第三方服务失效的风险,更好的保护用户的个人主权。

ArNostr 的开发路线图

本来这个部分是想介绍一下 ArNostr 的开发路线图,但是鉴于 ArNostr 团队的成立也仅仅两周多的时间,众多规划和设想尚不十分成熟。因此早期的路线图很难避免在未来出现频繁变更的情况。

因此,这里便以更加粗略的方式,简单介绍下未来 ArNostr 产品想要实现的几个关键目标。

测试网阶段:

测试网阶段主要需要完成两大任务,一个是 ArNostr Relay 的测试上线(已初步完成),一个是开发 ArNostr Client 并逐步整合 everPay 等金融支付功能。

主网阶段:

随着 ArNostr Relay 与客户端的测试完成,团队将进行正式版 ArNostr 的产品发布。同时会逐步完成个人部署 ArNostr Relay 的工具开发工作,并开启 ArNostr 创作者激励活动。

当然,随着整个 ArNostr 产品套件的开发完成,最终也一定会实现 ArNostr 的去中心化治理。当然最后这一步的设计与实现就更为复杂,目前团队的经历更多还是集中在技术开发阶段。

最后,对于想要连接 ArNostr Relay 节点的读者,可以参考以下教程进行设置:https://permadao.notion.site/ArNostr-Relay-a8ec3c8b1aac45149579355242177ba9
Author: StevenZ @ Contributer of PermaDAO


Join our
Telegram / Discord / Twitter / CN Twitter

Leave A Reply

Your email address will not be published.