以太坊的上海升级,被众多媒体称为是Web3的下一个新叙事,它也是目前被讨论最多的热点之一。
2023年3月,以太坊将启动上海升级。截至发稿,本次升级包括EIP-3540、EIP-3651、EIP-3670、EIP-3855、EIP-3860、EIP-4895、EIP-4200、EIP-4750和EIP-5450,而备受关注的EIP-4844将推迟到5、6月更新。
我们先来了解一下以太坊上海升级会涉及到的几个EIP。
EIP-3540
该EIP主要是针对EVM对象格式(EOF)合约字节码的更新,为EVM引入了一种可扩展的版本控制容器格式。通过在合约字节码中添加代码和数据的标记来实现代码和数据的分离,这种分离对链上代码验证着特别有利。
EIP-3651
这个EIP的主要目的是将“COINBASE“地址从冷地址更改为热地址。因为COINBASE直接交易允许有条件的支付,所以该类交易变得越来越流行。但是COINBASE的接入价格太高,因为COINBASE最初是在访问列表框架下的EIP-2929中引入的,目的是根据访问冷地址的成本进行gas计算,相对于访问热地址的成本来说,访问冷地址的成本相对较高。
EIP-3670
在引入代码验证时,此EIP主要与上述EIP-3540合约创建进行配合工作。包含截断的PUSH数据或未定义指令的合约字节码将被拒绝。
EIP-3855
此EIP主要增加了PUSH0指令,用于将常量0压入堆栈。目前只有PUSH1- PUSH32指令,将1字节到32字节压入堆栈,而将常量0压入堆栈需要PUSH1 0指令,runtime消耗3个gas,另外2个字节的存储成本为2*200 gas。一个常量0当前被压在堆栈上,PUSH0指令的添加节省了一定数量的gas。
EIP-3860
该EIP主要修改initcode的最大值。在 EIP-170 中,initcode 的当前最大值被设置为 MAX_CODE_SIZE: 24576。在 EIP-3860 中,initcode 的新最大值为 MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152。这使得合约的最大大小增加了一倍,并会使合约具有更丰富的功能,但是initcode的每字节成本将增加0.0625 gas。
EIP-4895
该EIP主要用于激活以太坊信标链的质押提现。
EIP-4200
EIP引入了三种新的EVM静态跳转指令,RJUMP、RJUMPI和RJUMPV,它们旨在优化网络并降低成本。目前EVM只有动态跳转机制,这虽然使得字节码比较灵活,但也增加了代码分析的复杂性。而这些静态指令正好能降低gas成本(在部署和执行时),提供更好的分析属性。
EIP-4750
此EIP主要是对代码的优化。它主要基于上述EOF格式(EIP-3540),并会引入在字节码中包含多个代码段的能力,每个代码段表示一个单独的子程序或函数。字节码中引入了两个新的操作码CALLF和RETF,它们负责调用和返回这样的子程序或函数。此外,EIP还引入了JUMPF指令来用于跳转到此类子程序或函数。
EIP-5450
这个EIP主要改变了代码的验证过程,优化了网络。虽然EVM目前对每个执行的指令执行大量的有效性检查,但这个EIP将使合约在部署时执行相关的验证,从而减少在代码运行时执行此类验证的数量。
上海升级的主要类别
EVM细节优化
EIP方面主要有两个细节改进:EIP-3651和EIP-3860。
EIP-3860可以缓解由于智能合约的字节码长度限制,一些复杂的合约需要拆分为多个合约才能部署到主网的问题,该EIP的引入将显著增加智能合约功能的多样性。
退出信标链
这一个主要是通过EIP-4895实现。
目前信标链上质押的ETH数量超过1500万枚,占以太坊流通总量的近13%。
提现函数将使用“push”方法将资金从共识层(信标链)推送到执行层(主网),并定义一个分叉时间戳FORK_TIMESTAMP,执行层将从中处理提现。共识层将定义一个负载对象提现,它将提供关键信息,包括:index(计算提现次数)、validator_index(验证者数据)、address(提现目标地址)和amount (eth数量),这些信息将被主动推送到执行层。在执行层中还将定义一个新的字段提款,该字段保存提款对象列表,在执行负载获得提款对象后,就会被添加到提款列表中。验证后,再将以太坊的金额数量添加到地址中,从而实现以太币的提现。
字节码改进
与字节码相关的EIP一共有6个,分别是EIP-3540、EIP-3670、EIP-3855、EIP-4200、EIP-4750和EIP-5450。
这类升级主要增加了一些新的字节码指令,包括:PUSH0, RJUMP, RJUMPI, RJUMPV, CALLF, RETF, JUMPF。它还会对字节码进行分类,添加字节码标记以区分字节码类型,并对每种类型的字节码进行模块化。另一方面,也更新了字节码的验证机制,优化了网络和使用成本。
这部分升级是上海升级的主要部分,会对以太坊虚拟机系统产生比较大的影响。
什么是以太坊可扩展解决方案?
备受关注的EIP-4844已经被推迟到了今年的5、6月进行更新,其主要特点是引入了一种新的交易格式“blob-carry transactions”,这是一种专门为L2数据传输设计的数据类型。
Rollup是一个向外扩展的解决方案,是以太坊在短期、中期和长期(可能)内唯一的去信任的向外扩展解决方案。最近几个月,将数据从L2传输到L1的成本一直很高,而Rollup明显降低了许多以太坊用户的交易成本,其中Optimism和Arbitrum的成本比以太坊基础层本身低3 - 8倍。ZK rollup甚至具有比以太坊基础层低40-100倍的功能。
然而,这些费用对许多用户来说依旧太贵。从长远来看,数据分片是解决rollup自身缺点的一个很好的解决方案,它为使用rollup的链的每个区块增加了16MB的专用数据空间。只是数据分片特性的实现和部署将需要很长时间才能实现。
EIP通过实现一种新的交易类型“blob-carrying transactions”来提供了解决方案,旨在承载L2的原始交易压缩数据,相当于之前的calldata。L1实际上并不需要执行calldata来产生gas费用。新的交易类型blob不会像calldata一样被EVM读取,而是会保留在共识层,并在延迟30天后被删除。简单来说,之前的calldata数据保存在了共识层,而不是像以前那样发送到执行层,因此会产生很高的gas费用,这就是为什么Rollup费用可以降低的原因。
Source:https://medium.com/@Beosin_com/web3s-next-narrative-things-to-know-about-the-ethereum-shanghai-upgrade-b37b7ca6532e
ChinaDeFi- ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理Opensea、LooksRare、Sudoswap 或 X2Y2 上列出的任何 Azuki 在 Cyan 上启动 BNPL 计划更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。
领取专属 10元无门槛券
私享最新 技术干货