EVM 对象格式(EFO)全面升级解析

时间:2024-10-02 编辑: 浏览:(143)

作者:Dragan Rakita,Paradigm 翻译:善欧巴,

EOF(EVM 对象格式)

EOF(EVM Object Format)是一组旨在改进EVM的小型EIP。它引入了一种新的字节码格式,为EVM的未来做好准备。

EOF的优势

EOF的价值难以解释,因为它不是单一的东西,并且由于多次在分叉中被推迟以及多年的开发和研究、不同版本的演变,使得解释变得更加复杂。

本文的目的是总结这些优势并用一句话解释它们:

优势:

EOF允许操作码的Gas定价变化

如果燃气定价变化,传统字节码可能会表现不同。

移除燃气可观测性

这意味着移除GAS操作码,以及CALL/DELEGATECALL/STATICCALL中的燃气限制。

允许L2根据其用例改变燃气

例如,zk L2中哈希操作的高成本。

EIP-7667:提高哈希函数的燃气成本。

减少字节码大小,降低燃气使用

早期数据表明代码/初始化代码大小和燃气使用量的减少:

Uniswap-v3部署减少6.5%的初始化代码和部署代码。

部署UniswapV3Factory使用约14%更少的燃气,调用runTest使用约9%更少的燃气。

ENS DNSRegistrar部署减少约6%的初始化代码和约1.5%的部署代码。

ENS调用proveAndClaim:使用约10%更少的燃气。

允许字节码转换和可升级性

移除代码可观测性意味着移除PC, CREATE/CREATE2, EXTCODEHASH, EXTCODESIZE, EXTCODECOPY, CODESIZE和CODECOPY操作码。

如果代码更改,传统合约将无法运行。

这将允许我们在未来引入verkle时对EOF字节码进行任何形式的修改。

EOF启用操作码立即数

打开SWAPN, DUPN和EXCHANGE操作码的可能性。

这为Solidity在栈大小上提供了更多自由,解决了Solidity中的栈深度过深问题。

移除昂贵的跳转目标分析

在Reth中,分析结果与字节码一起保存,但其他客户端不一样。移除在合约执行前的跳转目标分析提高了速度。

随着分析的移除,未来我们可以增加最大字节码大小。

静态分析变得更容易

子程序强制更结构化的控制流,这使模糊测试更有效,并且可以实现线性时间的静态分析。

数据和代码分离,更容易推理。

EOF字节码可以编译成更快的字节码

EOF字节码可以编译成机器码。

未来证明EVM

字节码的版本和结构允许其可扩展性。这对L2和标准化尤其有用。

一个例子是EIP-7701:带有EOF的本地账户抽象,增加了新的头部部分。

地址空间扩展

新的EXT*CALL操作码通过要求地址字段填充零,为未来的地址扩展做好了准备。当以太坊决定扩展地址空间时,EOF已经为这些变化做好了准备。

与当前EVM的集成

对于开发人员来说,一个重要的问题是实施变化所需的努力、测试成本和维护这些操作码的成本。

新的操作码不会与传统操作码冲突,EOF的验证不会触及已弃用的操作码。

EOF的编码和解码可以进行模糊测试。验证是一个新事物,在Revm中大约有500行代码,但有很多边缘情况需要覆盖,并需要集中精力在各个实现中做到正确。

创建交易用作EOF字节码的载体,类似于EOFCREATE但在执行前需要验证。

大多数操作码非常简单:

EXTCALL (0xf8), EXTDELEGATECALL (0xf9), EXTSTATICCALL (0xfb)

具有与已弃用的CALL相同的蓝图,但移除了gas_limit和内存输出字段。

在RETURNDATALOAD引入之前(在一个很早的分叉中),CALL操作码的内存输出必须在执行CALL操作码之前设置。这不允许动态输出。

EOFCREATE和RETURNCONTRACT

是EOF的新内容,需要特殊处理。

EXCHANGE (0xe8), SWAPN (0xe7), DUPN (0xe6), DATACOPY (0xd3), DATASIZE (0xd2), DATALOADN (0xd1), DATALOAD (0xd0), RJUMP (0xe0), RJUMPI (0xe1), RJUMPV (0xe2), RETURNDATALOAD

逻辑简单,大多数只需10-20行代码实现。没有很多需要覆盖的边缘情况。

CALLF (0xe3), RETF (0xe4), 和 JUMPF (0xe5)

需要子程序栈和栈验证,复杂度大约需要20-30行代码。

需要一个开发人员约2-3个月的时间。测试工作已经开始。目前大约有2000个手写的验证测试,状态测试工作也在进行中。

变化集中在EVM中,因此与客户端其余部分的集成取决于客户端的架构以及保存字节码的位置。

EXTCODESIZE和EXTCODEHASH需要知道账户是否为EOF,并返回预定义的值(0xEF00的大小和哈希),这可能会略微改变客户端的集成方式。一个想法是将is_eof标志保存在普通账户表中,以在调用任何EXTCODE类型的操作码时跳过字节码的加载。

对L2的影响

最大的问题是为什么L2不实施这些变化?我们是否应该在以太坊L1上停止EVM改进?

现实情况是,L2还没有准备好,不仅如此,它们也没有一个平台来帮助整合这些创新。字节码版本控制有助于构建L2可以使用的平台,代码可观测性的移除有助于缓解可升级性问题,燃气变化帮助ZK L2消除燃气炸弹的DDoS向量(例如,zk中的哈希值非常昂贵)。

更重要的是,EOF不仅仅是一种格式,它还需要语言(Solidity/Vyper/Huff)的支持,并需要工具链的支持才能使用。它需要一个生态系统来使用它,这种格式为L2提供了更多的稳定性,以便在其上进行创新。

缺点:传统字节码仍然存在

这是一个常见问题。传统字节码将永远存在,如果我们不提供替代方案,我们将陷入困境。有了替代格式的字节码,未来我们可以在状态过期发生时过渡并移除传统字节码。

总结

EOF不是下一个耀眼的东西,它是修复初始EVM版本遗留问题的维护EIP,除了破坏它,没有其他方法可以解决这些问题。它对于EVM的进一步发展和未来证明是必要的。

最新 更多 >
  • 1 WOL币有希望吗

    WOL币是近年来备受瞩目的数字货币之一。它的诞生源于对很多传统加密货币存在的缺点和不足的思考和总结,因此备受期待。但是,我们必须冷静地问自己:WOL币有希望吗?它真的能够在市场上生存下来并发展壮大吗?首先,WOL币的技术基础相当可靠和先进。它采用了区块链技术和智能合约技术,确保交易的安全性和可追溯性。同时,WOL币还引入了一种创新的共识机制,使得交易速度更快,费用更低。这些技术特点让人们对WOL币

  • 2 CDT币在哪里买?

    CDT币在哪里买?CDT币,全称为Blox Token,是一种加密货币。它是基于以太坊平台的ERC-20代币,旨在为用户提供去中心化的数据交换和共享服务。那么,如果你想购买CDT币,下面将介绍几种常见的方式。1. 数字货币交易所最常见的购买CDT币的方式是通过数字货币交易所。这些交易所提供了一个在线平台,允许用户买入和卖出各种加密货币,包括CDT币。一些知名的数字货币交易所如币安(Binance)

  • 3 FUND币FundCru是什么?

    什么是FUND币/FundCru?FUND币,或者被称为FundCru,是一种基于区块链技术的加密数字货币。它旨在通过提供安全、透明和高效的支付和智能合约解决方案,为全球的企业和消费者创造更好的交易体验。基于区块链技术的优势区块链技术是一种去中心化的分布式账本技术,具有去除中间商、减少人为错误、提高交易速度和降低交易成本等优势。FundCru通过利用区块链技术,为用户提供更快、更便捷、更安全的支付

  • 4 CPC币Capricoin是什么?

    什么是CPC币/CapricoinCPC币/Capricoin是一种加密货币,采用了去中心化的区块链技术。它旨在成为全球范围内的可接受货币,为用户提供更安全、快速和低成本的支付和转账解决方案。区块链技术区块链技术是一种去中心化的分布式账本技术,它允许参与者在没有中间人的情况下进行直接交易和转账。CPC币/Capricoin使用区块链技术记录和验证所有的交易和转账,确保资金的安全性和透明度。透明度和

  • 5 DEFI概念币有哪些?

    DEFI概念币有哪些?DeFi(去中心化金融)是当前加密货币领域中的一个热门话题,它基于区块链技术,旨在构建一个去中心化的金融系统,通过智能合约实现传统金融产品和服务的自动化和去中介化。在DeFi的生态系统中,有许多被称为“DeFi概念币”的代币,这些代币代表着不同的项目和协议。接下来,我们将介绍一些知名的DeFi概念币。1. MakerDAO(MKR)MakerDAO是DeFi生态系统中最早和最

  • 6 为什么加密货币大涨呢

    近年来,加密货币市场一直是一个备受关注的话题,其价格波动频繁,尤其是一些主流加密货币,如比特币和以太坊等。那么为什么加密货币会大涨呢?本文将从几个角度进行解析。1. 投资者需求加密货币市场中的涨跌与投资者的需求密切相关。随着传统金融渠道的不稳定性和收益率下降,越来越多的投资者转向寻求更高回报的投资途径。加密货币作为一种新型的投资工具,其市场潜力和未来发展空间吸引了大量的投资者,这就使得加密货币价格

  • 7 CGN币MediaRich是什么?

    CGN币/MediaRich是什么?CGN币(CryptoGeoNumerical)是一种基于区块链技术的数字货币,它是由全球首个去中心化地理与数值系统——区块地理网络(CGN)所发行的代币。CGN币的发行目的是为了支持区块地理网络的发展和促进地理数据的交流与共享。区块地理网络(CGN)区块地理网络(CGN)是一个以地理信息系统为基础,利用区块链技术构建起来的全球地理与数值系统。它以分布式、去中心

  • 8 DLT是什么币?

    DLT是什么币?DLT,全称为“分布式账本技术”(Distributed Ledger Technology),是一种基于区块链的数字货币。它通过将交易数据分布式地存储在多个计算机节点上,保证了安全性和去中心化的特点。DLT的出现具有革命性的意义,给传统金融体系和实体经济带来了巨大的发展机遇和挑战。特点和优势DLT的主要特点和优势包括:1. 去中心化:DLT实现了全球范围内的去中心化交易和资产管理

  • 9 WTN币有风险吗

    WTN币是一种数字货币,其作为一种新兴的投资选择,不可避免地伴随着一些风险。因此,投资者在购买WTN币之前必须了解这些风险,并做出明智的投资决策。首先,WTN币的价格波动是一个显著的风险。与其他数字货币一样,WTN币的价格可以在短时间内剧烈波动。这是由于各种因素所导致的,如市场需求、投资者情绪和政策变化。因此,投资者应该对WTN币价格的波动有所准备,并且具备良好的风险管理能力。其次,WTN币所处的

  • 10 cvc是什么币?

    什么是CVC币?CVC币,全名为Civic币,是一种基于区块链技术的加密货币。它是Civic平台的原生代币,旨在支持Civic去中心化身份验证服务的运行。去中心化身份验证Civic平台是一个去中心化的身份验证平台,利用区块链技术确保用户的个人身份和数据的安全性。通过使用Civic币,用户可以在平台上实现无需第三方中介的身份验证。身份验证的重要性在数字化的时代,个人身份和数据的安全性变得尤为重要。许