实用去中心化:保罗的编程笔记
实用去中心化:保罗的编程笔记作者:James Bentley
来源:Pfrazee.com
引用:https://pfrazee.com/blog/practical-decentralization
AT协议通常与两种不同的技术相比较:ActivityPub和Nostr。这两者都是“联邦主机”和“魔法网络”的绝佳例子。
Atproto从这两个模型中汲取灵感,但它的运作方式却与它们都不相同。这可能会引起一些混淆,我认为我们可以澄清这一点。
我已经尽力准确地描述了每个协议,但如果我的信息有任何过时之处,请告知我,以便我进行纠正。
协议的目的
去中心化的目的是保障个人和社区在互联网上的权利。
通常指出,普通用户并不关心去中心化。这是真的:他们关心的是他们的算法做了什么,或者审核做了什么,或者他们的数据是否被追踪,等等。
谁有权利…
托管(或不托管)数据
平台(或不平台)用户言论
编写新应用程序或功能
实施信息流和搜索算法
收集用户行为
投放广告
等等
我们使用协议来结构化谁可以做什么。协议设计通常是关于“如何”,但“如何”的结果是一个权威模型。
常见模型
两种常见的协议模型是“联邦主机”和“魔法网络”。
“联邦主机”模型是人们想到联邦时会想到的。最显著的例子是电子邮件和Activity Pub。它们通常涉及服务器之间的消息传递。
“魔法网络”模型是人们想到点对点和区块链时会想到的。最显著的例子是BitTorrent、Bitcoin、Ethereum、IPFS、SSB和Nostr。它们涉及用户设备之间的数据同步。
联邦主机:电子邮件、ActivityPub
:电子邮件、ActivityPub
魔法网络:BitTorrent、Bitcoin、Ethereum、IPFS、SSB、Nostr
如果这些都是常见模型,那么Atproto属于哪一种?答案是两者都是。或者都不是。这取决于你如何看待它。
平衡意识形态和实用性
我一直在尝试为“作为实践的去中心化”制定一个术语:信息公民,它是软件工程和公民设计的结合。1
信息公民是一种充满紧张关系的实践:
一方面,你需要实现你的意识形态目标;你需要创建一个协议,确保个人和社区的权利。
另一方面,你需要制作可用的软件;你需要它运行良好,适合用例,并解决出现的问题。
Atproto的初始团队在p2p方面有25年的集体经验,包括IPFS、Dat、SSB和Filecoin。尽管我们非常喜欢它们,但我们无法解决可用软件的问题。2
良好的协议设计需要平衡意识形态和实用性的紧张关系。
规模
个人计算的逻辑扩展是每个人都应该拥有最大程度的个人权利,并自行做出所有决策的信念。
这种观点会遇到规模问题。单方向广播相对容易实现良好的性能,问题的形状支持低协调网络(BitTorrent)。同样,小群组聊天和生产力软件适合点对点交换。超出这个范围?那就不是什么好事了。
随着互动用户数量的增加,个人计算隐喻变得不那么适用。你不可避免地需要代表用户维护聚合数据的索引。一旦你引入了共享资源(索引),那么你就需要管理这些资源。这就是纯p2p失败的地方;它没有共享资源管理的答案。3
权力
联邦创造了在竞争实例之间进行选择的权利。这部分是结社自由,但实质性的权利是选择权。这是治理问题的自由市场解决方案——这是好的。更重要的是,联邦工作得更可靠。电子邮件和ActivityPub对于大规模社交计算来说,比魔法网络更具可行性。
但是,你有一个权力问题。流行的实例成为失控的赢家。
在主机之间迁移的能力给主机施加了压力,迫使他们让用户满意。不幸的是,电子邮件没有账户迁移,而ActivityPub无法迁移所有活动(尽管我相信他们正在努力做到这一点)。
此外:传统的联邦缺乏模块化。托管、分发、审核、算法和业务逻辑都位于托管实例中。这创造了一种权力薄弱的分权。理想情况下,用户通过将特定功能委托给其他提供商来减少流行实例的权力。我们希望在默认操作过程中保留权利;分权有助于实现这一点。
魔法联邦网络
Atproto既是模型又是非模型。更具体地说,它是一个混合体。
我们将我们在p2p方面的所有先前工作都转移到服务器上,以创建Atproto。4这是我们能够找到的最实用的去中心化方法。
实用性:
使用服务器简化了与p2p或区块链常见的运营挑战,如可靠的正常运行时间、设备同步和密钥管理。
构建大型聚合索引使人们能够体验到公共社交媒体的UX。
意识形态:
用户地址的内容确保了从流行主机顺利迁移。
共享数据空间使模块化成为可能,将权力从流行主机分离出来。
在实践中这意味着什么?
去年秋天,Bluesky团队发现我们的审核堆栈中有一个悬而未决的TODO,这意味着当我们打算过滤它们(从Bluesky应用中删除)时,我们实际上是在停用用户(在PDS级别)。我们后来在修复这个问题上取得了一些进展——还有一些案例需要解决。
以下才是重点:
其他PDS主机上的用户没有受到这个错误的影响。Bluesky没有能力停用那些用户,因为我们从未托管过他们。他们的托管权得到了保护。
这正是去中心化的具体目标。它将权力从企业转移到个人和社区手中。
我们的Atproto与两种常见的去中心化模型非常相似,但我们在某种程度上避开了它们。我们真正相似,但我们引入了改变,消除了每种技术的明显标记:在联邦的情况下是多个应用实例,在魔法网络的情况下是没有服务器。
协议的目的是什么?保障个人和社区的权利。
我希望在Atproto上有更多的Bluesky竞争对手,但我在自我托管账户和多种不同类型的应用程序方面更加不关心。我们有意让自我托管变得便宜,因为我们知道PDS会积极地将权力从应用程序中夺走。更多的Bluesky应用实例会抵消我们在微博用例中控制触达的能力,这也是很重要的,但全网络应用的代价足够高,我明白为什么它发生得如此缓慢。向Blacksky、Northsky、Eurosky和其他人致敬,他们承担了这项任务。
Atproto面前仍然存在挑战。Bluesky仍然是一个太大的玩家。我们需要完成将PLC转移到独立组织的工作(我们接近完成了!)。中继现在很便宜,但大规模的“应用视图”——应用程序的聚合后端——仍然有点太昂贵,也太难编写,我们一直在开源我们的高性能后端方面遇到困难。收入故事仍然没有解决。
我担心这些问题吗?当然我担心。但我确信我们会解决它们吗?绝对会。
Atproto不是联邦。它不是p2p。它不是区块链。它是对实用去中心化直接尝试,权衡和妥协并存。我们牺牲了魔法网络的属性以实现性能需求,并打破了联邦的历史,以获得我们想要的保证。
这就是我们做出的权衡,我认为它们是正确的。
1显然,技术都有意识形态角度:
魔法网络:自由主义、个人主义、无政府主义。
联邦主机:市场选择、集体主义。
如果你将其分解,你可以弄清楚每个系统中的权利分配。作为加分项,你甚至可以尝试弄清楚谁有权更改区块链的协议。
2我写了一篇相当详尽的文章,关于Beaker浏览器的总结。
3区块链试图解决治理问题。它们通过利用代码即法律来维护集体资源中的个人权利。这使得它们从信息公民的角度来看非常有趣,但不幸的是,它们只能治理共享账本的状态,除非在ZK证明方面有更多进展,否则它们不能治理索引维护的衍生数据。
换句话说,大多数人通过Infura访问Ethereum,而Infura不在链上。区块链也尚未解决它们的写入吞吐量和交易成本问题,除非这些问题得到解决,否则它们还没有准备好进入主流。
4Atproto的主要接口是数据空间,通过at:// URI进行寻址。就像魔法网络一样,数据空间通过用户而不是主机进行寻址。尽管我没有运行自己的服务器,我的内容也通过at://pfrazee.com/...进行寻址。这抽象化了主机,从而使得完全且相对容易的账户迁移成为可能。
Atproto然后对内容进行签名,尽可能广泛地广播。无论是从我的托管服务器还是通过中继,接收者都会在共享数据空间中构建活动缓存。这使模块化成为可能。各种服务——算法、审核员、应用程序等——可以轻松地在共享数据空间上协调。
页:
[1]