Article
为什么 Nostr 很重要:免于被服务器统治的自由
为什么 Nostr 很重要:免于被服务器统治的自由
Rough consensus and running code
4 minutes read • November 7, 2023

编者注:这是我在 #Nostrasia HK 活动上的 talk,事先我没有做 PPT 而是边想边写了一篇这样的稿子,想着如果没有参会的朋友也可以“听到”这次分享。 


感谢 Nostr 让我们有这样一个机会聚在一起,分享一些关于社交网络的想法。我是 Nostr 客户端 flycat.club 的作者 Digi Monkey。flycat 是一个 Nostr 客户端,提供 Relay Group Switching/长文+短文信息流/Community/JoyId登陆/Metamask登陆/等功能。今天想聊聊我眼中的 Nostr,以及为什么它对于赛博空间来说是重要的。 

回到1996 

我想先分享一段话: 

We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before. 

有些朋友可能知道这句话的出处,它摘录于《赛博空间独立宣言》的结尾,是一个名叫约翰巴洛的人在1996年2月8日发表在互联网上的一篇文章。96年大家可以想象网络还是一个非常新鲜的东西,作为参考,网景浏览器是94年的时候发布的,所以这个时候网络,或者说赛博空间,这样一个概念应该说对当时的人们而言还很模糊,但是我们能看到刚才那篇宣言,其实用了一种很笃定的语气,描绘了一个非常理想化的乌托邦式的关于互联网社区的愿景。 

在赛博空间独立宣言这篇文章里,它主张了两条基本的思想: 

1、网络空间和肉身是二元的,彼此完全独立。网络空间里没有国界/没有歧视/无物质。 

2、网络空间不需要依赖现实世界的治理,不受约束于强制性的法律,而是通过不成文的“法典”(代码/道德/伦理/利己的理念/共同福利)来形成秩序和自己的 social norms。 

今天我们聊更多的是广义上的社交网络(social network),就是指的这样一个赛博空间,一块新的数字大陆,整个互联网线上的生活,一个大的社区,人们可以在其中交换信息和服务。 

这跟宣言里谈论的是同一个东西。我们可以细细读下原文,看看人们当时怎么期待这样一个新事物。以下是一些原文的摘录: 

网络世界由信息传输、关系互动和思想本身组成……..我们的世界既无所不在,又虚无飘渺,但它绝不是实体所存的世界。

我们正在创造一个世界:在那里,所有的人都可加入,不存在因种族、经济实力、武力或出生地点生产的特权或偏见。

我们正在创造一个世界,在那里,任何人,在任何地方,都可以表达他们的信仰而不用害怕被强迫保持沉默或顺从,不论这种信仰是多么的奇特。

你们关于财产、表达、身份、迁徙的法律概念及其情境对我们均不适用。所有的这些概念都基于物质实体,而我们这里并不存在物质实体。

我们的成员没有躯体,因此,与你们不同,我们不能通过物质强制来获得秩序。我们相信,我们的治理将生成于伦理、开明的利己以及共同福利。我们内部的文化世界所共同认可的惟一法律就是“黄金规则”(己所不欲,勿施于人)。我们希望能够在此基础上构建我们独特的解决办法。 

可以看到,那时候的想象,是非常理想化的。它对治理的设想,也比较模糊。跟今天的网络世界,已经成为我们日常的、现实的网络世界(互联网)相比,是非常不同的,已经分叉了。甚至有很多 web3/blockchain 的社区会说,互联网走了一段弯路,背离了原本的初心。 

今天的赛博世界 

我们上面提到的《独立宣言》里的两条基本思想,现在的互联网都违背了: 

1、今天互联网之所以这么强大,很大原因是它和现实缝合了在一起,不是彼此独立的二元关系。例如许多 o2o 服务,外卖、打车、住宿等等,从头到脚全面包围了人们的生活。网络已经入侵了现实,甚至反过来指导现实生活了。而在早期,网络更像是一块纯粹的思想的新大陆。大家很乐观的认为,可以单独为人类的思想创造一个自由的家园。 

2、这个家园不受现实法律和国家政府的管理,是纯自治的。今天这一点也被推翻了。今天各个国家都在积极管理网络,出台各种各样的电信法律,主要是遵循属地管理的原则:一项互联网服务,它所属的主体、服务器的所在地、数据存储的所在地,这些地方在哪,哪里的政府和当地法律法规,就会相对应地,对在这些土地上托管的互联网服务进行监管。 

这里我们不谈这两点基本观念的被推翻,究竟是对是错。不谈是不是《赛博空间独立宣言》提倡的就一定是对的。我们只说理想中的,跟现实实际发生的,这二者存在了比较大的落差,发生了变化。 

我感兴趣的问题是,这个变化是怎样发生的? 

1、主流旋律视角来看,是一种赛博朋克的发生,大公司/政府/技术本身的发展,脱缰于人们的控制,创造了“高科技、低生活”(high tech,low life)的现实。 

  • 例子1,外卖小哥就是科幻小说里的赏金猎人,被某个系统雇佣,在算法的管理下生存,有很多人想要逃出去,但更多时候需要依赖它。
  • 例子2,纯粹精神层面上的生活,更贴近社交网络上的这部分,今天人们在 twitter 上的生活也是如此。你在 twitter 上是没有最基本的权利的,就是账号的所有权,用户只有暂时的使用权,更不用说自由说话的权利,这些都掌握在马斯克和 twitter 这家公司手里。 

2、另一个视角,我们从机器和人的视角来看,我认为这一场变化也是人和机器之间的权力战争。  

a civilization war between machines and humans  

这里的机器,更多指的是服务器。网络上的一项服务,尤其是平台型的产品,通常会由服务器和客户端两部分组成,服务器掌握在私人企业或者开发者手里,需要通过授权的 API 才能访问,客户端则是用户在本地使用的软件,不管是通过浏览器访问 web 还是手机里的一个 app。用户使用客户端,通过授权去向服务器访问,读写一些数据,进行某些计算,消费一项服务。 

服务器在这个流程里占据了最大的权力: 

  • ID (名字/身份/账号,“我是谁,怎么证明我是我” ,以及一个副产品:关系链 

身份 ID 是你向服务器请求注册的,请求它给你一个名分。它愿意给你就给你,不愿意给你,也可以把你的身份给另一个人。比如微博的用户名是不可以重复的,那好的名字给谁呢?服务器说了算。同时因为服务器可以决定“你是谁”,你的朋友是谁,也就是所谓的社交关系链,常常作为身份ID的一种副产品,也是被服务器所控制的。最典型的例子就是微信。通讯录是微信最宝贵的资产。 

  • 数据(生产资料 — 数据放在哪/谁有权利接管/是否可以伪造数据/所有权/使用权属于谁 

虽然大部分数据是用户生产的,但是数据是存在服务器上的,而且谁生产的数据/是否可以伪造数据,这个关系和保证也是服务器背书的,大部分情况下你对你自己生产的数据只有使用权,所有权是归平台的。 

  • 交易 (生产关系 — 谁可以提供服务/消费服务,遵守什么样的交易规则/是否需要抽成 

规则是写在服务器里面的,服务器可以随时更改规则,因为服务器同时拥有了数据,而规则的修改往往涉及到数据的使用/获取需要进行调整,它想怎么改就可以怎么改。 

我们可以看到,服务器对用户提供服务的这个过程,很像是一个国家对人的管理。 

你在 twitter 上注册账号,相当于你在公安局做了一次户口登记,公安局发给你一串身份证号,你的 ID,然后身份证是你证明自己的通行证,有了身份你才可以在这个国家租房子住、生产、消费。整个过程同时还会伴有法律、道德这样的社会规则对你的行为进行约束。 

在 twitter 上也有“用户使用条款”这样类似的东西,类比现实世界里,就相当于是法律。如果你的账号有某些行为不被允许,twitter 就会收回你的账号。但是线上这套东西,跟线下的法律比,实在糟糕很多。国家公民还有权利去参与法律的制定、也有司法/律师这样的制度赋予公民辩论的空间,保证程序正义,但是线上是完全没有的,twitter 完全是自己说了算。 

所以我们需要意识到,在赛博空间里的,人的基本权利,所谓“人权”,其实是比现实世界还要欠缺的。如果现实世界中,人们已经是现代文明、步入了主权国家的阶段,那么在赛博空间里,我们大概还处于奴隶制或者封建制的时代。服务器就是那里面的王,君主和皇帝。 

Nostr在这个变化里属于什么角色 

Nostr 有非常特别的定位。我喜欢用这样一个图谱来看待它的定位,从左至右是“中心化”和“去中心化”的两个极端,Nostr 大概处于中间更靠右边一点的位置: 

image.png 

注意,在这个图谱里面,我们其实是在描述和谈论赛博空间里提供服务的不同的类型,属于一种做事情的方法,或者说技术架构上的选择,跟线下的政治身份是没有关系的。左翼和右翼只是一种比喻。 

Right Wings(centralization) 

中心化的极端上,大部分使用的就是我们上面说的服务器权力最大化的模式。我们可以给他们打个标签,叫右翼,保守派。他们有以下组成部分: 

  • 商业公司(主流力量,大公司/创业公司)
  • 个人/小群体(geek self-hosting / indie developer)
  • 政府(政府门户/社会机构提供的服务/政务的线上化) 

Right Wings builds a lot of servers, and lots of machines, and we live under the rule of those machines. 

值得注意的是,右翼这里面也有一些比较美好的独立开发者,他们往往以手工业的形式,提供一些比较独特的软件和服务。但是仍然是采用服务器权力最大化的模式,即开发者一个人说了算。 

再举一个例子,https://tilde.town/,这是一个在 Linux 服务器上搭建的社区,发起人提供服务器的资源,你可以向社区申请入驻,得到访问这台公共服务器的 ssh 凭证,从而接入服务器,在上面写东西、画画、make things,整个社区都能互相分享居民们的创造。 

这个社区是典型的人治,入驻申请是发起人手动确认的,如果你行为不好,他也可以直接把你踢出去。这个社区现在的人口接近 1000 个人,是非常小且美好的社区,不过它仍然是我们上面说的那种模式。 

image.png 

所以很多时候右翼这种做法,也是合理的。只要社区的居民本身同意服务器的统治,社区发展不受阻碍,那么也不一定需要把这种中心化的模式全部替代成去中心化的。中心化服务有它合理存在的一面。这也是为什么我不同意“区块链吃掉一切“的观点。 

Left Wings(decentralization) 

左翼指的是去中心化这个极端上的做法。他们包括以下几种形式: 

  • p2p network(志愿节点,Bittorrent/Tor/SSB)
  • blockchain(代码为强制性的准则,需要激励&共识)
  • 自由软件(不提供服务,开源/捐助) 

Left Wings actually wants everybody to run their little homebrew machines, and unit all the devices from people under one global cyber law. That is the code of the law, the so-called consensus layer in the blockchain network. 

左翼激进派也是当前比较重要的一股力量。以区块链为例,左翼是怎么做的呢?基本上它们是希望打造一个公平的、所有人都参与进来的系统,这套系统的规则很严密,比如比特币总量就是2100万个,每挖出一个都需要经过挖坑计算,任何节点都需要遵守同一套代码的规则。 

而这套代码的规则怎么修改和升级,又有关于这套规则的修改的规则,比如有的区块链是使用 DAO 来投票,决定一项提议是否能被纳入共识中,成为新的规则。当然比特币可能更多是使用链下治理的方式,每次系统升级可能主要取决于矿工节点的采纳和支持。 

所以区块链其实也是在创造一整套非常理想化的系统,这个系统像是古希腊那种全民参与政治生活的非常细致的系统。与之对比,Nostr 并没有这样的雄心壮志,它更多是以一种松散的形式,只规定核心的几条规则,其他的你们爱怎么样怎么样,可能更贴近于现代自由主义,个人生活和政治生活之间有一条明确的线,在这条线之外的,法律完全不需要进行干涉,也无权进行干涉。 

我们可以更仔细地看看 Nostr 的区别在哪里。 

Nostr:更务实的中庸之道 

Nostr 的协议是极简的,定位是特别的,它不靠左,也不靠右,选择了一个比较中庸的站位。我们同样从 ID(身份)、数据(生产资料)、交易(生产关系)这三方面进行对比。 

  • ID(身份):只是一对公私钥,用户自己掌控。服务器无法剥夺用户的身份,它无法让“我不是我”,只有“我”能证明“我是我”。
  • 数据(生产资料):Nostr 定义了数据的格式 (一个非常简单的 JSON)和传播(服务器与客户端之间的通信标准)
  1. 数据的格式:需要遵守同一个标准,其中最重要的规定是发出的任何消息必须要签名。
  2. 数据的传播:hardcode 使用 websocket 来进行服务器/客户端的通信,定义了基本的通信格式。why hardcode?更利于 boostrap,务实做法。
  • 交易(生产关系):可以嵌入比特币闪电网络,提供原生数字货币的支付能力,但只是一个可选项(非常重要),除此之外没有任何其他规定,法无禁止即可为。 

服务器在 Nostr 生态被称作 Relay,用户生产的数据只是暂时保管在 Relay 上,而且因为每个数据都有签名,所以服务器无法伪造用户数据,或者剥夺用户生产了某个数据的关系。 

数据的传播依赖于向公共 Relay 发起请求获取某一个用户的数据,而一份数据可以存放在多个 Relay 上,一个用户也可以向多个 Relay 请求获取同一份数据。这样的机制导致服务器(Relay)成为了一个用户可以自由切换、自由选择的服务商。它失去了定义身份、掌握数据所有权、制定交易规则的权力,只剩下暂时备份存储数据的功能,更像一块 API 联网的硬盘,只能通过提供这部分服务来收取费用。服务器变成了更单纯的一个角色。 

结论:服务器(Relay)的权力被削弱,客户端的权利被放大。 

有人会担心,这样客户端的权力又会不会太大?比如出现某个客户端一家独大的场面,锁死了用户,无法退出?答案是不会。因为服务器的权力已经被解构了,用户切换客户端的成本也同样降低了很多,所以这部分是不太需要担心的。 

当然,有一种情况是,客户端可能会打着“缓存/优化”的名义,引入了过多超出 Nostr 协议范围内的客户端定制化的服务,这种做法仍然是需要引起警示的。因为一旦这些所谓的优化太多了,那么我们很容易又受限于某个特定客户端的服务的统治,而不是遵循 Nostr 协议的标准,导致无法切换选择其他的客户端。这种情况就是生态被某个产品绑架了。 

但就现在而言,因为切换客户端几乎没有成本,更大的难题是客户端的开发者如何提供有差异化(但仍然兼容于 Nostr 协议)的产品,甚至客户端应该如何拥有商业模式,看起来比 Relay 的商业模式更难探索。但这部分属于其他内容,暂且不表。 

另一方面来说,我觉得 Nostr 的 relay-client 架构是更贴近现实中人类社会运作的模式。 

  1. Relay as a free-cache or paid-long-term-storage 

Relay 在 Nostr 的生态里可以被视为一种免费缓存/付费长期存储的服务(free to cache, pay to save)。很多刚加入 Nostr 的用户会问一个问题,如果 Relay 下线了怎么办,我的数据是不是就丢了?答案是没错,你的数据确实就会丢了。但这可能不是一个问题。 

Nostr 的社交网络就像线下你去某家咖啡厅跟人交谈一样,免费的公共 Relay 只是免费帮你缓存一下你发出的数据,它是一种传播的介质,就像咖啡馆的这场对话,声音是通过空气传播一样,Relay 帮你把声音传出去,让参与对话的其他人可以听到你的消息。然后这场交谈结束之后,大家各自回家,这些交谈的信息也就一并消失在空气了。 

当然,如果你觉得自己说的话特别有价值,你也可以自己跑一个 Relay 把这些消息永久存储下来,这就像有的人回家了会写一下日记,记录今天自己这场对话里说了什么一样,只是大部分人可能并不会记日记。如果你特别重视自己的数据,也可以使用付费的 Relay,让付费的服务器帮你保存数据。这就像在生活中你家里东西太多了,出去租了一个仓库放自己的东西一样。  

  1. Relay as a localized autonomous community 

现在的社交网络是全球化的,全球化会有全球化的问题。人脑其实无法处理全球化的信息,因为我们长期以来就生活在一个小村庄里,邻居可能就几百人,当网络给了你全球化的信息时,你的大脑很容易处理不过,所以你总是在刷 twitter 的时候感觉焦虑,看到打仗的新闻要关心,那边贸易战、技术卡脖子也要担心。Relay 的模式有机会让我们回归到一个个的小社区的模式。每个 Relay 就是一个社区,推行本地自治,切换 Relay 可以自由切换这些社区。 

为什么我感觉 Nostr 是务实的呢,也是这一点。我们其实是在后退一步,放弃 P2P 的追求,转而去寻找“多中心化的、小规模社区自治”的社交网络。为什么放弃 P2P 呢?因为 P2P won't work(这是 faitjaf 的原话,我也很同意)。P2P 网络出现了这么久,我们没有办法让它成为人人可用的社交网络服务,它也确实不好用。所以我们转而去追求多个 Relay、只是自由切换 Relay 的模式,显然它更落地,至少已经可以跑起来了。 

很多人的一个误区是认为,Nostr 是去中心化的、没有 censorship,其实每个 Relay 就是一个中心,每个 Relay 选择存放什么样的数据,就是在对数据进行一种审查。但这个审查我认为是可以接受的,因为 Relay 需要承担现实对应的法律风险,Relay 背后有一个具体的人在运营,他在付出自己的成本去提供服务,他有权利选择服务什么样的用户、接受什么样的数据。我们不想要的,只是所有人被迫去服从一个统一的服务器的规则。Relay 可以自由切换,如果你不喜欢某个 Relay 的规则,那你完全可以切掉这个 Relay 去使用其他 Relay。 

Nostr 生态与区块链的区别 

区块链是一个非常昂贵且更加严格的系统。它的数据需要经过节点达成共识,得到最终一致性(eventual consistency)的保证。区块链可以提供信任,比如开发者写了一个智能合约放在链上,他能信任合约跑出来的结果和代码里写的就是一样的,对用户来说,意味着比特币这样的系统,我能相信比特币这条链,它记录我有多少比特币,这一整个账本是可信的。但是这种信任是非常昂贵的,要付出很大的代价,每台比特币矿机在做 POW 挖矿的时候,就是在支付这样的代价。 

相反,Nostr 是很便宜的,因为它的系统很松散,我们在 Nostr 上只是保证了每一条发出去的消息都经过了账户的签名,你能得到的只有“接收到的消息是不是真的来自某个公钥”这样一层非常薄的信任。除了这个信任之外,其他 Nostr 都不对你做保证,Relay 数据的可用性、消息顺序的一致性,这些统统不管。 

但是相对应带来的好处是,Nostr 非常松散、非常灵活,很多协议不做规定的部分,就是一个生态自发生长、自由发展的空间。这样的自由和灵活度意味着,Nostr 很容易连接其他系统,很容易成为 DID 这一层的标准,因为它足够薄、足够简单。而且它不像其他区块链系统那样,自带某一个系统的偏见(比如BTC社区不会接受ETH社区,ETH社区不会接受BTC社区)。 

在做事情的方法上,Nostr 和区块链有本质上的不同。区块链系统往往需要事先有比较缜密的架构设计,规定好协议的边边角角,设想协议中各个生态角色的行为逻辑,设计好的经济激励机制来协调这些不同的生态角色,同时也需要设计一个协议升级的机制。而 Nostr 的做法是,只去制定几条最重要的规则,其他的不管了,让生态自己发展。比如Relay怎么赚钱,这不是 Nostr 核心协议应该关心的问题,让生态里的人自己去折腾,最终可能切实能提供价值的 Relay 才能存活下来,找到真正行得通的商业模式。 

总的来说,区块链很棒,区块链也许能解决整个人类社会 5% 的问题。5%非常珍贵的关键的问题,比如货币和金融。但是区块链同时也很昂贵,你很难期盼它继续去解决其他 95% 的问题。而且也并不是所有问题都需要使用区块链这种重量级的信任。作为对比,Nostr 或许能解决其他 80% 的问题,这 80% 的问题可能只需要轻量级的信任,而最后剩余的 15% 则继续保持原有的中心化的、右翼派的做法就行了。 

对我来说,Nostr 更有意思的是除了协议之外的部分,也就是“生态”。无论一个协议设计多么精巧,如果没有一群人围绕着它做事,那么这个协议永远无法发展和进化。Nostr 最大的财富不是协议本身,而是围绕协议聚集的这一群人。他们很多是 BTC maxi,但也有很多对区块链不感冒的人。如果你去深入看 Nostr 生态的发展,你会惊讶于它展示出来的生命力与活力,而这种活力在我看来,正好跟当年 TCP/IP 那群人(IETF)制定标准的时候所遵循的原则形成了巧妙的共鸣: 

We reject: kings, presidents and voting.

我们拒绝:国王、总统和投票。

We believe in: rough consensus and running code.

我们相信:大致的共识和运行的代码。

That is, our credo is that we don't let a single individual dictate decisions (a king or president), nor should decisions be made by a vote, nor do we want decisions to be made in a vacuum without practical experience. Instead, we strive to make our decisions by the consent of all participants, though allowing for some dissent (rough consensus), and to have the actual products of engineering (running code) trump theoretical designs.

也就是说,我们的信条是,我们不让一个人(国王或总统)主宰决策,也不应该通过投票做出决策,也不希望决策是在没有实际经验的真空中做出的。相反,我们努力在所有参与者的同意下做出决定,尽管允许一些异议(粗略的共识),并让工程(运行代码)的实际产品胜过理论设计。 

在 Nostr 生态里,有相似的一些特征。 

  1. Organization structure: no official organization, light funding by people like Jack
  2. NIPs: loosely join, everything is optional, openly debated, the founder is not afraid of being subjective
  3. Developers ship fast: Everything happens publicly on the Nostr protocol(launch/discussion/feedback/debate) 

most new things added in the Nostr protocol are done this way: firstly some clients/relays software developers introduce a new feature and then push the feature to public users, users give some feedback, and other developers notice that and start the discussion, some people writing NIPs, have debate on the NIP drafts, and then finally merge the NIPs ——this is true “rough consensus and running code” looks like.  

总结 

赛博空间最初的想象和现实发生了分叉。而技术的发展,不论是 P2P 还是区块链的左翼力量,让人们试图重新审视最初对赛博空间的想象。这时候 Nostr 以一种务实中庸的定位,给出了不一样的解题思路。本质上 Nostr 是一种退而求其次,因为 P2P/区块链无论在技术的易用性上,还是技术成本上,对许多只需要轻量级信任的场景而言,都过于笨重了。Nostr 有非常独特的生态,追求粗略共识和可以运行的代码,协议本身的极简为生态的自由发展留下了更多空间,使它有可能成为一个连接万物的原点。 

这篇文章零零散散,谈了很多零碎的看法。时间有限,许多话题无法展开,期待以后有机会深入聊聊 Nostr 面临的挑战和机遇。

Replies(0)