TWI:一文读懂去中心化社交协议nostr

原文标题:《一文了解nostr:一个让ElonMusk感到害怕的去中心化社交协议》

原文作者:git-sgmoore和fiatjaf

原文编译:DeFi之道

注:近期一个名为nostr的去中心化社交协议获得了比特币社区的追捧,这引来了Twitter现任CEOElonMusk争议性的封杀政策,同时让Twitter前任CEOJackDorsey自掏14BTC为其提供资助,那nostr到底有什么魔力?

P2P技术,它也不会发行token。

那它的运作原理是怎样的呢?简单来说:每个人都运行一个客户端,这可以是本机客户端、Web客户端等。要发布某些内容,你要用你的密钥对其签名,并将其发送到多个中继器。要从其他人那里获得更新,你可以询问多个中继器是否了解这些其他人。任何人都可以运行中继器,这是非常简单的,除了接受某些人的帖子并转发给其他人之外,它什么都不做。我们也不需要信任中继器,签名是在客户端进行验证的。

1、如何开始使用Nostr

2、Nostr客户端功能比较

3、基于Nostr的项目列表

1、Twitter的问题

Twitter有广告;

Twitter使用奇怪的技巧让你上瘾;

Twitter不会显示你关注的人的真实历史动态;

Twitter会禁止某些人的账户;

Twitter会使用影子禁令.

Twitter有很多垃圾信息;

2、Mastodon和类似应用的问题

用户身份附加在第三方控制的域名上;

服务器所有者可以像Twitter一样禁止你,服务器所有者也可以阻止其他服务器;

服务器之间的迁移是事后才考虑的,只有在服务器协作的情况下才能完成。它在对抗环境中不起作用;

运行服务器没有明确的动机,因此它们往往由爱好者以及希望将自己的名字附加到一个很酷的域名上的人来运行的。然后,用户受制于一个人的专制,这往往比Twitter这样的大公司还要糟糕,他们无法迁移出去;

由于服务器往往是业余的,它们经常在一段时间后被抛弃——这实际上等同于禁止所有人;

如果每台服务器的更新都必须痛苦地推送(和保存!)到大量其他服务器,那么拥有大量服务器就没有意义了;这一点由于服务器数量庞大而加剧,因此更多的数据必须更频繁地传递到更多的地方;

对于视频共享的具体示例,ActivityPub爱好者意识到完全不可能像文本注释那样在服务器之间传输视频;

3、SSB的问题

它没有太多问题,我认为这很棒。事实上,我打算以此为基础,但是它的协议太复杂了,因为它根本就没有被认为是一个开放的协议。它只是用JavaScript编写的,可能是一种快速解决特定问题的方法,因此它有奇怪和不必要的怪癖,比如签署一个JSON字符串,其必须严格遵守ECMA-262第6版规则;

它坚持从单个用户那获得一连串的更新,这对我来说是不必要的,而且会增加内容的臃肿和僵化程度——每个服务器/用户都需要存储所有的帖子链,以确保新的帖子是有效的。为什么要这么做?(也许他们有很好的理由);

它不像Nostr那样简单,因为它主要是为P2P同步而设计的;

不过,可能值得考虑使用SSB而不是这种自定义协议,并仅使其适应客户端中继服务器模型,因为重用标准总是比尝试让人们使用新标准更好。

二、Nostr的运行原理

Nostr有两个组件:客户端和中继器。每个用户运行一个客户端,任何人都可以运行中继器。

每个用户都由公钥标识,每个帖子都有签名,每个客户端都会验证这些签名。

客户端从他们选择的中继器获取数据,并将数据发布到他们选择的其他中继器。中继器不与另一个中继器通信,仅直接与用户通信。

例如,要「关注」某人,用户只需指示他们的客户端查询它知道的中继器,以获取来自该公钥的帖子。

在启动时,客户端从它知道的所有中继器中查询它所关注的所有用户的数据,然后按时间顺序向用户显示该数据。

「帖子」可以包含任何类型的结构化数据,但最常用的数据将进入标准,以便所有客户端和中继器可以无缝地处理它们。

问题1?:用户被禁止,服务器被关闭

中继器可以阻止用户在它那里发布任何内容,但这对用户来说没有影响,因为他们仍然可以将内容发布到其他中继器。由于用户是通过公钥识别的,因此当他们被禁止时,他们不会失去他们的身份以及粉丝基础。

不需要用户手动输入新的中继器地址,每当你关注的人发布服务器推荐时,客户端应该自动将其添加到它将查询的中继器列表中。

如果有人正在使用一个中继器来发布他们的数据,但想要迁移到另一个中继器,他们可以向之前的中继器发布一个服务器推荐,然后离开;

如果有人被很多中继器禁止,以至于他们无法广播他们的服务器推荐,他们仍然可以通过其他方式让一些亲密的朋友知道他们现在正在发布到哪个中继器。然后,这些亲密的朋友可以向新服务器发布服务器推荐,慢慢地,被禁用户的旧粉丝群将开始从新的中继器中再次找到他们的帖子。

当中继器停止工作时,上述所有规定也都是有效的。

问题3:垃圾信息

如果垃圾信息是中继器要关注的一个问题,它可以要求为发布付费或其他形式的身份验证(如电子邮件地址或电话),并将这些在内部与公钥相关联,然后将其发布到该中继器或使用其他反垃圾信息技术。如果一个中继器被用作垃圾信息载体,它很容易被客户端取消,客户端可以继续从其他中继器获取更新。

问题4:数据存储

为了让网络保持健康,不需要数百个活跃的中继器。事实上,它只需要少数几个就可以很好地工作,因为在现有中继器开始出错的情况下,可以很容易地创建新的中继器,并在网络中传播。因此,所需的数据存储量在一般情况下,要比Mastodon或类似软件要少。

或者考虑一个不同的结果:其中存在数百个由业余爱好者运行的利基中继器,每个负责一小群用户的更新中继工作。这种架构也可以扩展:数据从用户发送到单个服务器,然后从该服务器直接发送到将使用该数据的用户。它不必由其他任何人存储。在这种情况下,对于任何单个服务器来说,处理来自其他服务器的更新都不是很大的负担,拥有业余服务器也不是问题。

问题6?:显示方式

每个客户端都可以决定如何最好地向用户显示帖子,比如使用人工智能来决定你将看到的更新的顺序,到只是按时间顺序阅读它们。

四、FAQ

1、这很简单,那为什么以前没有人这样去做?

答:我不知道,但我想这与以下事实有关:创建社交网络的人要么是想要赚钱的公司,要么是想完全没有服务器就做东西的?P?2?P?积极分子,他们都没有看到Nostr使用的两个世界的特定组合。

2、我如何找到要关注的人?

答:首先,你必须了解他们,并以某种方式获得他们的公钥,无论是通过询问还是在某处看到。进入Nostr社交网络后,你就可以看到他们与其他人的互动,然后你也可以开始关注这些人并与之互动。

3、我怎么找到中继器?如果我没有和别人连接到相同的中继器会发生什么?

答:你将无法和那个人交流。但是可以使用事件提示,以便你的客户端软件知道如何连接到其他人的中继器并与它们交互。未来也有其他的想法来解决这个问题,但我们永远不能保证完美的可达性,任何协议都不能。

4、我可以知道有多少人在关注我吗?

答:不,但是如果中继器以额外的协议方式协作,你可以获得一些估计值。

5、人们运行中继器的动机是什么?

答:这个问题具有误导性,它假设中继器是免费的,人们可以通过它们移动数据。是的,在这种情况下,激励机制并不存在。这实际上也适用于所有其他?p?2?p?网络堆栈中的DHT节点:人们有什么动机去运行DHT节点?

6、如果中继器只是在AWS或Azure上,那又有什么区别?

答:今天,全球有成千上万的VPS提供商,而不仅仅是AWS或Azure这两家。AWS或Azure正是大规模的单一中心化服务提供商所使用的提供商,而对于较小的中继服务器,任何VPS都可以很好地完成这项工作。

协议规范

请参阅NIP,尤其是NIP-01?,以获得对协议规范的合理详细解释。

原文链接

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

DAINCE:CZ的时间管理大法

本文来自Binance,原文作者:CZ,由Odaily星球日报译者Katie辜编译。今天有人问我:“你怎么有时间看这么多书?”以下是我的回答。我认为时间管理最重要的是学会说“不”.

[0:0ms0-4:275ms