作者:Jason, ETHconomics Research Space
非常感谢 Colin@colinlyguo 参与本文的讨论和提供的意见,以及 Qi Zhou@qc_qizhou 对本文的反馈。
写在前面
在 EIP-4844 经济学系列中,我们将分四部分来讲述新增的blob-carrying transaction会给网络带来何种影响。在上一篇文章中,笔者深入 Blob 交易的费用机制,包括 Blob 交易的费用计算方式,Blob 交易的特质以及 Blob Base Fee 的更新算法等内容。在本篇文章中,笔者基于EIP-4844 Economics and Rollup Strategies的分析框架进一步挖掘 EIP-4844 新引入的 Blob 市场会如何影响其主要的需求方 Rollup 的数据可用策略。
EIP-4844 经济学系列:
- EIP-4844 经济学#1: 深入 EIP-4844 费用机制
- EIP-4844 经济学#2: 深入 Rollup 数据可用策略(本文)
- EIP-4844 经济学#3: 深入多维资源定价
- EIP-4844 经济学#4: 深入 Type 3 交易打包策略
Rollup 数据可用策略
EIP-4844 引入了 Blob 数据空间作为更佳的数据可用方案。似乎对于 Rollup 而言,只需要技术性地升级其密码学承诺算法以支持 Blob 即可。然而,除了技术底层的升级外,Rollup 更需要研究如何利用 Blob 来尽可能降低其可用性数据的成本。换而言之,Rollup 需要根据各自的成本曲线以及需求曲线制定其数据可用的策略。
模型假设分析
建模分析的有效性依赖于模型假设。模型假设肯定是无法完全贴近现实,需要做得到抓小放大,关键在于假设的合理性以及对分析的影响。因此,在进行模型推导前,我们先来分析一下本文依赖的一些关键假设。
假设 1:引入隐性的延迟成本
在建模过程中,除了数据可用方法消耗的手续费外,本文还引入了隐性的数据延迟成本。数据延迟成本可能对于大部分人而言不太直觉。举一个极端例子,比如一个 rollup 的 TPS 是每天 1 笔交易,等待这些交易塞满一个 Blob 才提交至 L1 似乎不是一个优秀的策略。
数据延迟成本的隐形来自于其主要关联于用户体验,某些去中心化应用的安全模型,以及某些去中心化应用的活性。
- L2 的优势在于其之上的交易能够得到 L1 的确认。虽然序列器能够快速返回 L2 交易处理结果,但是若 L2 交易未得到 L1 的确认,中心化的序列器实际上比 Polygon 等 L1 安全性更差。因此,L2 的目标用户理应关注L2 交易的可用性数据被提交至 L1事件以判断交易的状态,并依赖该状态进行后续操作。因此,数据延迟越大,用户需要等待时间越长,用户体验越差
- 以跨 L2 应用为例,此类应用最终的安全性都依赖于被提交至 L1 的 L2 可用性数据。因此,此类应用的一些关键功能需要等待相应的 L2 交易的可用性数据上传后才可以实现。
- 对于 zkrollup 而言,L2 交易的可用性数据以及有效性证明被提交至 L1时 L2 交易立即得到 L1 确认。然而,对于 optimistic rollup 而言,L2 交易的可用性数据被提交至 L1后仍需等待一段挑战期(如 7 天)。在该情况下,似乎 L2 交易的可用性数据的及时提交没那么重要。实际上并不然,因为有一些应用(如 Maker Bridge)会直接执行验证提交至 L1 的 L2 的可用性数据,无需等待挑战期。
假设 2:数据延迟成本与交易等待时长成正比
本文假设数据延迟成本与交易等待时长成正比(线性函数)。现实中,延迟成本应该更适合用非线形的函数进行刻画。例如,
- 指数函数(延迟成本随时间指数上升)
- 分段函数(超过某个阈值才引入延迟成本)
相对于上面更精细的刻画,线形函数具有以下优势:
- 导数是常数,方便建模推导
- 连续可导,建模过程中的导数运算
同时,线形函数整体上也刻画了交易等待时长越大,数据延迟成本越高的关键特征,满足建模的需求。不同的线性比例也能捕捉拟合非线形函数。
假设 3:智能合约处理可用性数据的 Gas 消耗为常数
本文在Blob 的可用策略和Calldata 和 Blob 间的可用策略中假设智能合约处理可用性数据的 Gas 消耗为常数,与交易批次中的交易量无关。
在实际场景中,处理可用性数据的 Gas 消耗可能是与交易量成线性关系的。例如,交易批次中全是 L2 → L1 的操作,那么智能合约可能需要逐个处理这些操作,因此处理可用性数据的 Gas 消耗也会呈线性关系的。
若对处理可用性数据的 Gas 消耗感兴趣,可以以 Scroll 为例进行洞察:https://github.com/scroll-tech/scroll/pull/659。值得注意的是,EIP-4844 之后,计算交易 witness 的 keccak256 消耗的 gas 可以省去。
根据统计数据可以发现,各个 layer 2处理可用性数据的方式实际上不太一样。下面挑选典型例子进行说明:
1. Optimism 中处理可用性数据消耗的 Gas 基本与交易批次的大小无关,十分符合本文的假设。
cr:@donnoh_eth
2. Arbitrum 中处理可用性数据消耗的 Gas 基本与交易批次的大小呈正相关,似乎不太符合本文的假设。固定的部分达到 175000 Gas,可变部分最大达到 90000 Gas,比例约为 51.4%。某种程度而言,该假设仍是合理的。
cr:@donnoh_eth
假设 4:智能合约处理可用性数据的 Gas 可忽略
本文在Blob 均衡价格,Blob 拼单策略以及Blob 成本分摊的推导中假设智能合约处理可用性数据的 Gas 消耗可忽略,即远低于上传可用性数据的成本。
在 EIP-4844 之前,根据统计数据,该假设很明显是成立的:
cr:@donnoh_eth
cr:@donnoh_eth
然而,EIP-4844 上线前期,Blob 的费用似乎可以忽略不计,参见 Optimism 的一个 batch 交易。这个时期 Blob 的供给远高于需求,Data Gas Price 为 1 wei。
cr:beaconcha.in
虽然不符合当前情况,但是该假设在探讨上述三个主题还是有意义的
- Blob 均衡价格探讨的是 Blob 在未来达到供给需求平衡时的场景
- Blob 拼单策略以及Blob 成本分摊探讨的是 Blob 成本过高而需要拼单的场景
💡 当前(2024.3.31)的 Blob 已经锚定了目标,更接近建模假设:
cr: @0xRob
假设 5:Gas Price 和 Data Gas Price 为静态均衡值
本文在推导的过程中假设 Gas Price 以及 Data Gas Price 为静态均衡值。实际上,均衡值会受供需范式转移的影响,也是动态的。不过,供需范式转移(非随机波动)发生的频率较低。在这中间,均衡值可以考虑为静态值,不会影响在这中间实施的策略。不过,供需范式转移转移后,要更新一下新的状态均衡值即可。
Blob 的可用策略
在 EIP-4844 中,Blob 采用的是集装箱的收费模型。因此,对于 Rollup 而言,需要权衡:
当 Blob 被完全利用时,上传可用性数据均摊成本是最低的
当 Blob 被完全利用时,数据延迟成本是最高的(等待最长时间才能提交至一层网络)
Blob 数据可用方案成本
Calldata 和 Blob 间的可用策略
Blob 作为一种数据可用方案,并非完全优于 Calldata:
- 利用 Calldata 上传可用性数据的均摊成本是不变的,无需如 Blob 般等待数据达到某种量级以降低成本,因此可以做到快速发布,因而有着更低的数据延迟成本。
- 可以预想,有着较少交易量的 Rollup 会更倾向于使用 Calldata。这些 Rollup 需要付出很大的数据延迟成本才能把 Blob 填充完。
Calldata 数据可用方案成本
然而,Vitalik 基于技术的角度更倾向于限制 Calldata 的使用,让 Rollup 都使用 Blob:
- 对于 Rollup 而言,维护两套机制成本太高。
- Calldata 本身不是为数据可用设计的。
关于提高 Calldata 作为数据可用性方案成本的 EIP-7623(Draft)也被提出。基本思路很简单:
- 若交易 Gas 消耗中 Calldata 的占比 >~ 76%,Calldata 的成本为 68 gas/byte
- 若交易 Gas 消耗中 Calldata 的占比 < 76%,Calldata 的成本为 16 gas/byte
该 EIP 隐含一个假设,若 Calldata 的占比 >~ 76%,那么该交易就被认定其用于数据可用。该值是通过历史统计权衡出来的:
- 观察数据可用交易的 Calldata 的占比,尽可能命中
- 观察非数据可用交易的 Calldata 的占比,尽可能不要误伤
Blob 均衡价格
Blob 拼单策略
Blob 的联合发布似乎可以解决 Blob 数据延迟成本过高的问题,类比于现实世界的集装箱也不限于只装一家的货物。
本章节评估在下列三种场景下,拼单策略导致 Blob 均衡价格的变化,并分析拼单策略是否相对单独发布为更优策略。
- Rollup i 和 Rollup j 都采用 Blob 作为数据可用方案
- Rollup i 采用 Blob 作为数据可用方案,而 Rolup j 采用 Calldata 作为数据可用方案
- Rollup i 和 Rollup j 都采用 Calldata 作为数据可用方案
场景 1:Rollup i 和 Rollup j 都采用 Blob 作为数据可用方案
场景 1 中 Blob 的均衡价格会降低,最多降低一半
场景 1 中拼单策略相对单独发布为更优策略
场景 2:Rollup i 采用 Blob 作为数据可用方案,而 Rolup j 采用 Calldata 作为数据可用方案
场景 2 中 Blob 的均衡价格会上升,最多为原来的 2 倍
场景 2 中拼单策略相对单独发布不一定是更优策略
场景 3:Rollup i 和 Rollup j 都采用 Calldata 作为数据可用方案
场景 3 中拼单策略相对单独发布不一定是更优策略
Blob 成本分摊
性质 1:必然存在最佳成本均摊方案
性质 2:大型 Rollup 需要支付低于其交易比例的 Blob 费用
性质 3:大型 Rollup 需要支付超过一半的 Blob 费用
性质 4:小型 Rollup 单笔交易成本优化效果更佳
后记
EIP-4844 下 Rollup 数据可用策略让我们辩证地看待新旧技术,每种不同的技术都有其适用的范围,我们需要划清各个技术的效用边界,从而让我们更有效率地利用技术。延迟成本基本主导了本文的推导,而这块在平时的讨论中都隐藏在水下。
后续仍有很多开放的研究空间,如限制 Calldata 的 EIP 敲定后,Rollup 数据可用策略会发生什么变化。欢迎加入 ETHconomics Research Space 一起讨论研究。
相关资料
EIP 4844: What does it mean for L2 users?
https://medium.com/offchainlabs/eip-4844-what-does-it-mean-for-l2-users-5e86ebc4c028
EIP-4844 Economics and Rollup Strategies
https://arxiv.org/abs/2310.01155
EIP-4844 经济学#1: 深入 EIP-4844 费用机制