Optimistic Rollups 适配 EIP-4844 更简单,ZK Rollups 适配更复杂。
撰文:Maggie@Foresight Ventures
TL;DR:
- 坎昆升级将于 2024 年 3 月 13 日推出,EIP4844 即将上线。Danksharding 是以太坊路线图的核心,这次升级是实现 Danksharding 的第一步。
- Ethereum L2 适配 EIP4844 后,交易手续费大幅下降,L2 的 TPS 成倍提高。用户会感觉到交易速度更快、成本更低、体验更流畅、反应更灵敏。这些 L2 上会有更复杂更大型的 Dapp 应用。
- Optimistic rollups 适配 EIP4844 更简单,ZK rollups 适配更复杂。以太坊没有预编译合约支持 BLS12-381 椭圆曲线,导致部分 ZKP 验证难度大,阻碍了 ZK rollups 适配 EIP4844 的进度。
- 椭圆曲线的问题可以通过两种方式解决,1. 等待以太坊对 BLS12-381 椭圆曲线进行预编译;2.用另一种证明方式来达到同等目的,使用以太坊预编译支持的 BN254.
- 目前,Arbitrum、Optimistic、Starknet、zkSync、Scroll、Polygon zkEVM 以及新 L2 Morph 都在适配 EIP4844。其中,Arbitrum、Optimistic 和 Starknet 表示坎昆升级后会实施对 EIP4844 的适配。Morph 则率先发布了创新的 zkSNARK zkEVM 适配方案,这将是第一个适配 EIP4844 的 zkSNARK zkEVM。
一、背景
2020 年,以太坊发布的「以 Rollup 为中心的以太坊路线图」,以及第二年 Vitalik 发表的「Endgame」中描述的以太坊的最终图景,确定了以太坊的大方向:优化以太坊的基础层建设,为 Rollup 服务。
以太坊设计了 Danksharding 的分片技术以提高以太坊作为数据可用性层的可用性。它将显著降低 L2 的交易手续费,提高 Rollup 的 TPS,实现以太坊的大幅扩容。
直至今年,以太坊坎昆 - 德内布(Dencun)升级终于在 2024 年 3 月 13 日推出,EIP4844 即将上线,这次硬分叉可以说是以太坊实现 Danksharding 的第一步,是以太坊路线图核心中的核心。
关于什么是 DA 层,Danksharding 的技术原理,EIP4844 的内容,请参考去年我写的一篇技术文章:DA(数据可用性)Summer 将至?https://foresightnews.pro/article/detail/33575
二、坎昆升级如何利好 L2?
EIP4844 引入了一种新的交易类型,称为 blob-carrying 交易。每个 blob-carrying 交易都可以「携带」一个 Blob 列表 。Blob 是一个数据包,大约 125 KB。Blob 存储的时间很短,仅 4096 个 epoch,略多于 18 天。
- L2 交易手续费大幅下降。由于 Blob 不需要永久存储,Blob 相比于区块空间更大更便宜。Blob 可以在相同的 gas 消耗下存储比 Calldata 多 10 倍的数据。适配了 EIP4844 的 Rollup 可以将交易数据存储在 Blob 中,将交易费用降低一个数量级。
- L2 的 TPS 成倍提高。目前每个区块目标是 3 个 Blob,最多允许 6 个 Blob。区块只有 90KB,而每个 Blob 大约 125KB。引入 Blob 相当于为区块额外扩展了几倍的空间可以用来存 Rollup 的数据,因此 Rollup 的 TPS 也能成倍增加。且 Toni 和 Vitalic 写的「On Increasing the Block Gas Limit」中表示,会通过增加区块 Gas limit 和非零 Calldata bytes 的价格,实现更小、变量更少的区块大小,从而未来可以增加更多 Blob。Blob 更多则存储空间会更大。
对最终用户而言,Ethereum L2 适配 EIP4844 后,交易速度更快、成本更低、体验更流畅、反应更灵敏。这些 L2 上会有更复杂更大型的 Dapp 应用。
三、L2 如何适配 EIP4844?
L2 如何适配 EIP4844 呢?我们需要分 Optimistic Rollup 和 ZK Rollup 来分别讨论。
Optimistic Rollups 适配 EIP4844
Optimistic rollup 是通过欺诈证明来保证 rollup 执行的正确性的。即节点首先选择相信状态的转换是正确的,除非有人在规定的时间段内发起欺诈证明,证明之前提交的是状态转换是不合法的,则该状态转换会被撤销。
Optimistic Rollup 适配 EIP4844 相对 ZK rollup 来说更简单。把 L2 的交易都通过 Blob-carrying 交易提交到 L1 即可完成适配。此外,就是要调整欺诈证明使之适配 EIP4844,这部分就可以慢慢做了。毕竟,很多 optimistic rollup 至今也没上线欺诈证明。上线了欺诈证明的,发现两年多都没有一个欺诈证明提交。
L2 交易提交:Rollup 提交的时候,使用 Blob-carrying 交易,将 Rollup 数据存储在 Blob 中。Blob-carrying 交易的 payload 是rlp([tx_payload_body, blobs, commitments, proofs])
,其中
- tx_payload_body - 是标准 EIP-2718 blob 交易的 TransactionPayloadBody。
- blobs - Blob 列表。一个交易最多包含两个 blob。
- commitments - Blob 的 KZG 承诺列表。
- proofs - Blob 和对应 KZG 承诺的证明列表。这个证明是会被 ETH 节点所验证的。
调整欺诈证明:
- 首先,证明者和挑战者需要多轮交互等方式找到争议点。
- 然后将争议点提交到 L1 上做判定。适配 EIP4844 则有可能还需要证明这个争议点的数据存储在某个 Blob 上。
- 由于 Blob 数据大约 18 天后会被删除,因此挑战期必须在被删除之前,这一点现在的 optimistic rollups 都是满足的。一般挑战期不超过 7 天。
ZK Rollups 适配 EIP4844
ZK rollup 是通过 ZKP 来证明 L2 状态转换是正确的。ZK rollup 适配 EIP4844 相对 optimistic rollup 来说更复杂。
- L2 交易提交:这一步 Optimistic Rollup 是相似的。
- ZK 证明提交:与适配前的 ZK Rollup 相比,除了做状态转换的 ZKP 证明以外,还需要多证明一个过程。即证明 blob commitment 和 transaction batch 是对应的,从而保证状态转换证明的输入是正确的。
- 打个比方:状态转换的 ZK 电路能生成计算过程 a + a = b 的证明。当(a=1,b=2)和(a=2,b=4)时生成的 ZKP 都是合法的。因此我还需要提供一个证明,证明我当时提供的输入是(a=1,b=2)而不是(a=2,b=4)。
- 这一点在适配 EIP4844 之前是不需要做的,因为数据就直接存储在 Calldata 中可以直接读取,确保了输入不会被调包。用了 EIP4844 后,Blob 数据无法直接读取,只能通过一个新的电路来证明这一点。
- 用 STARK 的 ZK rollup( 如 Starknet) 更容易实现这种证明机制。而这对于用 SNARK 的 ZK rollup 是存在挑战的,原因是:EIP4844 的 blob commitment 使用的椭圆曲线是 BLS12-381,而 ETH 的预编译合约只支持了 BN254,由于曲线不同,导致我们难以直接在智能合约中验证 blob commitment 完成证明。
- 用 SNARK 的 zkEVM/zkVM 需要解决第 2 点中提到的由于曲线不匹配无法生成 ZK 证明的问题。
- 等待 Ethereum 支持 BLS12-381 的预编译合约。这会很漫长。
- 采取另一种证明方式来证明。要设计新的电路,必须用预编译合约所支持的 BN254 椭圆曲线。目前,我们看到 Morph 采用了这个方法。这也使得 Morph 成为第一个完成 EIP4844 适配的 zkEVM。
Morph 的 EIP-4844 zkEVM 集成解决方案请参见:https://medium.com/@morphlayer2/morphs-solution-to-eip-4844-zkevm-integration-7f469910478f
四、有哪些 L2 适配了 EIP4844?
Optimistic rollup 适配 EIP4844 相对容易。
- Arbitrum 将于 3 月 14 日启动 Arb OS20 升级,以实施坎昆升级的 EIP 更改 (文章链接)。Arbitrum 属于 Stage 1 的 Rollup,交易提交和欺诈证明都需要适配 EIP4844,其安全性相对较好。
- Optimism 于 3 月 14 日启动 Ecotone 升级完成适配 (文章链接)。Optimistic rollup 属于是 Stage 0 的 Rollup,目前还没有欺诈证明,适配起来更容易,但安全性不够高。完成适配后,Op 生态内所有的超级链网络也都将从 EIP-4844 中受益。
ZK rollup 中,使用 STRAK 和 SNARK 的 rollup 适配难度是不同的。
- 用 STARK 的 rollup 适配 EIP4844 更简单,Starknet 是其中的代表。
- Starknet 发表了文章表示坎昆升级后会实施对 EIP4844 的适配 (文章链接)。
- zkSync 已经通过 Boojum 升级让 zkSync 完成从 SNARK 向 STARK 证明过渡。这也是为 EIP4844 升级做准备。Boojun 是一个基于 STARK 的证明系统。(文章链接)
- 用 SNARK 的 rollup 适配起来相对复杂
- Polygon zkEVM 预计将于 5 月上线 Feijoa 升级,适配 EIP-4844。(文章链接)
- Scroll 则是在去年发表了一篇文章介绍了适配 EIP4844 的思路(文章链接)。
- 最令人映像深刻的是 Morph,他是一个 Optimistic ZK Rollup,率先发布了 zkSNARK zkEVM 适配 EIP4844 的方案,可以说是第一个完成 EIP4844 的 zkSNARK zkEVM 的 rollup(文章链接)。 Optimistic ZK Rollup 结合了两类 Rollup 的优势。它乐观地相信 Sequencer 提交的执行结果,允许对结果产生怀疑的人发起挑战。只有在发起挑战时,证明者才会生成 ZKP 来证明执行结果的正确性。它拥有 Optimistic rollup 的效率,又拥有 ZK rollup 的 ZK 证明的可靠性。