译者注:据以太坊联合创始人VitalikButerin刚提出的
eth1->eth2转换方案显示,以太坊转换前和转换后,它们会使用非常不同的代码路径来打包和广播交易,而在完成转换后,以太坊1.0将成为以太坊2.0的子系统,而用户经历的更改将是非常有限的。
以下为方案译文:
用户体验
如果你是一名app开发者或app用户,并且本文中描述的路线图被用于完成以太坊1.0->以太坊2.0的过渡,那么你所经历的更改和困扰将是非常有限的。现有的应用将继续运行,而不会有变化。所有账户余额、合约代码和合约存储将延续存在。
而你需要面对及处理的是以下这些:
IO访问操作码的Gas成本将会增加。CALL的Gas成本可能会每访问一字节代码就需要增加1Gas;
VitalikButerin提议使用Flashbots系统实现“账户抽象”:3月11日消息,以太坊联合创始人 Vitalik Buterin 在研究机构 Flashbots 的 GitHub 仓库中提议利用 Flashbots 作为“账户抽象”的一种实现方式。“账户抽象”是以太坊社区中讨论的改进提案之一,以实现交易不需要从私钥控制的 EOA 账户发起,而是可以直接从智能合约发起,具体的用例包括智能合约钱包、Tornado.Cash 这类隐私保护工具等。Vitalik Buterin 认为 Flashbots 可以解决这个问题,通过搭建一个插件将其变成智能合约钱包的中继器以实现。他表示该方案不需要对以太坊底层协议进行很多改动。
Flashbots是由五位区块链行业人士发起成立的开放研究机构,旨在针对以太坊及各智能合约公链所面对的 MEV 问题进行研究,并实施解决方案。[2021/3/11 18:35:51]
在某个时候,你必须下载实现网络升级的代码。这与任何其它升级没有本质上的区别,但这次的下载量要大一些,这是因为你还需要下载一个以太坊2.0客户端。
动态 | EOS 的Activity指数为43,721,037 排名第一:据IMEOS报道,截止12月16号11点,blocktivity.info上显示,排名第一的 EOS 的Activity指数为43,721,037 ,排名第二、第三分别为 TLOS 和 IOST 。Acitivity指数为最近24小时内在区块链上执行的操作数量。[2019/12/16]
区块链可能会暂停大约1个小时。1小时后,“以太坊”就会重新上线了,但此时以太坊1.0将作为以太坊2.0的一个子系统,而不是一个独立的系统运行。
就是这些了,如果你是一名开发人员,你可通过主动编写验证内容较小的应用程序,来消除gas成本变化带来的最大干扰。
如何实现平稳过渡?
假设阶段0-阶段2已经实现,并且eth2链稳定运行了,我们的目标是让eth1区块链也会继续稳定运行。在阶段0的规范中,已经存在一种名为eth1_datavoting的机制,其中验证者投票同意最近的规范eth1哈希,这种机制被用于处理存款。我们只需要对它稍作修改,然后用于将eth1的完整状态馈送到eth2。
声音 | Vitalik:Libra 短期不足以影响以太坊 DeFi 生态 传统领域并非以太坊强项:以太坊创始人 Vitalik Buterin 在回答“Facebook 区块链项目 Libra 会影响以太坊 DeFi 生态吗?”时表示,他认为短期内不会有太大影响,毕竟 Libra 明年才会推出,推出后也只是发布代币,再往后才会推出智能合约。而目前以太坊的 DeFi 的规模已经相当大,而且在这两年只会越来越壮大,以太坊的生态也会有更多方向的发展。如果 Libra 与以太坊架起桥梁,以太坊也会进行相应开发,让 Libra 用户进入以太坊的生态。总体来说,参与 Facebook 的 Libra 生态成员的类型自然相对保守,因此他们会在 Libra 生态中搭建传统的设施,而这并不是以太坊的强项。[2019/6/29]
目前,该机制会存在大约6小时的延迟,但这些参数可在过渡前随时间的推移而减小,最终使延迟变成大约1小时。
Vitalik Buterin:以太坊已经发展到一定瓶颈 以太经典才是黑马:据今日头条报道,以太坊智能合约平台网路组织遭骇,骇客利用智能合约的漏洞,下指令让DAO重复拨款,总共盗领370万以太币(当时约合5300万美元)。为了取回被盗资金,布特林(Vitalik Buterin)与DAO成员决定忽略被骇旧区块,并重新建立新区块。这个决定,等于打破区块链不可回复、不可窜改的初衷和原则,自然引发许多争议。但是事情发展到现在,布特林说:“虽然以太坊(ETH)似乎正在吸引所有媒体的关注,以太经典(ETC)似乎扮演了黑马的角色。”他认为以太坊已经发展到了一定的瓶颈。ETC已经回归了奥地利经济学派的传统,按照比特币的方式进行了了减产的规划,最后总量不会超过2.1亿个。以太坊现价报4717元,跌幅8.23%,以太经典194元,跌幅达9.65%。[2017/12/28]
影响过渡的基本机制如下:
Vitalik Buterin:BTC本身是有问题的,BCH值得去争取:Vitalik在推特上发文称,“BCH是比特币名称的合理竞争者,虽然社区支持隔离见证(SegWit)已经一年有余,但目前并未得出合理的扩容方案。”[2017/11/16]
指定一个过渡区块高度TRANSITION_HEIGHT:TRANSITION_HEIGHT指定的eth1区块将被视为eth1侧的“最终”区块,从那时起,这条eth1链将作为eth2的子系统运行;
与相同时间点,添加对eth2“诚实验证者”代码的更改,该代码不允许对number>TRANSITION_HEIGHT的eth1区块进行投票。如果投票算法先前选择了一些number>TRANSITION_HEIGHT的区块,则投票TRANSITION_HEIGHT高度的祖先区块;
此外,在触发的情况下,验证者应将deposit_count设置为比其真实值高2**63;
当“eth1已经完成”信号被发出,eth2链接收eth1数据时,其执行一次性的“不规则状态转换”,将eth1区块的后状态根放入“eth1执行环境”的状态。这等于eth1链的ETH总供给量被加到这个eth1EE的余额中;
在这一点之后,过渡就完成了。
eth1链在技术上仍继续存在,但它是没有价值的(valueless
),当难度冰河期来临时,它最终会消亡。
此时,eth1系统就位于eth2的内部了,因此,通过在eth2上提交以eth1EE为目标的交易,可进一步转移至eth1系统。eth1EE有实现整个eth1EVM和交易处理逻辑的代码,其具有一个函数升级,它会接受一笔交易和验证内容,根据eth1链上的相同规则处理交易并确定更新的eth1状态根。请参阅无状态客户端概念来了解验证内容和状态根的工作方式。
附加的功能将添加到eth1EE代码中,该代码允许ETH和消息从eth1EE撤回到eth2的其他部分,以及撤回到其他分片eth1EE的副本中。默认情况下,所有eth1帐户/合约都将被放置在同一分片上,因此想要利用eth2增加的容量,你需要主动使用此功能将ETH或其他应用移动到其他分片中,但这并不困难。另外,我们还需要对ERC20代币标准进行扩展,以支持代币的跨分片传输。
用户客户端将如何工作
在过渡之前,面向客户的客户端将被修改成具有两种代码路径。客户端将检查eth2,以查看是否已发生了转换。如果它还没有发生,那么它就会像以前一样使用eth1链发送交易、检查余额等,除非其认为所有number>TRANSITION_HEIGHT的eth1区块都不存在。而如果发生了转换,它将检查eth2上的eth1EE。完整客户端将按顺序处理eth2上以eth1EE为目标的所有交易,以便继续更新完整的eth1状态树。这将允许客户端为它们要发送的任何交易生成验证内容,并以eth2格式“打包”它。而轻客户端会将它们的交易广播至一个完整客户端,该客户端可以为它们添加验证内容。
从用户的角度来看,以太坊转换前和转换后,没有发生大的变化。实际上,转换前后会使用非常不同的代码路径来打包和广播交易,但提供的功能将是相同的。
可能的话,这种转换还可以进行改造,以至钱包通过RPC与客户端通信而不需要改变任何东西。
举个app用户的例子
比如你是在MakerDAO上有CDP,那么在eth1到eth2的转换过程中,你可以好好睡上一觉,当你醒来时,过渡就已经完成了。你可以像以前一样通过发送交易来与CDP交互以及清算CDP,但实际上你的客户端代码将认为你是在转换后的,并将验证数据添加到你的交易中,然后将其发送到eth2网络,而不是eth1网络。
可能的优化
在eth1链到达TRANSITION_HEIGHT,以及eth2上的eth1EE接受到状态之间的期间,我们可以对eth1状态进行一些预处理。比如我们可以:
将十六进制Patricia树替换为二进制稀疏Merkle树,以及一个专用哈希函数,以确保分支的哈希开销保持为O(log(n)),这使Merkle分支的大小减少了约4倍;
用SSZ哈希树替换RLP;
向帐户添加与状态租赁相关的数据字段;
清除“粉尘”账户;
根据“抽象化”提议修改账户结构;
相比将实际的eth1状态根包含到EE中,我们可选择包含通过执行所有这些修改生成的状态树根。这是一种确定性计算,因此所有验证者都可并行完成。这种一次性计算能够节省开销,可大大提高eth1转换后的效率和可用性。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。