最近一段时间爆火的去中心化社交软件Damus就是基于Nostr协议开发的,Twitter 联合创始人Jack Dorsey曾向Nostr捐赠了14个比特币,得知Damus上架Appstore后,Jack Dorsey立刻在Twitter发帖并附上了Damus和Amethyst的下载链接,让去中心化社交再次成为热议话题。

Damus和Amethyst

Nostr是什么?

Nostr全称为Notes and Other Stuff Transmitted by Relays,是能够用于创建一个抗审查的全球性的社交网络的最简单的开放协议。基于Nostr协议的应用程序不依赖于任何中心服务器,所以不存在单点问题;基于加密密钥和签名,因此是防篡改的;不依赖于P2P和区块链技术,所以性能是很高的。

Nostr是如何工作的?

  • Nostr协议目前有两种角色,一个是client(客户端),一个是relay(转发器)。每个人使用的终端是称为client,任何人都可以运行一个自己的relay。

  • 每个用户都由一个公钥标识,每条消息都有使用私钥进行的签名,每个client都会验证对应签名。

  • client从选择的relay获取数据,将数据发布到他们选择的relay。relay与relay之间是不通信的,client与client之间也不通信,relay只与对应的客户端通信。

  • 例如,如果要关注某个人,用户只需从知道的relay中查询来自这个人的公钥对应的消息即可。

  • 在启动时,client从所知道的所有relay中查询关注的所有用户的数据(例如,从最后一天开始的所有更新),然后按时间顺序将这些数据展示给用户。

  • 一条消息可以包含任何类型的结构化数据,但最常用的数据类型都会被标准化,这样可以让所有的client和relay都能处理。

Nostr目的是要解决哪些问题和如何解决的?

1、防止用户账号被封禁,服务器被关闭

  • 一个relay可以阻止用户发布内容,碰到这种情况,用户可以选择其他relay,所以对用户没有影响。由于用户是通过公钥识别的,所以即使被一个relay封禁,用户也不会失去自己的身份和关注者。

  • 不需要用户手动输入新的relay地址,每当一个用户发布服务器推荐时,对应的关注者client自动添加到自己的relay列表中。

  • 如果一个用户想迁移到另一个relay,向当前relay布一个服务器推荐信息然后离开即可。

  • 如果一个用户被许多relay封禁,这样就不能广播自己的服务器推荐,但仍然可以通过其他方式让好友知道自己现在所使用的relay。然后好友就可以向新服务器发布服务器推荐,关注者逐渐就开始从新的relay中发现用户。

2、抗审查

  • 用户可以往任何relay发布任意消息。

  • 可以推出收费的relay以确保抗审查性(如果付费,总会有人愿意给你保存数据)。

3、防止垃圾信息

  • 付费relay在一定程度上屏蔽了部分垃圾信息,另外由于relay和client实现上的自由度很高,relay和client可以自行决定可以传播什么样的信息,对哪些信息进行拦截,对一些恶意用户设置黑名单,然后在relay之间分享。

4、数据存储

  • 为了使网络保持健康,不需要特别多的活跃relay。事实上只需要少数relay就可以了,因为如果当前的relay出错了,可以很容易地创建新的relay并广播出去。因此,所需的数据存储量是远小于同类软件的。

  • 或者考虑这样一种情况:存在很多由业余爱好者运营的小型relay,每个relay只有少量的用户。这种架构的可伸缩性也很好:数据从用户发送到单个服务器,然后从该服务器直接发送对应用户,因此不需要被其他人存储。这种情况下,对于任何单个服务器来说,处理来自其他服务器的更新都不是很大的负担。

5、视频等比较占用存储空间的内容

  • relay可以不允许比较占用存储空间类内容或者对此类内容进行收费。当激励措施明确时,就可以发挥市场力量来解决此类问题。

6、防止被个性化(人工智能)推荐内容

  • 每个客户端都可以决定如何最好地向用户展示消息,可以选择想要的方式来获取消息。

小结

Nostr背后还有两个重要的东西--比特币和闪电网络,目前用户可以在client上使用闪电网络进行转账,甚至还有了其他一些实用性的功能。从Nostr的技术原理和要解决的问题来看,Nostr协议提供了一个重新构建互联网的机会--Nostr解决了信任问题,只要遵从这个协议,就能保证社交关系能够一直维持在这个协议之上,而不会受某一个平台的限制。Nostr目前来看还是比较粗糙的,相信随着Nostr的逐步完善,能够给世界带来越来越大的价值。

参考资料

[1] nostr-protocol/nostr https://github.com/nostr-protocol/nostr

举报/反馈

luduoyuan

33获赞 92粉丝
分享后端研发领域相关知识与经验
关注
0
0
收藏
分享