# 什么是上海升级？

By [01Coder](https://paragraph.com/@01coder) · 2023-03-30

---

**上海升级**（Ethereum Shanghai Upgrade）是以太坊区块链的一个升级版本，它是以太坊网络的第二个重大升级，也是自以太坊伦敦升级以来的最新升级。

该升级旨在改进以太坊网络的安全性、可扩展性和用户体验，其中包括以下主要更新：

1.  **EIP-3198**：增强以太坊网络的安全性和抗 DDOS 攻击能力。
    
2.  **EIP-3529**：优化以太坊网络的燃料费用（gas fees）和燃料费用调整算法。
    
3.  **EIP-3541**：限制以太坊智能合约中某些旧的自毁（self-destruct）机制，以减少智能合约被误操作的风险。
    
4.  **EIP-3554**：将以太坊区块的挖掘奖励从 2 ETH 降低到 1 ETH，以控制以太坊通胀率。
    
5.  **EIP-1559**（在伦敦升级中引入）的改进：增加燃料费用上限，限制过高的燃料费用，提高交易确认速度。
    

EIP-3198
--------

EIP-3198是以太坊上海升级中的一个改进提案，旨在增强以太坊网络的安全性和抗 DDOS 攻击能力。

DDOS攻击是一种常见的网络攻击方式，攻击者通过向网络发送大量无效的请求或数据包，导致网络服务不可用或崩溃。以太坊网络也面临着 DDOS 攻击的风险，因为攻击者可以通过发送大量的无效交易请求来拥塞网络。

EIP-3198的主要目标是改进以太坊网络的流量管理机制，从而提高网络的抗 DDOS 攻击能力。具体来说，EIP-3198包括以下两个主要改进：

*   动态调整燃料费用上限
    

以太坊网络中的每笔交易都需要支付一定的燃料费用（gas fees），以激励矿工验证和打包交易。这些燃料费用的上限通常是固定的，而EIP-3198将引入一种动态调整燃料费用上限的机制，以根据当前网络状况自动调整燃料费用上限。这样做可以确保网络的可用性和稳定性，同时也可以有效地减少 DDOS 攻击的风险。

*   引入流量管理机制
    

EIP-3198还引入了一种流量管理机制，即通过限制每个 IP 地址的请求速率来控制网络的流量。具体来说，EIP-3198将引入一种名为“时间窗口（time window）”的机制，通过监视每个 IP 地址的请求速率来限制它们的请求速率。这样做可以有效地防止网络被大量的无效请求拥塞，提高网络的可用性和抗 DDOS 攻击能力。

EIP-3529
--------

EIP-3529是以太坊上海升级中的一个改进提案，旨在优化以太坊网络的燃料费用（gas fees）和燃料费用调整算法。

在以太坊网络中，每笔交易都需要支付一定数量的燃料费用，以激励矿工验证和打包交易。燃料费用是以太坊网络中的核心机制，也是使得网络能够安全、稳定、高效运行的关键。然而，当前的燃料费用机制存在一些问题，如过高的燃料费用、燃料费用波动过大等，这些问题都需要得到解决。

EIP-3529的主要目标是优化以太坊网络的燃料费用机制，从而减少用户支付的燃料费用，并使网络更加高效和稳定。具体来说，EIP-3529包括以下两个主要改进：

*   静态燃料费用上限的优化
    

当前，以太坊网络中每个区块的燃料费用上限是固定的，而EIP-3529将引入一种新的静态燃料费用上限调整算法。这个算法会根据以太坊网络上的实际交易情况来动态地调整每个区块的燃料费用上限，从而使得整个网络更加高效和稳定。

*   燃料费用调整算法的改进
    

EIP-3529还对燃料费用调整算法进行了改进，以减少燃料费用的波动性。具体来说，EIP-3529将引入一种名为“Per-transaction pricing”的算法，即每个交易的燃料费用将由网络自动计算，而不是由用户手动设置。这种算法可以使得交易的燃料费用更加准确和公平，并且减少了燃料费用的波动性。

EIP-3541
--------

EIP-3541是以太坊上海升级中的一个改进提案，旨在增强以太坊智能合约的可读性和可维护性。

在以太坊智能合约的开发过程中，开发者需要经常处理内存管理和堆栈操作，这对于一些开发者来说可能会比较困难。同时，内存管理和堆栈操作也可能会导致智能合约代码的可读性和可维护性下降。

EIP-3541的主要目标是通过引入新的智能合约指令来解决这些问题。具体来说，EIP-3541包括以下两个主要改进：

*   新的智能合约指令
    

EIP-3541将引入新的智能合约指令，包括RETURNDATASIZE、RETURNDATACOPY、STATICCALL、REVERT、INVALID、SELFDESTRUCT、CALLCODE等，这些指令将有助于简化内存管理和堆栈操作，并提高智能合约代码的可读性和可维护性。

*   合约创建的改进
    

当前，在以太坊网络中，合约的创建需要花费相对较高的燃料费用，并且还需要访问一个全局的合约计数器来生成新的合约地址。这可能会导致一些性能和安全问题。

EIP-3541将引入一个新的合约地址生成机制，使得合约地址的生成更加高效和安全。具体来说，新的机制将使用新的智能合约指令CREATE2来代替现有的合约创建机制，从而避免了访问全局计数器的需求，同时也可以减少燃料费用。

EIP-3554
--------

EIP-3554是以太坊的一个提案，它旨在延长以太坊1.0主网的生命周期，为其提供更长期的支持和维护。具体来说，EIP-3554建议对以太坊的挖矿奖励机制进行调整，以确保矿工在以太坊主网升级后仍然有足够的激励来维护网络。

当前，以太坊的挖矿奖励机制是基于区块高度的固定奖励，即每挖出一个区块，矿工将获得一定数量的以太币作为奖励。随着时间的推移，这个固定奖励会逐渐减少，因此矿工需要依靠交易费用来获取更多的奖励。然而，随着以太坊1.0主网的生命周期逐渐接近，这种挖矿奖励机制将不再适用，因为交易费用可能不足以支撑矿工的运营成本。

为了解决这个问题，EIP-3554提出了一个新的挖矿奖励机制，即在以太坊1.0主网到期之后，每个新区块的奖励将会有一个固定的最低值，这将确保矿工始终有足够的激励来维护网络。与此同时，随着时间的推移，每个新区块的奖励将逐渐降低，直到最终达到零。

具体来说，EIP-3554建议在以太坊1.0主网到期后，在第13,000,000个区块之后，每个新区块的奖励将会有一个固定的最低值，即0.0005以太币。然后，每隔2048个区块，这个最低值将减半，直到最终降至0。

EIP-3554是为了确保以太坊主网的长期稳定性和可持续性而提出的一个重要提案，它将为以太坊的生态系统提供更长期的支持和维护。

EIP-1559
--------

EIP-1559是以太坊上海升级中的一个重要提案，旨在改进以太坊的交易费用机制。当前，以太坊的交易费用是由用户根据网络拥堵程度自主设置的，这导致了一些问题，例如交易费用高昂、不稳定、易受操纵等。

EIP-1559的主要目标是通过改进交易费用机制来解决这些问题。具体来说，EIP-1559包括以下三个主要方面的改进：

*   基础交易费用
    

EIP-1559将引入一个基础交易费用（base fee），这是一个动态的费用，会根据网络拥堵程度自动调整。每个区块的基础交易费用将由网络自动计算，并在交易中明确显示。

*   最大交易费用
    

在当前的交易费用机制中，用户需要自己设置交易费用，这可能会导致一些交易费用过高或过低。EIP-1559将引入一个最大交易费用（max fee），这将限制交易费用的最高值，从而保护用户不被过度收费。

*   燃料费用
    

EIP-1559还将改变燃料费用的结构。当前，以太坊的燃料费用是由燃料价格和燃料限制两个参数组成，这使得交易费用计算变得复杂。EIP-1559将引入一个新的燃料费用结构，只有燃料限制会影响燃料费用，而燃料价格将被废除。

希望这些文字能对同学们有所帮助🧑‍🎓

---

*Originally published on [01Coder](https://paragraph.com/@01coder/jIIezcmo574zhmyWhLhr)*
