1kx:深度解读去中心化社交协议
原文作者: 1kx
原文编译:Luffy,Foresight News
在商业动机的推动下,企业控制的社交媒体平台出现并极大削弱了人们对网络参与文化的最初希望。网络信息技术应该从根本上使文化生产民主化,但如今,这些利益驱动的平台限制和塑造了网络行为——「点赞」并不是对内容表示感谢,而是一种商业化工具。
基于去中心化技术和联合协议构建的替代性社交媒体平台再现了网络社交的原始愿景。数据由用户控制并记录在去中心化数据库,前端由社区驱动,审核是社区偏好的表达,算法由用户选择。这是一种开源精神推动创新。
去中心化和替代性社交媒体的历史
在网络成为商业、娱乐和社交互动的中心之前,它主要是一种学术和军事领域的工具。蒂姆·伯纳斯·李(Tim Berners-Lee)在制定第一个网络协议时秉持着平等主义的愿景:互联网的最初设计是一个去中心化的网络,信息可以在节点之间自由传播,没有任何个体可以控制,也不存在单点故障。
然而,随着网络的商业化的发展,搜索引擎和社交媒体巨头等中心化平台成为了主导者。虽然这些实体提供了巨大的价值,但它们偏离了最初的去中心化精神,导致了我们当前的 Web2 环境。
替代性社交网络发展中的关键创新是联合协议概念的出现。联合网络是指多个独立服务器或「节点」组成的系统,它们合作形成一个社交网络,这有别于一个组织控制所有服务器的中心化平台。
在联合网络系统中,每台服务器都运行遵循共享协议的软件,这使它们能够相互通信。在一台服务器上注册的用户可以无缝地关注其他服务器上的用户、与其他服务器上的用户交互并共享内容,就像他们在同一平台上一样。联合协议的例子包括 ActivityPub 和 OStatus,它们为 Mastodon 和 PeerTube 等联合平台提供支持。
在联合系统的设置中,用户可以选择他们信任的服务器,他们可能会迁移到不同的服务器或设置自己的服务器,他们被赋予了更多自主权。术语「Fediverse」(「联邦」和「宇宙」的合成词)被用于描述这样的系统。 Fediverse 始于 GNU Social 平台及其前身(Statusnet 和 Laconica),但真正的转折点是 ActivityPub 协议的开发和广泛采用,该协议在 2018 年被万维网联盟(W 3 C)作为推荐标准发布。
在 Web3,一旦数据被移植到链上,联合社交网络就是去中心化系统的默认状态。区块链充当存储内容的后端服务器,前端对此内容建立索引并将其直接提供给用户。身份与管理用户钱包的公私密钥对绑定,用户能够轻松地验证他们生成的任何数据或内容。此外,使用 NFT 等链上原语可以将存储的内容捆绑在元数据中,并充当域名或去中心化身份 (DID)。
与 ActivityPub 的工作原理类似,Web3 协议寻求通过用户节点之间经过身份验证的关系来引导社交图谱。由于任何前端都可以索引并提供这些内容,因此前端层存在激烈的竞争,新功能蓬勃发展。此外,由于数据存储在链上,用户可以选择他们喜欢的算法,并且可以激励他们使用某些算法重新获得数据的价值。这与更直接的内容货币化手段相结合,为在很大程度上被排除在货币化之外的创作者提供了更好的整体体验,尽管他们的内容推动了对这些平台的需求。
协议对比
要真正理解去中心化社交媒体协议的创新,有必要了解实现它们的技术。值得注意的是,我们并未在此包含所有的社交协议,而是选择一些最流行的社交协议:
身份 / 命名空间
在联合和去中心化社交图谱或网络协议中,「命名空间」是指用户标识符或其他资源是唯一的域。它是一种区分一个域 / 服务器与另一个域 / 服务器的资源或身份的方法,确保跨多个域集成或通信时不存在冲突和歧义。
不同去中心化社交协议的身份和关联命名空间包括从简单密钥对( Nostr 、Scuttlebutt )开始,到指向托管配置文件(ActivityPub) 的 URI,再到使用 NFT 等链上原语(以及最近的 ERC-6551 扩展,例如 Lens V2)等更复杂的模型的所有范围 )。
Farcaster 是这些技术的一个很好的例子。 Farcaster 帐户代表网络上的一个独特实体。每个帐户都有一个唯一的数字标识符,称为 Farcaster ID(fid)。身份是使用称为 IdRegistry 的以太坊合约在链上管理的,用户向 IdRegistry 发起交易以获取新的 fid。拥有 fid 的地址就是用户的管理地址。 IdRegistry 确保 fid 可以在地址之间传输,并且不会有两个地址具有相同的 fid。 Farcaster 还扩展了此命名空间以支持链上或链下发布的 ENS 域名 。用户必须向网络提交签名证明才能申领用户名。
另一方面,ActivityPub 通过唯一的 URI(通常是 HTTPS URL)来标识每个用户。该 URI 指向用户的个人资料,并作为他们在 Fediverse 中的全局标识符。为了使这些 URI 更加用户友好,许多 ActivityPub 平台使用称为 Webfinger 的系统。 Webfinger 允许用户拥有类似「@[email protected]」的身份标识。
Lens 和 CyberConnect 将用户个人资料作为 NFT 进行管理。以 Lens 为例,一个用户地址保存一个 Profile NFT,并且单个地址可以保存多个 Profile NFT。每个 Profile NFT 都封装了用户活动的整个历史记录。此外,Profile NFT 有一个 FollowModule,它本质上是一组规则,用于管理不同帐户如何获取 Follow NFT。这些 Follow NFT 直接在链上记录账户和 profile 之间的联系。还有一些句柄存在,可以与配置文件分开创建,并且可以从一个 profile 链接到另一 profile 或取消链接。句柄存在于它们自己的命名空间中(例如 lens/@alice)。
数据
数据可以说是去中心化网络最重要的特征,因为数据的创建和标准化是这些系统的基础。这里管理数据的最常见技术是使用标准化格式,例如 JSON 和常见关系对象(例如喜欢、关注)。核心数据对象通常包括:
-
主体 &对象:定义的「主体」 ( 例如,用户 ) 和「对象」(例如帖子或消息)。
-
出版物:帖子或评论被封装为「出版物」,通常通过 URL 链接到外部内容。
-
仅追加日志中的内容:每个条目(无论是发布还是更新)都是离散内容项的日志,按顺序添加和存储。
让我们深入研究几个示例,了解特定协议如何进行工作。
ActivityPub 利用 ActivityStreams 2.0 数据格式(一种基于 JSON 的数据结构)来表示各种社交互动,例如帖子或点赞。该协议包括两个主要组件:客户端到服务器 (C 2 S) 和服务器到服务器 (S 2 S)。 C 2 S 允许用户通过客户端应用程序与各自的服务器进行交互。相比之下,S 2 S 促进了服务器之间的通信,从而实现了协议健壮的联合特性。
在 ActivityPub,实体被分类为「主体」( 通常是用户帐户或组 ) 和「对象」(内容或操作,例如帖子或点赞)。当主体对对象执行动作时,它会创建一个「活动」对象,例如「创建」、「关注」或「喜欢」。
Web3 社交图谱借鉴了 ActivityPub 的许多核心思想,但是将它们应用到了区块链上。例如, Lens Protocol 引入了「出版物」,它封装了各种用户生成的内容,例如帖子、镜像、评论和其他形式的媒体。每个出版物都与一个 ContentURI 相关联,指向存储在去中心化协议(如 IPFS 或 Arweave )或中心化存储服务(如 AWS S 3)上的特定内容。这种设计可确保用户的个人资料和所有相关出版物安全地存储在他们的个人钱包中,从而摆脱对中心化数据库的依赖。
此外,与 Web2 架构相比,Web3 提供了一种更直接的方法来将用户内容和影响力货币化。用户可以对 Follow NFT 的铸造进行收费,也可以将 Collect Modules 与其出版物集成。后一个选项允许他们收取与其出版物的 ContentURI 链接的 NFT 铸造费用。除了这些功能之外,Lens Protocol 还提供 GraphQL API,用于从前端接口中屏蔽区块链组件,从而提供比以前的去中心化社交网络更加友好的用户体验。
最终,许多去中心化社交网络协议创建了只能添加的数据结构,并通过用户密钥进行身份验证。例如,在 CyberConnect 上,每条以用户为中心的数据都表示为数据流,其中只有数据所有者才允许更新。对数据的每次更新都会以仅添加提交日志的形式附加到数据流,并且生成的数据结构成为名为 Merkle DAG 的哈希链接数据结构。数据类型包括内容、收藏、评论和订阅。
Scuttlebutt 也使用了仅能添加的日志数据机构。每个用户都有自己的日志,其中每条新消息或操作在由用户身份签名后都会附加到末尾。它还支持被称为「blob」的二进制数据的共享。这些数据可以是图像、视频或任何其他二进制内容。 Blob 与仅附加日志分开存储,但对这些 Blob 的引用(哈希)可以包含在日志中。
对于 Farcaster,消息是公共更新,例如发帖、关注或添加个人资料图片,这些消息被编码为 protobuf,并且必须由帐户签名者进行哈希处理和签名。只要有足够的存储空间,用户就可以向 Hub 发布消息。HUb 在接受每条消息之前会检查其签名者的有效性。
存储
早期去中心化协议的数据存储主要是链下。例如,Scuttlebutt 使用点对点 gossip 网络,将数据存储在用户的本地设备上。这种方法确保了数据主权,因为用户可以完全控制自己的信息。然而,这也意味着数据可用性取决于用户的设备是否在线或网络中的其他节点是否拥有数据副本。随着时间的推移,为了管理存储空间,一些 Scuttlebutt 客户端可能需要实施垃圾收集策略来删除旧的或不太相关的数据。
这种点对点方法的替代方案是数据存储服务器的出现。以 Matrix 为例,多个家庭服务器存储房间历史记录的副本并相互同步。当用户在房间中发送消息(或任何事件)时,他们的家庭服务器会将该事件广播到其他家庭服务器,然后这些家庭服务器会存储该事件并将转发到其连接的客户端。类似地,ActivityPub 让网络中的每个实例(或服务器)存储其数据,通常存储在数据库中。数据库(关系型、NoSQL 等)的选择取决于 ActivityPub 软件的具体实现。例如,流行的 ActivityPub 平台 Mastodon 使用 PostgreSQL 数据库。
Cyberconnect、Farcaster 和 Lens 等协议已采用区块链进行存储。链上存储确保了数据的不可变性和可验证性,为使用底层共识机制同步状态的去中心化应用程序提供了坚实的基础。然而,这种方法可能会带来可扩展性挑战,因为每条数据都需要存储在链上,可能会导致高昂的交易费用和较慢的检索时间。
这导致许多 Web3 社交协议尝试混合方法,使用链上存储执行低频操作(例如个人资料、订阅),使用链下存储来执行高频事件(例如点赞、转发、评论)或将链下存储用作临时权宜之计,以一定时间间隔将数据批量上传到链上。
CyberConnect 为了有效处理用户连接之间的频繁更新,在去中心化数据存储中采用了哈希链表。启动连接时,「操作日志」被创建。后续状态更改(例如在关注和取消关注之间切换)将作为新节点添加到此日志中。虽然这些更新最初存储在中心化服务器上,但它们会定期批量上传到去中心化存储平台,例如 Arweave 或 IPFS。为了实现快速检索数据,操作日志中的节点会中心化存储。但是,用户可以通过浏览此哈希链接列表来独立验证数据完整性。即使某些数据查询依赖于中心化服务器,CyberConnect 的系统也被设计为充分去中心化,同时还提供了高性能。
Farcaster 使用了类似的混合方法:链上合约用于对一致性和去中心化很重要的低频操作。帐户、用户名、存储和密钥使用一系列以太坊合约进行管理。链下系统用于依赖性能的高频操作。用户帐户创建的消息在 Farcaster hub 的点对点网络上存储和传播。
讨论
去中心化社交协议有望彻底改变数字交互中的用户体验。在 Web3 推动下,公私密钥对的加速采用将有助于更广泛地理解这种背景下的身份原语,并且 Web2 社交媒体公司的持续审核和数据捕获将推动更多用户转向其他地方。我们预计这些去中心化社交协议的采用曲线会加速。
为了促进创新应用程序的发展,协议开发人员和开源贡献者迫切需要超越目前基础设施层使用的基本数据类型和关系对象。虽然现有的原语充分囊括了传统 Web2 社交媒体的功能,但仍有巨大的扩展和创新潜力。这里讨论的大多数协议本质上都支持系统内的可扩展性,为未来的开发和开源贡献提供了坚实的基础。
然而,互操作性也至关重要。虽然前端开发人员能够独立增强功能,但如果增强得功能不能与基于相同底层协议构建的其他应用程序互操作,那么这样做可能会损害系统的整体利益。确保各种应用程序之间的兼容性和无缝集成对于去中心化社交协议的长期成功和采用至关重要。
在数据存储领域,Web3 社交协议倾向于混合方法。将身份和主要内容等高价值资产分配给链上原语,同时将点赞等低风险内容分配给链下解决方案,这种平衡的方法不仅保留了关键数据的完整性和安全性,而且还提供了接近传统社交媒体平台的用户体验。
去中心化网络有望改变人际沟通、信息共享和社区建设。通过优先考虑用户自主权、隐私和培养有机关系,这些网络正在为更加公平和以用户为中心的数字环境铺平道路。此外,这些网络的去中心化性质有助于实现信息和资源访问的民主化,从而减轻与中心化控制相关的风险。