聊聊 nostr 和 审查
这两天在网络上又有一个东西火了,Twitter 的创始人 @jack 新的社交 iOS App Damus 上苹果商店(第二天就因为违反中国法律在中国区下架了),这个软件是一个去中心化的 Twitter,使用到的是 nostr – Notes and Other Stuff Transmitted by Relays 的协议( 协议简介 , 协议细节 ),协议简介中有很大的篇幅是在批评Twitter和其相类似的中心化的产品,如: Mastodon 和 Secure Scuttlebutt 。我顺着去看了一下这个协议,发现这个协议真是非常的简单,简单到几句话就可以讲清楚了。
目录
通讯过程
- 这个协议中有两个东西,一个是 client,一个是 relay,client 就是用户社交的客户端,relay 就是转发服务器。
- 用户不需要注册,用户只需要有一个密钥对(公钥+私钥)就好了,然后把要发的信息做签名,发给一组 relays
- 然后你的 Follower 就可以从这些 relays 上订阅到你的信息。
技术细节摘要
-
技术实现上,nostr 使用 websocket + JSON 的方式。其中主要是下面这么几个指令
-
Client 到 Relay主要是下面这几个指令:
-
EVENT
。发出事件,可以扩展出很多很多的动作来,比如:发信息,删信息,迁移信息,建 Channel ……扩展性很好。 -
REQ
。用于请求事件和订阅更新。收到REQ
消息后,relay 会查询其内部数据库并返回与过滤器匹配的事件,然后存储该过滤器,并将其接收的所有未来事件再次发送到同一websocket,直到websocket关闭。 -
CLOSE
。用于停止被REQ
请求的订阅。
-
-
Relay 到 Client 主要是下面几个指令:
-
EVENT
。用于发送客户端请求的事件。 -
NOTICE
。用于向客户端发送人类可读的错误消息或其他信息
-
-
Client 到 Relay主要是下面这几个指令:
-
关于
EVENT
下面是几个常用的基本事件:-
0
:set_metadata
:比如,用户名,用户头像,用户简介等这样的信息。 -
1
:text_note
:用户要发的信息内容 -
2
:recommend_server
:用户想要推荐给关注者的Relay的URL(例如wss://somerelay.com
)
-
如何对抗网络审查
那么,这个协议是如何对抗网络审查的?
- 识别你的身份是通过你的签名,所以,只要你的私钥还在,你是不会被删号的
- 任何人都可以运行一个或多个relay,所以,就很难有人控制所有的relay
- 你还可以很方便的告诉其中的 relay 把你发的信息迁到另一个 relay 上
- 你的信息是一次发给多个relay的,所以,只要不是所有的热门realy封了你,你就可以发出信息
- 每个relay的运营者都可以自己制定规则,会审查哪些类型内容。用户据此选择即可。基本不会有一个全局的规则。
- 如果你被全部的relay封了,你还是可以自建你的relay,然后,你可以通过各种方式告诉你身边的人你的relay服务器是什么?这样,他们把这个relay服务器加到他们的client列表中,你又可以从社死中复活了。
嗯,听起来很简单,整个网络是构建在一种 “社区式”的松散结构,完全可能会出现若干个 relay zone。这种架构就像是互联网的架构,没有中心化,比如 DNS服务器和Email服务器一样,只要你愿意,你完全可以发展出自己圈子里的“私服”。
其实,电子邮件是很难被封禁和审查的。我记得2003年中国非典的时候,我当时在北京,当时的卫生部部长说已经控制住了,才12个人感染,当局也在控制舆论和删除互联网上所有的真实信息。但是,大家都在用电子邮件传播信息,当时基本没有什么社交软件,大家分享信息都是通过邮件,尤其是外企工作的圈子,当时每天都要收很多的非典的群发邮件,大家还都是用公司的邮件服务器发……这种松散的,点对点的架构,让审查是基本不可能的。其实, 我觉得 nostr 就是另外一个变种或是升级版的 email 的形式 。
如何对抗Spam和骗子
但是问题来了,如果不能删号封人的话,那么如何对抗那些制造Spam,骗子或是反人类的信息呢?nostr目前的解决方案是通过比特币闪电网络。比如有些客户端实现了如果对方没有follow 你,如果给他发私信,需要支付一点点btc ,或是relay要求你给btc才给你发信息(注:我不认为这是一个好的方法,因为:1)因为少数的坏人让大多数正常人也要跟着付出成本,这是个糟糕的治理方式,2)不鼓励那些生产内容的人,那么平台就没有任何价值了)。
不过,我觉得也有可以有下面的这些思路:
- 用户主动拉黑,但很明显这个效率不高,而且体验不好
- 社区或是同盟维护一个黑名单,relay定期更新(如同email中防垃圾邮件也是这样搞的),这其实也是审查。
- 防Spam的算法过滤垃圾信息(如同email中干的),自动化审查。
- 增加发Spam的成本,如: PoW 工作量证明(比特币的挖矿,最早也是用于Email),发信息要花钱(这个对正常用户伤害太大了)等。
- ……
总之,还是有相应的方法的,但是一定没有完美解,email对抗了这么多年,你还是可以收到大量的垃圾邮件和钓鱼邮件,所以,我觉得 nostr 也不可能做到……
怎么理解审查
最后,我们要明白的是, 无论你用什么方法,审查是肯定需要的,所以,我觉得要完全干掉审查,最终的结果就是一个到处都垃圾内容的地方!
我理解的审查不应该是为权力或是个体服务的,而是为大众和人民服务的,所以,审查必然是要有一个开放和共同决策的流程,而不是独断的 。
这点可以参考开源软件基金会的运作模式。
- 最底端的是用户(User)参与开源社区的使用并提供问题和反馈。
- 用户在使用过程中了解项目情况后贡献代码和文档就可以晋升为贡献者(Contributors),
- 当贡献者提交一定数量贡献之后就可以晋升为提交者(Committers),此时你将拥有你参与仓库的代码读写权限。
- 当提交者Committers在社区得到认可后,由项目管理委员会(PMC)选举并产生PMC成员(类似于议员),PMC成员拥有社区相关事务的投票、提名和共同决策权利和义务。
注意下面几点
- 整个社区的决策者,是要通过自己贡献来挣到被选举权的。
- 社区所有的工作和决定都是要公开的。
- 社区的方向和决策都是要投票的,PMC成员有binding的票权,大众也有non-binding的投票权供参考。
- 如果出现了价值观的不同,那么,直接分裂社区就好了,不同价值观的人加入到不同的社区就好了 。
如果审查是在这个框架下运作的话,虽然不完美,但至少会在一种公允的基础下运作,是透明公开的,也是集体决策的。
开源软件社区是一个很成功的示范,所以,我觉得只有技术而没有一个良性的可持续运作的社区,是不可能解决问题的, 干净整齐的环境是一定要有人打扫和整理的 。
(全文完)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《 聊聊 nostr 和 审查 》的相关评论
“如:Masodon 和 Secure Scuttlebutt” 应该是 Mastodon 吧
能贴个公钥不皓叔,关注下
npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu
Mastodon是去中心化的;
Secure Scuttlebutt也是去中心化的;
基本上这玩意就是马一龙最喜欢的基于加密货币的下一代可控可垄断可盈利的一个社交平台而已。
关于审查的的问题,既然已经是去中心化了,避免不了收到垃圾信息,是否能自己添加关键词过滤器去做本地化的审查,这样也只能做到自觉,做不到监管。
相对IM,这是一个媒体。媒体是用户自己关注的,SPAM和过滤应该是针对评论吧,把评论开放给发帖人管理是个办法。
关于审查 方面,“干净整齐的环境是一定要有人打扫和整理的” 这句话非常同意,没有绝对的“宽松”与“严苛”,过于“宽松”的环境成了垃圾信息的温床,久而久之获取有用信息的时间成本越来越长,最终沦为废土
如果私钥泄漏(被偷)了就麻烦了,这里应该会有一个吊销密钥的机制吧?
利益是最好的动机,relay的利益在哪里呢?成人的世界很少为爱发电的。
如果完全免费,那么relay的利益必然从其他地方获取,所以最后可能就是打着免费的名义去圈地,然后不停的投喂其他东西。
安卓上建议用什么样的APP来使用NOSTR 呢
去中心就是无管理,无管理就要被下架,简单粗暴,哈哈~