核验清单

  • 同一笔回执读取 gasUsed、effectiveGasPrice 与 l1Fee(或该栈文档里的等价数据费字段)。
  • 执行费 = gasUsed × effectiveGasPrice;总成本 = 执行费 + 数据费。不得只用钱包上的 Gas。
  • 若数据费 / 总成本 > 0.5,禁止把钱包 Gas 写成这笔转账的成本。
  • 报价必须来自该笔回执,不得用十分钟前的估算器;拥挤时段改报 p95,不报均值。

1. 钱包 Gas 是执行费,数据费在另一列

Rollup 把用户交易先在 L2 执行,再把压缩后的批次或 blob 发到以太坊。Optimism 的费用说明把用户支付拆成执行 Gas 与 L1 数据成本:前者按 L2 的 gasUsed 与有效价格计,后者按这笔交易分摊到的主网发布成本计,在回执里常以 l1Fee 出现。钱包若只渲染第一列,研究者抄下来的「这笔只要 0.00003 ETH」就少了第二列。

这和本站「已确认不等于最终性」不是同一件事。那篇问的是绿勾落在哪一口时钟;本篇问的是同一笔已经上链的回执,扣款到底由哪几列组成。也和交易所提现加价不同:加价比较的是交易所价目表与链上 Gas;这里比较的是 L2 钱包自己的界面与同一条 L2 回执。排序器先垫付主网发布,再向用户收取 l1Fee,垫付不是赠送。

2. 教学案例:界面 0.00003 ETH,回执合计约 15 倍

假设一笔普通 L2 转账。钱包估算写 Gas 约 0.00003 ETH。同一笔回执:gasUsed = 21000,effectiveGasPrice = 1.4 gwei,执行费 = 0.0000294 ETH;l1Fee = 0.00042 ETH。总成本 = 0.0004494 ETH。数据费占总成本约 93%。研究者若把钱包数字写进「L2 转账成本可忽略」,规则判定失败。下表全部为教学假设。

教学案例:同一笔回执,钱包 Gas 与 l1Fee 不是同一列
字段教学值判定
钱包展示 Gas0.00003 ETH只覆盖执行费
执行费21000 × 1.4 gwei = 0.0000294 ETH与钱包接近
回执 l1Fee0.00042 ETH数据费,界面未展示
总成本0.0004494 ETH约为钱包数字的 15 倍
数据费占比0.00042 / 0.0004494 ≈ 93%大于 50%,不得把钱包 Gas 写成成本

15 倍不是界面渲染错误。执行层可以很闲,数据市场可以很挤。把「L2 很便宜」写成执行 Gas 的同义词,是把一条价格曲线当成两条。正确写法是:执行费 0.0000294 ETH;数据费 0.00042 ETH;合计 0.0004494 ETH。钱包上的 0.00003 ETH 只允许标注为执行费。

3. blob 基础费与 L2 执行 Gas 不是同一个市场

EIP-4844 给 blob 单独做了基础费:目标每个区块若干 blob,超出则基础费按 EIP-1559 式指数上调。这条曲线不读取 L2 的 gasPrice。因此「L2 Gas 1 gwei」与「blob 基础费已经跳了几个数量级」可以同时为真。只刷新 L2 gas 追踪器,会把拥挤写没。

字段名不能跨栈硬套。OP 栈回执用 l1Fee(部分升级后还有 operator fee,必须加进同一笔总成本,不能当成可忽略的舍入)。Arbitrum 的 Gas 说明把 L1 数据定价折进自己的估算,字段名不同,核验动作相同:用成交回执,而不是估算器,把数据分量与执行分量拆开。看不到数据分量的回执,结论停在「未拆费」,不得写成已核验的便宜。

估算器还有时间问题。blob 基础费按区块更新,十分钟前的「预计 0.00003 ETH」不能贴到现在这笔回执上。研究笔记若把估算器与回执拼成一行,等于用两个市场状态给一笔交易定价。

4. 筛选线:数据费过半,钱包 Gas 不得写成成本

教学筛选是:设执行费 E、数据费 D(含该栈文档要求计入用户的 operator fee),总成本 T = E + D。若 D / T > 0.5,禁止把钱包展示的 Gas 写成这笔转账的成本;只能写成「执行费 E,数据费 D,合计 T」。0.5 不是物理常数,而是一条可证伪的线:过半说明便宜叙事的主语已经换了,继续引用钱包数字是在引用次要项。

该筛选不回答交易是否最终确定,也不回答数据能否被取回。最终性是另一口时钟;数据可用性问的是批次能否被重建。本篇只回答扣了多少、扣在哪一列。通过筛选也不等于下一笔同样便宜:blob 市场是按区块重定价的,单笔通过不能外推成「这条 L2 的转账成本」。外推时至少给出同一时段 N 笔回执的 D/T 分布,拥挤时段用 p95,不用均值。均值会被大量闲时交易拉低,把尾部拥挤写成常态便宜。

5. 一份别人能复现的记录

最低字段包括:L2 链 ID、交易哈希、钱包客户端与它展示的 Gas 原文、gasUsed、effectiveGasPrice、算出的 E、l1Fee 或等价字段原文、operator fee(若有)、T、D/T、是否超过 0.5、报价时刻与回执区块时刻的间隔。RPC 要保存请求与返回,避免用另一次 eth_getTransactionReceipt 拼行。钱包截图不能代替回执字段。

对账顺序固定为:回执执行费 → 回执数据费 → 占比 → 再对照钱包文案。钱包数字与 E 偏差超过 20% 时,先记下估算器时滞,再谈数据费。未归因的差额禁止写进「已核验的转账成本」。需要付费归档节点才能读历史回执时,把数据源等级写进记录。

6. 结论:成本是两列之和,不是钱包上的一列

加密研究的错误句式是「L2 转账只要几分钱,Gas 很低」。更可靠的句子是「E;D;T;D/T;钱包文案对应的是 E 还是 T」。钱包 Gas 回答执行层有多闲,l1Fee 回答数据市场有多挤。两列缺一,便宜就是未完成核验的界面。

本文是分析框架和教学算例,未对任何 Rollup 或钱包做质量背书,不构成投资建议。