作者: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来说更复杂。
1.L2交易提交 :这一步Optimistic Rollup是相似的。
2.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证明的问题。
Morph 的 EIP-4844 zkEVM 集成解决方案请参见:https://medium.com/@morphlayer2/morphs-solution-to-eip-4844-zkevm-integration-7f469910478f
四、有哪些L2适配了EIP4844? Optimistic rollup中,Optimism和Arbitrum已表示致力于采用 EIP-4844,并与其社区密切合作来测试和部署必要的更新 。Arbitrum属于Stage 1的Rollup, 安全性相对较好。涉及到需要将欺诈证明适配EIP4844的问题。Optimistic rollup属于是Stage 0的Rollup,目前还没有欺诈证明,适配起来更容易,但安全性不够高。
ZK rollup中,使用STRAK和SNARK的rollup适配难度是不同的。用STARK的rollup适配EIP4844更简单,Starknet是其中的代表。Starknet发表了文章表示坎昆升级后会实施对EIP4844的适配(文章链接)。用SNARK的rollup,zkSync也在探索如何利用携带 blob 的交易来进一步降低成本并提高性能。Scroll则是在去年发表了一篇文章介绍了适配EIP4844的思路(文章链接)
最令人映像深刻的是Morph, 他是一个Optimistic ZK Rollup,率先发布了zkEVM适配EIP4844的方案 ,可以说是第一个完成EIP4844的zkEVM Rollup。
Optimistic ZK Rollup结合了两类Rollup的优势。它乐观地相信Sequencer提交的执行结果,允许对结果产生怀疑的人发起挑战。只有在发起挑战时,证明者才会生成ZKP来证明执行结果的正确性。它拥有Optimistic rollup的效率,又拥有ZK rollup的ZK证明的可靠性。