撰文:git-sgmoore 和 fiatjaf (nostr)

编译:DeFi 之道 隔夜的粥

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

Twitter 的最新禁止政策

根据介绍,nostr 是一个最简化的协议,它能够一劳永逸地创建一个抗审查的全球“社交”网络。

nostr 不依赖于任何受信中央服务器,其基于密码学密钥和签名,并且不依赖于 P2P 技术,它也不会发行 token。

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

1、如何开始使用 Nostr

2、Nostr 客户端功能比较

3、基于 Nostr 的项目列表‌

一、其他解决方案存在的问题

1、Twitter 的问题

  • Twitter 有广告;

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

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

  • Twitter 会禁止某些人的账户;

  • Twitter 会使用影子禁令(Shadowbans);

  • Twitter 有很多垃圾信息;

2、Mastodon 和类似应用的问题

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

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

  • 服务器之间的迁移是事后才考虑的,只有在服务器协作的情况下才能完成。它在对抗环境中不起作用(所有追随者都会丢失);

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

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

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

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

3、SSB(Secure Scuttlebutt)的问题

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

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

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

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

4、其他要求运行服务器方案的问题

  • 他们要求每个人都运行自己的服务器;

  • 有时人们仍然会在这些方面受到审查,因为域名可能会受到审查;

二、Nostr 的运行原理

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

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

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

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

  • 在启动时,客户端从它知道的所有中继器中查询它所关注的所有用户的数据(例如,从最近一天开始的所有更新),然后按时间顺序向用户显示该数据。

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

三、Nostr 如何解决其他方案无法解决的问题?

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

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

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

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

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

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

问题2: 抗审查

每个用户都可以将他们的内容更新发布到任意数量的中继器。

中继器可以向用户收取费用(目前费用的协商不在协议范围内)以在那里发布,这确保了抗审查性。

问题3:垃圾信息

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

问题4: 数据存储

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

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

问题5:视频等重内容

中继器很容易拒绝大数据的内容,或者对接受和托管大数据内容收费。当信息和激励明确时,市场力量很容易解决这个问题。

问题6:显示方式

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

四、FAQ

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

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

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

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

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

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

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

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

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

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

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

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

协议规范

请参阅 NIP‌,尤其是 NIP-01,以获得对协议规范的合理详细解释(提示:它非常简短)。

扩展阅读:

《一文对比去中心化社交协议 Nostr 和 Farcaster》

链接:

https://www.8btc.com/article/6795292

《速览推特的去中心化挑战者:Lens、Mastodon 与 nostr》

链接:

https://www.8btc.com/article/6795932

《试试Nostr的首个客户端Damus,推特创始人认可的Web3新社交》

链接:

https://www.theblockbeats.info/news/34206

《Damus 体验教程分享:功能和用户体验如何?》

链接:

https://foresightnews.pro/article/h5Detail/24352

一文了解 nostr :一个让 Elon Musk 感到害怕的去中心化社交协议相关推荐

  1. 去中心化社交网络协议除了Nostr还有哪些?

    当下最火的去中心化社交软件Dmaus就是基于Nostr协议开发的,Nostr协议的基本情况之前的文章<一文了解去中心化社交网络协议Nostr>已经做了详细介绍,本文将介绍其他几个目前比较流 ...

  2. 尝试做一个好的技术Leader, 建立“去中心化团队”

    前言 心中早已有将近几年的心中所想和收获以及实践付诸笔下做下整理,苦于不知道什么才是正确的方式,也困扰于1+1如何让大于2的问题,猛然回首,竟已惘然.思量再三,还是静下心来讲讲感悟心得,说不定若干年后 ...

  3. 互联网之父发布去中心化平台Solid:一个推翻巨头垄断的天才手法

    来源:区块链前哨 本文约2500字,建议阅读5分钟. 本文为你讲述了互联网之父发布了去中心化平台 Solid,准备推翻现有的互联网的故事. Tim Berners-Lee 是互联网的发明人,但是,最近 ...

  4. 空间存储公链(SSCC):一个创新的去中心化共识(POCC)隐私网络和存储协议

    人类社会发展的一切障碍,从根本上来说都是由于"互不信任"导致的,尤其是各种经济和金融危机.如果人类能解决互相信任的问题,那么人类将完成一次非常大的跨越,步入一个更高阶段的文明. 卢 ...

  5. 【Web3】什么是Web3?一个新的去中心化网络,或是最新的营销流行语

    Web3已成为一种将区块链.智能合约和去中心化应用程序结合在一起的尝试,但其真正的功效难以确定. Web3,如Web3基金会设想的那样,将是一个公共互联网,数据和内容被注册在块链上,在对等分布式网络上 ...

  6. “万维网之父”发文阐述其下一个网络时代:将数据与应用分离,互联网去中心化正在路上...

    来源:Deep Tech深科技 关注"万维网之父"Tim Berners-Lee 动态的人,一定知道这位业内大神正在投身于下一代互联网的建设--一个去中心化的互联网. 他正在领导其 ...

  7. Web3.0:Skiff 去中心化隐私协同文档

    随着国家反垄断和数据隐私保护的强监管落地,原本过得风生水起的web2.0大平台型企业都受到了重大的冲击.在平台模式中往往用户和平台是一种零和游戏,例如平台无底线的数据采集.大数据杀熟.高额抽成等等. ...

  8. 搭建一个国内高可用的IPFS网关节点,低价打造去中心化无限存储节点

    前言 首先介绍一下IPFS(InterPlanetary File System)中文称为星际文件系统,是一个旨在实现文件的分布式存储.共享和持久化的网络传输协议. IPFS是WEB 3.0时代的基石 ...

  9. Conflux 吐槽君:Hashgraph 是一个真正的企业级去中心化平台吗?

    亲爱的好朋友们: 上期小C吐了一下 IOTA.说实话,刚开始小C还有些忐忑,毕竟是小C出道的第一篇文章,文章内容也可能会引起一些激烈的辩论.结果,有非常多的朋友给了我点赞关注加鸡腿,这让小C非常受宠若 ...

最新文章

  1. LINUX文件、目录权限及相关操作命令
  2. mciSendString用法
  3. Transformer结构详解(有图,有细节)
  4. QueryWrapper查询
  5. JAVA不同类型数组重载_方法的重载;数组 (Java Day05)
  6. P2212 [USACO14MAR]Watering the Fields S(最小生成树)
  7. 第三方 搜索 聚合 百度 php,百度小偷-搜索引擎聚合源码-寄生虫源码
  8. redist mysql_redist命令操作(三)--集合Set
  9. python设置环境变量_Python设置环境变量
  10. Android零基础入门第66节:RecyclerView点击事件处理
  11. 项目启动会注意事项-甲方
  12. STM32控制SG90舵机
  13. flash动画短片制作常用表现方法与技巧(精华)
  14. ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解
  15. matlab里调节触发角度,电机与拖动基础及MATLAB仿真陈亚爱第4章直流电机.ppt
  16. linux运行blast,Linux下BLAST的使用
  17. C语言日常学习中遇到的易错情况(2022.11.14)
  18. 一键DDOS防火墙安装程序
  19. 百度地图 3.0 WEB离线开发
  20. Linux/debian/ubuntu/deepin 等系统禁用鼠标中键(滚轮)按下粘贴的方法

热门文章

  1. over(Partition by...) 详细用法
  2. 智慧城市AIoT应用场景划分
  3. Ubuntu系统命令行查看环境变量
  4. Python ElementTree 解析 xml文件
  5. 局域网联结打印机,不出现登陆框
  6. Lucene入门之全文检索基本介绍
  7. Java初识相关问题
  8. 文言文编程 田忌赛马
  9. Ubuntu20.04合盖后无法唤醒
  10. Excel 2013设置主次坐标轴后对应的柱状图不重叠