开篇直接切入。今天早晨我强忍着极高的网络延迟又强行跑了一遍整个客户端的交互流程。每次冷启动都在考验我的耐心极限。节点拉取数据的耗时简直离谱。一条只有纯文本的推文流居然需要长达七秒的渲染时间。这七秒钟里屏幕上那个劣质的加载动画不停打转。我切到后台抓包看了一下网络请求。他们居然还在用最原始的轮询机制去向RPC节点请求最新区块的状态。这种粗暴的拉取方式在当前这种体量的用户并发下根本撑不住。我们每天都在奢谈什么破除Web2的数据垄断。现实情况却是连最基础的并发查询都做不好。对比之下Farcaster的Hubble架构就显得优雅太多了。通过基于gRPC的节点同步机制起码在P2P网络层保证了状态广播的低延迟。而我现在面对的这个产品完全像是一个为了发币而仓促拼凑出来的粗糙原型。
继续深挖UI底层的逻辑发现更让人无语的设计。前端的状态管理极其混乱。我尝试在短时间内连续点赞了五条动态。结果客户端直接把本地状态和链上确认给弄脱节了。点赞按钮的UI反馈虽然立刻变成了高亮状态但一旦刷新页面其中三个赞又神奇地消失了。为了验证这到底是前端渲染的锅还是合约调用的问题我专门去区块浏览器查了刚才那几笔交易。事实上交易根本就没有被打包上链。前端在没有拿到交易回执的情况下就乐观地更新了UI。这种伪乐观更新简直是在侮辱用户的智商。Lens Protocol虽然以前也卡但至少引入Momoka之后把轻量级交互转移到了数据可用性层。现在的数据上链成本已经被压到了极限。我不明白为什么这个项目还要坚持在主网上硬扛所有交互。高昂的Gas费和拥堵的确认时间直接把高频社交互动的可能性给彻底扼杀了。
再来看看被寄予厚望的资产发行与内容变现机制。这部分可以说是整个系统里最让人迷惑的模块。产品白皮书里吹嘘的联合曲线定价模型在实际体验中暴露出致命的流动性陷阱。我花了大概五十U去购买一个创作者的个人份额。滑点高得惊人。由于资金池深度极浅我这笔微不足道的买入操作居然直接把价格拉升了将近百分之十二。这根本不是一个健康的定价机制。这纯粹是为早期投机者量身定制的割韭菜工具。当一个创作者刚刚入驻还没有建立起任何实质性的社区共识时系统就强迫新粉丝以指数级增长的成本去获取互动权限。这种设计逻辑完全违背了社交网络建立网络效应的初衷。我当时就很疑惑设计这套模型的人到底有没有真正在Web2社区里摸爬滚打过。创作者需要的是低门槛的流量沉淀而不是从第一天起就被当成一个金融标的来炒作。
社交的核心永远是信息的流动与情绪的共鸣。这套系统却试图把每一次点击每一个评论都明码标价。我试图给一篇深度技术分析文章打赏。系统立马弹出一个授权请求要求我不仅要支付一笔手续费还要额外燃烧一部分代币。我当时就放弃了打赏的念头。这种到处充满摩擦力的交互体验让人感到极其挫败。即便产品团队在推特上每天高呼去中心化主权但真正登陆系统后看到的却是一个处处设限的金融樊笼。“登陆”这里我其实想说“登录”但这几天用下来实在是让我感到头晕目眩脑子里全是对这种奇葩设计的无尽报怨。
说到去中心化我特意去翻了一下核心合约的源码。代理合约的升级权限居然毫无遮掩地掌握在一个三杠五的多签钱包里。更诡异的是这五个签名者地址在链上的交互记录高度重合。资金来源几乎都指向同一个中心化交易所的同一个提币地址。这很难不让人怀疑这所谓的多签本质上只是同一个人或者同一个小团队左手倒右手的把戏。我不反对早期项目保留一定的中心化控制权以便快速迭代修复Bug。但在宣传上把自己包装成绝对抗审查的Web3基础设施这就显得非常虚伪了。在这方面竞争对手显然坦诚得多。无论是早期的去中心化推特替代品还是现在大火的各种客户端人家起码明确告知用户哪些模块目前还是依赖中心化服务器运作的。
整个产品最让我难以忍受的是其对移动端体验的极度漠视。在这个移动互联网早就普及的年代居然还有人能把移动端Web页面做得如此反人类。字体大小不适配响应式布局在某些奇葩分辨率下直接错位。如果你试图在手机浏览器里唤起钱包进行签名十次里面至少有七次会导致页面崩溃或者失去响应。我平时习惯在通勤的地铁上浏览行业资讯顺手做一些轻度交互。但这款产品直接把我的碎片化时间变成了不断重启浏览器的痛苦折磨。相比之下Warpcast的移动端原生应用虽然也被一些原教旨主义者批评不够去中心化但它至少是一个普通人能够日常使用的软件。它懂得很克制地把复杂的密码学验证隐藏在顺滑的用户界面之下。
在账户抽象这个概念早就被各大研讨会嚼烂的今天我原本以为他们至少会集成ERC4337的标准来做代付Gas的丝滑体验。结果我翻遍了整个设置页面也没有找到任何相关的配置项。这就意味着每一个新进入的用户都必须去交易所购买主网代币然后经历繁琐的提币过程最终还要承担主网波动的Gas费。这种粗暴的冷启动门槛在这个流量枯竭的存量博弈阶段无异于自杀。那些懂得用Paymaster在早期为用户补贴交互成本的竞品显然更加懂得如何获取真实的用户增长。你不能指望一群习惯了微信一键授权的普通人突然之间变成精通各种助记词和网络切换的极客。产品的傲慢往往是走向没落的第一步。
在这个行业里呆久了你就会对这种拿着锤子找钉子的产品见怪不怪。很多开发团队似乎陷入了一种技术自嗨的怪圈。他们花费巨大的精力去构建一套无比复杂的零知识证明系统或者试图把所有的社交关系图谱硬塞进区块链的存储里。却连最基本的图片懒加载都做不好。页面上的高清大图毫无压缩地一股脑塞给前端渲染导致的内存泄漏让我那台配置顶级的笔记本风扇狂转。这种对工程细节的粗糙处理反应了当前很多Web3创业者的通病。他们只关心能够用来融资的宏大叙事却吝啬于在用户体验的微观层面投入哪怕一点点精力。
我经常在思考我们到底需要什么样的全链社交。是把每一句废话都刻在以太坊上永存还是建立一套真正能够让内容创作者掌握数字产权的分配机制。目前的各种竞品显然都在盲人摸象。有的走向了纯粹的金融盘子有的变成了发空投的流水线机器。我每天看着瀑布流里充斥着毫无营养的机器打卡贴就觉得无比荒诞。这不仅是对区块链资源的巨大浪费更是对注意力经济的一种粗暴透支。好的社交产品应该像水一样自然地融入生活而不是像现在这样每次操作都要如临大敌般地检查Gas费和签名内容。
前几天我仔细拆解了他们最新更新的索引器逻辑。原本以为他们会引入一种类似于The Graph的去中心化子图网络来分担查询压力。结果他们干脆在自己家的AWS服务器上搭了一个中心化的数据库把所有链上事件同步进去然后再吐给前端。这种架构在Web2时代连个初创公司都能做得比他们稳定。现在一旦遇到流量洪峰比如某个大V突然发了一条带红包的动态整个节点的API接口就会瞬间报出502错误。这不仅破坏了产品的可用性更是直接摧毁了依靠代币激励建立起来的脆弱信任。当你手里的代币因为网络瘫痪而无法在关键时刻抛售或者参与交互时那种无力感会彻底扼杀用户留存率。
再聊聊他们的消息推送机制。这是一个足以载入反面教材史册的设计。客户端居然要求我保持后台常驻才能接收到其他人的私信。在移动端严苛的后台管理机制下这根本就是一个不可能完成的任务。导致的结果就是我永远无法在第一时间回复重要的信息。社交的本质是即时连接。当我发送一条消息却不知道对方何时才能看到时这种断裂的沟通回路会迅速扑灭任何建立深度关系的可能。他们完全可以借鉴现有的去中心化推送协议比如Push Protocol虽然目前还不够完善但至少提供了一个可行的技术路径。而不是像现在这样闭门造车搞出一套只存在于理想环境中的玩具代码。
如果抛开这些恼人的工程缺陷单看他们试图打破信息茧房的算法构想还是有一些亮点的。推荐流没有采用那种令人窒息的单向度强化学习算法。相反它引入了一定比例的随机漫步机制让你偶尔能看到完全不同圈层的内容。这算是在充斥着信息同质化的Web3世界里打开了一扇透气的窗户。不过这种微小的创新很快就被垃圾信息的泛滥给淹没了。因为缺少有效的抗女巫攻击机制刷子工作室可以轻易地用成千上万个机器号污染整个内容池。虽然系统设置了质押代币才能发帖的门槛但对于那些能够批量生成账号并分发资金的专业黑客来说这种门槛形同虚设。
那些老牌的竞品在抗女巫策略上就显得老道得多。通过多维度的人格证明验证结合链上链下的行为数据分析起码能够把绝大多数低级机器人挡在门外。而我现在面对的这个社区更像是一个无人看管的荒野。我发布的深度长文阅读量寥寥无几而那些带有各种诱导点击的垃圾空投链接却能轻易获得几万的曝光。劣币驱逐良币的现象在这里被放大到了极致。这也暴露了当前代币经济学设计的一个盲区。仅仅依靠算法和代币并不能自动孕育出优质的社区文化。社区的灵魂依然需要具有高度责任感的早期核心成员去精心呵护和引导。
在这个过程中我还注意到了他们在数据存储层面的一些奇怪操作。原本应该保存在IPFS或者Arweave上的长文本内容居然有很大一部分被悄悄存回了传统的云服务器。我抓包的时候无意中发现了亚马逊S3的域名直接硬编码在前端脚本里。这简直是在狠狠打脸他们自己宣扬的永久存储理念。我能理解为了首屏加载速度做一些缓存冗余但这和把核心数据直接交还给中心化机构是两个截然不同的概念。如果哪天项目方连服务器的账单都付不起了那用户辛辛苦苦积累的全部社交资产岂不是瞬间灰飞烟灭。与Lens采用的链上元数据加去中心化存储的混合方案相比这种做法无疑是极其短视且危险的。
更加不可思异的是他们在密码学组件的实现上也显得极其业余。“不可思异”其实是“不可思议”但此时的我已经懒得再去纠正输入法里的错别字。我用代码审查工具扫了一下他们开源在GitHub上的前端仓库。发现钱包签名的nonce值居然是在前端本地生成的而且完全没有防止重放攻击的机制。这意味着如果有人在不安全的网络环境下截获了你的签名包就可以在一定时间内无限次地模拟你的身份发送请求。在当前这个黑客横行资金安全事件频发的Web3环境里这种低级漏洞的出现简直是不可原谅的。这也再次印证了我之前的判断这帮人根本就没有经历过大规模真实用户场景的毒打。
反观Farcaster的架构设计他们把身份注册和恢复机制做得很重但把日常的高频交互做得很轻。通过EdDSA密钥对和离线签名技术用户只需要在注册时消耗一次Gas费之后的所有操作都可以在无需每次呼叫钱包签名的情况下完成。这种权衡是非常明智的。它极大地降低了用户的使用门槛同时又保证了账户级别的安全性。我们现在评测的这款产品却正好相反。它在最需要安全的地方比如合约的多签权限和签名的防重放上漏洞百出却在最需要顺滑体验的日常点赞评论上层层加码设置了无数道阻碍用户顺畅使用的门槛。
技术在这个时候显得如此苍白无力。我经常会盯着屏幕上那些错综复杂的智能合约代码陷入沉思。每一行代码都在试图用冰冷的逻辑去规范人类复杂多变的社交行为。但人性真的可以用几行Solidity代码来完全定义吗。当我们在谈论数字身份的时候我们到底在谈论什么。是一串由加密算法生成的哈希值还是我们在无数次交互中留下的情感印记。这个产品显然没有想清楚这个问题。它把用户当成了单纯的数据产生器用各种粗糙的机制去榨取交互数据然后打包成所谓的增长指标去给投资人看。
我不想去过多猜测背后资本的运作逻辑。单从一个对技术和产品有极客洁癖的普通用户的视角来看现在的交付质量是完全不及格的。我们需要的是能够解决真实痛点的工具而不是披着Web3外衣的拙劣模仿品。既使有些人在群里疯狂地布道说这是下一代社交的范式转移我也很难产生任何共鸣。“既使”用在这里似乎有些不对应该是“即使”但这种打字时因为手速过快而产生的细微错误反而更像是真实思考时的磕绊。我的思路不会因为一个错别字而中断只会因为糟糕的产品体验而彻底卡壳。
在未来的几个月里我预计这个赛道会迎来一次残酷的洗牌。那些没有真实用户沉淀只靠通胀代币维持虚假繁荣的项目会迅速走向死亡螺旋。这对于行业来说其实是一件好事。只有潮水退去我们才能看清谁在裸泳。我更期待看到那些真正从底层协议做起把数据主权还给用户同时又能在应用层提供极致体验的创新者。也许到那个时候我们才不需要每天对着满屏的Bug和延迟暗自叹息。技术的迭代永远是螺旋上升的现在的这些痛苦和折磨或许正是破茧成蝶前必须经历的阵痛。
写到这里我已经把能测试的模块几乎全测试了一遍。我的测试账户里还剩下一点点微不足道的测试币但我已经完全失去了继续探索的欲望。这不仅是因为那如同慢动作回放般的UI响应也是因为这套冰冷且充满算计的经济模型让我感到极度不适。我不需要一个时刻盯着我钱包余额的社交软件。我需要的是一个能够让我自由表达思想毫无负担地与志同道合者交流的空间。如果技术不能服务于这种最纯粹的人性需求那么无论它包装得多么华丽最终都会沦为少数人自嗨的玩具。
在行业叙事日新月异的今天我们更应该警惕这种打着颠覆旗号却干着倒退勾当的伪创新。我们需要更加严苛的社区监督机制需要更多独立开发者站出来对这些充满缺陷的代码进行无情的鞭挞。只有撕开这些虚假繁荣的外衣我们才能逼迫这个行业回归到踏实做产品打磨体验的正轨上来。这是一条艰难且漫长的道路但我相信这是通向真正Web3时代的唯一途径。未来的竞争一定是围绕着产品细节和用户体感展开的谁能在这个维度上做到极致谁就能在下一波浪潮中占据主导地位。
夜深了我也该结束这场如同经历了一场技术灾难般的深度体验。整个过程充满了对糟糕代码的愤怒对奇葩设计的无奈以及对那些被白白浪费的潜力的惋惜。我把满篇的测试数据和抓包记录归档关掉那满是报错信息的控制台。希望明天的太阳升起时能在这个依然充满生机与混乱的行业里看到真正让人眼前一亮的东西。我们在这个赛道里沉浮见证过太多流星般的陨落也期盼着真正的恒星能够早日升起。至于今晚的这场荒诞的产品评测就让它随着敲击键盘的最后一声清脆回响彻底画上句号吧。@Fogo Official $FOGO #Fogo