编者注:本文为Parity开发者WeiTang写作的,关于如何增强EVM后向兼容性的文章,改进Gas机制的方案堪称大胆。
如果我们有机会可以重新设计EVM、提升其后向兼容性、让它对功能升级更为友好,而且可以完全不必考虑我们现有的历史包袱,我们该怎么做呢?
在这篇文章中,我会探究这个问题,并记录下由此演化出来的技术说明和设计哲学。
目标
Web是没有版本区别的,而且已经存在了几十年。因此我在此假设,我们想做一个同样没有版本区别的EVM。
我们同样希望保证,这种虚拟机具备良好的后向兼容性。也就是说,至少能良好兼容我们现有的合约,而且,也可以轻松加入新功能。
IMF:完全禁止加密资产长远来看并非有效方式:6月22日消息,国际货币基金组织(IMF)发布报告称,拉丁美洲和加勒比地区(LAC)对央行数字货币的兴趣上升,而加密货币的使用情况却各不相同。加密资产带来的风险因不同国家的情况而异。IMF已经就适当政策应对的关键要素提供指导,以减轻风险,同时利用加密资产相关技术创新的潜在好处。如果设计得当,CBDC可以增强支付系统的可用性、弹性和效率,并增加拉丁美洲和加勒比地区的金融包容性。
虽然考虑到加密资产的风险,一些国家已经完全禁止加密资产,但从长远来看这种方法可能不会有效。相反,该地区应该专注于解决加密需求的驱动因素,包括公民未得到满足的数字支付需求,并通过在国家统计数据中记录加密资产交易来提高透明度。[2023/6/22 21:54:53]
无效操作码
浙江:2023年实现数字人民币消费150亿元:金色财经报道,浙江省政府办公厅近日印发《关于进一步扩大消费促进高质量发展若干举措》,创新升级数字信息消费。大力发展信息技术服务,丰富信息技术产品供给。进一步激发杭州市、宁波市综合型信息消费示范城市和温州市、湖州市特色型信息消费示范城市活力,办好信息消费城市行活动。加大数字人民币促消费力度,2023年实现数字人民币消费150亿元。[2023/4/20 14:16:14]
要设计一个永续的EVM,最简单可能也最重要的改动便是为合约部署添加一个验证过程。并非所有的字节序列都是有效的EVM代码,任何无效的操作码都不应该被部署到链上,因为在未来,这些代码可能会被分配以一个新的操作码,有不一样的功能。
Uniswap基金会:Uniswap资助计划在18个月的时间里资助了700万美元:金色财经报道,Uniswap基金会发文表示,Uniswap资助计划于2021年启动,在 18 个月的时间里向 122 名受助人资助了 700 万美元。自 Uniswap 基金会于 2022 年 8 月成立以来,Grants 团队已通过两?波赠款发放了 33 笔赠款,总额约为 270 万美元。?
此外,Uniswap基金会宣布2023年第一季度要做的三件事:
1.启动一个网站,该网站将分享 Grants 流程和资助标准,以及我们对基金会投资的每个类别的策略。我们的目标是建立一个明确的地方来了解 Grants 计划,并提供更多的清晰度和透明度。?
2.在网站上展示以前的受赠工具,以便社区可以了解和使用它们。
3.启动新的融资计划,提供不同的融资渠道,同时为 Uniswap 社区提供更多战略价值。[2023/1/7 10:59:29]
此种检查的技术详述初次成文化是在EIP-1712中。简要来说,在执行合约创建的状态转变函数之前,执行下列检查:
遍历代码的字节码
如果代码是一个PUSH(n)操作码,则跳过接下来n个字节
如果字节码是一个有效的操作码,或者指定了无效指令,继续
否则,捕捉到错误
上述检查有点类似于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
翻译:阿剑
尊敬的用户: CEO全球站经过了近两年的发展,已经吸引海量的用户注册交易。为了进一步促进全球站的发展,让更多的新用户认识到CEO平台,现将火热开启“星火燎原”计划.
1900/1/1 0:00:00IX.com平台鉴于活动将严重危害数字资产交易的发展,助长和滋生腐败、败坏社会风气,损害用户的正当权益,破坏数字资产交易平台稳健经营的基础,加大数字资产交易平台的法律和运营风险,IX.com平台为预防和恐怖融资活动.
1900/1/1 0:00:00QUICKTAKE? 1、苹果应用商店每周5亿的访客量使得其搜索结果排名第一的位置被所有应用程序发布方所觊觎.
1900/1/1 0:00:00“你好,可以帮我看一下100枚比特币的实价吗?”一位卖家在Skype上询问。“稍等——有了,是10270美元。”两分钟后。“对不起,这是一条周五的旧消息,当时我的Skype出问题了,消息没发出去。”“我真心觉得我们应该弃用Skype.
1900/1/1 0:00:001关于“Startup非首发打折优惠上线通道”Gate.io正式上线“Startup非首发打折优惠上线通道”,针对已经在主流交易平台上线的发展稳定有潜力的区块链项目,提供更为快捷的上币通道.
1900/1/1 0:00:00自2018年8月23日用户/广告方积分管理和取消制度出台以来,经过不断更新和完善,火币OTC始终严格执行,现对7月度的运行情况通报如下:一、排查月度取消数据较差的用户账户952个,对其中109个取消数据差或用户积分低于60分的账号.
1900/1/1 0:00:00