原文标题:《引介|eth1->eth2转换》
撰文:VitalikButerin,以太坊联合创始人
翻译&校对:闵敏&阿剑,来自以太坊爱好者
本文为Vitalik于2020年10月19日在以太坊研究者论坛上发表的帖子,提议了他所设想的Eth1如何转换成分片化信标链的子系统的过程,并解释了开发者、用户对这个过程会有什么知觉。确切来说,这并不是一个针对Eth1的提案,因为提案的内容无涉于Eth1的链和生态如何形成广泛的社会共识来完成这种转换,相反,它仅仅涉及到了分片化信标链的一个子系统要按什么样的程序选取Eth1上的哪个状态作为自己的起始状态。此外,读者还可借此一窥作者心中一个准备好完成转换的分片化信标链应具备哪些基础设施,例如,无状态性和EE;借此可反推分片化信标链的开发方向和进度。
Curve Finance:旧pBTC池已弃用,池内仍剩少量资金系ERC-777设计影响:金色财经报道,针对安全团队Decurity发现Curve Finance平台另一个安全漏洞,部分代币市场智能合约使用ERC-777 Callback或引发重入攻击安全隐患,且已有机器人利用该漏洞获利约1900美元,对此Curve Finance官推回应称,旧pBTC流动性池目前已被弃用,“仍然”剩下一些少量的资金是由于ERC-777设计问题造成。[2023/8/3 16:15:44]
本文介绍的路线图被用来完成从eth1向eth2转换,如果你是应用开发者或用户,你所能感受到的变化乃至颠覆实际上非常有限。已有应用将继续运行,而不会发生任何改变。所有账户余额、合约代码和合约存储都将继续存在。
你需要应对以下情况:
IO访问操作码的gas成本将增加。CALL的gas成本大概是每访问1字节的代码需要消耗1gas。你需要下载实现网络升级的代码。这在根本上与拜占庭和君士坦丁堡等其它升级没有区别。但是下载量更大一点,因为如果你还没有eth2客户端,那你需要下载一个。以太坊区块链可能会暂停大约1小时。1小时后,「以太坊」看似重新上线了,但是实际上eth1不再是一个独立的系统,而是成了在eth2内运行的子系统。就是这样。如果你是开发者,只要你确保自己的应用所需的witness规模不会太高,你的应用因为gas消耗量改变而崩溃的可能性就很小。
前FTX主管披露财务数据:负债88亿美元,流动性缺口为79亿美元:11月11日消息,前FTX机构销售主管Zane Tackett在被解雇后首次发声表示,此事我显然有发言权,但是有兴趣听听别人的想法,目前FTX有两种选择:A) 破产;B)Token,并披露了他看到的财务数据:
负债 (用户资产):88亿美元、流动资产(美元/日元/DAI):9亿美元、流动性较差的资产(GBTC/ETHE/SOL):20.37亿美元、暂无法流动的资产(长期股权投资):32亿美元、流动性缺口:79亿美元、非流动性缺口:26.6亿美元。
此外,Zane Tackett表示,过去几天里,我与我们的一些大客户交谈过,他们表示有兴趣探索一种Token模型来解决短缺问题,并表示它比任何破产程序都更受青睐。[2022/11/11 12:52:21]
转换将如何发生
美联储经济状况褐皮书:自7月初以来 经济活动总体上没有变化:9月8日消息,美联储经济状况褐皮书显示,自7月初以来,经济活动总体上没有变化,5个地区报告经济活动略微增长或温和增长,另外5个地区报告经济活动略有或温和放缓。未来经济增长前景总体上仍然疲弱,受访者指出,预期未来6至12个月需求将进一步走软。
美联储经济状况褐皮书显示,物价水平仍处于高位,但有9个地区报告称其上涨速度有所放缓;大多数受访者预计价格压力至少会持续到年底。所有地区的工资都在增长,尽管普遍有报告称增长速度放缓,薪资预期也在下降。[2022/9/8 13:14:55]
假设phase0-2已经完成,并且eth2链正在稳定运行。eth1链也在稳定运行中。phase0规范已经安排了一个名为?eth1_data?voting的机制。在这个机制中,验证者会通过投票就eth1主链最新的区块哈希值达成共识;这个机制目前被用来处理押金。我们将重新改变该机制的用途,用它来将eth1的完整状态传入eth2。
韩国检方在调查Terra事件中已结束对加密交易所扣押搜查,将对扣押材料进行全面分析:7月28日消息,韩国首尔南区检察院金融证券犯罪联合调查组于本月20日至27日完成了对部分交易所的搜查扣押令的执行。检方官员解释说:“调查所需的交易所数据的取证工作花费了很长时间。”通过此次扣押搜查,检察机关获得了Terraform Labs首席执行官Do Kwon以及Terraform Labs联合创始人、TMON联合创始人Daniel Shin等人的交易明细和算法稳定币的开发过程、资金流向相关的资料。在完成搜查和扣押后,检方开始对扣押的材料进行全面分析,相关人士的传唤仍在继续。
此前消息,韩国检方发出Do Kwon“入境时通报”通知并勒令Terraform高管禁止出境,检方也正讨论与国际刑警组织合作发布红色通缉令以引渡Do Kwon的可能性。(韩联社)[2022/7/28 2:42:45]
目前,该机制有大约6小时的延迟,但是在转换完成前,这些参数会随着时间的推移而减小,将延迟降至1小时左右。
以太坊桥TVL达到117.7亿美元:金色财经报道,Dune Analytics数据显示,以太坊桥当前TVL达到117.7亿美元。其中锁仓量最高的5个桥分别是Polygon Bridges(41.11亿美元)、Arbitrum Bridges(24.7亿美元)、Avalanche Bridge(21.4亿美元)、Near Raibow(9.71亿美元)、Fantom Anyswap Bridge(9.7亿美元)。[2022/6/17 4:35:39]
影响eth1向eth2转换的基本机制如下图所示:
指定一个高度?TRANSITION_HEIGHT。高度为?TRANSITION_HEIGHT?的eth1区块将被视为eth1链的「最终」区块。从该区块往后,eth1将作为eth2的子系统运行。eth2的「诚实验证者」代码会根据做出相应调整,不允许验证者投票给区块号>?TRANSITION_HEIGHT?的eth1区块。如果投票算法已经选出了某个区块编号>?TRANSITION_HEIGHT?的eth1区块,则改成为?TRANSITION_HEIGHT?的eth1区块投票。此外,在已触发的情况下,验证者会将?deposit_count?设置为比实际值高2**63当eth2在「eth1已完成」标记开启的情况下接受?eth1data?时,eth2会执行一次「非常规的状态变换」,将该eth1区块的状态根放到「eth1执行环境」的状态中。与eth1链上的总ETH供应量等量的ETH会添加到这个eth1执行环境的余额中。在这之后,转换完成。从技术层面来说,eth1链会继续运行,但它已经变成了一条毫无价值的链;等到冰河期到来时,这条eth1链将彻底消失。
eth1系统现在位于eth2系统内部。因此,通过在eth2上提交针对eth1执行环境的交易,eth1进一步转换成eth2的子系统。eth1执行环境拥有可以实现整个eth1EVM和交易处理逻辑的代码;它有一个?update(state_root,transaction,witness)->new_state_root?功能,可以按照eth1链的规则,以交易和见证消息作为输入处理该交易,并决定更新后的eth1状态根。关于见证消息和状态根的运作原理,请阅读《无状态客户端概念》。
eth1执行环境代码可以添加额外的功能,即,将ETH和消息从eth1执行环境提取到eth2的其它部分,以及其它分片上的eth1执行环境副本中。在默认情况下,所有eth1账户/合约都会放在同一个分片上,因此为了利用eth2更大的容量,你需要主动使用这个功能将你的ETH或其它应用转移到其它分片上,不过难度不大。我们需要通过扩展ERC20标准来支持跨分片代币转账。
用户客户端如何运作
在转换至两种代码路径之前,我们需要对客户端面向用户的部分进行修改。客户端会检查eth2,来查看转换是否已经发生。如果转换尚未发生,客户端就会像之前那样使用eth1来发送交易,查看余额等,不同之处在于客户端会假装所有区块编号>?TRANSITION_HEIGHT?的eth1区块都不存在。如果转换已经发生,客户端就会在eth2上查看eth1执行环境。完整的客户端将按顺序处理eth2上所有针对eth1执行环境的交易,以便继续更新完整的eth1状态树。这使得完整的客户端可以为它们想要发送的交易生成见证消息,并使用eth2格式对其进行「打包」。轻客户端会将它们的交易广播给完整的客户端,由后者为其添加见证数据。
从用户的角度来看,以太坊能够「感受到」转换前和转换后。虽然打包和广播交易所使用的代码路径区别很大,但是它们所提供的功能都是一样的。
我们甚至可以对这种转换进行设计,以便钱包无需经过任何修改,即可通过RPC与客户端通信。
用户案例
假设你在MakerDAO上创建了一个质押债仓,然后就去睡觉了。等你醒来时,你发现转换已经发生了。你可以像以前那样发送交易来与你的质押债仓交互并将其清算,但是你的客户端会看到转换已经发送,于是会将见证数据添加到你的交易上,将其发送至eth2网络而非eth1网络上。
潜在优化
在eth1链达到?TRANSITION_HEIGHT?至eth2上的eth1执行环境获取该状态的这段时间内,我们会对eth1状态进行一些预处理。特别是,我们可以:
将十六叉帕特里夏树替换成二叉稀疏默克尔树和一个专门的哈希函数,以确保分支的哈希开销保持在O(log(n))。这可以将默克尔树分支的大小减少4倍左右。将RLP替换成SSZ哈希树将状态租金相关的数据字段添加到账户上清除「粉尘」账户根据抽象提案修改账户结构我们不会在EE中照搬沿用Eth1的状态根生成方法,而是以适用上述修改后的方法来计算状态根。这是确定性计算,因此所有验证者都可以同时进行计算。这种一次性的计算支出可以大大提高eth1转换后的效率和可用性。
来源链接:ethresear.ch
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。