Optimism开销优化:通往美分级手续费之路
来源 |Optimism PBC
译者注:1 月,Optimism 发推更新其 Rollup 固定费用 (Fixed overhead) 从 2750 gas 至 2100 gas,动态开销 (Fee Scalar) 从 1.5 倍降至 1.24 倍;3 月份发布更新,称将进行交易 calldata 进行系统级压缩。这一系列的调整和更新将给 Optimism 的开销带来了很大的变化,进而影响了用户的交易费 (平均交易费降低了30% -40%)。这些费用在 Optimism 在操作中扮演什么角色?本文首先介绍了 Optimism 费用的组成部分,然后分析这些组成部分的调整如何影响用户的交易费用。
cr:@optimismPBC
Optimism 交易费介绍
要了解我们是如何减少开支的,首先要了解 Optimism 交易费的组成部分:1)Rollup 费用:将交易 rollup (包装) 进入交易 batch 然后提交到以太坊主网 (L1) 费用;2)L2 执行费用:在 Optimism (L2) 运营交易费用。想深入研究,请阅读 "Optimism 是如何工作的" 文档。
1) Rollup 开销
在 Optimism 用户不再需要支付整个交易L1 gas 费用,只需通过交易支付你的交易数据batch 提交至 L1 产生的费用。这笔费用包括你的实际交易 Calldata (输入数据) 和固定费用 (Fixed Overhead) 产生的费用,即更大的交易 batch 增加交易所需的额外处理费。
Optimism 还增加了动态费用 (Fee Scalar,费用比例系数) 作为附加费用。这给了我们一些额外资金用来作为缓冲,以防 L1 价格迅速上涨,多余的资金用于促进公共物品的发展。(Optimism PBC 发表的《追溯性公共物品募资》文章承诺了这一点,我们也可以阅读我们第一轮募资的回顾文章)
Calldata 费用和 L1 gas以太坊 的价格L1 决定,但固定费用 (Fixed Overhead)成本比例系数 (Fee Scalar)是可以由 Optimism 调整的 花哨数字。
“L1 gas 代表这些 rollup 开销:
Layer1GasFee=FeeScalar*L1GasPrice*(Calldata FixedOverhead)
目前 Optimism 在一笔交易费中 rollup 费用约为 99.6因此,我们可以通过优化这部分大大降低交易成本。
2) L2 执行开销
Optimism 用于上述交易gas 量与以太坊相同gas 量相同;但是,Optimism 上 gas 的标准费用只有 0.001 gwei,比 L1 便宜很多倍。这个 gas 价格在利用率高的时候会略有上涨,但平均只占总交易费的 0.4%。
“L2 gas 费用代表执行费用:
Layer2GasFee=L2GasPrice*L2GasUsed
节省交易费用
将 rollup 开销和 L2 加上执行费用,我们得到了总交易费用。对于简单的交易 (如ETH转账),Optimism 上面的成本比以太坊便宜5倍左右,但对于更复杂的交互 ( )swap 交易或期权交易),Optimism以太坊 可直接使用L1 便宜 200多倍。
找到我们的新成本参数
在降低成本之前,固定成本参数设置在 2750 gas 每笔交易的成本比例系数设置在 1.5 倍
1.低成本结构:因为 Optimism 在去年 11 月 11 日进行了 EVM 等同性 (EVM Equivalence) 升级,提交 Optimism 交易 batch 至 L1 需要的 gas 减少了。实际费用降低了近25%,从 2750 到 2100 gas 每笔交易。
2.尽管现在 Optimism 还处于非常早期的阶段,但自从我们推出主网近几个月以来,我们知道我们有能力将额外费用从 35% 的利润率降低到 10% 的利润率 (利润率 )= [L2 收集的费用 - L1 提交费用L2 收费)。
EVM 等同性升级后的费用 gas 降低
预测和优化
下一步是将低成本转化为 Optimism 用户更便宜的手续费。为了恰当地调整固定开销和费用比例系数这两个参数,我们必须理解什么影响了我们的费用:
1.Calldata:Calldata gas 的数量取决于交易类型(例如,ETH 转账:0 calldata gas、Chainlink 预测器更新:890 gas、UniswapV3 交易:3200 gas)。 1100 平均用于一笔交易calldata gas,但这个 gas 可能会变高,也可能会跟着 Optimism 不同的 app 被广泛使用后会变低。
2.费用:总 batch 尺寸变大,在一个 batch 增加交易的费用会减少。这是 L2 扩容与 L1 扩容不同的地方:交易越多,交易费越便宜。费用已经从 2750 开始了gas 减少到 2100 gas,并会随着 Optimism 利用率的增加继续下降。
3.L1 Gas 价格: 交易Optimism 发生后几分钟就会提交给 L1,而 L1 gas 这段时间价格变化很大。如果 L1 gas 价格上涨,提交人需要支付比预期更多的 gas如果 L1 gas 如果价格下跌,支付将低于预期gas 费。在 gas 价格波动期间,可能会有 10% 的差距。
根据 batch 大小变化的费用 gas 费用
现在我们知道这些因素是什么,但一旦我们降低成本,预计使用将发生变化 (例如,更多的交易,更多的 calldata)。因此,我们做了一些假设,提出了一系列计划,然后模拟了 5000个随机日 (参考蒙地卡罗法,Monte Carlo method)。之后,我们得到了一个简单的优化问题:通过调整固定成本和成本比例系数,尽可能接近 10% 利润的目标。
结论是:将固定费用调整为 2100 gas,成本比例系数调为 1.24 倍。
想知道最新的数据吗?请看我们的交易费用 dashboard
Optimistic rollup 正在迅速成熟。在我们度过了 0 到 1 的阶段后,我们将开始 优化 - 最真实的优化是成本优化。下个月,我们将处于任何产品级 ORU 首个系统级别的 部署在网络上calldata 压缩,实现费用降低 30-40%。
在未来,我们还有其他计划来节省更多的 gas 费,下一个主要版本将在今年夏天推出:Bedrock。本文深入探讨了 calldata 压缩细节:特别是如何评估各种压缩算法,以及如何使用它们来实现我们的亚美元收费。
Calldata 概览
Optimism 以以太坊为数据可用性层。这意味着每一笔都在 Optimism 执行的交易将存储在以太坊上 (但不在以上)。目前我们将 Optimism 的交易存储在 calldata 中。多笔 L2 交易成批打包成二进制 blob 中,该 blob (添加其他信息) 存储在交易数据字段中。如果我们想检索这些数据,我们需要查看交易主体本身 (存储在块中)。因为以太坊的块被保存了下来,Optimism 以太坊总能重构链条交易。
虽然在块中存储数据比在合同状态下存储数据便宜得多,但永久保留历史块确实会给节点运营商带来成本。因此,以太坊对 calldata 收费。每个 0 字节 calldata 消耗 4 gas, 每个非 0 字节calldata 消耗 16 gas (0 字节类提交给 Optimism 字节约40% )。
虽然将 calldata 发布至 L1 是 rollup 节省 gas 费用用的重要组成部分,但也是二层用户交易的主要费用。换句话说,我们可以减少 calldata 发布的数据越多,rollup 交易费越便宜。压缩:减少数据大小的艺术!以下是对实际运行数据压缩的深入分析:
压缩的概述和结果
我们研究了 Optimism 向以太坊提交 2.2 万个 batch (近300万笔单独交易),用不同的配置压缩,以确定如何最好地压缩,并对可能的情况进行实验。
我们还研究了各种压缩算法,计算了压缩率 (压缩后的数据大小占未压缩大小的百分比) 和预计节省的成本 (假设交易中 40% 的字节是 0 字节)。
字典 是一一是字典 (dictionary)。提前创建字典,以显示实际数据中常用的算法数据块。压缩算法使用字典来更好地压缩数据,特别是在一次压缩少量数据时。我们可以随机提取交易样本zlib 和 zstd 创建一个字典,可以压缩单笔交易和交易 batch 提高压缩率。
由于以太坊交易中的大多数字段都是随机的 (地址和函数选择器是哈希值,签名应该是随机的),单个以太坊交易的压缩率并不高。因为以太坊上的 0 字节本身非常经济gas,压缩算法会迅速删除这些字节,因此节省的成本不会像压缩率那么高。因此,为了节省最多的成本,我们需要在尽可能多的数据上运行先进的算法。
以下是压缩交易本身的结果:
正如你所看到的,压缩单笔交易本身只会让我们省钱10-15%。请注意,由于上述讨论中更便宜的 0 字节,交易规模的减少幅度大于此,但节省幅度较小。
带字典zstandard 算由于每笔交易与存储在字典中的交易之间都有共同点,因此该方法显然具有更好的性能。然而,当大量数据一次压缩时,zstd 性能仍然更好。
另一个极端是突然压缩所有单笔交易。这在实践中是不可能的,但可以作为最大压缩率的例子。
因此,在这个例子中,我们可以通过压缩节省 10%-50% 费用。但在实践中,我们能做些什么呢?
当查看交易的压缩 batch 时 (数百笔交易)的压缩率明显高于单笔交易,但略低于一次性压缩所有交易。这是因为用户倾向于与某些合同互动。此外,一些字段 (如链 )ID 和 gas 价格) 在交易中趋于相似。压缩算法依赖于这些相似性来完成它们的工作。
在不同的压缩算法中,我们发现 zlib、zstd 和 brotli 是压缩率最高的算法。我们排除了 Brotli 是因为它比 压缩率相似zstd 或 zlib 要慢得多。一般来说,算法的压缩率越高 (或设置算法的压缩率越高),算法运行得越慢。在一般基准测试中,在比较了一系列压缩速度/压缩率后,zstd 通常比其他压缩算法具有更好的性能。还需要注意的是,以太坊交易中的数据具有不同的特征。
Zlib 和 zstd 非常接近,我们将在短时间内推出 zlib 压缩 (无字典),因为它在不同的编程语言中有很好的效果、速度和可用性。从长远来看,我们希望 zstd 有助于实现尽可能高的压缩率和尽可能低的用户成本。
总结
综上所述,如果我们继续遵循这样的历史趋势,我们预计将通过引入上述压缩方法来降低成本 30%-40%。
使用 Zlib 压缩算法的 batch 很快就会在 Optimism 上应用。
3/17 推出 Kovan 测试网3/24 上线主网基于 Zstd 算法压缩 (带字典) 在 Optimism 未来升级路线规划:Bedrock,将于今年晚些时候发布。
除了通过压缩降低用户成本外,Optimism 同时正在研究如何通过 EIP-4844 提高以太坊作为数据可用性层的能力,并采用类似的方法进一步降低成本。
附录:算法总结
ZLE 是零字节长度编码 (zero-byte run length encoding) 缩写。它是一种简单的压缩算法,用应该存在的零代替一串零。
原文链接:
https://medium.com/ethereum-optimism/fancy-numbers-how-we-lowered-fees-for-optimism-users-a3bb80cbc65f
https://medium.com/ethereum-optimism/the-road-to-sub-dollar-transactions-part-2-compression-edition-6bb2890e3e92
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。