Threads使用的去中心化协议ActivityPub,有何特别之处?
原文作者: Jaleel ,BlockBeats
原文编辑:Jack,BlockBeats
今天上午,Threads 正式发布上线,这是 Meta 公司继 Facebook、Instagram 和 WhatsApp 后推出了一款新应用,直接对标 Twitter 。Threads 不仅以竞争对手 Twitter 的功能之一命名,还与 Twitter 极为相似强调公共对话,科技界的一些技术人员甚至称之为「Twitter 杀手」。
上线的第一天,Threads 的数据表现亮眼,扎克伯格表示,Threads 上线 4 个小时内已有超过 500 万名用户注册,到上线 7 个小时已有超过 1000 万名的用户注册。
值得注意的是,在未正式上线前,苹果 App Store 中显示的应用程序照片预览,许多用户猜测使用其 Instagram 帐户可以登录 Threads。在上个月的一次全公司范围的会议中,Meta 高管透露说,Instagram Threads 将使用 Mastodon 所基于的去中心化社交媒体协议 ActivityPub 集成。这也意味着 Threads 的内容或许可在多个服务器上使用,Instagram 的用户名、关注者和其他帐户信息也能根据用户需求自动移动到新应用 Threads 上。
在 Threads 的登陆界面,我们可以很明显地看到 Threads 的运作方式,今后的版本将加入一种新型社交媒体网络的联邦宇宙,让用户能够在 Mastodon 等不同平台关注彼此并互动。
ActivityPub 协议是什么?
说到 Threads 使用的 ActivityPub 这一去中心化协议许多人可能不知道,但说到联邦式的社交网络 Mastodon(中文长毛象、齿乳象或长毛象等),知道的人就多了。
去年年底,Elon Musk 大量裁员并修改 Twitter 验证政策造成许多混乱时,当时最大的受益者就是 Mastodon。在 Elon Musk 收购 Twitter 前就积累了大约 50 万活跃用户的 Mastodon,一下涌入了大量从 Twitter 逃出来的「难民」,高峰时每天新增逾 13 万用户,去年 12 月初活跃用户数达到了 250 万,今年 1 月后活跃用户数下降到了 180 万,但仍然比身为协议的 Lens 和 Nostr 高了一个数量级。
Mastodon 用户数量快速增长,不少名人也在 Mastodon 找到了「新家」,这也引起了 Elon Musk 的注意。Twitter 开始禁止转移到 Mastodon 的链接,在一个 Twitter Spaces 中,Elon Musk 直接说到:「Fucking post Mastodon all goddamn day long, I don’t care」
而在这一次用户逃离 Twitter 的纷争中,Mastodon 似乎仍是最大赢家。Mastodon 的创始人兼 CEO,是一位名叫 Eugen Rochko 的德国程序员,据他所分享的数据,在这个周末里 Mastodon 的活跃用户数量增加了 29.4 万,发布的活动量大约增加了两倍。
值得一提的是,以太坊基金会成员 boffin Phil Daian 在 Mastodon 上运营了一个名为 cryptodon.lol 的加密社区,Vitalik 也已加入其中。
与此同时,许多人并不看好 Mastodon,认为 Mastodon 是一个好的产品,但这个产品本身并不能代表社交网络的未来,能代表这个赛道未来的是 ActivityPub 协议。
回到我们的正题上,Threads 和 Mastodon 都在使用和基于的 ActivityPub 协议,到底有什么特别之处呢?
让用户在各个岛上穿梭
在传统社交媒体大厂所勾勒的社交未来里,我们的 Twitter 帐户数据由 Twitter 控制,Instagram 帐户数据由 Instagram 控制、 Youtube 帐户数据由 Youtube 控制,每个社交媒体公司都是一座孤岛,每个社交媒体平台都需要单独注册账号,社交媒体公司不能交换帐户数据。
ActivityPub 解决这个问题的思路很简单直接:每个服务器(instance)类似电子邮件服务器,帮用户收信、发信,并托管身份。它标准化了服务器之间的通讯,让自由加入的服务器彼此之间可以联通;它也标准化了客户端与服务器之间的通讯,让用户可以在同一个 APP 上接入不同的服务器。这给了服务器运维者和用户都提供了很大的自由度。
由此来实现,使用 ActivityPub 协议服务的社交网络,用户可以在各个岛上穿梭。
回顾社交网络诞生后的多年,曾经出现过一系列强调开放性的社交网络协议:OStatus、pump.io、Open Social、Pubsubhubbub、WebFinger、ActivityStreams、XMPP、RSS、OpenID 等等,而且相信其中大多数都不为人们所熟知。在特定时期,甚至部分科技巨头也在支持这些协议。
ActivityPub 的设计思路可以追溯到社交网络诞生的时期,最初思路来自 Fediverse。Fediverse 的思路也非常简单:一群服务器组成分治的网络,相互收发信息。在这条思路上衍生了 GNU social、 OStatus、 Mastadon 等不同的软件和协议,可以说 ActivityPub 积累了近二十年来人们探索分布式社交网络的经验。
ActivityPub 第一版是在五年前发布的,在吸取了 Fediverse 中 GNU social 等软件和 OStatus 等协议的经验和设计后,成为了 W 3 C 的推荐标准。W 3 C(万维网联盟)本质上是 Web 的管理机构,负责督导协议的标准。ActivityPub 为客户端应用程序和连接它们的服务器定义了分散的社交网络协议。对用户的好处是采用该协议的服务之间的互操作性。
具体来说,比如 Flipboard 和 Medium 也在 ActivityPub 上建立了一个 Mastodon 服务器,并开始邀请部分用户和策划方在主平台上发帖。只要服务器都符合 ActivityPub,那么任何人都可以从 Mastodon 关注我的 Flipboard 和 Medium 帐户,而无需创建一个帐户或下载一个新的应用程序。
与此同时,如果大家喜欢来自 ActivityPub 的 Flipboard 帖子,那么在 Flipboard 页面上可以嵌入这个帖子,甚至可以显示在原创者的 Mastodon 应用当中。在发表评论之后,内容会以 Mastodon 回复的形式显现。
这可不是简单的嵌入内容,而是真正的互操作。
此后如果 Threads 和 Mastodon 实现了互通互联,那么在 Threads 上删掉之前发的内容也不会在 Mastodon 上可见。因为有一个 delete event 会传给其他 activity pub instance,但如果有 instance 不支持 delete 的话,就还是可以保留的。
除了 Threads 和 Mastodon,目前正在使用 ActivityPub 协议的社交网络还有:Nextcloud:用于文件托管的邦联式服务;PeerTube,一种用于视频的邦联式服务;Friendica 社交网络软件在 2019.01 版中实现了 ActivityPub;Mobilizon,来自 Framasoft 的事件计划软件;Pixelfed,类似于 Instagram 的邦联式照片共享平台;Pleroma 是与 ActivityPub 兼容,资源需求低的微博平台;Misskey 是开源的去中心化微博服务。
当然目前来说,ActivityPub 还远称不上完美,有巨大的改进空间。它也经常出错,甚至可能在企业利益和恶意技术的攻击下惨遭扼杀。在如今这场重塑社交媒体的竞赛当中,在 ActivityPub 之外,参与进来的选手也有不少:Artifact 和 Substack Notes 等社交新贵已经在建立自己的封闭平台,离开了 Twitter 的 Jack Dorsey 扶持了新的社交协议 BlueSky、Nostr 协议,在 Web3 圈内火热的社交协议 Farcaster 、Lens 协议也先后诞生了。
各个新兴协议都希望能打造各自的开放协议,引领社交赛道。但为什么来自 Web2 大厂的 Threads, 会选择 ActivityPub 这个协议呢?
Web2 大厂出身的 Threads 为什么选择 ActivityPub?
首先我们能想到的是,采用 ActivityPub、特别是服务器间的通讯标准,是能够扩大 Meta 原有的社交网络,帮助与其他服务器进行通讯,让用户触达到更多的人。
Matters -lab 联合创始人 Liu Guo 非常认同这一观点,在他看来 ActivityPub 目前是去中心化社交协议中最成熟和广泛使用的。作为后来者的 Threads,选择 ActivityPub 可以很好的利用它原本带有的网络效应。
在与 BlockBeats 的对话中,Liu Guo 说道:「相比其他几个类似的去中心化协议,如 Nostr 和 AT Protocol。ActivityPub 主要是胜在成熟,同时也是 w 3 c 推荐标准。ActivityPub 的客户端多,语汇非常完善,可以用来定义几乎所有的产品逻辑,同时 mental model 也很简单(actor model)。相比其他 ActivityPub 客户端,Mastodon 主要是 ui/ux 稍微好一点,然后把另外几个协议以合适的方式融合在了一起(比如 web finger)。」
除此之外,还有什么原因让出身 Web2 大厂的 Threads 选择了 ActivityPub?Liu Guo 认为 Meta 也是意识到用户是在意隐私和数据所有权的,特别是在 Twitter 被收购之后,所以会选择用一个去中心化的社交协议。
那么,对去中心化社交协议或者说 web3 协议来说,Threads 选择 ActivityPub 又意味着什么?
Liu Guo 认为这是一个回归本质的很好提醒,看起来 Meta 非常清楚用户需要什么。用户需要好的用户体验和能够多客户端联通的社交协议,而实现这些都不需要区块链。区块链能够提供很好的身份系统,但是需要和链下的社交协议联动才会对用户有用,而后者已经是比较成熟的领域和思路了。