L2 数据压缩能省多少钱?Rollup 批次压缩与上链发布机制 图 1
L2 数据压缩能省多少钱?Rollup 批次压缩与上链发布机制 · 图 1

结论先说

Rollup 的一笔手续费里,有一块是为“把交易数据记到以太坊”买单。Rollup 不会逐笔把交易单独发到 L1,而是把一串交易攒成批次,先用通用压缩算法压小,再作为一笔链上交易提交,L2 的费用因此降下来。以 Arbitrum 的 Nitro 实现为例,官方白皮书与文档写明:排序器用 Brotli 这类通用压缩算法压缩批次,再提交到 L1 的 Inbox 合约;文档还列出压缩等级会按拥堵情况在 0 到 11 之间动态调整。要划清的一条边界是:压缩只是成本优化,它不改变 Rollup 的安全假设,也不意味着数据对用户不可见——节点仍然会解压批次数据来推导 L2 状态。

数据费长什么样

以太坊对交易里的每个数据字节都要收 gas,字节数大的交易在主网会明显变贵。Rollup 如果把每笔交易原样单独上链,光数据费就能把自己“比主网便宜”的卖点吃光。所以 Rollup 的成本问题核心只有一个:怎样用尽可能少的 L1 空间装下尽可能多的 L2 交易。批次化和压缩就是两条答案——前者摊掉逐笔上链的固定开销,后者利用交易数据里的大量重复。

批次和压缩怎么工作

Nitro 的排序器有两条发布渠道。一条是供各方订阅的实时序列流,代表排序器对交易顺序的承诺;另一条是把交易序列作为压缩批次发到 L1 合约,白皮书把后者称为最终且有权威性的顺序记录——一旦提交交易在以太坊上获得最终性,对应的 L2 交易顺序也就定了。批次形成有两个触发条件:交易攒到预设大小,或者到了设定时间间隔,两条中先到的一条生效。压缩等级在 0 到 11 之间动态选择:压得越狠越省链上开销,但计算耗时越多,所以积压严重时系统会偏向更快的压缩档,先保证流水不断。

每笔交易分摊多少数据费,也不完全等于它自己的原始体积。白皮书给出的近似办法是:对单笔交易用最低计算档做一次快速压缩估算,把得到的压缩尺寸乘以一个固定系数,作为它对批次成本的贡献。系数本身不重要,重要的是这个设计承认:一条交易“跟邻居一起能压掉多少”会影响它的数据账单,签名相近、调用模式重复的交易互相搭便车。

压缩之后的数据从哪里复原

批次解包与状态重建示意

压缩不损害可验证性的前提是确定性。任何 Rollup 全节点都能从 L1 下载压缩批次,解压得到与排序器承诺一致的交易序列,按序重放就能推出同样的状态;实时流上的说法若与链上批次对不上,以批次为准。这条“从 L1 数据重建链”的链路可以接着看 L2 派生流水线是什么?从 L1 数据重建 Rollup 链。一个容易忽略的点:解压规则属于协议的一部分,所有节点必须用同一套规则,所以压缩算法或参数的任何变化都要走升级流程协调生效,而不是某个运营者自行调整。

用户视角与边界

三层含义。第一,数据费水位受以太坊主网拥堵和数据市场影响,同一批交易在不同时段上链成本差很多,把某条 L2 冷清时段的“平均费用”当成常态会误判。第二,压缩收益取决于数据相似度,充满重复签名和重复调用模式的批次最受益,携带大量随机数据的交易获益有限。第三,批次化与压缩只降低费用、不增加能力:交易的确认速度、抗审查性和最终性边界仍由排序器、数据可用性与争议协议等机制决定,与压掉了多少字节无关。

风险提示

本文只解释 Rollup 费用与数据发布机制,不构成任何投资或交易建议。涉及费用结构与压缩策略的描述以项目官方文档当前口径为准,协议升级可能改变参数。