比特币价格·比特币行情
Ctrl+D收藏简单区块链

以太坊如何完成从1到2的转变?

作者:

时间:2020/12/28 19:01:23

原文标题:引介 | eth1 -> eth2 转换

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

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

你需要应对以下情况:

IO 访问操作码(SLOAD、BALANCE、EXT*、CALL*)的 gas 成本将增加。CALL(调用)的 gas 成本大概是每访问 1 字节的代码需要消耗 1 gas。

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

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

就是这样。如果你是开发者,只要你确保自己的应用所需的 witness 规模不会太高(可通过单笔事务所访问的全部 存储槽+合约+合约代码 的数量来衡量),你的应用因为 gas 消耗量改变而崩溃的可能性就很小。

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

目前,该机制有大约 6 小时的延迟(其中有 4 小时的延迟是因为 ETH1_FOLLOW_DISTANCE “Eth1 主链跟随距离”,另外 2 小时是因为投票期) ,但是在转换完成前,这些参数会随着时间的推移而减小,将延迟降至 1 小时左右。

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

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

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

此外,在已触发(2)的情况下,验证者会将 deposit_count 设置为比实际值高 2**63(就是将deposit_count 的 top bit 作为 “eth1 已完成” 的标记)

当 eth2 在 “eth1 已完成” 标记开启的情况下接受 eth1data 时,eth2 会执行一次 “非常规的状态变换”,将该 eth1 区块的状态根放到 “eth1 执行环境”(eth2 上的一类系统级智能合约)的状态中。与 eth1 链上的总 ETH 供应量等量的 ETH 会添加到这个 eth1 执行环境的余额中。

在这之后,转换完成。从技术层面来说,eth1 链会继续运行,但它已经变成了一条毫无价值的链;等到冰河期到来时,这条 eth1 链将彻底消失。

eth1 系统现在位于 eth2 系统内部。因此,通过在 eth2 上提交针对 eth1 执行环境(即上文所述的 eth2 子系统)的交易,eth1进一步转换成 eth2 的子系统。eth1 执行环境拥有可以实现整个 eth1 EVM 和交易处理逻辑的代码;它有一个 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 格式对其进行 “打包”。轻客户端(以及钱包,如 metamask)会将它们的交易广播给完整的客户端,由后者为其添加见证数据。

从用户的角度来看,以太坊能够 “感受到” 转换前和转换后(由于 PoS 和 EIP 1559,以太坊在感受后者时更加顺畅)。虽然打包和广播交易所使用的代码路径区别很大,但是它们所提供的功能都是一样的。

我们甚至可以对这种转换进行设计,以便钱包无需经过任何修改,即可通过 RPC 与客户端通信。

假设你在 MakerDAO 上创建了一个质押债仓,然后就去睡觉了。等你醒来时,你发现转换已经发生了。你可以像以前那样发送交易来与你的质押债仓交互并将其清算,但是你的客户端会看到转换已经发送,于是会将见证数据添加到你的交易上,将其发送至 eth2 网络而非 eth1 网络上。

在 eth1 链达到 TRANSITION_HEIGHT 至 eth2 上的 eth1 执行环境获取该状态的这段时间内,我们会对 eth1 状态进行一些预处理。特别是,我们可以:

将十六叉帕特里夏树替换成二叉稀疏默克尔树和一个专门的哈希函数,以确保分支的哈希开销保持在O(log(n))。这可以将默克尔树分支的大小减少 4 倍左右。

将 RLP 替换成 SSZ 哈希树

将状态租金相关的数据字段添加到账户上

清除 “粉尘” 账户

根据抽象提案修改账户结构

我们不会在 EE 中照搬沿用 Eth1 的状态根生成方法,而是以适用上述修改后的方法来计算状态根(Instead of including the actual eth1 state root into the EE, we would include the root of the state tree generated by performing all of these modifications)。这是确定性计算,因此所有验证者都可以同时进行计算。这种一次性的计算支出可以大大提高 eth1 转换后的效率和可用性。

原文链接:

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

作者: Vitalik

翻译&校对: 闵敏 & 阿剑

原文标题:引介 | eth1 -> eth2 转换

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

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

eth1 系统现在位于 eth2 系统内部。因此,通过在 eth2 上提交针对 eth1 执行环境(即上文所述的 eth2 子系统)的交易,eth1进一步转换成 eth2 的子系统。eth1 执行环境拥有可以实现整个 eth1 EVM 和交易处理逻辑的代码;它有一个 update(state_root, transaction, witness) -> new_state_root 功能,可以按照 eth1 链的规则,以交易和见证消息(状态部分的默克尔证明)作为输入处理该交易,并决定更新后的 eth1 状态根。关于见证消息和状态根的运作原理,请阅读《无状态客户端概念》。

在转换至两种代码路径之前,我们需要对客户端面向用户的部分进行修改。客户端会检查 eth2,来查看转换是否已经发生。如果转换尚未发生,客户端就会像之前那样使用 eth1 来发送交易,查看余额等,不同之处在于客户端会假装所有区块编号 > TRANSITION_HEIGHT 的 eth1 区块都不存在。如果转换已经发生,客户端就会在 eth2 上查看 eth1 执行环境。完整的客户端将按顺序处理 eth2 上所有针对 eth1 执行环境的交易,以便继续更新完整的 eth1 状态树。这使得完整的客户端可以为它们想要发送的交易生成见证消息,并使用 eth2 格式对其进行 “打包”。轻客户端(以及钱包,如 metamask)会将它们的交易广播给完整的客户端,由后者为其添加见证数据。

原文链接:

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

作者: Vitalik

翻译&校对: 闵敏 & 阿剑

酒儿:DeFi后续的表现,以及以太坊信标链整体要有一个大的爆发点:金色财经报道,在11月20日举办的《金色百家谈 | Gate.io的进阶之路:DEX和金融衍生品》的直播节目中,Gate.io合伙人酒儿表示,2020年初的时候,大家谈的都是减半,但当今年已经走过半的时候,你会发现,减半的效果反而没有带来那么大的效果。随后便是一系列的热点,DeFi质押量再创新高,BTC的价格一路上涨至18000美金,以太坊信标链即将启动,可以看到疫情过后,整个国内和世界的经济恢复其实有了比较明显的起色,美国大选的热议也给BTC的价值上涨带来了强大的价值支撑。最大的感受就是之前大家群里都说百倍币、千倍币,懊悔之余,其实会发现市场的魅力就是在于不同交易对手间在策略和经验上的不同选择。

接下来,其实我认为冲高还是有压力的,从之前的经验可以看出,大牛市基本上都是有预兆,并且会有大量的圈外流量引入,比如2018年新闻曝光,需要一个非常好的点去推,但目前可以看到,这个点的表现还是不足,或者还没到成熟的位置,但值得期待的是DeFi后续的表现,以及以太坊信标链的表现。我觉得整体要是有一个大的爆发点。但是同样值得期待。[2020/11/20 21:28:49]

数据:以太坊链上锚定BTC的代币总量为152900枚:DeBank数据显示,以太坊链上锚定BTC的代币总量为152900枚,其中,WBTC总量为122281枚,renBTC总量为20374枚,HBTC总量为6010枚。[2020/11/5 11:45:12]

比特币和以太坊微幅下跌:根据火币Pro数据显示,BTC现价报8333.87美元,跌幅达0.04%,ETH现价报834.50美元,跌幅达0.29%。[2018/2/11]

标签:

区块链热门资讯
OKLink链上周报:圣诞周、以太坊2.0以及两次空投

比特币市场 比特币在圣诞节不仅没有遭遇滑铁卢,反而再度迎来一波升势。在站稳前周23000美元关口后,比特币在圣诞节假期快速拉升,一度突破28000美元。总体来看,本周比特币依旧表现亮眼,周日24时收于24000美元上方,单周涨幅14.53%。

2020/12/28 19:44:21
首发 | DeFi常用工具大全:流动性池、收益对比、K线分析等

本文由加密乌托邦原创,授权金色财经首发。 DeFi领域依然是目前最热的领域之一,很多朋友在研究DeFi的时候找不到好的着力点,没有好的数据分析系统,今天分享一些我常用的网站,希望对大家有所帮助。“工欲善其事,必先利其器”。

2020/12/28 19:17:36
中币(ZB)市场研究员:BTC ETH TRX一周技术分析

上周,随着加密货币市场在圣诞节期间扩大涨势,市值达到2017年的历史最高水平,市场风险对冲情绪高涨。 由于散户交易者对加密资产的需求以及投资者兴趣的迅速增长,加密货币的市值从5934美元增加到7563亿美元。比特币以70.03%的份额主导了加密货币市场。

2020/12/28 19:17:31
保护个人财富的最佳解决方案是通过BTC?

2020年是难忘的,尤其是对比特币而言。 祝贺所有成功度过2020年的人。 几乎每个人都在某种程度上受到了过去一年世界各地发生的无情变化的影响。封锁、骚乱、政府限制,以及自称无视自己使命的领导人,都给这个被视为繁荣的经济体带来了巨大打击。但在这些灾难中,在政客和媒体继续分散大众注意力的情况下,一群人从这一血腥事件中脱颖而出,变得更加强大和富有。

2020/12/28 18:55:52
比特币明年会到啥程度?

狂人本着负责,专注,诚恳的态度用心写每一篇分析文章,特点鲜明,不做作,不浮夸! 本内容中的信息及数据来源于公开可获得资料,力求准确可靠,但对信息的准确性及完整性不做任何保证,本内容不构成投资建议,据此投资,责任自负。

2020/12/28 18:50:21
比特币升至27000美元 古根海姆投资认为40万美元是最终目标

比特币又清除了另一个障碍,周日(12月27日)世界标准时间06:00左右,Coinbase上的比特币价格突破了27,000美元,并继续上涨,之后达到了历史新高(ATH)28400美元。

2020/12/28 18:50:17