ETH:引介 | eth1 -> eth2 转换

编者注:本文为Vitalik于2020年10月19日在以太坊研究者论坛上发表的帖子,提议了他所设想的Eth1如何转换成分片化信标链的子系统的过程,并解释了开发者、用户对这个过程会有什么知觉。确切来说,这并不是一个针对Eth1的提案,因为提案的内容无涉于Eth1的链和生态如何形成广泛的社会共识来完成这种转换,相反,它仅仅涉及到了分片化信标链的一个子系统要按什么样的程序选取Eth1上的哪个状态作为自己的起始状态。此外,读者还可借此一窥作者心中一个准备好完成转换的分片化信标链应具备哪些基础设施,例如,无状态性和EE;借此可反推分片化信标链的开发方向和进度。

本文介绍的路线图被用来完成从eth1向eth2转换,如果你是应用开发者或用户,你所能感受到的变化乃至颠覆实际上非常有限。已有应用将继续运行,而不会发生任何改变。所有账户余额、合约代码和合约存储都将继续存在。

你需要应对以下情况:

IO访问操作码的gas成本将增加。CALL的gas成本大概是每访问1字节的代码需要消耗1gas。

数据:UNIBOT用户数量在本周四达到了6,500名:金色财经报道,据加密领域作者Shaurya Malwa发文表示,自从基于Telegram的机器人在过去几个月流行以来,UNIBOT的价格一直在上涨。根据Dune Analytics的数据,Unibot的收入和用户在过去一个月激增。在某些加密货币圈子里,这并不是熊市。链上数据显示,自5月份平台上线以来,Unibot已获得3,600以太币的费用,其中一部分直接支付给代币持有者。用户数量也在稳步增长,周四达到6,500名,而6月底只有2,000多名。数据显示,Unibot的日均交易量略高于550万美元,距离市场领先的DEX Uniswap日均9亿美元的交易量仍有很大差距。[2023/7/28 16:04:46]

你需要下载实现网络升级的代码。这在根本上与拜占庭和君士坦丁堡等其它升级没有区别。但是下载量更大一点,因为如果你还没有eth2客户端,那你需要下载一个。

以太坊区块链可能会暂停大约1小时。1小时后,“以太坊”看似重新上线了,但是实际上eth1不再是一个独立的系统,而是成了在eth2内运行的子系统。

矿企Argo Blockchain或将于12月12日宣布申请破产:12月10日消息,加密矿企Argo Blockchain可能会在近期申请破产。该消息最早由Compass Mining内容总监Will Foxley披露,泄露的文件截图显示Argo Blockchain计划在12月12日(下周一)发布特别公告宣布申请破产。(Cryptoslate)

据此前报道,伦交所上市公司Argo Blockchain的股票已被英国金融行为监管局(FCA)要求暂时停牌。[2022/12/10 21:36:00]

就是这样。如果你是开发者,只要你确保自己的应用所需的witness规模不会太高,你的应用因为gas消耗量改变而崩溃的可能性就很小。

转换将如何发生

假设phase0-2已经完成,并且eth2链正在稳定运行。eth1链也在稳定运行中。phase0规范已经安排了一个名为eth1_datavoting的机制。在这个机制中,验证者会通过投票就eth1主链最新的区块哈希值达成共识;这个机制目前被用来处理押金。我们将重新改变该机制的用途,用它来将eth1的完整状态传入eth2。

Abracadabra:预言机故障导致1000万美元资产面临风险,呼吁Sushi提供紧急援助:11月28日消息,加密借贷协议及稳定币MIN发行方Abracadabra透露,由于预言机故障导致价值1000万美元的加密资产面临风险,目前已向Sushi治理论坛提交一份“紧急提案”,要求Sushi团队提高cvxRenCrv和yvcrvstETH两个Bento金库抵押头寸利率,并称预言机故障会对持有 yvcrvstETH空头寸的用户构成威胁。

Abracadabra称,这两个代币均未在SushiSwap上使用,其中cvxRenCrv是专为Abracadabra制作的代币封装器,yvcrvstETH则是由收益聚合商Yearn Finance发行的计息代币,SushiSwap主厨Jared Gray已在Discord表示将提供协助并提高相关利率。(The Defiant)[2022/11/28 21:06:43]

目前,该机制有大约6小时的延迟,但是在转换完成前,这些参数会随着时间的推移而减小,将延迟降至1小时左右。

Art Gobblers地板价突破20ETH:11月2日消息,据Dune Analytics数据显示,由知名美国动漫Rick and Morty主创之一Justin Roiland联合加密风投Paradigm推出的NFT系列Art Gobblers自11月1日4:20开放铸造以来,地板价已经突破20ETH,全网总交易额为29,020ETH(约合4527万美元)。[2022/11/3 12:11:26]

影响eth1向eth2转换的基本机制如下图所示:

指定一个高度TRANSITION_HEIGHT。高度为TRANSITION_HEIGHT的eth1区块将被视为eth1链的“最终”区块。从该区块往后,eth1将作为eth2的子系统运行。

eth2的“诚实验证者”代码会根据做出相应调整,不允许验证者投票给区块号>TRANSITION_HEIGHT的eth1区块。如果投票算法已经选出了某个区块编号>TRANSITION_HEIGHT的eth1区块,则改成为TRANSITION_HEIGHT的eth1区块投票。

Blockchain.com出现用户数据泄露情况,用户近期或将收到一系列假冒官方邮件:7月26日消息,据加密交易平台 Blockchain.com 官方发布的邮件显示,该平台第三方服务商 SendGrid(电子邮件服务平台)于近期出现了数据泄露的情况,目前其安全团队已经调查并关闭了 SendGrid 的接入点,收到该邮件的用户均为本次数据泄露事件的受损用户。

Blockchain.com 表示,本次事件中受波及的用户近期可能会收到假冒官方的欺诈电子邮件,邮件的标题可能是区块链 IC0 预售或从新的 IP 地址登录等。该网站表示绝不会向用户发送邮件索要密码或为非法活动募集资金,也永远不会联系用户询问敏感信息,要求更改用户账户设置。[2022/7/27 2:39:28]

此外,在已触发的情况下,验证者会将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转换后的效率和可用性。

原文链接:

https://ethresear.ch/t/the-eth1-eth2-transition/6265

作者:Vitalik

翻译&校对:闵敏&阿剑

你可能还喜欢:

干货|以太坊无状态客户端初探

引介|无状态客户端中的见证数据

观点|无状态以太坊:二进制状态树实验

本文来源于非小号媒体平台:

VitalikButerin

现已在非小号资讯平台发布38篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9565397.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

币安为何推出第三条链?这对BNB意味着什么?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-1:102ms