Title: Northern Sea in the Moonlight
Creator: Caspar David Friedrich
Creator Lifespan: 1774-09-05/1840-05-07
Creator Death Place: Dresden
Creator Birth Place: Greifswald
Date Created: 1823/1824
Type: painting
前言
在一篇文章中,主要为大家介绍了以太坊升级的原因、路线和当前进展。当前,以太坊 Merge 时间节点将至,那么 Merge 后将会对以太坊本身、以太坊生态和整个公链造成什么影响?本文将详细展开。
对ETH的影响
ETH通缩
目前,业界最关注的问题要属以太坊Merge后,很大可能就使得ETH进入了通缩时代,具体有以下几个重要原因:合并后 的ETH 产量将减少、EIP-1559 会烧毁 Base Gas 费,同时用户被鼓励质押 ETH使得 ETH 的流通量降低等因素。
而 无论ETH 的通胀还是通缩都取决于 2 个因素,分别是 ETH 的年产量(新增量)和 ETH 作为基础费每年被燃烧的量(销毁量)。但是由于以太坊网络本身造成的ETH燃烧销毁率并不确定,如以太坊网络拥挤的时候会多销毁一些,不拥挤的时候销毁得少一些,因此本文的数据均以当前实际数据为依据进行估算。
以太坊合并前每年的发行量大约为550万ETH,该新增主要来自两部分:出块奖励和信标链上ETH的质押奖励。其中出块奖励归矿工所有,平均每13.3秒产出2.08个ETH,以太坊一年产生的出块奖励大约为490万ETH,但该奖励在合并后将被取消;而质押奖励则一年大约会生成60万ETH。
目前根据 Ultra Sound 数据,ETH 的年发行量占总供给量的 4.3%,扣除销毁的基本费用(Base Fee),年净发行量约占总供给量的 3.7%。
图源自Ultrasound.money
而以太坊合并后,由于PoW共识转向PoS机制,所以出块奖励将被取消,这将造成年发行量减少约90%,社区将这种情况称为“Triple Halvening”,因为这相当于 3 个比特币的“减半”同时发生(比特币每 4 年将其发行率减半)。按照目前被质押的ETH总量(大约1330万),来计算信标链上验证者们的质押奖励,每年新增的ETH大约为60万枚,仅占总供给量的0.3%。
合并之后的数据预测(图源自Ultrasound.money)
据 Ultra Sound 数据,2021 年以太坊转伦敦升级后,381天内共销毁了约260万 ETH。平均下来,每年因基础费销毁的ETH数量约为250万。
图源自Ultrasound.money
综上,由上文数据可知,目前ETH的销毁量(250万 ETH)远大于新增量(60万 ETH)。因此,合并后,除非 ETH 质押量剧增,否则质押产生的 ETH 奖励将远远达不到Gas 燃烧造成的ETH销毁量,这使得以太坊极有可能进入通缩时代。通缩率大约为:
(250万 - 60万)/ 1.2亿 = 1.58%
合并后以太坊呈现通缩趋势(图源自Ultrasound.money)
质押和收益
截至目前,已经约有 有约1330 万 ETH 被质押,约占ETH总量的11%。这些质押的ETH由大约40万个验证者提供,他们可以获得年利率约4.6%的收益。
随着两条链的完全整合,质押收益率将会增加,因为目前以太坊的奖励除了给质押者还包括支付给矿工的费用。而随着越来越多的交易手续费和MEV将奖励给给验证者,质押合约的盈利能力最终应该会提高。以下是Ultra Sound 的数据预测,可以发现质押验证者的年收益率将从 4.6% 上升到 8.9%。
图源自Ultrasound.money
另一方面,验证者质押收益的上升,也会吸引更多的 ETH 持有者进行质押。
结合 EIP-1559 的销毁策略,长期来看,大概率造成通缩效应,流通的 ETH 变少,则有可能
造成ETH价格上涨,这将间接再次增加验证者的质押收益。
硬分叉
在最近的ETH Seoul上,当谈及以太坊升级可能导致的硬分叉问题时,V神表示:“我不认为这(以太坊PoW分叉)会被大量、长期地采用。”但他承认,“在此期间,一些市场可能会出现一些问题”,并补充说,“我希望无论发生什么,都不会导致人们赔钱。”此外,V神还谈到了ETC,称它为支持PoW价值和偏好的人提供了“卓越的社区和卓越的产品”。
那什么是硬分叉呢?
硬分叉是指当区块链的区块格式或交易格式(即“共识”)发生改变时,未升级的节点拒绝验证升级后的节点生产出的区块,而升级后的节点可以验证未升级节点生产出的区块。但是由于全网升级后的节点占据大多数,所以升级后的节点出块速度比未升级节点快,这使得升级后节点生成区块的所在链将成为最长合法链,然而未升级节点始终拒绝承认升级后节点的区块,会独立在自己所在链继续出块,最终造成区块链分成两条链。
以太坊的硬分叉相关讨论并非首次。早在2016年7月份以太坊就进行过一次硬分叉,这次分叉的原因是旨在将被黑客盗窃的THE DAO资金转移到另一个由投资者掌控的账户,并试图回滚黑客的攻击交易。以太坊的这次硬分叉大多数以太坊开发者都参与了,另外交易所、创业公司和该生态系统中的其他成员也参与了。分叉几天之后,该项目恢复了常态。但是并非所有人都想进行硬分叉,他们认为这违背了区块链的不可篡改性。于是一小部分矿工继续使用原来的区块链,以此作为一种抗议,他们将硬分叉描述为是对The DAO这个废弃项目的抽资行为。由此Ethereum Classic(ETC)以太经典就诞生了,而分叉产生的新以太坊就是ETH。但是 ETC 和 ETH 都是使用的 PoW 共识算法。
而本次以太坊由于升级而可能产生的硬分叉则不同。当前以太坊经过了多年的发展,已经汇聚了海量的资金,发展出了最丰富的生态系统。但是如果以太坊此次再次发生硬分叉,则会因为分叉链和原链共享同一历史账本,导致存在两份完全相同的 USDT、USDC 以及 wBTC 等不可复制的资产,这些多出来的中心化稳定币会因为无法兑现为法币导致价值归零,最终造成分叉上产生灾难性后果。
对以太坊生态的影响
矿工
自从 2020 年以太坊开始大火后,ETH 的价格也一路高歌猛进,巨大的利润空间吸引了大批区块链矿工蜂拥而入。从 Arcane Research 的资料来看,2022年以太坊挖矿实现了高达110亿美元的收入。这个数字比在比特币挖矿要高。
但是以太坊的升级将会改变这一局面, 因为以太坊由PoW转向PoS后,这一共识机制的改变将使得原有的矿工无法继续参与挖矿,继而引发“挖矿”行业的地震。因此升级并非对所有人来说都是好事,尤其对矿工而言。
据 2miners 数据显示,2022 年 5 月,以太坊的哈希率(对加密货币挖掘工具算法能力的一种度量,简单理解即为算力)达到顶峰,随后哈希率一直呈下降趋势,原因可能是由于矿工意识到合并在即,逐渐关闭矿机所致。
Ethereum哈希率(算力) 图源2miners.com
那么,在以太坊合并成功之后,矿工们又该何去何从呢?其中,目前仍有少数矿工支持继续在以太坊上继续挖矿,但这一举动可能造成的硬分叉风险在上一章已经阐述过,同时由于难度炸弹的存在,使得继续挖矿的难度变得越来越大,但是获取到的收益却却来越小。鉴于此,合并之后,矿工们可能会采取以下替代方案:
- 挖掘其他 PoW 代币
- 提供高性能计算的数据中心
- 为 Web3 协议提供计算
- 出售矿机,质押挖出的 ETH 参与 PoS
MEV
MEV 即(Maximal Extractable Value),即最大可提取价值,指的是通过在区块中添加和删除交易并更改交易在区块中的顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。
当前的MEV
MEV来源于市场信息的不对称。为了缓解信息不对称和减少MEV的负外部性,行业内出现了许多创新,其中包括Flashbots。理论上讲,在使用 PoW 共识时,矿工可提取价值的累积完全取决于矿工,因为矿工是唯一能保证可获利的挖矿行为得到执行的一方。 但实际上,大部分 MEV 是由称为“搜索人”的独立网络参与者提取的。 搜索人在区块链数据上运行复杂的算法来检测盈利的 MEV 机会,并且有机器人自动将这些盈利交易提交到网络。矿工和“搜索人”都从内存池(mempool)中寻找 MEV 机会,他们在正确的位置中插入交易以提取预期的 MEV 。常见的 MEV 策略包括:套利、清算、抢先交易、三明治攻击和反向交易。
- 矿工
普通矿工可以访问内存池中的交易,该交易汇总了所有等待处理的未提交交易。有些人也可能直接接受来自用户的私人交易,而不通过内存池。矿工会按照gas费顺序对这些交易进行排序,并在 MEV 机会出现时插入他们自己的交易。在这种情况下,对于一些高度竞争的 MEV 机会,例如 DEX arbitrage, 搜索者可能必须向矿工支付 90% 甚至更多的 MEV 总收入,因为很多人同时想运行同样的套利交易,而确保套利交易运行的唯一方法是提交最高 gas 费用的交易。
- Flashbots
Flashbots 是一个独立的项目,它将 go-ethereum 客户端扩展,提供的服务使搜索人能够向矿工提交 MEV 交易,而不向公共内存池披露。 这就防止了交易被通用领跑者领跑。
Flashbots 有三个主要组件:搜索者、中继器和矿工。搜索者所扮演的角色是出于套利、清算、抢先交易、隐私、MEV 保护等原因提交交易的人。中继器是矿工和搜索者之间的中间件,它验证从搜索者那里收到的捆绑交易并将推送给 Flashbots 矿工。中继器至关重要,因为它们在处理交易包(例如合并包)方面提供了灵活性,并防止了对矿工的 DOS攻击。
- 通用的领跑者
一些搜索人并没有编写复杂的算法来检测盈利的 MEV 机会,而是运行通用的领跑者。 通用的领跑者是监控内存池以检测盈利交易的机器人。 领跑者将复制潜在的盈利交易代码,用领跑者的地址替换其地址。然后在本地执行交易,重复检查修改后的交易是否给领跑者地址带来利润。 如果交易确实有利可图,领跑者将以更替地址和更高的 gas 价格提交修改后的交易。 “领跑”原始交易并获取原始搜索人的 MEV。
图源自 explore.flashbots.net
合并后的 MEV
在现行合并前的交易市场里,区块提议者 (当前是矿工,合并后是验证者) 直接通过查看交易池里里的交易,按照其支付的Gas费从高到低选择交易并打包为区块,再将该区块广播上链。而在以太坊合并升级后,验证者将取代矿工。但是在协议级别没有内置机制来帮助验证者捕获 MEV。如果不加以控制,这种结构将使专业公司和更大的实体通过设置多个验证者和构建最佳区块的策略来更好地捕获 MEV。其他验证者将无法有效竞争。为此,V神提出了区块提议者/构建者分离 (PBS,Proposer Builder Separation) 方案。
PBS 方案是指把交易打包为区块的角色从区块提议者上分离出来作为构建者 (buiders),他们构建区块主体 (exec block bodies),主要包括一个有序的交易列表,这些列表上的交易会成为区块里的主要负载 ,接着针对打包生成的区块提交对应的出价。而原本的提议者(Proposer)将不再负责区块打包,其工作就只是接收出价最高的执行区块。提议者 (和其他所有人) 在整个区块选择过程中以及选择之后都不知道任何执行区块主体里的内容。这种区块确认前的隐私性 (pre-confirmation privacy)可以防止矿工窃取 MEV,这从本质上否定了矿工对区块交易排序任务的权限。再结合上一篇文章中提到的,所有的信标区块和分片数据都会被一个由随机验证者组成的委员会进行统一验证,就能使 MEV 市场化,解决潜在的验证者中心化问题。
目前,Flashbots 基于 PBS 创建了一个名为 MEV-boost 的方案。使用 MEV-Boost,验证者可以从构建者市场访问块。构建者生成包含交易订单流的块和块提议验证者的费用。将提议者与区块构建者的角色分开可以促进以太坊的更大竞争、去中心化和抗审查性。
图源自 flashbots github
PoS 节点运营商必须运行三个软件:验证者客户端、共识客户端和执行客户端。MEV-boost 查询块构建并将其外包给构建者网络。块构建者准备完整块,优化 MEV 提取和公平分配奖励。然后他们将他们的块提交给中继。中继聚合来自多个构建器的块,以选择费用最高的块。MEV-boost 的一个实例可以由验证者配置为连接到多个继电器。验证者的共识层客户端将从 MEV-boost 收到的最有利可图的区块提议到以太坊网络,以进行证明和区块包含。
监管
2022 年8月16日,以太坊联合创始人Vitalik Buterin(V神)在推特上参与讨论“若监管通过某些协议(如Lido、Coinbase等)的验证者者对以太坊进行协议级别的审查,以太坊社区将如何反应”这一话题时表示,会将这种审查视为对以太坊的攻击,并选择通过更广泛共识(social consensus)将这些验证者的质押权益进行销毁。
引起这个讨论的导火索在于:近期,美国财政部海外资产控制办公室(OFAC) 将与 Tornado Cash 有关的以太坊地址添加到制裁实体的名单中。但是目前对其的制裁都是处于中心化层面的操作,对于涉及到去中心化的智能合约部分,尚无法进行技术制裁。这表明如果美国要想要彻底制裁 Tornado cash ,就必须要控制底层的以太坊链。那么就引出一个问题,假如美国政府对以太坊进行监管,会面临什么?
如果美国政府要对以太坊进行监管,最大的可能是要求大型PoS质押服务商对以太坊进行协议级别的交易审查。这并不是验证者“作恶”,而是验证者对链上地址的”针对性制裁“。简单来说,就是监控被制裁地址发出的所有请求,并将所有包含被制裁地址事务的区块进行拒绝出块即可,当一个区块无法通过 66% 以上权益验证投票通过时,该区块的所有事务请求将会进行回滚,这也就意味着被制裁的地址将无法进行任何操作,并且验证者不会面临任何惩罚。
截至目前,以太坊全网质押的以太币数量大约为 1300多万 ETH,而通过 Lido 质押的以太币数量已经占了约30.9%,Coinbase占了约14.7%,Kraken占了约8.5%。如果美国政府要求Lido、Coinabse、Kraken为代表的大型节点验证者(服务商)对以太坊进行协议级别的交易审查,作为具有美国法律实体的质押服务商很难拒绝类似要求。
图源自 Dune Analytics
针对可能出现的上述情况,在以太坊社区在 Twitter 上发起了一项投票讨论,如果 OFAC 通过验证节点对以太坊实施监管该怎么做。而如本节开头所说,V神支持将上述情况视为对以太坊的攻击,并通过更广泛共识将这些节点的质押权益进行销毁。
应用层
我们在上一篇曾提到:按照计划,以太坊的 Merge 以“最小破坏”原则进行,使原来运行的应用客户端可以无感地切换到PoS。也就是说,尽管是“最小破坏”,但在这个过程中,有一些小的变化仍然值得我们注意。本节就主要从应用开发的角度介绍在合并后,我们应该关注的方面。
合并后,当前的 Eth1 和 Eth2 客户端将成为以太坊的执行层和共识层(或引擎)。这意味着 Eth1 或信标链客户端的节点运营商将需要运行堆栈的“另一半”以获得完全验证的节点。下图显示了合并后完整的以太坊客户端架构。
- 客户端架构
合并后客户端架构. 图源自Danny Ryan
- 区块结构
当合并发生时,信标节点将监视当前的 PoW 链并等待它达到预定义的total difficulty
阈值,该值被称为TERMINAL_TOTAL_DIFFICULTY
。即,一旦PoW链产生了一个带有total difficulty >= TERMINAL_TOTAL_DIFFICULTY
的块,它将被视为链上最后的一个PoW 块。随后,PoW 块包含的数据将成为信标链块的数据组成部分,而信标链则可以被视作为以太坊新的 PoS 共识层,取代之前的 PoW 共识层。同时在进行共识验证时,信标节点将与其执行引擎(升级前的以太坊客户端)通信,并要求它生成或验证ExecutionPayloads
。ExecutionPayloads
包含了父哈希、状态根、基本费用和要执行的交易列表等信息。一旦这些数据被生成或验证,信标节点将与 p2p 网络上的其他节点共享它们。而对于终端用户和应用程序开发人员来说,这些原来PoW链上的ExecutionPayloads
仍然是他们与以太坊进行直接交互的位置,事务仍将由执行层客户端处理,这使得他们可以无感切换到PoS链。下图显示了这种关系:
图源自Danny Ryan
- 执行引擎
合并之后,执行引擎主要负责状态管理,区块创建和验证功能,而不再包含与共识相关的任何操作。因此,执行引擎被进行了部分修改,这些修改在EIP-3675中进行了描述,主要包含以下三点:
首先,修改了区块的部分数据字段。将原有区块中几个仅与 PoW 相关的字段设置为0
(或其数据结构的等效项),具体包括与挖矿相关(difficulty
, mixHash
, nonce
)、 叔块奖励相关(ommers
, ommersHash
)。此外,extraData
的长度在主网上也将被限制为 32 字节。
其次,由于只有合并后的信标链才能进行出块,因此执行引擎将停止处理区块和叔块奖励。但交易手续费仍由其进行处理,即当执行引擎创建一个ExecutionPayload
时,需确保所有交易的发起者至少能够支付当前baseFeePerGas
的费用,并且将剩余的交易手续费发送到feeReceipient
。注意,feeReceipient
指的是升级前的以太坊地址,而不是信标链验证者地址。
最后,一旦 PoS 取代 PoW,执行引擎将不再负责广播区块,但仍会通过 p2p 网络进行交易的广播。具体过程为,首先用户将交易通过本地的 RPC 请求发送到共识客户端,在那里它们将被打包到信标块中。然后,共识客户端将在他们的 p2p 网络中广播信标块。
下图表明了以太坊合并时的过程:首先停止PoW出块,其次信标链块在合并后开始持有 ExecutionPayload。
图源自Danny Ryan
BLOCKHASH
&DIFFICULTY
操作码更改
合并后,BLOCKHASH
操作码仍可使用,但由于它不再通过工作量证明生成对应的Hash值,所以此操作码提供的伪随机性将被大大减弱。
与此同时, DIFFICULTY
操作码 (0x44
) 将会更名为 RANDOM
并返回由信标链提供的随机数值。因此,该值将替代 BLOCKHASH
成为应用程序开发人员可使用的更好随机源(尽管仍然存在偏差)。
RANDOM
值将存储在 ExecutionPayload
中原有mixHash
的位置,该值与工作量证明计算相关。升级后该值被重命名为 random
。
下图解释了合并前后 DIFFICULTY
和 RANDOM
操作码的工作原理:
图源自Danny Ryan
合并前,我们看到 0x44
操作码返回区块头里的 difficulty
字段。合并后,负责生成随机数的 RANDOM
操作码则指向原有 mixHash
字段,该字段被重名为 random
。
- 出块时间
合并将影响以太坊的平均区块时间。目前在 PoW 下,平均每约 13 秒产出一个区块,但实际区块间隔时间会由于网络拥堵的情况,而存在相当大的差异。但在PoS下,区块间隔为固定的12 秒,除非发生某些极端情况,如:验证者离线或未及时提交区块而错过了某个插槽。
综上,升级后网络的平均出块时间将减少近 1 秒,这提高了交易的速率。注意:如果智能合约中存在与特定平均出块时间相关的逻辑,则在计算时开发人员需要考虑到这一点。
参考文献:
How The Merge Impacts Ethereum’s Application Layer
备注:文章微改后发表于「成都链安」公众号