主页 > imtoken苹果下载官网 > 深度剖析以太坊合并后的治理和应用层问题

深度剖析以太坊合并后的治理和应用层问题

imtoken苹果下载官网 2023-03-31 07:42:31

随着以太坊合并时间节点的临近,今天我们将讨论合并后以太坊将面临哪些监管问题和应用层问题。

2022 年 8 月 16 日,以太坊联合创始人 Vitalik Buterin(V 神)在推特上参与讨论,“如果通过某些协议(如 Lido、Coinbase 等)的验证者,以太坊社区将如何反应”表示他们会将此次审核视为对以太坊的攻击,并选择通过更广泛的共识(社会共识)来破坏这些验证者的质押权益。

这场讨论的导火索是最近,美国财政部外国资产控制办公室 (OFAC) 将与 Tornado Cash 相关的以太坊地址添加到其受制裁实体名单中。 但是目前的制裁都是中心化层面的,不能对涉及去中心化的智能合约部分进行技术制裁。

由此可见,美国要想全面制裁Tornado cash,就必须控制以太坊底层链。 那么就会引出一个问题,如果美国政府对以太坊进行监管,它会面临什么?

sitezhishu.com 以太坊v神_v神怎么修改协议让以太坊_sitechainnews.com 以太坊创始人v神

如果美国政府要对以太坊进行监管,最有可能要求大型 PoS 质押服务商对以太坊进行协议级别的交易审查。 这不是验证者的“作恶”,而是验证者对链上地址的“定向制裁”。

简单来说就是监听所有被制裁地址发出的请求,拒绝所有包含被制裁地址交易的区块。 当一个区块未能通过超过 66% 的权益验证投票时,该区块的所有交易请求将被回滚,这意味着被制裁的地址将无法进行任何操作,验证者也不会面临任何惩罚。

截至目前,整个以太坊网络质押的ETH数量约为1300万个ETH,其中通过Lido质押的ETH占比约30.9%,Coinbase占比约14.7%,Kraken占比约8.5%。

如果美国政府要求以Lido、Coinabse、Kraken为代表的大型节点验证者(服务商)对以太坊进行协议级别的交易审核,具有美国法人资格的质押服务商将很难拒绝类似的要求。

sitezhishu.com 以太坊v神_sitechainnews.com 以太坊创始人v神_v神怎么修改协议让以太坊

图来自 Dune Analytics

针对上述可能出现的情况,以太坊社区在推特上发起投票,讨论如果OFAC通过验证节点监管以太坊该怎么办。 Vitalik将上述情况支持为对以太坊的攻击,通过更广泛的共识破坏这些节点的质押权益。

接下来说说应用层。

我们在上一篇文章中提到:按照计划v神怎么修改协议让以太坊,以太坊的 Merge 是以“最小损害”为原则进行的,让原本运行的应用客户端毫无意义地切换到 PoS。 也就是说,尽管“破坏性最小”,但仍有一些小变化值得我们关注。 本节主要从应用开发的角度介绍合并后需要注意的方面。

合并后,当前的 Eth1 和 Eth2 客户端将成为以太坊的执行层和共识层(或引擎)。 这意味着 Eth1 或信标链客户端的节点运营商将需要运行堆栈的“另一半”以获得完全验证的节点。 下图显示了合并后完整的以太坊客户端架构。

- 客户端架构

sitezhishu.com 以太坊v神_v神怎么修改协议让以太坊_sitechainnews.com 以太坊创始人v神

合并的客户端架构。 图片由 Danny Ryan 提供

- 块结构

当合并发生时,信标节点将监视当前的 PoW 链并等待其达到预定义的总难度阈值,称为 TERMINAL_TOTAL_DIFFICULTY。 也就是说,一旦 PoW 链产生了总难度 >= TERMINAL_TOTAL_DIFFICULTY 的区块,它将被视为链上的最后一个 PoW 区块。

随后,PoW 区块中包含的数据将成为信标链区块的数据组成部分,信标链可以看作是以太坊新的 PoS 共识层,取代了之前的 PoW 共识层。

同时,在进行共识验证时,信标节点会与其执行引擎(升级前的以太坊客户端)通信,要求其生成或验证ExecutionPayloads。 ExecutionPayloads 包含父哈希、状态根、基本费用和要执行的交易列表等信息。

一旦生成或验证这些数据,信标节点将与 p2p 网络上的其他节点共享它们。

对于终端用户和应用开发者来说,这些原来 PoW 链上的 ExecutionPayloads 仍然是他们与以太坊直接交互的地方,交易仍然会由执行层客户端处理,这让他们可以毫无感觉地切换到 PoS 链上。 下图显示了这种关系:

sitechainnews.com 以太坊创始人v神_v神怎么修改协议让以太坊_sitezhishu.com 以太坊v神

图片由 Danny Ryan 提供

- 执行引擎

合并后,执行引擎主要负责状态管理、出块和验证功能,不再包含任何与共识相关的操作。 因此,对执行引擎进行了部分修改。 EIP-3675中描述了这些修改,主要包括以下三点:

首先,修改块的一些数据字段。 将原始块中的几个 PoW 相关字段设置为 0(或它们的数据结构等价物),具体与挖矿(难度、mixHash、nonce)、叔块奖励(ommers、ommersHash)相关。 此外,extraData的长度在主网上也将被限制为32字节。

v神怎么修改协议让以太坊_sitezhishu.com 以太坊v神_sitechainnews.com 以太坊创始人v神

其次,由于只有合并后的信标链才能出块,执行引擎将停止处理块和叔块奖励。 但是交易手续费还是由它处理的,即执行引擎在创建ExecutionPayload时,需要保证所有交易的发起者至少可以支付当前baseFeePerGas手续费,并将剩余交易手续费发送给feeReceipient。 注意,feeReceipient指的是升级前的以太坊地址v神怎么修改协议让以太坊,不是信标链验证人地址。

最后,一旦 PoS 取代 PoW,执行引擎将不再负责广播区块,但仍会通过 p2p 网络广播交易。 具体过程是,首先用户通过本地 RPC 请求将交易发送给共识客户端,并被打包到信标块中。 共识客户端随后将在其 p2p 网络中广播信标块。

下图展示了以太坊合并的过程:首先,PoW 区块停止,其次,信标链区块开始持有合并后的 ExecutionPayload。

sitezhishu.com 以太坊v神_sitechainnews.com 以太坊创始人v神_v神怎么修改协议让以太坊

图片由 Danny Ryan 提供

- BLOCKHASH&DIFFICULTY 操作码更改

合并后,BLOCKHASH操作码仍然可以使用,但由于不再通过工作量证明生成相应的Hash值,该操作码提供的伪随机性将大大减弱。

同时,DIFFICULTY操作码(0x44)将被重命名为RANDOM并返回信标链提供的随机值。 因此,这个值将取代 BLOCKHASH 作为应用程序开发人员可以使用的更好的随机性来源(尽管仍然会有偏差)。

RANDOM 值将存储在原始 mixHash 所在的 ExecutionPayload 中,这与工作量证明计算有关。 升级后该值被重命名为随机。

下图解释了合并前后 DIFFICULTY 和 RANDOM 操作码的工作原理:

sitezhishu.com 以太坊v神_sitechainnews.com 以太坊创始人v神_v神怎么修改协议让以太坊

图片由 Danny Ryan 提供

在合并之前,我们看到 0x44 操作码返回了区块头中的难度字段。 合并后负责生成随机数的RANDOM操作码指向原来的mixHash字段,改名为random。

- 封锁时间

合并将影响以太坊的平均出块时间。 目前,在 PoW 下,平均每 13 秒出块一次,但实际出块间隔时间会因网络拥堵而有较大差异。 但是在PoS下,出块间隔固定为12秒,除非出现一些极端情况,比如:验证者离线或者没有及时提交块而错过了某个slot。

综上所述,升级后的网络平均出块时间将减少近1秒,提高了交易率。 注意:如果智能合约中存在与特定平均出块时间相关的逻辑,开发者在计算时需要考虑到这一点。