GAS:观点:无版本区别的EVM

编者按:本文来自以太坊爱好者,作者:WeiTang,翻译:阿剑,Odaily星球日报经授权转载。本文为Parity开发者WeiTang写作的,关于如何增强EVM后向兼容性的文章,改进Gas机制的方案堪称大胆。如果我们有机会可以重新设计EVM、提升其后向兼容性、让它对功能升级更为友好,而且可以完全不必考虑我们现有的历史包袱,我们该怎么做呢?在这篇文章中,我会探究这个问题,并记录下由此演化出来的技术说明和设计哲学。目标

Web是没有版本区别的,而且已经存在了几十年。因此我在此假设,我们想做一个同样没有版本区别的EVM。我们同样希望保证,这种虚拟机具备良好的后向兼容性。也就是说,至少能良好兼容我们现有的合约,而且,也可以轻松加入新功能。无效操作码

观点:SEC可能对XRP案提出上诉,使情况进一步复杂化:金色财经报道,LBank Labs高级研究员Johnny Teng在一份报告中表示,由于投资者采取谨慎立场,交易区间仍然相对狭窄,这主要是受到XRP法律案件持续发展的影响。SEC主席Gary Gensler对法院对XRP代币证券化的裁决表示失望,这增加了不确定性,SEC可能提出上诉,使情况进一步复杂化。美国政府出售没收的比特币和短期持有者获利的预期抛售压力,再加上机构参与者的大力支持以及24,300美元左右的大量流动性的存在,正在导致比特币市场的不确定性加剧,投资者需要谨慎决策。[2023/7/24 15:54:33]

要设计一个永续的EVM,最简单可能也最重要的改动便是为合约部署添加一个验证过程。并非所有的字节序列都是有效的EVM代码,任何无效的操作码都不应该被部署到链上,因为在未来,这些代码可能会被分配以一个新的操作码,有不一样的功能。此种检查的技术详述初次成文化是在EIP-1712中。简要来说,在执行合约创建的状态转变函数之前,执行下列检查:遍历代码的字节码如果代码是一个PUSH(n)操作码,则跳过接下来n个字节如果字节码是一个有效的操作码,或者指定了无效指令,继续否则,捕捉到错误上述检查有点类似于jumpdestination检查。注意,对于例外情形,我们在这里使用的是“trap”,下文我们会详细解释。功能调查

观点:加密货币支付不会破坏俄罗斯的金融体系:8月21日消息,随着俄罗斯即将于2021年1月1日开始正式禁止其境内的加密支付,一些加密行业人士发表他们的看法。此前俄罗斯议会金融市场委员会主席Anatoly Aksakov表示,使加密支付合法化基本上意味着破坏卢布为代表的金融系统。对此,BitGo首席执行官Mike Belshe,币安俄罗斯和CIS运营主管Gleb Kostarev等全球主要加密人士一致认为,使用比特币等加密货币进行支付不会对俄罗斯经济构成威胁。Kostarev概述说,荷兰和委内瑞拉等国家已经采用了加密支付,世界各地的人们已经以加密货币购买商品和服务。这些有效的解决方案是传统金融服务和加密货币项目成功整合的结果。很显然,加密货币很难摧毁金融体系,但毫无疑问,它们可以补充金融体系。(Cointelegraph)[2020/8/21]

如果EVM要消弭掉版本的差别,基于EVM的代码执行应有能力调查出底层环境是否支持一种特定的功能。给定EVM所承担的角色,我们总是希望一个已经定义好的操作码的功能可以保持不变,并且还可以引入新的操作码来添加功能。而一些合约可能在引入某些特定功能之前就已经部署上去了。这些合约可以安排一个备用的子程序,在EVM不支持某功能的时候就运行子程序,而一旦硬分叉激活后就立即开始使用新功能。功能调查组件就像这里要用到的跳转器。因此,我们正式地定义一种新的操作码HAS_FEATURE。该操作码接收一个堆栈参数。它会检查该参数是否位于0到2^8之间,如果不是,就捕捉错误如果参数不受支持,就把0x0推回栈中;否则就推入0x1例外与捕捉

声音 | 观点:机构投资者目前更喜欢CME而不是Bakkt:机构投资者似乎正在引领新一轮牛市。根据加密分析公司Skew的数据,CME比特币期货未平仓合约自年初以来上涨100%。1月13日,CME推出BTC期权,从第一天起就击败了Bakkt。在不断增长的比特币期权市场,CME首日成交额为220万美元。这一数字明显高于Bakkt每天52万美元的交易额。不过,仍远低于面向散户的Deribit,后者是BTC期权市场的主导力量。目前,机构投资者更喜欢CME,而不是Bakkt。说到BTC期货成交量,Bakkt自去年12月以来一直在2500万美元至5000万美元之间振荡。根据Skew提供的数据,尽管Bakkt的未平仓合约也创下新高,但只达到1000万美元,而CME未平仓合约达到2.4亿美元。此外,比特币期货溢价继续上升。CME交易员比其他平台更乐观,3月份合约的年化溢价为13.5%,比其他平台平均高出约2个百分点。(Bitcoin Exchange Guide)[2020/1/19]

在EVM的运行过程中,可能有很多因素会导致执行失败。单个交易可能因为耗尽Gas而失败;调用栈中的每一层都可能单独失败,而其错误必须被父调用框架明确处理。这些特性给了我们一定的弹性,但对于要运行在区块链上的合约来说,并不必然就是好事。这里,我们想重新定义一下,任何EVM本身发出的异常,都可以有trap行为,作为对fail的替代。也就是说,所有调用框架的所有执行过程中、消耗任意gas的时候、甚至被当前的状态函数回滚变更的时候,都可以有trap。合约接下来就被会鼓励使用返回值,在它们想跟父调用者交流非致命错误的时候。Gas消耗量

过去的经验已经证明,我们总是想调整Gas消耗量。因为我们要这样做,我们不希望合约开发者对交易的Gas消耗量甚至是任何操作码的Gas消耗量作任何假设。要实现这一点,只需将EVM内所有关于Gas消耗量的公开信息都移除。这样Gas消耗量就成了一个外在于EVM、被隐藏起来的“实现上的细节”,只需在区块层执行中妥善处理。正式地移除0x5a的Gas操作码。此外,重新定义CALL、CALLCODE和DELEGATECALL,不再使用gas栈参数,而是采取现有执行框架中所有可用的Gas。

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

金星链

中币交易所ALA:?让饭圈女孩杀入币圈

文|昕楠运营|盖遥编辑|卢晓明出品|Odaily星球日报币圈的玩法正在向饭圈延伸。日前,韩国最大的娱乐公司SM公开对外宣发了一项新业务——计划发行自己的货币.

[0:62ms0-0:710ms