主页EIPs

坎昆升级

以太坊扩容的关键一步

坎昆(Dencun)升级是即将到来的以太坊主网的一个大升级,它包含了若干个新的功能以及最为重要的 Proto-Danksharding(通过 EIP-4844),该功能将会降低 L2 的存储成本,因而可以降低 L2 的交易 Gas Fee 以及接受更高复杂度的应用。

坎昆升级

坎昆升级纪念 NFT

免费且不可转移,每个地址仅可铸造一枚铸造,共同见证以太坊的历史时刻

etherscanetherscan
nft

前言

什么是坎昆升级?

为什么叫坎昆升级?其实坎昆升级的英文名称为 Dencun,是由两个名字合并组成:Deneb 和 Cancun,其中 Deneb 是以太坊共识层(Consensus Layer)的升级而 Cancun 则是以太坊执行层(Execution Layer)升级。

在以太坊转向 PoS 之后,原有的以太坊拆分层了两层,即共识层和执行层。那么这两个层分别有什么区别呢?

consensus layer

共识层

负责网络的共识机制,即针对哪些交易有效以及交易顺序达成一致,将其加入到区块链中。经过升级之后,以太坊从工作量证明(PoW)转变成了权益证明(PoS)。

execution layer

执行层

处理所有关于状态变化的计算,比如检查交易是否合法、智能合约执行、账户余额更新等,并且维护以太坊的状态树。执行层同时也包括 Calldata 等永久存储空间。

相关 EIP 升级

EIP 4844
分片 Blob 交易
该协议引入了一种全新的交易类型 BlobTx,该交易类型中挂载一个可以存储大量信息的 blob,blob 存储在共识层并在一定期限内删除。
Learn more
EIP 1153
瞬态存储操作码
该提案引入了瞬态存储操作码,用以解决区块内部通讯。瞬态存储与目前存储的操作相同,但瞬态存储的数据在每次交易后都会被丢弃,且不需要访问服务器磁盘,因此 Gas fee 更低。
Learn more
EIP 4788
在以太坊虚拟机中公开信标链区块根
信标链的区块根是一种加密累加器(Accumulators),可证明任意的共识状态。将区块根在 EVM 内部公开可以实现对共识层最小化信任的访问。这也有助于改善一些场景的信任假设(Trust assumption),如质押池、再质押的结构、智能合约桥、MEV 问题缓解等。
Learn more
EIP 5656
内存复制指令
该提案引入一个能够用于复制内存区域的、高效的以太坊虚拟机指令:MCOPY。使用该指令进行内存复制仅需 27 Gas(复制 256 bytes 信息),而现有方案需要 96 gas。
Learn more
EIP 6780
仅可在相同的交易中执行 SELFDESTRUCT 操作码
SELFDESTRUCT 操作码用于删除一个智能合约的代码和存储并且回收里面的余额。新的变更之后,削减了 SELFDESTRUCT 的能力,提升了安全性。
Learn more
EIP 7044
永久有效自愿退出签名
切换为 PoS 之后,质押者需要将 32 ETH 质押到 Validator 中,想要解除质押的时候可以使用自愿退出签名解除。之前签名仅对之前以太坊版本生效,该升级将让签名永久有效,提升用户体验。
Learn more
EIP 7045
增加最大认证打包明文密文(明文槽)
该提案增加以太坊区块证明槽中的包含范围,以降低区块确认时间和减少以太坊用户延迟。该提案对目前共识层的 LMD-GHOST 安全分析及确认规则至关重要。
Learn more
EIP 7514
添加 Max Epoch Churn 限制
该提案主要旨在缓解由于质押的 ETH 总量增长带来的负外部性问题。通过限制 Max Epoch Churn,将验证者数量增长曲线从指数增长更新为线性增长。
Learn more
EIP 7516
操作码 BLOBBASEFEE
该操作码与 EIP 3198 关联的 BASEFEE 操作码相同,只是 BLOBBASEFEE 主要针对 EIP 4844 协议中返回的 Blob 基本费用。
Learn more

升级关键 EIP-4844 详解

EIP-4844 升级提供了一种全新的交易类型 BlobTx 和新的存储空间 Blob。这种存储空间位于以太坊共识层(Consensus Layer)因此无法被执行层的 EVM 获取,因此,存储于该位置的数据将无法被智能合约调用。

区块链作为去中心化的账本,存储一直是一个比较重要的话题。如果每个区块存储容量过小,将会导致交易容量、数量减少,竞争带来的压力会导致 Gas fee 上涨而不可用。如果每个区块存储容量过大,则将会增加节点的压力,需要每个节点提升硬件的质量,从而导致更少的节点运行带来去中心化网络的安全性。

该升级新增了 blob 存储,每个 blob 将有不超过 128KB 的空间来存储额外信息,每一个以太坊区块将支持最多挂载 6 个 blob,即最大不超过 768KB,这将意味着每个以太坊区块将会最大扩容 ~0.7MB。按照 12s 左右一个以太坊区块来计算,每个区块默认挂载 3 个 blob,这样每天将会有 21600 个 blob,节点将会新增 ~2.6 G 的数据。因此,blob 根据其应用场景设计了 ~18 天(4096 epochs)的生命周期,节点将会在 18 天后删掉 blob。因此,存储在 blob 的数据 Gas fee 非常低。

下面简单对比下几类存储的差别:

NameStorageCalldateMemoryBlod
说明以太坊存储,包括最核心的状态 World State不可变的存储位置EVM 执行时的临时内存新增的外挂存储
位置执行层执行层执行层共识层
Gas fee$$$$$$$$0$
生命周期永久永久方法执行完成立即销毁~18 天后删除

无法被 EVM 的智能合约读取和使用,而且经过一段时间还会被删除,Blob 有什么用呢?目前受益最大的是 Layer 2。

Layer 2 工作原理解读

这里以 Optimistic Rollup 为例,发生在 Layer2 上面的交易,将会被 Layer2 的 Sequencer 抓取并且合并压缩(Rollup)成更为紧凑的数据,通常包括状态根(State root)、压缩的交易数据、证明信息等等,将其上传到以太坊主网上。这些信息并不会被以太坊或者智能合约解析和读取,主要用于确保 L2 的数据安全性,证明其交易真实可靠,同时在一些紧急关头可以恢复一些状态。

例如在 Optimistic Rollup 中,提取资金等操作需要等待 7 天的时间,这段时间就是让验证者根据相关数据进行验证,发现 Sequencer 是否存在作恶的情况。经过七天挑战期之后,即可认为这个交易安全且经过确认。 目前这些信息在以太坊主网以 Calldata 的方式进行存储,这样可以实现最安全可靠的存储,但是需要支付比较多的 Gas fee。因为以太坊每个区块的容量有限,因此也限制了 L2 的扩容和发展。但是 blob 正好可以缓解这个问题。L2 可以将用于验证的相关数据剥离存储到 blob 中,因为它们并不需要永久存储,只需要在挑战期内可以访问即可,因此可以极大的降低 Gas fee。

下面是升级前后的流程图和对比:

img

未来展望

虽然 L2 的 Gas fee 已经相比以太坊主网降低了数倍,坎昆升级将 L2 继续降低 10 倍(估算),这将极大的促进 L2 上面的应用层的活动和创新:

DeFi 交易效率提升,交易手续费下降

全链游戏的性能、游戏体验、玩法更好

开发者可以开发更加复杂应用而无需在乎用户使用的手续费

大规模交易(例如 Visa)变得可实现

让我们期待和一起见证以太坊的未来!

future outlook dencun
聚集 EIP 贡献者, 扩展以太坊
资源
GitHub
支持社区