以太坊:关于 3 月启动的上海升级的更新动态
2023-02-01 04:43
以太坊的上海升级,被众多媒体称为是 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 主要是针对 EVM 对象格式(EOF)合约字节码的更新,为 EVM 引入了一种可扩展的版本控制容器格式。通过在合约字节码中添加代码和数据的标记来实现代码和数据的分离,这种分离对链上代码验证着特别有利。这个 EIP 的主要目的是将“COINBASE“地址从冷地址更改为热地址。因为 COINBASE 直接交易允许有条件的支付,所以该类交易变得越来越流行。但是 COINBASE 的接入价格太高,因为 COINBASE 最初是在访问列表框架下的 EIP-2929 中引入的,目的是根据访问冷地址的成本进行 gas 计算,相对于访问热地址的成本来说,访问冷地址的成本相对较高。在引入代码验证时,此 EIP 主要与上述 EIP-3540 合约创建进行配合工作。包含截断的 PUSH 数据或未定义指令的合约字节码将被拒绝。此 EIP 主要增加了 PUSH0 指令,用于将常量 0 压入堆栈。目前只有 PUSH1- PUSH32 指令,将 1 字节到 32 字节压入堆栈,而将常量 0 压入堆栈需要 PUSH1 0 指令,runtime 消耗 3 个 gas,另外 2 个字节的存储成本为 2*200 gas。一个常量 0 当前被压在堆栈上,PUSH0 指令的添加节省了一定数量的 gas。该 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 引入了三种新的 EVM 静态跳转指令,RJUMP、RJUMPI 和 RJUMPV,它们旨在优化网络并降低成本。目前 EVM 只有动态跳转机制,这虽然使得字节码比较灵活,但也增加了代码分析的复杂性。而这些静态指令正好能降低 gas 成本 ( 在部署和执行时 ),提供更好的分析属性。此 EIP 主要是对代码的优化。它主要基于上述 EOF 格式 (EIP-3540),并会引入在字节码中包含多个代码段的能力,每个代码段表示一个单独的子程序或函数。字节码中引入了两个新的操作码 CALLF 和 RETF,它们负责调用和返回这样的子程序或函数。此外,EIP 还引入了 JUMPF 指令来用于跳转到此类子程序或函数。这个 EIP 主要改变了代码的验证过程,优化了网络。虽然 EVM 目前对每个执行的指令执行大量的有效性检查,但这个 EIP 将使合约在部署时执行相关的验证,从而减少在代码运行时执行此类验证的数量。EIP 方面主要有两个细节改进:EIP-3651 和 EIP-3860。EIP-3860 可以缓解由于智能合约的字节码长度限制,一些复杂的合约需要拆分为多个合约才能部署到主网的问题,该 EIP 的引入将显著增加智能合约功能的多样性。目前信标链上质押的 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-b37b7ca6532eChinaDeFi - ChinaDeFi.com 是一个研究驱动的 DeFi 创新组织,同时我们也是区块链开发团队。每天从全球超过 500 个优质信息源的近 900 篇内容中,寻找思考更具深度、梳理 Opensea、LooksRare、Sudoswap 或 X2Y2 上列出的任何 Azuki 在 Cyan 上启动 BNPL 计划更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。Layer 2 道友 - 欢迎对 Layer 2 感兴趣的区块链技术爱好者、研究分析人与 Gavin(微信: chinadefi)联系,共同探讨 Layer 2 带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”。
相关Wiki
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。