
概述
Farcaster 是一个足够去中心化的协议,用于构建社交应用程序。充分的去中心化意味着两个想要交流的人总是可以交流。这还意味着开发人员可以无需许可地访问网络上的公共数据。
设计理念
人们已经进行了许多去中心化社交网络的尝试,在去中心化、可扩展性和可用性方面做出了不同的权衡。ActivityPub 选择了联邦,SecureScuttlebutt 则选择了点对点路线,而 Peepeth 则是基于区块链的。
Farcaster 借鉴了其中一些项目的想法,但做出了不同的权衡。其架构最好理解为三个设计决策的产物:
灵活的命名空间
用户可以拥有来自不同命名空间的多个用户名。名称可能来自分散的命名空间,该命名空间具有抗审查性,也可能来自集中的命名空间,该命名空间免费且易于使用。
用户的帐户有一个唯一的数字标识符413241,例如 ,它映射到他们拥有的用户名。使用以太坊合约来跟踪标识符,确保两个用户始终可以找到对方并进行通信。
全局状态
许多去中心化网络都是联合的,但这打破了未经许可访问公共数据的保证。它还要求开发人员抓取许多不可靠的服务器,从而使开发人员的体验变得复杂。
Farcaster 将所有用户数据存储在称为 Hub 的服务器上。任何人都可以运行通过 p2p 网络连接到所有其他集线器的集线器。当用户向集线器发送新消息时,该消息会传播到所有其他集线器。每个集线器必须存储所有用户的有效数据,否则将被排除在网络之外。
仓储租金
让用户存储无限量的数据会损害网络的健康。恶意用户可以创建数十亿条垃圾邮件,使开发人员和用户难以使用网络。它还使得无法操作专为商用硬件设计的集线器。
Farcaster 向用户收取在网络上存储数据的租金。每年向协议支付费用,以保证集线器上有一定的空间。这可以抑制垃圾邮件并鼓励用户清理网络上价值较低的数据。

概念
该协议有五个主要构建块:
帐户,代表网络上的用户
用户名,指向帐户
Signers,代表帐户发布消息
消息,代表帐户的公共更新
存储,必须由帐户租用才能发布消息
账户
Farcaster 帐户代表网络上的一个独特实体。每个帐户都有一个 Farcaster ID 或 fid,这是一个唯一的数字标识符,例如78213. 身份是使用称为 IdRegistry 的以太坊合约在链上发布和管理的。
用户向 IdRegistry 进行交易以获取新的 fid。拥有fid的地址称为用户的托管地址。IdRegistry 确保 fid 可以在地址之间传输,并且不会有两个地址具有相同的 fid。
用户名
用户名可用于识别或提及帐户。用户可以将多个名称连接到一个帐户,但只有一个名称可以处于活动状态。Farcaster 支持链上或链下发布的 ENS 名称。
Farcaster 在fcast.id. 每个 Farcaster 帐户都可以申请一个免费名称。用户还可以使用其他 ENS 命名空间中的名称,例如.eth. 必须向网络提交签名证明才能获取用户名。
签名者
签名者是用于签署消息的加密密钥对。每个帐户可以有多个签名者,如果您想共享帐户所有权或同时使用多个应用程序,这会很有帮助。Farcaster 使用 KeyRegistry 合约管理链上签名者。
签名者是链下生成的Ed25519 密钥。帐户通过使用签名者的公钥向 KeyRegistry 进行交易来注册签名者。然后可以使用私钥对消息进行签名并将消息发布到网络。
留言
消息是 Farcaster 的公共更新,例如发帖、关注某人或添加个人资料图片。网络支持多种消息类型,每种消息类型都有自己的属性、要求和语义。消息完全离线存储在 Farcaster Hub 上。
消息被编码为protobuf,并且必须由帐户的签名者进行哈希处理和签名。只要有足够的存储空间,用户就可以向 Hub 发布消息。集线器在接受每条消息之前会检查其签名者的有效性。
贮存
存储赋予帐户向网络发布消息的权利。它是通过支付年费来租用的,类似于在网络服务器上租用空间的方式。存储由 StorageRegistry 合约在链上管理和跟踪。
存储以单位来衡量,一个单位授予一个帐户存储一定数量消息的权利。任何人都可以向 StorageRegistry 付费,为帐户租用存储单元。每个存储单元的价格和大小将根据供需情况而变化。

建筑学
去中心化的社交网络有许多要求很难在单个系统中满足。用户必须能够以去中心化的方式创建、拥有和转让账户。他们创建的消息必须近乎实时地传播,并且通常会大量发出。只有使用混合链上和链下系统的混合架构才能实现这些目标。
链上合约用于不频繁的操作,其中一致性和去中心化很重要。帐户、用户名、存储和密钥使用一系列以太坊合约进行管理。
离线系统用于性能至关重要的频繁操作。用户帐户创建的消息在 Farcaster 集线器的 p2p 网络上存储和传播。与区块链不同,该网络使用最终一致模型,允许快速消息传播,以换取较弱的一致性模型。

注册合同
Optimism 主网上的注册合约管理帐户身份、签名者和存储。主要合同有以下三项:
Id 注册表- 发出 fid 以创建新帐户
存储注册表- 跟踪每个帐户拥有多少存储空间
密钥注册表- 让帐户注册消息签名者
这些合约设计简单,不可升级,并且有有限的生命周期。这些合约以可信模式部署,只有 Farcaster 可以注册新帐户。经过测试期后,它们将变得无需许可,以便任何人都可以注册帐户。此更改无法撤消。

身份证登记处
Id 注册表向以太坊地址颁发新的 Farcaster 帐户。用户可以进行交易来获取地址的唯一数字标识符,称为 Farcaster ID 或 fid。一个地址一次只能保存一个 fid,但可以自由传输它们。账户可以指定一个恢复地址,该地址可以随时转移fid。
存储注册表
存储注册中心将存储单元出租给账户,收取年费。账户必须至少拥有一个存储单元才能在 Farcaster 上发布消息。存储价格由合约以美元确定,但必须以 ETH 支付。Chainlink 预言机决定 24 小时最多更新一次的汇率。价格、汇率、可用单位和每个单位的大小均由 Farcaster 控制,并根据供需情况而变化。
密钥注册表
密钥注册表允许帐户注册一个可以代表其写入消息的签名者。签名者可以随时添加或删除,但一旦删除就无法再添加回来。一个签名者可以添加到多个帐户。签名者是 Ed25519 公钥,并且必须带有请求者(即请求密钥的帐户)的签名。这可以是用户的帐户或想要代表用户操作的应用程序的帐户。
部署

集线器
中心验证、存储帐户消息并将其复制到其他中心。应用程序运行集线器来实时读取和写入 Farcaster。集线器在商用硬件上运行,在概念上类似于低级高性能数据流。大多数应用程序应将中心数据复制到数据库中,以便于索引和查询。
每个中心都存储网络上每个帐户创建的整个全局状态或消息。存储注册表的最大存储单元限制可确保全局状态的大小受到限制。与以太坊节点不同,集线器最终是一致的,并且可能会乱序获取消息。这使得读写速度非常快,但在解释更改时却变得更加复杂。

验证
收到消息后,会对消息进行哈希处理,并将其签名与 ID 注册表和密钥注册表合约进行比较。消息还指定额外的验证规则,这些规则在合并之前由集线器检查。
贮存
当消息经过验证后,它会存储在消息集中。每种消息类型都有一组定义用于合并消息和处理消息数量超出用户限制的情况的规则。通常,最早的消息最终会被丢弃。规则的设计使得以任何顺序添加的消息都将始终产生相同的集合。
复制
当消息被存储时,它会通过 libp2p gossip 网格发送到其他集线器。未通过八卦到达的消息是使用差异同步(一种周期性的带外过程)来获取的。差异同步比较两个集线器之间的消息 ID 的默克尔树并获取丢失的消息。中心监控同行并对他们的行为进行评分。如果某个对等点不接受有效消息、落后或闲聊过多,则它可能会被其对等点忽略。
实施
Hubble - Typescript 和 Rust 中的 Hub 实现
用户名
用户可以将 ENS 名称与他们的帐户关联起来,以便其他人可以轻松地在消息中提及他们。名称必须少于 16 个字符,并且仅包含小写字母、数字或连字符,以防止同形文字攻击。
Farcaster 目前支持两种 ENS 名称:
fnames,它们是免费的并由 Farcaster 管理。
.eth 名称,需要花钱并且由用户控制。

治理
Farcaster 采用粗略共识和运行代码作为其治理模型。当有人提出建议、获得支持并发布正在运行的代码时,就会发生变化。根据变化,需要说服不同的群体:
协议开发人员,选择将更改合并到中心和合约中。
应用程序开发人员,选择将这些更改部署到他们的中心。
用户,选择他们想要使用的应用程序。
人们接受或拒绝新代码会产生共识。Farcaster 不会为任何人提供具有约束力的投票程序、官方角色或否决权。太多的结构会导致系统僵化、鼓励政治活动并减缓进展。粗略的共识偏向于行动,鼓励观点的多样性,并最大限度地实现去中心化,这对于长期协议至关重要。大多数变更都是通过FIP流程发生的。
FIP
FIP(即 Farcaster 改进提案)是围绕协议变更建立共识的过程。FIP 的灵感来自以太坊的 EIP和Python 的 PEP。任何人都可以编写 FIP 来提议更改:
一个过程,例如协议的发布时间表
标准,例如链上资产的 URI
一个实现,比如添加一个新的协议功能
请阅读《FIP-0:提出提案的提案》中有关 FIP 的更多信息。最终提案列表如下。提案在讨论板上提出并获得批准。

项目一出来V神就发布了最新消息,说明V神对这个项目的的任何,即将成为新的龙头

Coinbase 前高管为去中心化社交网络协议筹集了 3000 万美元,由 a16z 领投
Merkle Manufactory 在 Andreessen Horowitz (a16z) 领投的一轮融资中筹集了 3000 万美元。
这家羽翼未丰的公司由前 Coinbase 高管丹·罗梅罗 (Dan Romero) 运营,正在致力于推出 Farcaster,这是一种用于构建社交网络的“充分去中心化”协议。
Coinbase 的一位前高管周二表示,他的公司 Merkle Manufactory 在 Andreessen Horowitz (a16z) 领投的一轮融资中筹集了 3000 万美元,用于开发名为 Farcaster 的社交网络协议。
于 2019 年离开该交易所的丹·罗梅罗 (Dan Romero) 在其网站上的一篇帖子中宣布了本轮融资。他解释说,他和 Coinbase 的另一位前董事 Varun Srinivasan 在 2020 年开始合作开发一个名为 RSS+ 的想法。
他写道:“我们的目标是建立一个 可信的中立协议,让用户与受众建立直接关系,开发者可以自由地无需许可地建立新客户端。” “我们经历了几次迭代,最终构建了Farcaster,一个 用于构建社交网络的足够去中心化的协议。”
Standard Crypto、Elad Gil、1confirmation、Scalar Capital、First Round Capital、Volt Capital、A Capital、Todd and Rahul's Angel Fund、Coinbase Ventures、Mischief、Ansa Capital、Haystack、Ribbit Capital、Chapter One、Multicoin Capital、Offline Ventures、Archetype 、Canonical Crypto、Proof Group、Floodgate、Balaji Srinivsasan、6529、Ray Tonsing 和其他几位天使投资人也加入了本轮融资。
