以太坊巴黎升级(合并,共识转POS)之后又一重大更新即将到来——上海升级!目前有着上千专业开发者的以太坊核心社区,从15年走来已经历经15次主网升级,而这一次上海升级将为链上锁定着的230亿美金的POS质押ETH提供解锁能力,还伴随有对GAS优化的诸多EIP融入。
随十四君来深入了解即将主网激活的那些EIP提案的作用、原理、应用方向吧
1、背景
1.1 主网升级
以太坊在2015年提出4大阶段:前沿、宅基地、大都会、宁静。众所周知的是”宁静”阶段的标志也正是2个月前以太坊共识算法从POW算力挖矿全面转为POS权益质押挖矿,如今的他是即节能又安全且足够去中心化的首席公链
每次主网升级其命名都是柏林、巴黎、上海这样的地名,历史上还有多次主网升级带来巨大变革
1.2 回顾2021年8月5日-伦敦升级
在区块高度 12,965,000,以太坊完成代号为“伦敦”的硬分叉升级,共涉及五项提案
最有影响的是启动了 EIP-1559,他由以太坊创始人Vitalik·Buterin提出 ,从此以太坊上的每笔交易都将燃烧基本gas费用,这会自动减少ETH的流通供应量,使以太坊代币从此进入通缩时代
举个栗子
EIP-1559改变了价高者得的Gas fee计算逻辑,之前用户为了让矿工及时打包自己的交易,需要加价支付矿工费,出价越高,被优先打包的概率越大,在一定程度上会造成Gas fee的无限增长
升级后,交易手续费分成了基础费和小费,小费给矿工激励竞价出块,基础费会销毁。虽然依旧有竞价出块的部分,但矿工收益大约下降20%,而经济模型也转为通缩式
本质上,1559的设计发挥了次高价竞价模式(second price auction)的优势,最终会让同一区块内所有交易支付的价格基本一致,对用户更公平(即因为支付base价格的交易总是会打包的,区分了紧急交易需求和常规交易需求)
2、上海升级
为何如此急迫?
在过往,一两年才进行一次重大升级是常事,合并共识转换这样的重量级升级都会提前测试网稳定运行1-2年后才会真正步入主网升级,那为什么这次上海升级如此急迫呢?仅仅2月后就基本定案要囊括的EIP呢?
核心因素是,合并后以太坊网络上的所有交易将不再由能源密集型的“矿工”验证,而是由已存入或质押大量ETH的个体和组织“验证者”进行验证。那对于验证者而言,他们质押的ETH可以生成和收集新的ETH,这些所谓的“新ETH”就是他们证明验证交易和保护网络的奖励。
但目前的以太坊,只能存入ETH但不能提取ETH,质押总价值接近 235 亿美元,都被“被困”在以太坊网络上。
如果不尽快开放解除质押功能,则质押ETH的吸引力将大打折扣,后续也就不会有那么多人进入以太坊网络,这无疑会对以太坊的未来发展和网络安全产生巨大影响。
3. 详情解读
根据10-28号最新github提交的上海升级记录
https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md
3.1 EIP-3651:更温暖的 COINBASE
https://eips.ethereum.org/EIPS/eip-3651
他是什么?
这标题的翻译确实很让人迷惑,这里的COINBASE并不是交易所的那家公司,而是来自比特币的概念,即区块中的第一笔交易是笔特殊交易,称为创币交易或者coinbase交易,这种交易早期设计用于矿工打包收集挖矿的gas小费收入。
温暖的和寒冷的,其实指的是此执行此交易时候是否有预先加载,影响矿工打包coinbase交易的gas费
如果无预先加载,是寒冷的,则gas费更高
如果有预先加载,是温暖的,则gas费更低
有什么用?
现在矿工打包的交易可能可以用作更多用途,比如ERC-4337中用于收集用户签名后,批量实现交易,其次也可以用同类原理来实现多种代币结合逻辑的元交易支付等。
在EIP-3651之前,更激励用ETH的支付方式
在EIP-3651之后,更激励用ERC20的支付方式
总之,是一个影响激励的交易类型的提案
3.2 EIP-3855:新增PUSH0 指令
https://eips.ethereum.org/EIPS/eip-3855
他是什么?
对于EVM即以太坊虚拟机(执行合约代码的系统)中,设计有多种指令,但是之前缺少设计了push0即针对0这个数值的压入堆栈的操作指令,
而此EIP则新增了PUSH0( 0x5f) 指令,它将常量值 0 压入堆栈,该指令的需要 2 gas
有什么用?
原先没有push0时导致的是,有一些依赖于0做偏移量的操作,比如远程call调用与返回,则有很多参数是0,原先要操作0,只能使用指令PUSH1 0(即压入一个数字,数字为0),这个操作要消耗3个gas,其次push1 和0各占一个初始化代码的字节存储,导致的是部署此合约的成本也高了2*200gas
该EIP还统计了因此的gas损失:在现有账户户中,有 340,557,331 字节浪费在PUSH1 00指令上,意味着部署损耗达68,111,466,200 gas
总之,是一个降低无意义的GAS消耗的提案
3.3 EIP-3860:提高初始化的代码量限制
https://eips.ethereum.org/EIPS/eip-3860
他是什么?
合约部署时候,有个初始化代码的大小,基于EIP170是限制了initcode大小为24576,而如今则是将 initcode 的最大大小限制提升为 49152即翻倍,并为每 32 字节的 initcode 块应用 2 的额外气体成本
有什么用?
显然,更大的代码容量,可以让智能合约系统做更多的事情,目前代码仅24kb的规模导致很难用一个合约去实现系统,原先的临时解决方案都是分多个合约部署,然后互相相互调用,但显然跨合约引用是个高gas成本的事情。
总之,是一个提高智能合约系统上限以及降低gas消耗的提案
3.4 EIP-4895:信标链将提款作为操作指令
https://eips.ethereum.org/EIPS/eip-4895
他是什么?
可以说,这是本次上海升级的核心。从结果上讲,实现的是质押的ETH提款操作,而实现方式是引入了系统级的指令withdrawal基于信标链(共识层)的信息,无条件地直接控制指定地址的ETH余额。
执行提现操作的方法有很多种,本次的提现操作的特点如下
本身是由系统来发起,而不是用某个用户发起,更简洁易于审查
无gas费消耗,系统发起受到共识层提款限额的控制,无需再用gas来做抗dos防护
直接更新执行层的余额,无EVM执行过程,采用最简实现策略。
有什么用?
别忘了,现在还有1400W个,合计价值 235 亿美元的 ETH被质押“困在”以太坊信标链里。
4 后续以太坊的重心在哪?
下图是近期以太坊创始人VitalikButerin发布的最新路线图,图中绿色部分代表推进的进度,可以看到还有大量围绕性能、安全隐患、隐私、账户体系AA(基于4337)的目标已经找到实现路径
附录
https://www.youtube.com/watch?v=CcL9RJBljUs&t=336s
https://docs.google.com/presentation/d/1N6aX-GE-kus73vlq-v7D-z2iwUI4N4ss1tiPamfoTi4/edit#slide=id.g1231e3828e8_0_89
https://twitter.com/EthereumCN/status/1588825937629835265
欢迎你从后台提交web3行业问题探讨
点赞关注十四,用技术视角带给你价值