近期爆火的Nostr是什么?如何操作?Nostr全面解读
近期,一个名为nostr 的去中心化社交协议大火,其社交产品Damus 在短短数日里用户就已经突破72W。那么,nostr 究竟是什么有什么魔力为什么如此受到追捧呢下文将一一进行探讨。
Nostr 出现的原因——爆火的导火索
经历了反垄断之年的互联网群众们,即痛恨于中心化机构对数据的滥用与侵犯,又无力脱离优秀的应用体验以及并无选择性的市场,归根究底在于社交产品背后是公司为机构在运营,是公司就有接受监管与审查的义务,他所有负责的对像是股东以及注册地政府,本质上追求的是商业上的成功,而不是言论自由的理想。
此外,目前的社交软体都或多或少存在着一些问题:
1、Twitter 的问题
Twitter 有广告; Twitter 使用奇怪的技巧让你上瘾; Twitter 不会显示你关注的人的真实历史动态; Twitter 会禁止某些人的帐户; Twitter 会使用影子禁令(Shadowbans). Twitter 有很多垃圾资讯;
2、Mastodon 和类似应用的问题
用户身份附加在第三方控制的域名上; 伺服器所有者可以像Twitter 一样禁止你,伺服器所有者也可以阻止其他伺服器; 伺服器之间的迁移是事后才考虑的,只有在伺服器协作的情况下才能完成。它在对抗环境中不起作用(所有追随者都会丢失); 运行伺服器没有明确的动机,因此它们往往由爱好者以及希望将自己的名字附加到一个很酷的域名上的人来运行的。然后,用户受制于一个人的专制,这往往比Twitter 这样的大公司还要糟糕,他们无法迁移出去; 由于伺服器往往是业余的,它们经常在一段时间后被抛弃—— 这实际上等同于禁止所有人; 如果每台伺服器的更新都必须痛苦地推送(和保存!) 到大量其他伺服器,那么拥有大量伺服器就没有意义了;这一点由于伺服器数量庞大而加剧,因此更多的数据必须更频繁地传递到更多的地方; 对于影片共享的具体范例,ActivityPub 爱好者意识到完全不可能像文本注解那样在伺服器之间传输影片;
3、SSB(Secure Scuttlebutt)的问题
它没有太多问题,我认为这很棒。事实上,我打算以此为基础,但是它的协议太复杂了,因为它根本就没有被认为是一个开放的协议。它只是用JavaScript 编写的,可能是一种快速解决特定问题的方法,因此它有奇怪和不必要的怪癖,比如签署一个JSON 字符串,其必须严格遵守ECMA-262 第6 版规则; 它坚持从单个用户那获得一连串的更新,这对我来说是不必要的,而且会增加内容的臃肿和僵化程度—— 每个伺服器/ 用户都需要存储所有的Post 链,以确保新的Post 是有效的。为什么要这么做(也许他们有很好的理由); 它不像Nostr 那样简单,因为它主要是为P2P 同步而设计的; 不过,可能值得考虑使用SSB 而不是这种自定义协议,并仅使其适应客户端中继伺服器模型,因为重用标准总是比尝试让人们使用新标准更好。
4、其他要求运行伺服器方案的问题
他们要求每个人都运行自己的伺服器;有时人们仍然会在这些方面受到审查,因为域名可能会受到审查。
而反垄断的终局古往今来更多是屠龙勇士终成恶龙,既然中心机构做不到,也没有立场去做,那么对自由的向往便催生出使用代码来保障自由的去中心化协议:Nostr。
Nostr 协议是什么——真正的去中心化社交
最近大火的Damus,是建立在Nostr 协议的一个应用,主要是以去中心化的社交场景(你把它理解为去中心化的Twitter)即可。
Nostr全称是Notes and Other Stuff Transmitted by Relays,是一个于2020年启动的去中心化社交网络开源协议。项目创始人fiatjaf也是比特币和闪电网络的开发者。目前项目没有公开融资,推特创始人Jack Dorsey对该项目进行了14BTC的捐助。
透过nostr 协议,你可以建立很多东西,这个协议相对轻量级的、简单但可扩展的开放协议,在它上面可以建立真正去中心化的社交媒体平台。
Nostr 协议的运行原理
Nostr协议中由两部分组成,一个是客户端Client,另一个是中继端Relay。客户端用于签名、验证信息,由用户运行。中继端可以抓取、存储任何与它链接的客户端的信息,并且转发给其他客户端。
任何人都可以运行中继端,但中继端和中继端之间互不通信,这一点与区块链节点有着本质区别。
另外,客户端允许用户与他们想要的任何数量中继端相连,用户还可以选择是否想要从自己所连接的中继端中读取、写入信息等等。这就意味着,我们可以连接某个中继端来检索内容,但是可以选择不在那里进行事件发布,或者反过来也成立。
如何在nostr 上创建帐号
在nostr 中,我们不需要通过使用个人数据来注册一个帐户(这就是它的优势)。
像比特币一样,我们只需要一套钥匙,也就是两把钥匙。
一个公钥(Public Key)作为你的用户名,这个密钥可以共享,并对所有人公开(就像你的微博帐号、微信ID、银行帐户一样,别人通过这个找到你)。 一个私钥(Private Key)。这把钥匙像你的密码,需要对它进行保密,通过这个密钥,你可以在任何由nostr 支持的平台上访问你的帐户。只需要选择一个nostr 协议的客户端,如anigma、coracle 或astral,它就会为你生成,这里,为了增加安全性,建议使用外部签名程序,如Alby 浏览器扩展或nos2x 扩展等等,也可以用Rana 等工俱生成一个独立的私钥。
注意保存私钥,因为它是将来恢复和重新登录你的帐户的唯一途径。
Nostr 协议的特点
Nostr 协议主要有以下5 个特点:
1、简单易注册
任何用户都可以创建一对公私钥,无需通过域名或社交帐号注册。Nostr的签名和验签算法不是常用的ECDSA,而是schnorr signature算法,这意味着,如果用户已经拥有比特币以太坊的私钥,那么是可以用于Nostr网络的,但因为编码形式的不同,私钥在不同网络的显示形式可能有所不同,这个需要做一次转换。
2、信息传递存储去中心化
不依赖于任何可信任的中心化服务器,且客户端发布信息可选择存储至多个中继端,因而对单一中继端依赖更小,也更具有迅速恢复性。
3、降低信任风险
讯息都有公钥标识,而讯息的验证由客户端验证完成,中继端只负责存储、传输,用户无需信任中继端,这进一步降低了通过Web3钱包进行签名带来的信任风险。
4、处理应对垃圾信息
果在Nostr网络中不能删号封人的话如何对抗那些不良信息呢Nostr中继端可以要求用户为发布付费或其他形式的身份验证,并将这些在内部与公钥相关联,以对抗垃圾信息。如果一个中继端被用作垃圾信息载体,它很容易会被用户丢弃,客户端可以继续从其他中继端获取更新。
5、 与闪电网络的结合:
Nostr的开发者fiatjaf同时也是比特币和闪电网络的开发者,因而Nostr原生支援闪电网络。闪电网络速度非常快,性能非常强,能够承载Nostr上的高并发应用。基于Nostr的客户端Damus内置比特币闪电网络功能,可以直接调用第三方闪电网络钱包支付。2023年2月3日,Damus表示将通过比特币闪电网络随机向用户发放小额比特币。
Nostr 协议如何进行操作
Nostr 的NIP 是一个雷同于以太坊EIP 提案的机制,而NIP-01 即说明了每个讯息的内容。
从用户客户端的视角出发,可以进行下列操作:
操作1、签名发布信息:EVENT
用户想要发布信息时,则是用自己本地客户端存储的私钥,对一串内容content做签名,最终生成如下的json类型数据
{
“id”:<结构化数据的哈希值>
“pubkey”: <事件创建者的公钥>,
“created_at”:
“kind”:<种类,可理解为频道>,
“tags”:[
[“e”, <另一个事件的id>, <推荐的中继器URL>],
[“p”, <推荐的中继器URL>],
… // 未来可能会包含其他类型的标签
],
“content”:<任意字符串,如hello world>,
“sig”: <序列化事件数据的sha256 哈希的64 字节签名,与”id”字段相同>
}
这里的id 其实是基于当前内容[pubkey,created_at,kind,tags,content]组合后用哈希计算得出的,因为有时间戳的参与,所以正常情况下id 是不会重复的。
操作2、订阅目标事件:REQ
作为信息传输,有来就有回,指令REQ 需要向中继器发送一个随机ID 作为订阅ID,以及一个过滤器信息。目前协议可支持的设定如下,
{
“ids”: <事件ID 的列表>,
“authors”: <公钥列表,必选项一>,
“kind”:<种类列表,可理解为频道>,
“#e”:<“e”标签中引用的事件的ID 列表>,
“#p”:<“p”标签中引用的公钥列表>,
“since”: <时间戳,筛选此时间之后的>,
“until”: <时间戳,筛选此时间之前的>,
“limit”: <要返回的最大事件数>
}
从筛选条件来看,基本等同于关注这个功能,既不需要对方许可也能拉取到对方发布的信息(事实上本质都是公开的),而过滤器也只是更好的定义,是谁在什么时间段,发布的那一条
当然出于中继器这样的设计,有可能部分中继器并没有存储目标用户的信息,那么用户需要尝试从不同的中继器去拉取,一旦中继器挂了,甚至全部相关联的中继器都挂了,那这块信息也就损失了。
操作3、结束订阅:CLOSE
最后一种客户端能对中继器发起的信息便是close 指令,即关闭订阅,那客户端便不会持续持续获取到最新的事件信息了。
从技术角度看,此协议使用了订阅ID 的模式这意味着中继器会建立起持续的websocket链接,一旦此中继器收到被关注用户的信息,就会主动向订阅方的客户端发起请求来同步,这种模式虽然对中继器而言负载更高,但同时也能得到实时被关注数这样的数据,是一种能激励用户发布更有价值信息的方式。
并且协议出现多个「e」、「p」,这类信息虽然并不是必选项,但他能让各个中继地址在客户端之间裂变,传播,是提升抗审查性的关键。
Nostr 协议的表现如何
1、Nostr 的数据表现
根据nostr.io的数据显示,截止至2023年2月5日,Nostr的公钥数量为500,463,拥有的中继端为289个,事件(event)超过121万。Nostr在最初的NIP 01中定义了三种不同的事件类型:
0:发送有关用户的元数据,例如用户名、图片、简介等; 1:发送短信和基本内容; 2:推荐中继服务器供关注事件创建者的人连结。
2.Nostr 的生态应用
去中心化的推特是Nostr当前最大的用例,然而其运用远不止社交产品这么简单。现在基于Nostr建立起了类似Telegram的Anigma.io、Reddit的替代品novote、端到端加密文本共享工具Sendtr、在线下棋小游戏Jeste等等。
Nostr 的野心:不止替代Twitter
那么,Nostr 仅仅就是想做个去中心化的Twitter 吗
1、替代Twitter
为达到替代Twitter 的目的,客户端利用了第1 类的事件,即纯文本笔记。一些客户端包括:coracle, astral, nostr.ch, branle, damus, alphaama.com, Nostros 等等
比如Damus, 就是替代Twitter 的创造
2、替代Telegram
通过使用4X(X 是0 到9 之间的数字),可以实现像Telegram 那样的公共频道,比如上面主页的Anigma.io 是实现Telegram 克隆的网络应用。你可以创建公共频道,任何人都可以加入并聊天。在anigma 中,可以向用户发送私人的端到端加密讯息。
3、替代Reddit
Nostr 也可以作为Reddit 的替代品,可以发布帖子,用户可以对这些帖子投票,比如上面网站大图的nvote。
4、 在线游戏
nostr 的另一个有趣的用途是创建简单的多人在线游戏,比如Jeste,在这个平台上,你可以通过Nostr 与其他用户在线下棋。
5、文本共享
Sendstr 是一个在线工具,你可以通过nostr 协议在两个设备之间分享端到端的加密文本数据。
Nostr 协议目前存在哪些问题
1、中继端激励问题
虽然任何人都可以建立中继端,但目前全球只有200+公开的中继端,因为搭建是存在门槛的,需要较好的处理性能和网络,同时也需要一定的技术和运维能力,但是中继端缺乏收益,因而如何吸引更多的中继端加入是个问题,如果基础设施建立在脆弱的「自愿主义」基础上,则难以壮大为一个强大的社交网络。
然而,如果有激励,则会面临着,大部分激励将逐渐掌握在少数人手里,无法形成有效激励,且容易受到攻击的困境。针对运行中继器激励的问题,开发者认为,首先不应假设中继器的运营者会无偿服务,即便没有所谓的「激励」,p2p网络中的DHT节点仍然在持续运营。
2、社交隐私问题
目前的Nostr 中继器只是简单JSON 数据的转储。客户端通过过滤器获取。这使得nostr 成为客户端之间的通用数据共享平台,那对于有隐私信息传递需求的场景而言,如何解决呢毕竟即使是推特这样的社交广场也会有私信的需求存在。
目前较优的解决方案是,DH 算法(迪菲- 赫尔曼密钥交换),这套1976 年问世的算法。它是第一个实用的在非保护信道中创建共享密钥方法。只要得到共享密钥,使用Nostr 的双方均可以发布加密后的信息,从而实现点对点的隐私通信。由于隐私常有阅后即焚的诉求,所以其中的服务器存储成本还能进一步降低。
3、抗DOS 问题
会受到攻击的是中继器这一层,目前Nostr 协议并不直接指导和确定如何让中继器抗击DOS 攻击和垃圾信息,因此也是众多中继器实现的重点。
4、Nostr 的存储问题
目前数据主要存储在中继端上,但这并不是永久存储,用户一旦更换客户端,信息就清除了。中继端用于缺乏激励,没有足够的动力来为用户数据进行存储,因而也存在着中继端主动或者被动删除数据的可能。未来Nostr或可以针对存储功能提供激励,在确保去中心化和易用性的同时,使得数据更加具有可得性。
Nostr 协议的发展展望
总体来说,Nostr是一个非常简单且具有高度互操作性的协议,其呈现了去中心化社交协议与自由的价值传递交织后涌现的可能性。客户端和中继端的组合,使得信息的发布和传递更加具有抗审查性,这与比特币倡导的精神内核相吻合。
Nostr算是为去中心化社交新打开了一扇窗,自此之后,相信大规模的协议以及应用会迎来新的突破。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。