编者按:本文来自以太坊爱好者,作者:EthereumOptimism,翻译&校对:IANLIU&阿剑,Odaily星球日报经授权转载。为什么需要OVM?
我们团队中的许多成员都曾参与过致力于支持智能合约的第一代通用plasma网络的架构设计。然而,部署plapps需要借助一整套新的开发工具。我们很快意识到,人们对于以太坊Layer2的期待远不止此——以太坊L2不只意味着扩展以太坊的应用,还要扩展以太坊本身。以上原因促使我们开发了OptimisticRollup——首个能将以太坊智能合约的全部功能引入扩展层的L2架构。Unipig
}把这个合约重新部署到L1上之后,还能返回相同的值吗?
G20会议:鼓励继续深入分析央行数字货币在促进跨境支付方面的潜在作用:10月31日, 二十国集团领导人第十六次峰会于10月30日至31日在意大利首都罗马以线上线下相结合方式举行。峰会通过了《二十国集团领导人罗马峰会宣言》。摘要如下:
我们欢迎金融稳定理事会从金融稳定角度总结新冠肺炎疫情教训的最终报告以及下步建议。我们鼓励继续深入分析央行数字货币在促进跨境支付方面的潜在作用及其对国际货币体系更广泛的影响。(经济日报)[2021/11/1 6:24:01]
-不同的链,不同的结果-明显不行!即使是在同一条L1上,如果将智能合约重部署在不同的两个区块,返回值也不一样——因为重部署的合约会获取L1的时间戳,而正确执行execute_l2_tx则应该返回L2的时间戳。如果你深入思考,你会发现这个问题几乎会发生在所有智能合约上。比如对于某个ERC20智能合约来说,你将合约重部署在L1上之后,你要怎么设置L2上的余额呢?诸如此类,不可胜数。解决之道:OVM
教育部等六部门:深入应用区块链等信息技术,推动教育数字转型:7月21日消息,教育部等六部门发布《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》。指导意见提出,深入应用5G、人工智能、大数据、云计算、区块链等新一代信息技术,充分发挥数据作为新型生产要素的作用,推动教育数字转型。利用区块链技术保护知识产权,探索个性化资源购买使用和后付费机制。通过用户评价和第三方评估相结合的方式,推动数字资源迭代更新。(教育部官网)[2021/7/21 1:07:07]
过去曾出现过两种解决“EVM中的EVM”问题的办法:要么是对EVM进行分叉,要么是硬着头皮用Solidity重新实现整个EVM;OVM是一种全新的方法,对于当前的以太坊1.0有着更好的性能和灵活性,而且不需要分叉!容器化:执行管理器
外汇局山西省分局深入推进跨境金融区块链服务平台试点工作:疫情期间,外汇局山西省分局深入推进国家外汇管理局推出的跨境金融区块链服务平台的试点工作,专题调研全省中小微外贸企业融资现状;深入宣传,促进更多中小微外贸企业了解区块链平台融资的便利性;加强推动,鼓励银行对中小微外贸企业建立专营服务机制;及时引导,推进银行主动对接中小微外贸企业,开展出口应收账款融资;“点对点”辅导,加快推进地方法人银行上线区块链平台,挖掘中小微外贸企业融资需求。通过外汇局的有效措施,银行对中小企业融资的积极性有了明显提高,企业对区块链融资的便利性也越来越了解,银行扩大了对中小微企业的融资规模,企业获得了便捷的融资,实现了“一项政策、多方共赢”。截至今年3月底,16家银行加入了区块链平台,全省通过区块链平台累计放款7.65亿美元。山西省涉外中小微外贸企业复工复产1458户,复工率达91%。(金融时报)[2020/4/9]
动态 | 未来区块链等金融科技在农村金融领域的应用将会持续深入推广:据中国金融新闻网消息,日前,央行等五部委联合发布《关于金融服务乡村振兴的指导意见》(以下简称《指导意见》),其中,在强化金融产品和服务方式创新方面,鼓励推动新技术的运用。业内人士认为,未来金融科技在农村金融领域的应用将继续深入推广。正如上述《指导意见》提出,积极运用大数据、区块链等技术,提高涉农信贷风险的识别、监控、预警和处置水平;鼓励开发针对农村电商的专属贷款产品和小额支付结算功能,打通农村电商资金链条等。[2019/2/16]
OVM能够解决问题的最重要原因是,它引入了一个全新的智能合约——作为OVM智能合约的虚拟容器。执行管理器会虚拟化所有可能导致L1、L2出现不同结果的执行,包括:智能合约存储内容交易内容——如区块高度、时间戳、tx.origin的帐户的地址),等等。跨合约信息的路由基本上,对于可能导致L1、L2出现不同结果的EVM功能,执行管理器都提供了保证其结果一致的函数。举例来说,我们构造一个容器来解决上述提到的时间戳不一致的问题:
现在我们重部署上面的合约,这回我们使用虚拟容器:
如此一来,我们就能够在验证fraudproof的时候,设置L1容器中的“虚拟区块高度”,来保证正确的返回值!
-新的TimeShifter函数,使用TimestampManager作为容器。-这就是"EVM中的EVM"——OVM的核心概念:虚拟化所有可能在不同链上返回不同结果的EVM组件。具体点来说,约有15条以太坊指令需要被虚拟化,你可以从以下入口查看真正的执行管理器长啥样。安全性:容器纯度检查
当然我们还需要稍微修改上面的合约,才能真正调用timestamp容器而不是拿到错误的block.timestamp。虽然我们解决了结果差异性的问题,但这只作用于该智能合约而已。因此,为了保障L2的安全性,我们需要确保L2上的所有合约都使用了timestamp容器,没有错误使用block.timestamp的漏网之智能合约。
OVM提供了“容器纯度检查”的服务——检查目标智能合约“是否只通过执行管理器来调用虚拟化指令”,而不允许像是block.timestamp这样的操作!不论有没有其他智能合约调用了目标合约,只要合约未通过检查,就无法部署到OVM。这样就能保证L2的安全性。开发体验:转译器
要让智能合约只通过执行管理器来调用某些指令,还有一个问题就是开发体验——如果开发者需要遍历整份智能合约,然后把所有block.timestamp替换为getOvmTimestamp(),这种费力不讨好的活肯定没人愿意做。为了解决这个问题,我们搭了一个转译器——输入普通EVM字节码,然后转译器会输出使用上述容器的OVM字节码。对于使用转译器的开发者来说,完全不需要和OVM直接打交道——只需要在Waffle、Truffle等你喜欢的测试套件中加入我们的solc-transpiler包。展望
我们认为OVM的出现代表着以太坊L2的飞跃,因为它不同于变着招使用以太坊,它就是以太坊本身的进步。只要加上几行代码,就能够实现快速且低成本的Solidity智能合约迁移,这也是当前关于以太坊扩展方面最令我们兴奋的topic。如果你想要自行体验一把,可以关注我们最近的OVM测试——在标准的以太坊工具中,实时运行部分的Synthetix复杂交易合约。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。