上海升级:以太坊最新技术路线深度解析|HashKey Capital 首期播客
HashKey Capital
2023-04-14 19:45
订阅此专栏
收藏此文章
imToken 首席科学家陈昶吾与 HashKey Capital 高级技术研究员 Zeqing Guo 硬核解读上海升级的背景、目的、技术路线及其对以太坊生态的潜在影响。


主持人:Siya(HashKey Capital),嘉宾:陈昶吾(imToken 首席科学家)、Zeqing Guo(HashKey Capital 高级技术研究员)

整理:Peng SUN,Foresight News


4 月 12 日,HashKey 首期播客节目《Hash Out 42》邀请 imToken 首席科学家陈昶吾和 HashKey Capital 高级技术研究员 Zeqing Guo 围绕上海升级,探讨此次升级的背景、目的和技术路线,并进一步思考上海升级可能会对以太坊生态带来的影响。



Siya:请问 4 月 12 号上海升级的时间确定吗?


陈昶吾:大概在 Epoch 194048 ,上海时间 4 月 13 日上午 9:30(升级确切时间为 2023 年 4 月 13 日 06:27),这不同于以前的 PoW,PoW 出块时间不确定,可能 20 秒、可能 10 秒。切换到 PoS 后,出块时间基本上都是固定的 12 秒,所以就不会像以前一样,达到一个区块高度可能会有不一致的时间,但是现在基本是固定的。


Siya:为什么这次升级叫上海升级,以太坊与上海有什么渊源?这个问题的话请一下郭老师来回答。


Zeqing Guo:上海升级与 HashKey、万向的关系比较紧密。Vitalik 去中国做社区、找投资,然后学会了讲中文。当时,他通过分布式资本的沈波找到万向的肖总。我记得很清楚,整个以太坊社区在 2016 年缺乏资金进行开发,社区有些担心会不会做不完以太坊,肖总得知这件事后说可以为以太坊提供 50 万美元的赞助。从那时起,HashKey 与以太坊的联系就逐渐建立起来了。之后,肖总和以太坊基金会在 2016 年在上海举办了一次黑客松,当时出现了很多项目,其中 imToken 是当时崭露头角的项目。因为大家合作得比较愉快,所以以太坊第三次开发者大会就在上海北外滩茂悦酒店举办,这是一次正式的以太坊开发者大会。因为以太坊的大版本升级都是跟开会地址有关,所以这也是上海升级的命名方式,当时在上海举办了 Devcon。所以,上海升级与 HashKey、imToken 之间有很多渊源。


Siya:两位认为上海升级是否能够顺利进行呢?我们听说之前以太坊测试网进行上海升级时出现一个意外,其中发生了什么波折?


Zeqing Guo:以太坊上海升级的测试网实际上出现了一些意外。当时大家按照到某一个区块开始升级,但是到了那个区块之后,升级并没有顺利进行。主要原因是当时整个测试网上很多的客户端没有升级到最新的版本。结果就是有的版本客户端在这个区块进行升级,但有的版本客户端并未升级,导致测试网升级失败。但我个人认为,在主网上不太会发生这种情况。因为在主网上运行节点时,假设客户端没有升级到最新的版本,那么整个验证效率就会更低。也就是说每天进行 PoS 质押收益会更少。在这种情况下,主网上的客户端紧跟着版本升级的比例比测试网要高很多。主网上的上海升级应该是 4 月 13 日,我认为能够顺利进行。


陈昶吾:我认为主网上海升级是可以顺利进行的。过去一段时间在测试网,其实原本应该在某个 Epoch 的时间,在后面其实在四、五个 Epoch 之后才完成分叉,具体原因就是整个 PoW 共识通过投票才有效。譬如要超过 2/3,这个 Epoch 才有效,连续两个 Epoch 都获得 2/3 以上的投票之后,才真正能够确定下来。这跟共识一样,每次软件升级当部分客户端版本没有升级时,它们相当于在运行另外一个版本,而新的客户端就在运行最新的根据分叉后所设定的版本。当旧的客户端没有完成升级时,就无法参与 Epoch 投票,因此也无法获得 2/3 以上的投票,导致整个升级的时间会往后延长。不过,这跟 PoW 不同,PoS 主网上设有惩罚机制,这种经济模型会促使客户端更积极地进行升级。否则当客户端疏漏一些 Epoch 或投票时,它们会受到惩罚。所以,我认为 4 月 13 日上海升级应该能够顺利进行。不过这也提醒我们不管是过去的 PoW 还是 PoS,所有的客户端都要记得升级。我们要有一些新的工具或在 Etherscan 等上设置倒计时来提醒大家完成升级。


Zeqing Guo:在使用 PoW 共识机制时,曾经出现过客户端不及时升级导致 PoW 硬分叉失败的情况吗?


陈昶吾:按照我之前在交易所的经验,每次完成 PoW 后,当网络到达新的区块高度时,我们不会立即认定该网络已经完成了硬分叉。因为我们会观察它的算力。我们会根据网络当前的出块时间和难度值回推整体算力的水平。譬如,如果原先几个 TH/s 的算力突然掉了 20% 或 30%,我们认为整体算力下降了。从 PoW 的角度来看,该网络实际上处于一个脆弱期。因为原本是 51% 攻击,如果算力下降了三成,就很容易进行硬分叉攻击。在交易所时,我们通常会观察整体高度过了之后,算力都回到原来的 90%,然后我们才会开始交易。否则,就很容易出现一些攻击手段。


Zeqing Guo:以太坊转向 PoS 之后,网络实际上稳定了很多。


陈昶吾:没错,因为这些验证节点当下验证的 Epoch 已经预先被选出来,它们质押的 ETH 不会因为分叉前或分叉后而导致数量不一致。相较于过去的 PoW 网络,我认为现在 PoS 网络更稳定。


Siya:以太坊上海升级的内容有哪些?除了 EIP-4895 允许提币外,还有哪些值得关注的亮点?


陈昶吾:这次硬分叉叫作 Shapella,Shapella 由两个字结合而成,包括 Shanghai 与 Capella。Shanghai 代表了在执行层共识机制的改良,Capella 指的是在共识层的一些改动。当我们提上海升级的时候,主要指的是执行层的改动,包括几个 EIP。


譬如,EIP-3651(Warm Coinbase) 指的是对 Coinbase 地址进行预热,Coinbase 地址是矿工挖矿奖励的接收地址。目前 Coinbase 地址没有预热,每次存取该地址都需要 2600 Gas 的开销。经过预热,用户第一次存取地址后,再次存取只需 100 Gas,这样就可以节省 2500 Gas 的费用。现在 Coinbase 允许 conditional payment,由于某些 MEV 机器人或出块奖励会涉及到在矿工或验证节点之间的分配问题,因此 Coinbase 预热变得非常重要。它可以帮助节省大量的 Gas 费用,这也包含在 EIP-3651 中。


EIP-3855 引入 PUSH0 操作指令,过去有 PUSH1 到 PUSH32 32 个 Opcode 用来将数值 0 存入 EVM 的 Stack 中,但 PUSH1 解码应该是 6000,占了两个字节,一个字节是 200 Gas,两个字节就是 400 Gas。具体来讲,每次合约在调用或部署时,PUSH0 出现频率比较高,而 PUSH1(0x00) 会导致非常多的开销。开发者在计算统计时发现,过去没有为 PUSH0 这个特殊指令做的动作,竟然在网络上耗费近 40% 的 Gas 开销,所以后来就引入 PUSH0 来节省 Gas。


EIP-3860 指的就是一些 Gas 的调整,譬如在合约这方面 calldata 的大小限制。


EIP-4895 可能是上海升级最重要的,它引入了在信标链上可以提款的协议规则。该规则可以看成两个部分,其一是完全提款(full withdrawals),如果是验证节点,可以将 32 枚 ETH 以及更多的 ETH 提现;其二,在这次的提款中,引入了一个半自动化的部分提款(partial withdrawal),这指的是一开始质押了 32 枚 ETH,但由于每一段时间会收到奖励或出块得到交易的手续费,质押收益累积的 ETH 会大于 32 枚,这部分未来会处理 16 个提款请求。最终,每次处理到的时候,就会把每个验证节点的账户余额扣掉 32 枚 ETH 后,剩下的余额会自动退换到验证节点所设置的提款地址中。32 枚 ETH 就是本金,这是用来参与 PoS 共识机制的,剩下的奖励每隔 5 天会退还到提款地址中,这主要就是 EIP-4895 的改变。


最后一个是 EIP-6049,之前有一个叫作「self-distruct」的 Opcode,可以销毁当初所建立账户。这个 Opcode 在过去一段时间里已经很少,基本都被弃用了,这一次的 EIP 并不是消除这个功能,只是加上了一些警告性字眼。也就是说,新的 Opcode 在没有新的修正功能之前,开发者要小心,不要使用到这个 Opcode。这个 Opcode 在未来的修正估计要到下一次的硬分叉或之后。因为我已经看到下一次硬分叉已经有提到是否要增加「self-distruct」的新用途。就此次而言,我认为这不是一个真正改动的功能。


以上就是本次上海升级在 EIP 方面的主要改动。


Siya:除了上述的 EOF 之外,郭老师还有其他想要补充的亮点吗?


Zeqing Guo:我补充一个小故事。譬如,为什么会有 EIP-6049,这其中有一个很长的故事。之前有一个团队,在黑客松上发现了一个指令,即在某个时间点销毁之前创建的合约,并删除其中存储的数据,之后返回一部分 Gas,减少 Gas 消耗。后来在一次黑客松上,有人发现它有一个很好的用处,在链上 Gas 费很低的时候,大量地生成一些带有销毁指令的合约。在 Gas 费很高的时候,可以调用这些指令将其销毁,这样就会返回一部分 Gas。这也就意味着,在 Gas 费很低的时候买了期权,在 Gas 费很高的时候将其卖出,这样在 Gas 费很高情况下,就可以省钱。这在 MEV 套利中被广泛使用,造成的后果是整个网络上变得更加拥堵,因为有很多人会在 Gas 费较低的时候生成大量智能合约,随后在 Gas 费高的时候销毁掉,导致链上产生很多垃圾信息,给节点造成一定负担。


其次,还带来了一些神奇的攻击。譬如,Argent 在 2020 年开放给用户使用时有一个功能,即补贴手续费,所有 Gas 费会从官方钱包中进行垫付。这里有一个漏洞利用,通过垫付的手续费去调用一个合约,并用这个合约生成一些具有销毁功能的智能合约,其实是用 Argent 的资金从事这一活动,这些合约可以发成 ERC-20 代币,这些币可以直接卖出,也就意味着 Argent 补贴费被套利套出来。1inch 也发生过类似问题,团队曾和矿工进行补贴,这些交易也可以被利用生成一些具有销毁功能的合约,通过发成 ERC-20 代币卖出。后来出现过很多攻击事件,但随着不鼓励使用这个 Opcode 而逐渐消失。


Siya:此次以太坊上海升级的一个亮点是允许质押者提币,你们认为代币解禁会导致质押者解锁抛售吗?大量质押者解锁是否会影响网络整体的稳定性?


Zeqing Guo:我认为不太可能抛售,原因有几点。过去两年时间的质押者可以分为两类,一类是在 2020 年到 2021 年初参与质押的,他们肯定不会抛售,因为他们是在牛市或牛市的最高峰的这个时间去质押的,他们可能抱着几年之内拿不出来的决心,他们肯定是非常标准意义上的 HODL,对以太坊非常有信仰。这部分代币占比约 20%,他们在牛市都不打算卖,我不相信在熊市他们愿意抛售这些币。


其次,除此之外,还有一大部分是通过各种质押服务去质押,例如 Lido、Coinbase,这应该是链上质押服务最多的一部分。这批质押者是有想法去抛售的。但是这里有一个问题,在 Lido 和 Coinbase 中,他们实际上发行了一个质押的流动性代币,例如 Lido 的 LSD 代币是 stETH,Coinbase 的 LSD 代币叫 cbETH。你可以直接将 stETH 卖成 ETH,然后将 ETH 卖成美元,通过这种方式可以直接退出流动性质押。如果有一些机构或个人想在上海升级解锁跑路,如果他们用的是 stETH,那么很可能在上海升级之前就先跑掉了。也就是说,市场上应该已经开始出现所有 stETH 和 cbETH 的抛售情况,但从不到 1% 的折价率可以看出,这一部分抛售在市场上的影响也不大。


从这两点来说,一部分 HODL 牛市不卖、熊市也不会卖,另一部分可能已经从 stETH 这个渠道跑掉,这两部分应该都不会有太大的抛售。除此之外,还有一个很关键的点就是以太坊每一个区块能够解锁、取消质押的代币的数量是有限制的。大概来说,可能每天只有 1800 个节点可以解除质押,对应到以太坊的数量,可能每天有 57,600 枚左右 ETH 可以提出来,实际上不是很多。对于以太坊上的链上抛压,大家可以对比一下比特币每天的挖矿产出。


最后一点,因为整个 LSD 会变成可以双向交换的东西,那么我认为上海升级之后会有各种各样的 DeFi 玩法,这种玩法在某种程度上会把一些外界之前不感兴趣的给锁进去。过去很多大户不太敢锁币,因为锁住了不知道何时能够提出。其次,锁住后的收益可能相比其他的一些协议没有高太多,现在可能是 4.5% 左右的一个收益,但是当可以提款后,这上面可能有很多 DeFi 新玩法与各种套娃方式。首先它的收益会变得更高,其次大户会觉得可以随时退出,可能很多之前不敢质押的大户会冲进去质押,这些质押的比例也会抽调一部分能够解除质押退出来的比例。


综上所述,我认为抛压不会太大,这可能是一个对价格而言不会有太大负面影响的比例。


陈昶吾:其实我的观点跟郭老师很像,但是我认为以太坊上海升级之后支持提币,对于所有质押者的风险相对比较小。因为大家会认为 PoS 网络的共识协议已经进入稳定的状态并且已经可以提币,因此对于整个质押生息机制相对会比较认可,从长期来看会吸引更多的用户愿意将更多的 ETH 质押在以太坊内。


至于在上海升级之后,会不会因为可以提币导致更多人去抛售,我补充另外几个看法。其一,我同意刚刚郭老师讲的,想跑的早就通过 stETH 降低风险。其二,我认为跟现在的中心化交易所相关,因为现在中心化交易所也有很多给小散户的质押代币,所以基本上他们就是代表这些小散户去做质押。也就是说,我收了你的 ETH,凑了 32 枚,再把它放进去质押。这部分可能会有一些问题,原因在于美国 SEC 会针对 Coinbase 等大型中心化交易所提出涉及合约监管的问题,它们可能会把 ETH 认为是质押生息,并当成是一种证券代币。这样的观点或主张未来会不会持续或者会不会对整体有什么风险,我们并不知晓。


至于大量解锁会不会影响以太坊网络的稳定性,我的看法跟郭老师很像。整体来讲,Withdrawal 有数量上的限制,如果有大量解锁,那就代表少数质押者的整体 API 收益是高的。从经济模型上来讲,也可以吸引更多人进来做质押。从长期来看,我认为还是有大量的质押者会进入。从中短期来看,或许会有部分人在这一段时间去解锁,但是我不知道会不会抛售。总体来说,我认为不太会影响到以太坊网络的稳定性。


Siya:机构投资者是否会因为上海升级支持提款而更愿意参与质押?


Zeqing Guo:我觉得是,因为机构需要对他的钱高度负责,举个最简单的例子,之前硅谷银行倒闭导致很多的机构钱取不出来,让机构会很紧张。因为机构投资者的钱可能是别人给他的,它需要高度保证这个钱的流动性安全。假设在某一个时间点,出资方急需这个钱去用,但是退不出钱,在这种情况下就会很尴尬。


上海升级之前的以太坊就有同样的问题。如果说机构要存以太坊,负责这个项目的责任人肯定要去回答老板的一个问题,即何时能把钱取出来,如果我不能把钱取出来,机构的封闭期都已经过掉了,那么就可能会出现很大的一个问题。对机构投资者来说,上海升级之后可以取出钱来对他们是一个具有高度确定性的事情。投进去的钱在想取出来的时候能够把钱给取出来,这对于机构投资者的吸引力相当大。我觉得在上海升级之后,会有很多大户和机构投资者愿意去参与这件事。这是比较顺理成章的事情。


陈昶吾:我也同意。从机构方来看,如果我们现在有很多的 ETH,想要把 ETH 的仓位提升,这个时候你就要去想在整体的市场上有没有好的投资策略,可以让我们做这些事情。投资策略肯定有的,接下来要考虑的就是投资该项目的风险,又或者会不会因为投资这个项目导致我的币暂时提不出、有流动性风险,这几件事情结合起来都可以看到过去这一两年 FTX、Luna、硅谷银行等事件的影子。回头来看,如果 PoS 网络的控制协议是成功的、稳定的,有固定的生息(约 4% 的年化),那也就是说基本上什么事都不做,或者要把 ETH 质押在这,就有一个稳定的收益,这对于长期看好 ETH 的机构或投资者,从风险方面来讲会是很多人可以接受的。


Siya:因为这个质押有点像传统金融的固定收益类工具,所以理解成本与风险都更低,对机构投资人来说是比较有吸引力的。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

HashKey Capital
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开