2022 年,马斯克收购 Twitter 后采取了一些充满争议性的举动引起广大用户的不满,大量用户选择离开 Twitter 并加入了一种称为联邦宇宙(Fediverse)的社交媒体。联邦宇宙倡导自由与隐私,由一系列自由软件组成,其中最具代表性的就是长毛象(Mastodon)和 Bluesky。
Bluesky 由 Twitter 联合创始人 Jack Dorsey 2019 年创建,建立在 AT Protocol(Authenticated Transfer Protocol) 协议基础之上,截止 2024 年 11 月份,Bluesky 用户已经达到了 1500 万。
AT Protocol(Authenticated Transfer Protocol),即“认证传输协议”,是一个为大规模分布式社交应用设计的联邦协议。一个核心设计目标是在技术层面实现与中心化服务相同或更好质量的用户体验,同时保持开放和去中心化。AT Protocol 的设计使得系统的每个部分都可以有多个相互竞争的运营商提供可互操作的服务,从而易于切换提供商。
一些去中心化社交网络只提供用户关注账户帖子的时间倒序信息流,这是对主流社交网络不透明推荐算法的一种抵制。例如,长毛象宣传自己 “没有算法或广告浪费你的时间”。
问题不在于算法本身,而在于集中控制、不透明的算法,这些算法剥夺了用户的控制权,将用户参与度置于一切之上,例如通过推广有争议的帖子。AT Protocol 提供一个开放和多样化的算法市场,社区可以根据自己的需求调整系统,用户对如何花费时间和注意力有更多的掌控权。
Bluesky 提供了自己的一些信息流算法选择,也允许任何人创建自己的信息流生成器。已经创建了数以万计的自定义信息流。信息流生成器可以使用任意标准来选择其内容。例如,它可以使用手动策划的账户列表,并从这些账户中选择包含特定标签或表情符号的帖子。使用机器学习算法同样可行。
在内容审核方面,AT Protocol 允许任何人运行审核服务,对选择理想内容或标记不良内容做出主观决定,用户可以选择他们想要订阅的审核服务。审核服务与托管提供商分离,使用户可以轻松切换审核服务,直到找到符合他们偏好的服务。我们希望这种架构开放性使社区能够开发自己的方法来管理有问题的内容,而不受托管提供商实施的限制。
AT Protocol 架构
AT Protocol 是联邦式的,这意味着系统的不同部分可以由不同的人运行,并且它们可以相互通信。
选择联邦化是实现“不能被单一组织控制”承诺的重要组成部分,其中涉及几个关键的概念。
个人数据服务器(PDS)
个人数据服务器(Personal Data Server,PDS)用于存储个人数据,不包含任何 Feeds 生成、审核等高计算量的任务,所以对服务器要求很低,如果存储的用户数量很少的话,比如只为自己和家人朋友存储数据,那么甚至可以用树莓派运行,PDS 通过 HTTP 和 WebSocket 对外提供访问接口,以此和整个 AT 网络紧密的连接在一起。
所以 PDS 实际上就是一台简单的个人数据存储服务器,这也是 AT 中分布式概念的实际体现,作为联邦宇宙的产品,要想保证数据安全性和数据隐私,以及完全的自主数据掌控能力,那么没什么比直接把个人数据存储在自己的服务器中更有效的了吧。并且考虑到服务器的硬件成本,协议最好能照顾到普通用户的实际情况,因此 PDS 一定得是简单的,简单到不应该有任何冗余的功能,尽可能降低普通用户的成本。
当然也有一些大型的 PDS 服务商提供免费注册账户的能力,比如 Bluesky 产品在 2024 年年初就提供了账户注册功能。所以普通用户如果不想自己搭建 PDS 也可以去 Bluesky 直接注册账户。
中继(Relay)
中继负责抓取已知 PDS 的数据并创建 Firehose,同时还会对来自 PDS 的数据做一些简单的处理,清理掉一些无效信息和垃圾信息,然后通过 Firehose 将数据提供给 AppView 使用。
中继不仅会通过 HTTP 协议定期抓取 PDS 数据之外,还会订阅 WebSocket 提高数据的即时性,因此中继是整个 AT Protocol 中最复杂,计算量最大的服务。
但一般我们不必自己搭建服务,Bluesky 本身提供了官方运营的中继服务,我们可以安全的使用它。
AppView
应用视图可以简单理解为用户直接使用的客户端,不仅包括 Bluesky 官方 App,也包含了一些三方 App。
AppView 消费中继提供的 Firehose,通过词典(Lexicon)获取数据并向用户显示。例如获取帖子的点赞列表、回复列表等数据。
以下是这三个模块的结构图:

Feed Generator
中继和 AppView 提供的服务是完全中立的,不会试图对内容进行排名或者分类,但是一个好的用户体验应该是提供一些“有主见”的判断的,例如帮助用户过滤垃圾内容、分类等。
AT Protocol 提供了 Feed Generator 接收来自中继的 Firehose 内容,并根据配置生成 Feeds 流。
用户可以创建自己的 Feed Generator,Bluesky 本身也提供了一些 Feed Generator,根据自己的喜好,你完全可以根据微博或者 Twitter 的算法写一个 Feed Generator 使用,当然,你可以关注别人创建的 Feed Generator,你也可以创建好了之后给别人用,这就像一个大型市场一样,所有对内容的偏好都可以通过创建 Feed Generator 来解决。
标签器(Labelers)
Labelers 同样接收来自中继的 Firehose 内容,并产生关于内容的判断,例如这个帖子是个广告。
Labelers 可以通过任何方式为内容打标签:自动运行某种算法,手动由人类给出“赞成”或“反对”,或者其他 Labelers 服务提供者选择的方法。
例如,标签服务可以用于创建屏蔽名单(blocklist),为那些您不想看到的人的帖子添加标签。另一个例子是 NSFW 过滤器,它可以运行某种算法检查帖子中的图片,如果检测到可能包含不适宜内容,就为其添加标签。
词典(Lexicon)
词典(Lexicon)是一种架构定义语言,用于描述 atproto 记录、HTTP 端点 (XRPC) 和事件流消息。它建立在 atproto数据模型之上。
AppView 通过 XRPC 协议与服务器进行通信,站在客户端视角来看这基本上就是 HTTP 协议。词典中会定义每个接口的 id、参数、返回值等等。
Lexicon 是一个 Json 文件,其中包含了每一个接口的描述信息,一般来说我们通过读取这个文件信息来生成接口调用的代码。
用户身份
AT Protocol 使用 Handle 作为用户的唯一标识,例如 @zhangke.bsky.social ,用户可以免费注册一个.bsky.social 的子域名。如果用户已经拥有域名,他们可以通过添加 DNS 记录或在该域名的 /.well-known/HTTPS URL 下托管文件来将其声明为 Bluesky 用户名。用户还可以通过与域名注册商的合作在 Bluesky 内购买新域名(这也是 Bluesky 的盈利模式之一)。
Handle 是人类可读的标识,是可变的,包括用户名也是可以更改的。AT Protocol 的身份唯一标识符使用了 DID 协议。
DID 是 W3C 提出的去中心化唯一标识符标准,它不依赖于任何中心化的机构验证,独立分布式运行。
一般来说我么不需要关注自己的 DID,但如果需要自定义域名,或者迁移账户,那么这就很有必要了,DID 协议比较复杂,它的验证依赖 DNS,这样也顺便解决了身份验证问题。
以上就是关于 Bluesky 和 AT Protocol 的介绍,比长毛象要复杂不少,但是也灵活了不少,各有优缺点,目前长毛象用户量一千万,Bluesky 一千五百万,仍在在持续发展中,据我观察大部分的中文用户更偏向于长毛象,Bluesky 上的中文用户少得可怜。

发表回复