作者:defioasis在上周,VitalikButerin推特帐户被黑客攻击并用于发布钓鱼链接,导致用户损失超过69万美元。Slowmist余弦在研究后指出,Vitalik推特被盗事件的钓鱼组织仍然与当下火热且疯狂的PinkDrainer有关,被黑的手法可能是SIM劫持或其他可能。两日后,Vitalik在去中心化社交媒体Farcaster表示自己的推特账6户确实遭到了SIM卡劫持攻击,原因可能是在注册TwitterBlue时暴露了手机号码,此前见过不要通过手机号码进行身份验证的建议,可惜并未意识到。Vitalik表示已卸载Twitter,并加入到可通过Ethereum地址来控制账户恢复的Farcaster。Farcaster是一个用于构建社交应用的去中心化协议,可以通过如Opencast和Warpcast等前端来使用Farcaster。Farcaster曾在2022年获得a16z领投的3000万美金。本文将简析一下这个被Vitalik和a16z看好的去中心化社交协议。社交网络核心问题社交网络活动可以简单理解为一组用户进行互动,如向对象发送信息(文本、图像和音频等)、为对方帖子点赞、评论、转发等。
在中心化的社交网络中,这一组用户只能局限在一个特定的社交应用中去进行交互,而在去中心化的社交网络中,将允许这来自不同应用的一组用户进行跨应用式地交互。这也将面临挑战,Farcaster将其归类为去中心化社交网络的四个核心问题:身份、认证、可用性和一致性。身份,即用户名,允许用户在不同的社交应用程序之间切换并作为用户身份;认证,当用户收到他人来信时,必须确保其是所认识的信任源;可用性,用户数据在不同的应用中皆始终可用;一致性,社交网络规则,所有的前端应用都需要始终支持并执行这些规则。Farcaster的解决方案Farcaster社交网络涵盖三个层次:身份层、数据层和应用层。身份层,是基于Ethereum确定网络上可执行的操作及授权方式,身份和认证是核心;数据层,存储由身份层授权的信息,并使其可用;应用层,消费数据层存储的信息。(1)身份:FarcasterID(FID)Farcaster为用户社交身份引入了用户名和FarcasterID(FID),其中FID是由Farcaster推出的用户标记用户身份唯一且不可篡改的标识符。FID标识符是一串数字,绑定用户的主地址,尽管是去中心化的,但用数字标识符代表用户并不合适,因而用户可以选择注册一个Farcaster名字即用户名并将其与FID相绑定。Farcaster的用户名有一个专门的称之为命名空间的地方进行管理,用户名可能会被收回,而FID则不会。
用户名和FarcasterID在Ethereum上将体现在两个不同的合约,名字注册表和FID注册表,二者构成了Farcaster用户身份的基础。值得一提的是,用户的身份恢复便受益于FID。用户可以提前设定一个其他地址作为恢复其Farcaster身份的凭证,这个其他地址可以是用户自己的另一个钱包地址、其他认识的Farcaster用户地址,甚至是第三方托管机构。(2)认证消息认证受益于FarcasterID。当一名用户收到信息时,通过查看发送方FID,在Ethereum链上查找相对应的公钥(地址),然后检查该签名发送方是否由该地址产生,即可确认这条消息的真实来源。为了保护用户在设备上的私钥问题(私钥需要加载到设备应用上才能产生签名),Farcaster引入了Signers(签名者)概念。签名者是链外生出的Ed25519密钥,用户通过使用签名者的公钥向KeyRegistry进行交易来注册签名者,然后私钥可用于签名并向网络发布消息。(3)可用性:存储租赁在中心化社交应用中,用户将信息存储在类似于RSS服务器上,并通过索引所有这些服务器来获取网络上的所有数据。
Farcaster引入了存储数据的hubs,当不同的用户进行社交交互时,会下载对方的信息副本,并存储起来。但为了防止垃圾信息充斥在hubs上,Farcaster向用户收取在网络上存储数据的租金,这也是Farcaster主要的营收来运。用户通过向Farcaster支付年费的方式来租用存储空间,这可以抑制垃圾信息,又鼓励用户清楚价值较低的数据。存储由StorageRegistry合约在链上管理和跟踪。(4)一致性Farcaster并非是一个直接的社交应用,而是一个更底层的社交协议,好比于LensProtocol与Lenster的关系。目前在Farcaster上构建的应用主要包括由DAO支持的Web3社交应用Alphacaster、创建和分享Discove、链上化群组和个性化订阅Jam、开源的Twitter风格前端Opencast和Warpcast,以及交叉发布到Twitter和Lens的社交聚合器Yup。Vitalik使用的Farcaster前端便是Warpcast。在Warpcast使用逻辑上,已基本与Twitter核心逻辑无异,可以查看“世界群组”的广域帖子,也可以对关注的用户帖子(线程)进行留言、转发和点赞。
构建在Farcaster的应用为存储在hubs上的数据提供了消费场景,应用服务器与hub通信,下载所有信息,组织并分类这些信息,以创建针对不同用户体验的应用,然后提供API供移不同客户端的用户使用。在Farcaster上构建的应用需要遵循Farcaster粗略共识(roughconsensus)和运行代码,并以此作为了Farcaster的治理模型。当有人提出一个FIP提案(Fracaster改进提案),得到协议开发者、应用程序开发者和用户的认可,并发布代码后,对于Farcaster的变化就会随着发生。不同主体通过同意或拒绝达成共识。Farcaster不会设置具有约束力的投票程序,以及不存在官方角色的否决权。社交生态系统伙伴通过Farcaster身份帐号链接至其他应用或社区,包括用户提醒Alertcaster、Move-to-EarnBlobs、链上社交活动预告Eventcaster、Farcaster生态系统指标追踪FarcasterNetwork、完成任务赚取积分FarQuest、消息应用Frens、Ethereum链上探索Interface、去中心化黑客新闻KiwiNews、寻找最新的Web3项目Launchcaster、个性化媒体源Neynar、出版和通讯Paragraph、寻找有趣话题Pincaster、由NounsBuilder创建的DAO工具PurpleDAO、所搜引擎SearchviaRaycast、使用API/GUI搜索Searchcaster、Farcaster社区内容探索Surveycaster、小费打赏Tipcast和由Token驱动的实时流媒体Unlonely。目前Farcaster尚处于测试版阶段,用户可以先提交候补名单等待。Farcaster与LensProtocol都作为构建社交网络的底层协议,但与LensProtocol相比,Farcaster更远离用户聚光灯,聚焦于开发者和应用创建。在Vitalik宣布使用Farcaster前后的截至9月中旬官方数据,Farcaster总用户数刚超过2万,在hubs上有超过380万条历史信息,并在迁移至Optimism后着手进行垃圾信息过滤以面向更多用户开放。尽管并没有任何消息有关Farcaster的空投计划,但Farcaster已经将FIP治理模块作为协议重要一环,仍值得用户体验与交互。