# Dencun Upgrade

> Dencun升级，又称坎昆-德内布，是以太坊的一次重大硬分叉，旨在通过一系列措施提高可扩展性、效率和安全性……

- Canonical URL: https://iq.wiki/zh/wiki/dencun-upgrade
- Categories: Projects & Protocols
- Tags: Layer 1, DeFi
- Created: 2024-02-21T09:40:48.866Z
- Last updated: 2024-04-13T03:13:53.851Z
- Source: IQ.wiki — the world's largest blockchain and crypto encyclopedia (https://iq.wiki)

---

以太坊 **Dencun 升级**，又称坎昆-德内布，是以太坊网络上的一次重大硬分叉，旨在解决以太坊面临的一些关键挑战，尤其是在可扩展性、效率和安全性方面。它也被称为坎昆-德内布升级。[\[21\]](#cite-id-rsvmtolzkk)

## 概述

Dencun(坎昆-德内布)升级是以太坊的一个重要硬分叉升级，旨在通过引入一个名为数据[blob](https://iq.wiki/wiki/ethereum-blobs)的专用数据存储空间，来降低辅助[二层](https://iq.wiki/wiki/layer-2)网络上的交易成本。此次升级是以太坊发展的一个里程碑，将通过一系列[以太坊改进提案（EIP）](https://iq.wiki/wiki/ethereum-improvement-proposal-eip)来提高[以太坊](https://iq.wiki/wiki/ethereum) [区块链](https://iq.wiki/wiki/blockchain)的可扩展性、安全性及性能。[\[25\]](#cite-id-d9lt84uxpah)

* [EIP-1153](https://iq.wiki/wiki/eip-1153-transient-storage-opcodes): 瞬态存储操作码
* [EIP-4788](https://iq.wiki/wiki/eip-4788-beacon-block-root-in-the-evm): EVM中的信标区块根
* [EIP-4844](https://iq.wiki/wiki/eip-4844): 分片[Blob](https://iq.wiki/wiki/ethereum-blobs)交易
* [EIP-5656](https://iq.wiki/wiki/eip-5656): MCOPY - 内存复制指令
* [EIP-6780](https://iq.wiki/wiki/eip-6780): SELFDESTRUCT仅在同一交易中
* [EIP-7044](https://iq.wiki/wiki/eip-7044): 永久有效的签名自愿退出
* [EIP-7045](https://iq.wiki/wiki/eip-7045): 增加最大证明包含槽位
* [EIP-7514](https://iq.wiki/wiki/eip-7514): 添加最大Epoch流失限制
* [EIP-7516](https://iq.wiki/wiki/eip-7516): BLOBBASEFEE指令

Dencun标志着[以太坊](https://iq.wiki/wiki/ethereum)在其路线图中进入激增阶段的开始。在此阶段，以太坊的目标是在保持去中心化的同时实现大规模采用。像[rollup](https://iq.wiki/wiki/rollup)这样的[二层](https://iq.wiki/wiki/layer-2)解决方案将在不牺牲安全性的前提下，在实现可扩展性方面发挥关键作用。

Dencun这个名字是将[以太坊](https://iq.wiki/wiki/ethereum) [区块链](https://iq.wiki/wiki/blockchain)两端同时发生的两个升级混合而成：

* **坎昆**：此升级侧重于执行层，所有协议规则都位于该层。
* **德内布**：共识层，用于验证区块。

#

## Dencun升级的主要目标

* **提高交易吞吐量：** Dencun旨在解决以太坊当前的可扩展性限制，这些限制导致了高昂的gas费用和网络拥塞。它旨在增加网络可以处理的计算总数，使其在速度上更具竞争力[区块链](https://iq.wiki/wiki/blockchain)。
* **降低gas费用：** 通过提高交易吞吐量，Dencun希望缓解网络拥塞，从而降低用户的gas费用。
* **为完全分片奠定基础：** Dencun包括proto-danksharding，这是实现完全[分片](https://iq.wiki/wiki/sharding)的关键一步。分片涉及将区块链分成更小、更易于管理的部分，从而进一步提高可扩展性。

Dencun升级计划于2024年3月13日进行。[\[4\]](#cite-id-gtmajx9h0tg)

通过坎昆-Deneb升级，重点在于通过创建“数据[blobs](https://iq.wiki/wiki/ethereum-blobs)”来提高以太坊的可扩展性：这是一种旨在扩展[Layer 2 (L2)](https://iq.wiki/wiki/layer-2) [rollups](https://iq.wiki/wiki/rollup)数据可用性的新型交易类型。[\[19\]](#cite-id-m8qvrnmiezs)[\[20\]](#cite-id-swo4d2m0o1j)



#

## Ethereum Roadmap

| **阶段** | **名称** | **目标** |
| ----- | ---- | ---- |
| I | 合并 | 转移到[权益证明 (PoS)](https://iq.wiki/wiki/proof-of-stake) 共识 |
| II | 激增 | [Rollup](https://iq.wiki/wiki/rollup) 为中心的扩展，达到每秒 100,000+ 交易 |
| III | 鞭笞 | 避免最大可提取价值 (MEV) 带来的中心化和其他协议风险 |
| IV | 边缘 | 验证区块变得“超级容易” |
| V | 清除 | 简化协议并降低运行网络节点的成本 |
| VI | 挥霍 | “修复所有其他问题” |

![Ethereum Roadmap.jpg](https://ipfs.everipedia.org/ipfs/QmTFa93GGdQBpdMFerU1rftmNoBNoMQPWhx3xpE2iLtoWg)

#

## Ethereum Network

以太坊网络分为两个主要层：执行层和共识层。Dencun升级将包括对以太坊网络的执行层（Cancun）和共识层（Deneb）的一系列改进。

Dencun升级是以太坊持续发展的一部分，建立在上海升级等先前升级的成功之上。[\[22\]](#cite-id-uffybihgx8d)


##

## 执行层

以太坊的执行层是合并前的以太坊[主网](https://iq.wiki/wiki/mainnet)。它也被称为Eth1，负责处理和执行链上的[智能合约](https://iq.wiki/wiki/smart-contract)和交易。执行层是OP Stack的主要组成部分，在OP Stack中它被称为EVM（以太坊虚拟机）。以下是一些执行层客户端的例子：

* Geth：一个稳定可靠的多线程执行客户端，可以充分利用你的整个CPU
* Nethermind：一个构建在.NET.core上的以太坊执行层客户端，适用于普通用户和企业级dApp[\[2\]](#cite-id-9t4qt2ehmy9)

执行层硬分叉以之前举办过[Devcon](https://iq.wiki/wiki/devcon)的城市命名：柏林 -> 伦敦 -> 上海 -> 坎昆 -> 布拉格 -> 大阪 -> 波哥大。

[EIP-5656](https://iq.wiki/wiki/eip-5656)和EIP-6780是坎昆特定的（执行层）升级。[\[1\]](#cite-id-5v8ryesaj7d)

##

## 共识层

共识层负责在所有节点之间就网络状态达成一致。它确保所有交易和[智能合约](https://iq.wiki/wiki/smart-contract)都通过[权益证明（PoS）](https://iq.wiki/wiki/proof-of-stake)进行验证和达成一致。以太坊的共识层（Eth2）是以太坊[区块链](https://iq.wiki/wiki/blockchain)的一系列升级。升级的目标是提高区块链的速度和容量，降低交易成本，并提高安全性。它确保每个人都对发生的交易、发生的时间以及发生的顺序达成一致。共识层还为网络提供许多关键服务，包括计时、生成随机性、[质押](https://iq.wiki/wiki/staking)操作、治理机制。[\[1\]](#cite-id-5v8ryesaj7d)

2022年9月，以太坊通过从[工作量证明](https://iq.wiki/wiki/proof-of-work-pow)(PoW)过渡到[权益证明](https://iq.wiki/wiki/proof-of-stake)(PoS)，成功地改变了其[共识机制](https://iq.wiki/wiki/consensus-mechanism)。这一过渡被称为合并。[\[3\]](#cite-id-kxujd485oz)

每个共识层升级都以一颗星星的名字命名，名称按首字母的字母顺序选择：Altair -> Bellatrix -> Capella -> Deneb -> Electra -> (F)未知。[\[1\]](#cite-id-5v8ryesaj7d)

## 集成到 Dencun 升级中的 EIP

#

## EIP-1153: 瞬时存储操作码

[EIP-1153](https://iq.wiki/wiki/eip-1153-transient-storage-opcodes) 引入了瞬时存储操作码，旨在提高效率并降低 [智能合约](https://iq.wiki/wiki/smart-contract) 执行期间与存储操作相关的成本。 EIP-1153 代表了优化 [以太坊](https://iq.wiki/wiki/ethereum) [区块链](https://iq.wiki/wiki/blockchain) 上交易执行的重大进步。 EIP-1153 解决了 gas 效率低下的问题，从而提高了智能合约的性能。 [\[9\]](#cite-id-wvcy5rgpa1m)[\[6\]](#cite-id-cgtln57gtxh)[\[10\]](#cite-id-lq4s66r1m3b)[\[18\]](#cite-id-tsqdxjx6n4d)

#

## EIP-4788：EVM 中的信标区块根

[EIP-4788](https://iq.wiki/wiki/eip-4788-beacon-block-root-in-the-evm) 提议在以太坊虚拟机 (EVM) 中公开信标链区块根。信标链区块根是一种用于证明任意共识状态的累加器。通过在以太坊虚拟机中公开信标链区块根，可以以最小的信任访问 [以太坊](https://iq.wiki/wiki/ethereum) 共识层。此改进协议还有助于开发诸如质押池和 [智能合约](https://iq.wiki/wiki/smart-contract) 桥等用例，从而增强其信任假设。

EIP-4788 消除了在获取有关以太坊共识状态的信息时对受信任 [预言机](https://iq.wiki/wiki/oracle) 解决方案的需求。[流动性质押](https://iq.wiki/wiki/liquid-staking) 池（例如 Lido 和 [Rocket Pool](https://iq.wiki/wiki/rocket-pool)）以及重新质押应用程序（例如 [EigenLayer](https://iq.wiki/wiki/eigenlayer)）将从中受益。[\[5\]](#cite-id-u10c0rqk69)[\[6\]](#cite-id-cgtln57gtxh)[\[7\]](#cite-id-efwg3ri27uk)[\[17\]](#cite-id-byli6dghwat)

#

## EIP-4844: 分片 Blob 交易

[EIP-4844](https://iq.wiki/wiki/eip-4844)，也称为 Proto-Danksharding，是一项旨在扩展以太坊 L2 结构的新[提案](https://eips.ethereum.org/EIPS/eip-4844)，允许 [rollup](https://iq.wiki/wiki/rollup) 利用嵌入式数据的新费用市场。该改进提案被提出作为在实施[分片](https://iq.wiki/wiki/sharding)（以太坊的 Layer 1 扩展策略）时，通过 rollup 扩展以太坊的权宜之计。

EIP-4844 的更改将与即将到来的分片解决方案兼容，从而在准备就绪时实现无缝分片。[\[8\]](#cite-id-5cqnawwit0o)[\[6\]](#cite-id-cgtln57gtxh)[\[19\]](#cite-id-m8qvrnmiezs)

#

## EIP-5656: MCOPY - 内存复制指令

[EIP-5656](https://iq.wiki/wiki/eip-5656) 是一个主动实施的新操作码，有望提高 EVM 中数据移动的效率。具体来说，[EIP-5656](https://iq.wiki/wiki/eip-5656) 引入了一个新的 EVM 指令，称为 MCOPY。

MCOPY 旨在优化 EVM 内部的内存复制性能，提供更高效的数据结构构建方法。它的工作原理是接收两个内存指针作为输入，并将数据从源指针复制到目标指针。要复制的数据大小由第三个输入参数指定。

它比当前 EVM 中的内存复制方法更有效，后者涉及使用循环一次复制一个字节的数据。 MCOPY 能够批量复制数据，速度更快。它还具有比当前内存复制方法更简洁的优点。 MCOPY 使编写和阅读 [智能合约](https://iq.wiki/wiki/smart-contract) 更容易。[[1]](#cite-id-5v8ryesaj7d)[[15]](#cite-id-by44qbz4z2)


#

## EIP-6780：仅在同一交易中SELFDESTRUCT

[EIP-6780](https://iq.wiki/wiki/eip-6780)旨在削弱SELFDESTRUCT操作码的功能，同时尽量减少对当前使用它的[智能合约](https://iq.wiki/wiki/smart-contract)的干扰。该提案修改了SELFDESTRUCT操作码的功能，为未来以太坊应用中使用的Verkle Tree架构做准备。

目前，以太坊应用程序使用[Merkle Tree](https://iq.wiki/wiki/merkle-tree)架构，并且SELFDESTRUCT操作码可用于对帐户状态进行重大更改，例如删除代码和存储。但是，当未来的以太坊应用程序中使用Verkle Tree架构时，将不容易修改或删除帐户，因为Verkle Tree架构将每个帐户存储在与根帐户不连接的不同帐户密钥中。

因此，EIP-6780提出了对SELFDESTRUCT操作码功能的修改。根据EIP-6780，修改后的SELFDESTRUCT操作码在使用时将不再具有更改或删除帐户的能力，仅用于将ETH转移给调用者，除非在智能合约创建的同一交易中调用SELFDESTRUCT。[\[1\]](#cite-id-5v8ryesaj7d)[\[14\]](#cite-id-b91c2c789mp)

#

## EIP-7044：永久有效的签名自愿退出

[EIP-7044](https://iq.wiki/wiki/eip-7044) 解决了现有 [Ethereum](https://iq.wiki/wiki/ethereum) 网络中与签名自愿退出的有效期相关的重大限制。目前，这些退出仅在接下来的两次网络升级中有效，这带来了复杂的挑战，尤其是在 [staking](https://iq.wiki/wiki/staking) 运营商与资金所有者不同的情况下。

该提案旨在推动 Capella [区块链](https://iq.wiki/wiki/blockchain) 上签名自愿退出的“永久有效性”，确保它们无限期有效，不受未来升级的影响。

该提案的主要目标是简化 [staking](https://iq.wiki/wiki/staking) 操作的设计并增强用户体验。这简化了操作，确保了共识层兼容性，并强制将预签名退出过渡到 Capella 分叉域。该提案简化了质押。[\[11\]](#cite-id-99a8u18ujgl)[\[16\]](#cite-id-pax7y36n8t)

#

## EIP-7045：增加最大证明包含槽

[EIP-7045](https://iq.wiki/wiki/eip-7045) 通过扩展证明的最大包含槽，在 [以太坊](https://iq.wiki/wiki/ethereum) 网络中引入了一项关键变更。该提案旨在增强以太坊的 [共识机制](https://iq.wiki/wiki/consensus-mechanism) 的安全性和效率。目前，证明的包含窗口有限，但 EIP-7045 扩大了该窗口，使证明在下一个 epoch 结束前保持有效。

这种转变根植于对 LMD-GHOST 安全性证明的不断演变的理解以及对新确认规则的需求。通过允许证明在更长的时间内保持有效，以太坊可以提高其安全性，同时还可以提高其性能，尤其是在更及时地确认区块方面。[\[13\]](#cite-id-ooqpfrmyr3o)[\[16\]](#cite-id-pax7y36n8t)

#

## EIP-7514：添加最大 Epoch 变动限制

[EIP-7514](https://iq.wiki/wiki/eip-7514) 旨在限制以太坊信标链中的 epoch 变动率，以控制验证者增长率，将其从指数增长转变为线性增长。此举是为了应对以太坊客户端管理大型验证者集合的可扩展性问题，以及由于 [流动性质押](https://iq.wiki/wiki/liquid-staking) 平台（如 [Lido](https://iq.wiki/wiki/lido-dao)）的主导地位而可能产生的中心化风险，以及对个人质押者的经济负担。

EIP-7514 旨在引入一个短期解决方案，限制验证者变动率，以便让以太坊的开发者和利益相关者有更多时间来制定长期策略。[\[12\]](#cite-id-1j60gcg39r5h)[\[18\]](#cite-id-tsqdxjx6n4d)


#

## EIP-7516: BLOBBASEFEE 指令

[EIP-7516](https://iq.wiki/wiki/eip-7516) 在 [以太坊](https://iq.wiki/wiki/ethereum) 中引入了 BLOBBASEFEE 操作码，它允许 [智能合约](https://iq.wiki/wiki/smart-contract) 直接访问链上数据 [blobs](https://iq.wiki/wiki/blobs) 的当前基础费用。这有助于 [rollup](https://iq.wiki/wiki/rollup) 合约更有效地管理和预测其数据 blob 成本。

BLOBBASEFEE 指令返回当前执行区块的 blob 基础费用值。它与 EIP-3198 中定义的 BASEFEE 操作码相同，只是它返回 EIP-4844 规定的 blob 基础费用。[\[23\]](#cite-id-r306x527gam)[\[24\]](#cite-id-jsfilpzwp4)
