编者注:本文为Parity开发者WeiTang写作的,关于如何增强EVM后向兼容性的文章,改进Gas机制的方案堪称大胆。
如果我们有机会可以重新设计EVM、提升其后向兼容性、让它对功能升级更为友好,而且可以完全不必考虑我们现有的历史包袱,我们该怎么做呢?
在这篇文章中,我会探究这个问题,并记录下由此演化出来的技术说明和设计哲学。
目标
Web是没有版本区别的,而且已经存在了几十年。因此我在此假设,我们想做一个同样没有版本区别的EVM。
我们同样希望保证,这种虚拟机具备良好的后向兼容性。也就是说,至少能良好兼容我们现有的合约,而且,也可以轻松加入新功能。
Gate.io于今日12:00开启投票上币第116期—DFL:据官方公告,Gate.io于4月14日(今日)12:00开启第116期投票上币项目DeFIL (DFL) ,投票截止时间至2021年4月15日上午10点。在本轮投票中,DFL如获得1000万票,Gate.io将上线DFL对USDT交易,参与投票的用户均可分享总计约51,280 DFL(40,000美金)空投奖励。DFL超级空投福利活动现已开启,活动截止至4月21日。[2021/4/14 20:17:51]
无效操作码
要设计一个永续的EVM,最简单可能也最重要的改动便是为合约部署添加一个验证过程。并非所有的字节序列都是有效的EVM代码,任何无效的操作码都不应该被部署到链上,因为在未来,这些代码可能会被分配以一个新的操作码,有不一样的功能。
加密交易所Gatehub将继续支持XRP直至法院判决:金色财经报道,加密货币交易所Gatehub发布公告称,已经仔细审查了关于美国证券交易委员会(SEC)在纽约联邦地方法院提起的指控,Gatehub将继续列出XRP,直到SEC对Ripple的诉讼被裁定,并且最终决定XRP被归类为“证券”,或者直到该交易所收到SEC的终止通知为止。[2021/1/13 16:01:02]
此种检查的技术详述初次成文化是在EIP-1712中。简要来说,在执行合约创建的状态转变函数之前,执行下列检查:
遍历代码的字节码
如果代码是一个PUSH(n)操作码,则跳过接下来n个字节
Gate.io 已完成10月26日FIL代币转化分发,总量约1.3万枚:据官方公告,Gate.io今日(10月26日)已经根据用户FIL6持仓情况完成FIL分发,总计约1.3万枚,用户可在账户账单明细中查看详情。目前Gate.io已经支持Filecoin(FIL)现货交易,充值提现,杠杠交易,币币理财,永续合约交易,三倍ETF交易等全线系列产品和服务。详情见原文链接。[2020/10/26]
如果字节码是一个有效的操作码,或者指定了无效指令,继续
否则,捕捉到错误
上述检查有点类似于jumpdestination检查。注意,对于例外情形,我们在这里使用的是“trap”,下文我们会详细解释。
功能调查
如果EVM要消弭掉版本的差别,基于EVM的代码执行应有能力调查出底层环境是否支持一种特定的功能。给定EVM所承担的角色,我们总是希望一个已经定义好的操作码的功能可以保持不变,并且还可以引入新的操作码来添加功能。而一些合约可能在引入某些特定功能之前就已经部署上去了。这些合约可以安排一个备用的子程序,在EVM不支持某功能的时候就运行子程序,而一旦硬分叉激活后就立即开始使用新功能。功能调查组件就像这里要用到的跳转器。因此,我们正式地定义一种新的操作码HAS_FEATURE。
该操作码接收一个堆栈参数。它会检查该参数是否位于0到2^8之间,如果不是,就捕捉错误
如果参数不受支持,就把0x0推回栈中;否则就推入0x1
例外与捕捉
在EVM的运行过程中,可能有很多因素会导致执行失败。单个交易可能因为耗尽Gas而失败;调用栈中的每一层都可能单独失败,而其错误必须被父调用框架明确处理。这些特性给了我们一定的弹性,但对于要运行在区块链上的合约来说,并不必然就是好事。这里,我们想重新定义一下,任何EVM本身发出的异常,都可以有trap行为,作为对fail的替代。也就是说,所有调用框架的所有执行过程中、消耗任意gas的时候、甚至被当前的状态函数回滚变更的时候,都可以有trap。合约接下来就被会鼓励使用返回值,在它们想跟父调用者交流非致命错误的时候。
Gas消耗量
过去的经验已经证明,我们总是想调整Gas消耗量。因为我们要这样做,我们不希望合约开发者对交易的Gas消耗量甚至是任何操作码的Gas消耗量作任何假设。要实现这一点,只需将EVM内所有关于Gas消耗量的公开信息都移除。这样Gas消耗量就成了一个外在于EVM、被隐藏起来的“实现上的细节”,只需在区块层执行中妥善处理。正式地移除0x5a的Gas操作码。此外,重新定义CALL、CALLCODE和DELEGATECALL,不再使用gas栈参数,而是采取现有执行框架中所有可用的Gas。
原文链接:
https://that.world/~essay/nevm/
作者:WeiTang
翻译:阿剑
尊敬的BIONE用户: 很高兴的通知您,LAICAWALLET已通过BIONE交易所项目审核,将于近期上线交易,敬请期待.
由Gate.io官方制作的《征服区块链》直播栏目在Youtube频道上一经播出就深受Gate.io用户以及热切关注区块链行业伙伴们的关注与喜爱.
本期讲师: 徐坤 OK战略副总裁 中国电子学会区块链专家委员中国区块链应用研究中心理事中促会区块链分会副秘书长要点课代表已经总结,赶紧拿小本本记下吧.
近几年,“科技”一词成为“金融”标配。不难看出,目前资管机构正在铆足了劲角逐金融科技,对于ABCD等技术投入力度持续加大.
要点总结: 1.?作为区块链的基础设施,底层公链技术目前尚未成熟,性能瓶颈仍将是一个急需攻克的难题。当前扩容技术取得部分进展,已能承载部分应用.
公告编号2019090503各位关心ZBG.COM的项目方和投资者们:CXC因钱包维护现已暂停提币功能,具体恢复时间将另行公告,给您带来不便深感抱歉,敬请谅解.