Gate 大门数字货币行情

3 天后,以太坊将迎这些重大变化

频道:区块链行情 日期: 浏览:13

3 天后,以太坊将迎这些重大变化

原文来自 Sahil Sojitra

编译|Odaily 星球日报 Golem

计划于 2025 年 12 月 3 日激活的 Fusaka 硬分叉是以太坊继 Pectra 之后的又一次重大网络升级,标志着这家加密巨头又向扩容迈出了重要一步。

Pectra 升级的 EIP 专注于提升性能、安全性和开发者工具。Fusaka 升级的 EIP 则注重扩容、操作码更新和执行安全性等方面。

PeerDAS (EIP-7594) 通过允许节点在无需下载所有数据的情况下验证 Blob,提高了数据可用性。多项升级也加强了执行安全性,包括限制 ModExp (EIP-7823)、限制交易 Gas 限额 (EIP-7825) 以及更新 ModExp Gas 成本 (EIP-7883)。此次 Fusaka 升级还通过确定性提议者前瞻机制 (EIP-7917) 改进了区块生成,并通过设置与执行成本挂钩的“保留价格”保持 Blob 费用的稳定 (EIP-7918) 。

其他增强功能包括限制 RLP 格式的区块大小 (EIP-7934)、添加新的 CLZ 操作码以加快位操作速度 (EIP-7939),以及引入 secp256r1 预编译 (EIP-7951) 以更好地兼容现代密码学和硬件安全密钥。

Fusaka 是 Fulu(执行层)和 Osaka(共识层)的组合名称。它代表着以太坊向高度可扩展、数据丰富的未来迈出的又一步,在这个未来中,Layer 2 Rollup 可以以更低的成本和更快的速度运行。

本篇文章将深入剖析 Fusaka 硬分叉的9大核心 EIP 提案。

EIP-7825:交易 1670 万 Gas 上限

以太坊确实也需要这项提案,因为目前单笔交易几乎可以消耗整个区块的 Gas 上限。

这会造成几个问题:一笔交易可能消耗掉区块的大部分资源,导致类似 DoS 攻击的缓慢延迟;耗费大量 Gas 的操作会过快地增加以太坊的状态更新;区块验证速度变慢,节点难以跟上。

如果一个用户提交了一笔几乎消耗所有 Gas 的巨额交易(例如,一笔在 4000 万 Gas 的区块中消耗 3800 万 Gas 的交易),那么其他普通交易就无法放入该区块,每个节点都必须花费额外的时间来验证该区块。这会威胁到网络的稳定性和去中心化,因为验证速度变慢意味着性能较弱的节点会落后。为了解决这个问题,以太坊需要一个安全的 Gas 上限,限制单笔交易可以使用的 Gas 数量,从而使区块负载更加可预测,降低 DoS 攻击的风险,并使节点的负载更加均衡。

EIP-7825 引入了一条硬性规则:任何交易消耗的 Gas 不得超过 16,777,216 (2²⁴)。这成为协议层面的上限,意味着它适用于所有环节:用户发送交易、交易池检查交易以及验证者将交易打包进区块。如果有人发送的 Gas 上限超过此值,客户端必须立即拒绝该交易,并返回类似 MAX_GAS_LIMIT_EXCEEDED 的错误。

此上限与区块 Gas 上限完全独立。例如,即使区块 Gas 上限为 4000 万,任何单笔交易的 Gas 消耗也不得超过 1670 万。其目的是确保每个区块可以容纳多笔交易,而不是让单笔交易占据整个区块。

为了更好地理解这一点,假设一个区块可以容纳 4000 万 Gas。如果没有此上限,有人可能会发送一笔消耗 3500 万到 4000 万 Gas 的交易。该交易会垄断区块,不给其他交易留下任何空间,就像一个人包下整辆巴士,其他人都无法上车一样,新的 1670 万 Gas 上限将使区块自然容纳多笔交易,从而避免此类滥用行为。

该提案还对客户端如何验证交易提出了具体要求。如果交易的 Gas 超过 16,777,216,交易池必须拒绝该交易,这意味着此类交易甚至不会进入队列。在区块验证过程中,如果区块中包含超过上限的交易,则该区块本身必须被拒绝。

选择 16,777,216 (2²⁴) 这个数字是因为它是一个清晰的 2 的幂次方边界,便于实现,而且它仍然足够大,可以处理大多数实际交易。例如智能合约部署、复杂的 DeFi 交互或多步骤合约调用。这个值大约是典型区块大小的一半,这意味着即使是最复杂的交易也能轻松控制在这个限制范围内。

这项 EIP 也保持了与现有 Gas 机制的兼容性。大多数用户不会注意到这一变化,因为几乎所有现有交易消耗的 Gas 都远低于 1600 万。验证者和区块创建者仍然可以创建总 Gas 超过 1670 万的区块,只要每笔交易都遵守新的上限即可。

唯一受影响的交易是之前试图使用超过新限制的超大交易。这些交易现在必须拆分成多个较小的操作,类似于将一个非常大的文件上传拆分成两个较小的文件。从技术上讲,这项更改对于这些罕见的极端交易并不向下兼容,但预计受影响的用户数量将非常少。

在安全性方面,Gas 上限使以太坊更能抵御基于 Gas 的 DoS 攻击,因为攻击者无法再强迫验证者处理超大交易。它还有助于保持区​​块验证时间的可预测性,从而使节点更容易保持同步。主要极端情况是,少数规模非常大的合约部署可能无法满足上限要求,需要重新设计或拆分为多个部署步骤。

总体而言,EIP-7825 旨在加强网络防范滥用,保持节点需求合理,提高区块空间使用的公平性,并确保随着 Gas 上限提高,区块链仍能保持快速稳定运行。

EIP-7918:Blob 基础费用受执行成本限制

以太坊需要这项提案,因为当前的 Blob 费用系统(源自 EIP-4844)在执行 Gas 成为 Rollup 的主要成本时会失效。

目前,大多数 Rollup 支付的执行 Gas(将 Blob 交易包含在区块中的成本)远高于实际的 Blob 费用。这造成了一个问题:即使以太坊不断降低 Blob 基础费用,Rollup 的总成本实际上并没有改变,因为成本最高的部分仍然是执行 Gas。因此,Blob 基础费用会持续下降,直至达到绝对最低值(1 wei),此时协议将无法再利用 Blob 费用来控制需求。然后,当 Blob 使用量突然上升时,Blob 费用需要经过很多区块才能恢复到正常水平。这使得价格不稳定,对用户而言难以预测。

例如,假设一个 Rollup 想要发布其数据:它需要支付大约 25,000,000 gwei 的执行 Gas(大约 1,000,000 gas 需要 25 gwei),而 Blob 费用仅约为 200 gwei。这意味着总成本约为 25,000,200 gwei,其中几乎全部成本都来自执行 Gas,而非 Blob 费用。如果以太坊持续降低 Blob 费用,例如从 200 gwei 降至 50 gwei,再降至 10 gwei,最终降至 1 gwei,总成本几乎也不会改变,仍然保持在 25,000,000 gwei。

EIP-7918 通过引入一个基于执行基础费用的最低“保留价格”来解决这个问题,从而防止 Blob 价格过低,并使 Rollup 的 Blob 定价更加稳定和可预测。

EIP-7918 的核心思想很简单:Blob 的价格永远不应低于一定数量的执行 Gas 成本(称为 BLOB_BASE_COST)。calc_excess_blob_gas() 的值被设置为 2¹³,该机制通过对 calc_excess_blob_gas() 函数进行微小的修改来实现。

通常,该函数会根据区块使用的 blob gas 是否高于或低于目标值来增加或减少 Blob 基础费用。根据此提案,如果 Blob 相对于执行 Gas 变得“过低”,该函数将停止扣除目标 blob gas。这使得多余的 blob gas 增长得更快,从而防止 Blob 基础费用进一步下降。因此,Blob 基础费用现在有一个最小值,等于 BLOB_BASE_COST × base_fee_per_gas ÷ GAS_PER_BLOB。

为了理解为什么需要这样做,我们可以看看 Blob 的需求。Rollup 关注的是它支付的总成本:执行成本加上 blob 成本。如果执行 Gas 费用非常高,例如 20 gwei,那么即使 Blob 费用从 2 gwei 降到 0.2 gwei,总成本也几乎不变。这意味着降低 Blob 基础费用对需求几乎没有影响。在经济学中,这被称为“费用缺乏弹性”。它造成了一种需求曲线几乎垂直的情况:降低价格不会增加需求。

在这种情况下,Blob 基础费用机制会变得盲目——即使需求没有反应,它也会继续降低价格。这就是为什么 blob 基础费用经常会降到 1 gwei 的原因。然后,当实际需求稍后增加时,协议需要一个小时或更长时间的几乎满区块才能将费用提升到合理的水平。EIP-7918 通过建立与执行 Gas 挂钩的储备价格来解决这个问题,从而确保即使执行成本占主导地位,Blob 费用仍然有意义。

添加此保留价格的另一个原因是,节点需要做很多额外的工作来验证 Blob 数据的 KZG 证明。这些证明保证了 Bob 中的数据与其承诺相符。在 EIP-4844 下,节点只需验证每个 Blob 的一个证明,成本很低。但在 EIP-7918 中,节点需要验证的证明数量更多。这全是因为在 EIP-7594 (PeerDAS) 中,blob 被分割成许多称为 cell 的小块,每个 cell 都有自己的证明,这使得验证工作量大大增加。

从长远来看,EIP-7918 也有助于以太坊为未来做好准备。随着技术的进步,存储和共享数据的成本自然会降低,以太坊预计会随着时间的推移允许存储更多 Blob 数据。当 Blob 容量增加时,Blob 费用(以 ETH 计)自然会下降。该提案支持这一点,因为保留价格与执行 Gas 价格挂钩,而不是一个固定值,因此它可以根据网络的增长进行调整。

随着 Blob 空间和执行区块空间的扩展,它们的价格关系将保持平衡。只有在极少数情况下,以太坊大幅增加 Blob 容量但未增加执行 Gas 容量时,保留价格才可能过高。在这种情况下,Blob 费用最终可能会高于实际所需。但以太坊没有计划以这种方式扩展——Blob 空间和执行区块空间预计将同步增长。因此,所选值 (BLOB_BASE_COST = 2¹³) 被认为是安全且平衡的。

当执行 Gas 费用突然飙升时,需要了解一个小细节。由于 Blob 的价格取决于执行基础费用,执行成本的突然上升可能会暂时使 Blob 费用进入一种由执行成本主导的状态。例如,假设执行 Gas 费用在一个区块内突然从 20 gwei 跃升至 60 gwei。由于 Blob 的价格与该数值挂钩,Blob 费用无法跌破新的更高水平。如果 Blob 仍在被使用,其费用仍会正常增长,但协议不会允许其下降,直到其增长到足以匹配更高的执行成本为止。这意味着在几个区块内,Blob 费用的增长速度可能会慢于执行成本。这种短暂的延迟并无害处——它实际上可以防止 Blob 价格出现剧烈的波动,并使系统更加平稳。

作者还对 2024 年 11 月至 2025 年 3 月的实际区块交易活动进行了实证分析,应用了保留价格规则。在高执行费时期(平均约 16 gwei),与旧机制相比,储备阈值显著提高了区块基础费用。在低执行费时期(平均约 1.3 gwei),区块费用几乎保持不变,除非计算出的区块基础费用低于储备价格。通过比较数千个区块,作者表明,新机制在保持对需求自然响应的同时,还能创造更稳定的定价。四个月的区块费用直方图显示,储备价格防止区块费用暴跌至 1 gwei,从而降低了极端波动。

就安全性而言,此变更也不会引入任何风险。基本区块费用始终会等于或高于执行 Gas 的 BLOB_BASE_COST 单位成本。这是安全的,因为该机制仅提高了最低费用,而设定价格下限不会影响协议的正确性。它只是确保了健康的经济运行。

EIP-7951:支持现代硬件的签名

在此 EIP 之前,以太坊没有安全、原生的方式来验证使用 secp256r1 (P-256) 曲线创建的数字签名。

该曲线是 Apple Secure Enclave、Android Keystore、HSM、TEE 和 FIDO2/WebAuthn 安全密钥等现代设备使用的标准。由于缺少这种支持,应用程序和钱包无法轻松地使用设备级硬件安全进行签名。此前曾有过一次尝试 (RIP-7212),但它存在两个严重的安全漏洞,分别与无穷远点处理和错误的签名比较有关。这些问题可能导致验证错误,甚至可能导致共识失败。 EIP-7951 修复了这些安全问题,并引入了一个安全、原生的预编译程序,使以太坊最终能够安全高效地支持来自现代硬件的签名。

EIP-7951 在地址 0x100 处添加了一个名为 P256VERIFY 的新预编译合约,该合约使用 secp256r1 曲线执行 ECDSA 签名验证。与直接在 Solidity 中实现该算法相比,这使得签名验证更加快速且成本更低。

EIP-7951还定义了严格的输入验证规则。如果存在任何无效情况,预编译将返回失败,且不会回滚,消耗的 Gas 与成功调用相同。验证算法遵循标准的 ECDSA:它计算 s⁻¹ mod n,重建签名点 R',如果 R' 为无穷远则拒绝,最后检查 R' 的 x 坐标是否与 r (mod n) 匹配。这修正了 RIP-7212 中的错误,RIP-7212 直接比较了 r',而不是先将其模 n 化简。

该操作的 Gas 费用设定为 6900 gas,高于 RIP-7212 版本,但与 secp256r1 验证的实际性能基准相符。重要的是,该接口与已部署 RIP-7212 的 Layer 2 网络完全兼容(地址相同,输入/输出格式相同),因此现有的智能合约将继续正常运行,无需任何更改。唯一的区别在于修正后的行为和更高的 Gas 费用。

从安全角度来看,EIP-7951 恢复了 ECDSA 的正确行为,消除了预编译级别的可塑性问题(将可选检查留给应用程序),并明确指出预编译不需要恒定时间执行。 secp256r1 曲线提供 128 位安全性,并已获得广泛的信任和分析,因此可安全应用于以太坊。

简而言之,EIP-7951 旨在安全地将现代硬件支持的身份验证引入以太坊,修复早期提案的安全问题,并提供一种可靠、标准化的方式来验证整个生态系统中的 P-256 签名。

本文仅整理公开市场数据,不构成任何投资或操作建议。根据中国法规,请用户遵守相关法律法规。