解析「上海升级」技术细节及潜在影响:为什么说它很重要?

22-12-16 11:51
阅读本文需 28 分钟
总结 AI 总结
看总结 收起

原文标题: 《 OB30 讲第 4 讲,从 ETH2.0 入门不读不行,聊到上海升级技术细节与深远影响 》
原文来源:OpenBlock Operation


为什么上海升级很重要。因为实际上 ETH 15 年发布的路线图中的四个阶段:前沿、宅基地、大都会、宁静,历经 15 次升级,在上一次巴黎升级中已经全部完成了,有遗憾,但是整体大大超预期。



ETH2.0 新时代路线图的一大特点是更新频繁,在 eth1.0 阶段。每次大更新间隔在 1~2 年的测试才能上马。而 ETH2.0 当中,现在看来每半年就会进行一次大升级。


而上海升级是新路线图六个阶段的第一次升级,其身上的重担不言而喻。就像四年前看 eth 路线图觉得贼画饼一样,现在我们看新路线图也是这种有点梦幻的感觉,又要多少年才能梦想照进现实?


说点粗俗的,可以预见的将来,市场马上就会开始热炒,能蹭上这次上海升级概念的代币了。


那为了解答这个粗俗的问题。我们的文章会分为三个部分。


1. ETH2.0 的新格局


2. 上海升级的具体内容


3. 上海升级,潜在的后续影响


ETH2.0 的新格局,这是一个属于 MEV 的时代


 在 ETH2.0 当中「验证者」替换了从前「矿工」的角色。MEV 收益取代了原来 GAS 费的角色。Liquid pool,staking pool,cex staking 三类矿池取代了从前 pow 矿池的角色。  


1. 验证者取代了矿工


ETH2.0 主网合并后以太坊网络上的所有交易将不再由能源密集型的「矿工」验证,而是由已存入或质押大量 ETH 的个体和组织「验证者」进行验证。任何人只需质押 32ETH 以上,即可满足最低要求,验证节点成为「验证者」。


2.MEV 收入取代了 GAS 费


web3.0 从业者必须尽快普及的一个概念 MEV。我们可以这样阐述,ETH1.0 围绕 pow 展开的 gas 分配游戏,而 ETH2.0 围绕 MEV 展开的套利 gas 消耗游戏。


MEV(Miner Extractable Value),矿工可提取价值,也有译为最大可提取价值(Max Extractable Value),最早由 Phil Daian 在 Flash Boys 2.0 这篇论文中提出。


我们都知道,链上所有动作都以「交易」形式存在,而所有交易由用户发起后,都会进入「内存池(mempool)」中等待被矿工打包,出于利润最大化原则,矿工会按照 gas 费高低来确定打包顺序,这就是 MEV 产生的基本条件,也催生了链上机器人的出现,他们通过高 gas 设置(PGA)来抢跑池子中的交易进行套利。


具体来讲,目前已开发的 MEV 套利,主要是三类:


1. 三角套利 

2. 夹子(三明治攻击.)

3. 借贷清算。


而实际套利捕捉,目前仅仅能实现理论套利的 20% 左右。这一块儿的套利策略开发和套利规模,会随着 eth 的代码完善,性能增强,行情变化逐渐增大。



这样放在地上白捡的利润自然被不少人盯上,据统计数据,自 2020 年至今,全网累计捕获 MEV 金额高达 6.8 亿美金。这同时也造就了一代新星的兴起——Flashbot,帮助节点捕获 MEV 的工具。以及 MEV 捕获赛道的一众花式竞争者,包括但是不限于:KeeperDAO,ArcherDAO,Automata,mistX,BackRunMe 。



MEV 所产生的巨额利润,一直都被圈在矿工和链上机器人的圈子里,最早作为矿池的一种灰色收入被民间戏称「贿赂节点收入」,「最小的 51% 攻击 」。


套利者发现套利机会,贿赂「验证者」,操纵交易打包顺序进行套利。这里面套利者和验证者的分赃过程「既是合作关系,也是博弈关系。本文此处就不过多展开了。  


这种情况一直到 2022 年的伦敦升级和以太坊合并才有所改变。


伦敦升级中通过的 EIP1559 大大改变了矿工们的收入结构


由从前的收全额 gas 费变成燃烧+收小费的模式,而以太坊合并也标志着它彻底改变为 POS 共识机制,「验证者」代替原先比较佛系的「矿工」参与 MEV 价值瓜分,ETH2.0 的节点网络成为一个竞争更激烈的、生态更丰富的 MEV 乐园。这也大大增加了 Flashbot 客户数量,截至目前,近 90% 的以太坊验证者都在运行其 MEV-boost 客户端。


从此 MEV 彻底取代了 gas 费成为了以太坊「验证者」主要收入,gas 费被用来燃烧,造成了 ETH 的长期通缩预期。以目前的数据来说因为 MEV-boost 的引入,以太坊「验证者」的收入从年化 3% 左右提升到了接近 10% 的水平。在 ETH 通缩的前提下,「节点」收入甚至不输于减半之前,为 ETH 的网络稳定打下了基础,和其他 pos 链之间形成了天险一般的壁垒。


3. 新时代的矿池


虽然如同前文介绍过的,在 eth2.0 当中只需要 30 多个 eth 就能成为验证者,个人验证者成功获得奖励平均要两个月一次还是非常困难的。尤其现在涉及到 mev-boost 这样需要频繁维护的技术活,个人验证者总是捉襟见肘。因此对于除了极少数巨鲸,以及孤勇者以外,加入矿池依旧是主流方案,目前的矿池有三类:Liquid pool,staking pool,cex staking。


市场份额如下:



1. 流动性矿池:


中心化程度中等,业务模型以市场份额 88.67% 的 Lido 为例。在 Lido 质押的挖矿收益是以 steth 的形式给的。所有挖矿奖励分为三部分,90% 给质押 ETH 的用户,节点运营商和 Lido 国库各分 5%,同时矿池还会奖励用户和国库 $Lido 挖矿奖励,用户存款凭证为 stETH,因为 stETH 具有流动性,因此被称为流动性矿池。维护 stETH-ETH 交易对的流动性,与$LDO 代币的激励,是该类矿池的主要竞争力壁垒所在。



2. 交易所矿池


中心化程度比较高,矿池收益具体分配方案,管理费用,甚至是抵押 ETH 的来源,都比较不透明。优势是交易所强大的业务背书和商务团队。



3. 矿池


中心化程度极低,基本是去中心的,模式就是没有什么模式。自由抵押,公平分配,管理费相对透明。


劣势是在此次上海升级之前,受限于 ETH2.0 的阶段性局限,目前锁仓的 ETH,都处于坐牢状态,无法赎回。可预见,该类型矿池会成为上海升级之后的主要受益方。



基于以上新经济模型,验证者质押 ETH 可以生成和收集新的 ETH(MEV),这些所谓的「新 ETH」就是他们证明验证交易和保护网络的奖励。


但目前的以太坊,只能存入 ETH 但不能提取 ETH,质押总价值接近 235 亿美元,都被「被困」在以太坊网络上。


如果不尽快开放解除质押功能,则质押 ETH 的吸引力将大打折扣,后续也就不会有那么多人进入以太坊网络,这无疑会对以太坊的未来发展和网络安全产生巨大影响。而在 POS 世界,pos 的抵押量就是正义,维护抵押量是维护区块安全的第一共识。


而这一次上海升级将为链上锁定着的 235 亿美金的 POS 质押 ETH 提供解锁能力,还伴随有对 GAS 优化的诸多 EIP 融入。


上海升级的具体内容


非常可惜,原定上海升级中非常重要的 EIP-4844 最终被确认推迟了。它是 ETH 分片的第一步,可以极大的降低 eth 的 gas 费用。部分操作可以节省 gas 一百倍。


最终被确认更新的提案只剩下十二个提案中的九个。其中第八条关于 ETH 解锁的具体方案最为重要。


1.EIP-3540: EVM Object Format (EOF) v1


EOF 优化


此 EIP 为 EVM 引入了可扩展和版本化容器的预留格式。此预留格式可以实现代码和数据分离优势,从而可以在未来轻松引入各种变化。这一变化依赖于 EIP-3541 所引入的预留格式。


目前,链上部署的 EVM 代码不包含预留格式。代码通常在客户端每次运行前都要进行 JUMPDEST 分析验证,导致了额外的消耗,且无助于代码的更新迭代。本 EIP 中描述的革新引入了一个简单的、可扩展的预留格式,对客户端和编码的要求都相对较低。此预留格式提供了识别并分离代码和数据的分离的功能。这种分离功能对于链上的代码验证器(如 Optimism 等第二层扩展工具所使用的验证器)特别有利。


2.EIP- 3651: Warm COINBASE


节省了 ERC20 相关的无意义 gas 消耗


EIP-3651 于 2021 年 7 月 12 日由 William Morriss (wjmelements) 提出。此提案已经通过并会纳入到上海升级中。这是一个影响激励的交易类型的提案。此提案中提到的 COINBASE 并非大型交易所 Coinbase,而是矿工用于在网络上获取新代币的软件名称。这个概念最初来源于比特币,区块中的第一笔交易被称为创币交易或者 COINBASE 交易,这是一笔特殊交易,用于矿工打包收集挖矿的 gas 小费。执行交易前是否有预先加载被定义为「温暖」或「寒冷」。在 EIP-2929 中,目标不在 accessed_addresses 中时将收取冷账户访问成本(COLD_ACCOUNT_ACCESS_COST),此时的首笔交易为未预先加载(寒冷)的,收取的 gas 费用会偏高,而预先加载后(温暖)的交易,gas 费用则会降低。


William Morris 在提案中提出现阶段在平台上的每笔新交易都必须与 COINBASE 软件进行多次交互,由于软件需要「预热」,第一次 gas 成本会更高,随着交互次数的增加,gas 费用会逐渐降低。Williams Morriss 在 EIP-3651 中提出可以将 COINBASE 软件从一开始就保持「温暖」的状态(预先加载),并在 accessed_addresses 中包含 COINBASE (0x41) 返回的地址,从而改变矿工插入的首笔交易的 gas 费用,并以此鼓励 ERC20 代币的支付方式。此提案的好处在于 EIP -3651 推出后矿工打包的交易可以用于更多的用途,gas 费用成本会降低。同时在 EIP-3651 推出前更倾向于使用 ETH 支付,而推出后将更鼓励使用 ERC 20 的支付方式。上海升级中通过的另一项提案 EIP-3855 也是一个用于降低无意义的 gas 消耗的提案,两项提案的实施都将很大程度上降低以太坊 gas 费用的成本。


3.EIP-3670: EOF - Code Validation


EOF 优化


配合 EIP-3540 合约创建时引入代码验证。拒绝未定义指令的合约。这样在合约创建时,就可引入代码验证。拒绝包含截断的 PUSH-数据或未定义指令的合约。


4.EIP-3855:新增 PUSH0 指令


是一个降低无意义的 GAS 消耗的提案


对于 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。


5.EIP-3860: Limit and meter initcode


提高智能合约系统上限以及降低 gas


通过引入 initcode 的最大大小限制 (MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152),扩展了 EIP-170。即将 initcode 的最大大小限制从 24576 提升为 49152,即翻倍。同时为每 32 字节的 initcode chunk 引入 2 个 gas 费用,以表示 jumpdest-analysis 的成本。


目的:在合约创建过程中,客户端必须在执行 initcode 之前对初始化代码执行 jumpdest-analysis。所执行的工作随 initcode 的大小线性扩展。基于 EIP170 是限制了 initcode 大小为 24576,而如今则是将 initcode 的最大大小限制提升为 49152。原先的临时解决方案都是分多个合约部署,然后互相相互调用,但显然跨合约引用是个高 gas 成本的事情。显然,更大的代码容量,就意味合约大小可以扩展一倍,合约开发者可以部署更丰富的功能。简言之,EIP-3860 目的是支持更大型的 Dapp。


6.EIP-4200: EOF - Static relative jumps


优化 EOF,节省 gas.


引入了三个新的 EVM 跳转指令(RJUMP、RJUMPI 和 RJUMPV),它们将目标编码为带符号的立即值。这些在大多数(但不是全部)用例中都很有用,并且可以降低成本。


7.EIP-4750: EOF - Functions


优化 EOF,节省 gas.


引入了两个新的操作码 CALLF 和 RETF 来调用这样的函数并从中返回。此外,还引入了 JUMPF 指令来执行到函数的跳转。不允许使用动态跳转指令。


EIP-4200 引入了静态跳转指令,它消除了大多数动态跳转用例的需要,但并不是所有的事情都可以用它们来解决。


该 EIP 旨在消除动态跳转的需要并禁止动态跳转,因为它提供了最重要的功能:调用函数和从函数返回。


此外,它旨在通过对每个给定函数的输入和输出数量进行编码并隔离每个函数的堆栈(即函数无法读取调用者/被调用者的堆栈)来提高分析机会。


8.EIP-4895: Beacon chain push withdrawals as operations


本次上海升级的核心: 支持验证者通过新的「系统级」操作类型从信标链提款到 EVM。


此 EIP 将引入一个系统级「操作」来支持从信标链「推」到 EVM 取款。目前有约 1400 万枚 ETH 任被质押在信标链中。此提款操的运行将意味着以太坊信标链质押提款功能将被激活。


目的:这个 EIP 为信标链上的验证者提款提供了一种进入 EVM 的方法, 从而实现质押 ETH 的提款操作。实现方式是基于信标链共识信息,系统无条件地直接控制指定地址的 ETH 余额。在此方法下不产生 gas 费消耗,且无需再用 gas 来防止 dos 攻击。总而言之,EIP-4895 的目的就是实现质押提款功能。


9.EIP-5450: EOF - Stack Validation


EOF 优化

引入代码段的扩展验证,以保证在执行验证合约期间不会发生堆栈下溢。


当前现有的 EVM 实现对每条执行的指令执行大量有效性检查,例如检查堆栈溢出/下溢、是否有足够的 GAS 等。此更改旨在通过在部署时验证来最大程度地减少运行时所需的此类检查的数量-没有异常情况发生的时间,并防止在可能发生的地方部署代码。


特别是,这种扩展的代码验证消除了对每条执行的指令进行 EVM 堆栈下溢检查的需要。它还会阻止部署可静态证明需要超过 1024 个堆栈项的代码,但在某些情况下仍有可能超过该限制,因此无法完全消除溢出检查。


ETH 上海升级 解锁质押方案


流失限制系数(Churn Limit Quotient)


根据社区的最新提案,验证者可进行部分提款和全部提款,且出于安全性考虑,提款数额和验证者的退出速率会受到限制。提款的每个 Epoch 最大可提取数量被设定为 512 笔,按照现有的验证者数量,他们可 4 天(验证者总数/(512*225)提取一次奖励。按当前验证者近 33.9 ETH 的平均余额来算,以太坊市场每天最大面临的平均抛售压力为 23 万枚 ETH,4 天累计数额为 92.1 万枚。


其中,全部提款中的退出速率则会受到限制,退出机制引入了「流失限制系数」(Churn Limit Quotient),ETH 提现的限制为每天 X/ETH,其中 X 为验证者总数量/65536,目前每个 Epoch 仅能激活 7 名验证者被允许退出,即每天(225 个 Epoch)1575 名验证者。若按每名验证者均持有 32 ETH,则每天流出的 ETH 超 5 万枚。当然,提款速率还会根据质押的 ETH 总量进行调整,以防止大量资金外流及攻击者进行罚没攻击。而部分提款则没有具体的提款次数限制。


需要注意的是,验证者的有效质押余额需在 32 ETH 以上,如果低于这个数额将无法获得全部质押奖励,或余额低于 16 ETH 时还将被逐出验证者行列。当前,验证者待定的提款方案分为部分和全部提取质押金,其中部分提款允许验证者提取超过 32 ETH 的部分,全部提款则提取所有质押金后退出质押行列。


不过,近期开发者 Potuz 提出新方案称可取消处理提款队列


即取消在区块内全部和部分提款队列的逻辑,建议使用验证者 index 来处此问题。原因在于以太坊上的每个验证者在信标链上被激活的时都会被分配到一个号码,在不使用上述排队退出的情况下,信标链可根据一个区块可以处理的提款上限数来扫描验证者,然后按照验证者的 index 号码的升序排列处理每个验证者的提款请求。目前,开发者们正对此方案作为备选方案进行研究。


后续影响:


我们可以看到本次升级的主要目的是做 EOF 的细节优化,降低 gas,以及释放 beacon 链锁仓的 ETH。不在这条主线上的 EIP-4844,1153,2537 尽管也非常重要,但是都被推迟延后了。


• 那么长期直接收益的还是那些被 gas 卡脖子类的复杂合约赛道。ETH 的 pos 抵押量最终会长足增长。


• 中期收益的是围绕着验证者规模为中心的一些 mev 相关整个生态链,尤其是传统矿池。


• 短期收益不知道一些能蹭到「上海」概念的 meme 能不能有偷鸡的机会。随着 ETH 抵押的释放,一些坐牢了好几年的 ETH 可能会对市场产生一些潜在的短期抛压。


原文链接



欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交