最近在那堆 Layer 1 的扩容方案里泡得太久,脑子其实有点木,直到今晚重新翻开存储层的白皮书,尤其是重新审视 @Walrus 🦭/acc 的设计哲学时,突然有种通透的感觉,这种通透不是那种被营销词汇轰炸的兴奋,而是那种看到一段极其优雅的代码时作为一个工程师本能的战栗。我们一直在谈论 Web3 的大规模采用,但每次看到全节点的数据同步成本和以太坊上的存储费用我就想笑,我们假装把数据放在了链上,其实大部分 JPEG 和前端还是躺在 AWS 的 S3 里,如果没有一个真正廉价、无需信任且这点最重要易于编程的存储层,所谓的去中心化网络不过是构建在沙堡上的空中楼阁。这几天仔细啃了 Walrus 的技术文档,有些念头在脑子里盘旋很久了,必须写下来整理一下。

我一直在想现在的存储方案,比如 Filecoin 虽然伟大,但那个 Proof-of-Spacetime 的计算开销真的太大了,那是为了证明我存了而做的额外功,而 Walrus 让我眼前一亮的地方在于它把重心完全放在了纠删码 Erasure Coding 的现代实现上,也就是他们所谓的 Red Stuff。以前做分布式系统的时候,为了高可用最笨的办法是多副本复制,一份数据存三份三倍的成本,但在 Walrus 的设计里那种基于二维 Reed-Solomon 编码的逻辑简直是数学上的暴力美学。想象一下我们不再是简单地复制数据,我们将一个 Blob 二进制大对象分割成 k 个原始分片,然后计算出 n 减 k 个校验分片,总共 n 个分片,只要我在网络中能找到任意 k 个分片,我就能通过拉格朗日插值法或者矩阵运算完美还原出原始数据。这意味着什么?这意味着由于 Walrus 采用了这种更加先进的二维编码结构,在网络极度不稳定的情况下假设有一半的节点掉线了,数据的恢复不再需要惊动整个网络,我只需要从剩余的碎片中以极低的带宽成本重构数据,这不仅是鲁棒性的问题,这是纯粹的成本效率问题,如果存储成本不能在数学层面上被压缩到接近物理硬盘的成本,Web3 存储就永远只是个玩具。

刚开始我对 Walrus 绑定 Sui 还有点疑虑,觉得是不是生态捆绑,但深入想了一下共识机制的解耦,发现这其实是必然的选择。传统的存储公链试图在同一条链上解决支付、共识和存储证明这三个问题,结果就是链极其臃肿,TPS 低得可怜。Walrus 的思路很清奇,把复杂的元数据管理和节点协调扔给一条高性能的公链也就是 Sui,而存储节点只负责存数据,这就像是在写微服务架构,Sui 是那个高性能的 API Gateway 和 Service Mesh,处理状态变更、Epoch 切换和质押逻辑,而 Walrus 的 Storage Nodes 就是后端那个无状态的只管吞吐的 S3 桶。因为 Sui 的 Move 对象模型天生就适合处理这种资源的所有权,当我在想如何在 Walrus 上构建一个去中心化的 Dropbox 时,我发现我不需要处理复杂的存储节点握手协议,我只需要在 Sui 上操作一个 Object,这个 Object 代表了存储资源的凭证,这种存储即资产的抽象对于开发者来说太友好了。

这两天在脑子里模拟 Walrus 的恢复流程,越想越觉得那个 RaptorQ 及其变种的应用场景潜力巨大。假设我是一个恶意节点,在 Filecoin 的网络里我可以通过丢弃数据但伪造零知识证明来作恶,但在 Walrus 里安全性不是靠算力堆出来的,而是靠概率论保证的。当数据被编码并分散到成百上千个节点后,攻击者想要摧毁一个文件必须同时攻破极高比例的节点,随着网络规模的扩大这个攻击成本是指数级上升的。而且我特别在意那个 Fast path 和 Slow path 的设计,在网络状况良好时读写是 O(1) 级别的直接交互,只有在网络动荡时才需要启动纠删码的恢复逻辑,这种乐观执行的思路非常符合互联网工程的实战经验,针对绝大多数的正常情况优化,而不是为了极少数的异常情况牺牲所有性能。这就引出了那个老生常谈的问题,存储节点的激励来自哪里?如果是永久存储你需要一个极其复杂的捐赠基金模型来对冲未来的硬件通缩和法币通胀,如果是租赁模式你需要不断的续费和复杂的质押。Walrus 目前给出的信号让我觉得它在走一条中间路线,它更像是一个去中心化的临时缓存与长期归档的混合体,特别是结合 Sui 的 Tokenomics,存储空间的定价权可能会完全交给市场博弈。

我在想一个场景,未来的 L2 扩容方案中 DA 数据可用性层现在都被 Celestia 抢风头了,但 Celestia 实际上只解决了数据在短时间内发布并可验证的问题,那么三个月前的 L2 交易数据去哪了?一年的一样呢?Walrus 实际上填补了 DA 层和永久归档层中间的那个巨大空缺,即廉价的、中长期的、可编程的历史数据层。这对于 AI 训练数据的存储来说简直是刚需,现在的 LLM 训练集动辄几个 TB,放在链上是不可能的,放在 AWS 上又面临中心化审查风险,Walrus 这种基于 Blob 的高吞吐设计简直就是为 AI 模型权重和数据集分发量身定做的。刚才试着写了一段伪代码,模拟如何在 Sui 上调用 Walrus 存储一个 NFT 的元数据,以前在 Solidity 里做这事我得把 IPFS 哈希硬编码进去然后祈祷那个 IPFS 网关别挂,在 Walrus 加 Move 的体系下代码逻辑更像是创建一个 Blob 对象,支付存储费,获得一个 CertifiedBlob 凭证,将这个凭证直接嵌入到 NFT 的 Struct 里。这种原子性简直太丝滑了,数据的所有权和 NFT 的所有权在链上是强绑定的,如果你转让了 NFT 你实际上也转让了对那个底层存储 Blob 的管理权,这为动态 NFT 或者可组合 NFT 打开了大门。比如我可以做一个游戏,角色的存档文件存储在 Walrus 上,每次存档更新只是生成一个新的 Blob ID 并更新链上 Object 的指针,因为 Walrus 的写入成本够低这种高频更新才成为可能。

当然没有完美的系统,我在思考 Walrus 的几个潜在瓶颈。比如节点退出的流动性风险,如果在一个 Epoch 周期内大量存储节点同时下线,虽然纠删码能容错但重建数据的带宽压力会不会瞬间压垮剩余节点,这需要大规模的实战压力测试。还有垃圾数据泛滥的问题,既然便宜肯定会有大量垃圾数据涌入,如何区分有价值的历史数据和随机生成的垃圾,虽然对于协议来说它们都是 Byte,但对于整个生态的存储效率来说这可能会引发公地悲剧,定价机制必须足够灵敏能够在负载高时自动通过价格劝退垃圾数据。另外客户端的计算负担也是个问题,纠删码的编解码虽然比 ZK 证明轻,但对于移动端设备来说如果要直接从 Walrus 读取大文件,编解码的 CPU 消耗能接受吗,或许未来还是需要一层轻量级的缓存网关。

抛开这些技术细节,我看好 Walrus 的核心原因在于它的定位,它没有试图去颠覆亚马逊,也没有试图去成为所有数据的永恒归宿,它极其务实地解决了一个具体痛点,就是在高性能区块链 Sui 生态中缺乏一个原生的、低成本的、大文件存储层。Web3 走到今天由于缺乏这种基础设施,导致我们不仅是在带着脚镣跳舞,简直是在一个 1.44MB 的软盘里试图装进整个互联网,Walrus 的出现让我看到了从 1.44MB 软盘升级到 SSD 的希望。我在草稿纸上画了那个 2D 编码的矩阵图,盯着那几个行和列的参数看了很久,这种设计让数据的恢复不需要下载所有数据,甚至不需要下载所有校验块,只需要部分行或列就能恢复,这种对带宽的极致节省才是去中心化存储能够在这个带宽昂贵的世界里活下来的关键。未来的 DApp 前端托管在 Walrus,合约跑在 Sui,资产跨链流动,这可能才是真正的 Web3 堆栈。现在的市场太浮躁了,大家都在炒作 Meme,但我知道只有当这种底层的管道工程做好了,真正的 Application Summer 才会到来,我在 Walrus 身上看到了这种潜质,它不性感不喧哗,但它在默默地处理着那些最脏最累的数据字节,这才是基础设施该有的样子。准备去跑一下他们的 Devnet 节点了,有些具体的同步逻辑还是得看 Log 才能放心。#walrus $WAL