以太坊 Dencun 升级,也称为坎昆-德内布,是以太坊网络上的一次重大硬分叉,旨在解决以太坊面临的一些关键挑战,尤其是在可扩展性、效率和安全性方面。它也被称为坎昆-德内布升级。[21]
Dencun(Cancun-Deneb) 升级是 Ethereum 的一项重大硬分叉升级,旨在通过引入一个名为数据 blob 的专用数据存储空间,来降低辅助 layer-2 网络上的交易成本。此次升级是以太坊发展的一个里程碑,将通过一系列 Ethereum 改进提案 (EIP) 来提高 Ethereum 区块链 的可扩展性、安全性及性能。[25]
Dencun 标志着 Ethereum 在其路线图中 Surge 阶段的开始。在此阶段,以太坊的目标是在保持去中心化的同时实现大规模采用。像 rollups 这样的 layer-two 解决方案将在不牺牲安全性的前提下,在实现可扩展性方面发挥关键作用。
“Dencun”这个名称是同时发生在 Ethereum 区块链 两端的两个升级的混合体:
Dencun升级计划于2024年3月13日进行。[4]
通过坎昆-Deneb升级,明确关注通过创建“数据blobs”来提高以太坊的可扩展性:这是一种新型交易,旨在扩展Layer 2 (L2) rollups的数据可用性。[19][20]
| Stage | Name | Goal |
|---|---|---|
| I | The Merge | Move to proof-of-stake (PoS) consensus |
| II | The Surge | Rollup-centric scaling to 100,000+ transactions per second |
| III | The Scourge | Avoid centralization and other protocol risks from maximal extractable value (MEV) |
| IV | The Verge | Verifying blocks to become “super easy” |
| V | The Purge | Simplify the protocol and reduce the costs of running network nodes |
| VI | The Splurge | “Fix everything else” |
| 阶段 | 名称 | 目标 |
|---|---|---|
| I | 合并 | 转向权益证明(PoS)共识 |
| II | 激增 | 以Rollup为中心的扩展,达到每秒100,000+笔交易 |
| III | 清除 | 避免最大可提取价值(MEV)带来的中心化和其他协议风险 |
| IV | 边缘 | 验证区块变得“超级容易” |
| V | 清除 | 简化协议并降低运行网络节点的成本 |
| VI | 挥霍 | “修复所有其他问题” |
以太坊网络分为两个主要层:执行层和共识层,Dencun升级将包括对以太坊网络的执行层(Cancun)和共识层(Deneb)的一系列改进。
Dencun升级是以太坊持续发展的一部分,建立在上海升级等先前升级的成功之上。[22]
以太坊的执行层是合并前的以太坊主网。它也被称为Eth1,负责处理和执行链上的智能合约和交易。执行层是OP Stack的主要组成部分,在OP Stack中它被称为EVM(以太坊虚拟机)。以下是一些执行层客户端的例子:
执行层硬分叉以之前举办过Devcon的城市命名:柏林 -> 伦敦 -> 上海 -> 坎昆 -> 布拉格 -> 大阪 -> 波哥大。
EIP-5656和EIP-6780是坎昆特定的(执行层)升级。[1]
共识层负责在所有节点之间就网络状态达成一致。它确保所有交易和智能合约都通过权益证明(PoS)进行验证和认可。以太坊的共识层(Eth2)是以太坊区块链的一系列升级。升级的目标是提高区块链的速度和容量,降低交易成本,并提高安全性。它确保每个人都对发生的交易、发生的时间以及发生的顺序达成一致。共识层还为网络提供许多关键服务,包括计时、生成随机性、质押操作、治理机制。[1]
2022年9月,以太坊通过从工作量证明(PoW)过渡到权益证明(PoS)成功改变了其共识机制。这种过渡被称为合并。[3]
每个共识层升级都以一颗星星的名字命名,名称按首字母的字母顺序选择:Altair -> Bellatrix -> Capella -> Deneb -> Electra -> (F)未知。[1]
EIP-1153 引入了瞬时存储操作码,旨在提高效率并降低 智能合约 执行期间与存储操作相关的成本。 EIP-1153 在优化 以太坊 区块链 上的交易执行方面取得了重大进展。 EIP-1153 解决了 gas 效率低下的问题,从而提高了智能合约的性能。 [9][6][10][18]
EIP-4788 提议在以太坊虚拟机 (EVM) 中公开信标链区块根。信标链区块根是一种用于证明任意共识状态的累加器。通过在以太坊虚拟机中公开信标链区块根,可以以最小的信任访问以太坊共识层。此改进协议还有助于开发诸如质押池和智能合约桥等用例,从而增强其信任假设。
EIP-4788 消除了在获取有关以太坊共识状态的信息时对受信任预言机解决方案的需求。流动性质押池(例如 Lido 和 Rocket Pool)以及 EigenLayer 等重新质押应用程序将从中受益。[5][6][7][17]
EIP-4844,也称为 Proto-Danksharding,是一项旨在扩展以太坊 L2 结构的最新提案,允许 rollup 利用嵌入式数据的新费用市场。该改进提案被提出作为在以太坊的 layer 1 扩展策略 分片 实施期间,通过 rollup 扩展以太坊的临时解决方案。
EIP-4844 的更改将与即将到来的分片解决方案兼容,从而在准备就绪时实现无缝分片实施。[8][6][19]
EIP-5656 是一项前瞻性的新操作码实现,有望提高 EVM 中数据移动的效率。具体来说,EIP-5656 引入了一种名为 MCOPY 的新 EVM 指令。
MCOPY 旨在优化 EVM 内的内存复制性能,提供更有效的数据结构构建方法。它通过接收两个内存指针作为输入,并将数据从源指针复制到目标指针。要复制的数据大小由第三个输入参数指定。
它比 EVM 中当前的内存复制方法更有效,后者涉及使用循环一次复制一个字节的数据。 MCOPY 能够批量复制数据,速度更快。它还具有比当前内存复制方法更简洁的优点。 MCOPY 使编写和阅读 智能合约 更容易。[1][15]
EIP-6780 旨在削弱 SELFDESTRUCT 操作码的功能,同时尽量减少对当前使用它的智能合约的干扰。该提案修改了 SELFDESTRUCT 操作码的功能,为未来以太坊应用中使用的 Verkle Tree 架构做准备。
目前,以太坊应用程序使用 Merkle Tree 架构,SELFDESTRUCT 操作码可用于对账户状态进行重大更改,例如删除代码和存储。但是,当未来的以太坊应用程序中使用 Verkle Tree 架构时,修改或删除账户将变得不容易,因为 Verkle Tree 架构将每个账户存储在与根账户不连接的不同账户密钥中。
因此,EIP-6780 提出了对 SELFDESTRUCT 操作码功能的修改。根据 EIP-6780,修改后的 SELFDESTRUCT 操作码在使用时将不再具有更改或删除账户的能力,仅用于将 ETH 转移给调用者,除非在智能合约创建的同一交易中调用 SELFDESTRUCT。[1][14]
EIP-7044 解决了现有 Ethereum 网络中与签名自愿退出的有效期相关的重大限制。目前,这些退出仅在接下来的两次网络升级中有效,这带来了复杂的挑战,尤其是在 staking 运营商与资金所有者不同的情况下。
该提案旨在推动 Capella 区块链 上签名自愿退出的“永久有效性”,确保它们无限期有效,不受任何未来升级的影响。
该提案的主要目标是简化 staking 操作的设计并增强用户体验。这简化了操作,确保了共识层兼容性,并要求将预签名退出过渡到 Capella 分叉域。该提案简化了质押。[11][16]
EIP-7045 通过延长证明包含的最大槽位,对 以太坊 网络引入了一项关键变更。该提案旨在增强以太坊 共识机制 的安全性和效率。目前,证明的包含窗口有限,但 EIP-7045 扩大了该窗口,使证明在下一个 epoch 结束前保持有效。
这种转变根植于对 LMD-GHOST 安全证明的不断演变的理解,以及对新的确认规则的需求。通过允许证明在更长的时间内保持有效,以太坊可以提高其安全性,同时提高其性能,尤其是在更及时地确认区块方面。[13][16]
EIP-7514 旨在限制以太坊信标链中的 epoch 变动率,以控制验证者增长率,将其从指数增长转变为线性增长。此举是为了应对以太坊客户端管理大型验证者集合的可扩展性问题,以及由于 流动性质押 平台(如 Lido)的主导地位而可能产生的中心化风险,以及对个人质押者的经济负担。
EIP-7514 旨在引入一个短期解决方案,限制验证者变动率,以便让以太坊的开发者和利益相关者有更多时间来制定长期策略。[12][18]
EIP-7516 在 以太坊 中引入了 BLOBBASEFEE 操作码,它允许 智能合约 直接访问链上数据 blobs 的当前基础费用。这有助于 rollup 合约更有效地管理和预测其数据 blob 成本。
BLOBBASEFEE 指令返回当前执行区块的 blob 基础费用值。它与 EIP-3198 中定义的 BASEFEE 操作码相同,只是它根据 EIP-4844 返回 blob 基础费用。[23][24]