月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 火必 > 正文

GAS:无版本区别的EVM(以太坊智能合约虚拟机)_NAGASWAP

作者:

时间:1900/1/1 0:00:00

编者注:本文为Parity开发者WeiTang写作的,关于如何增强EVM后向兼容性的文章,改进Gas机制的方案堪称大胆。

如果我们有机会可以重新设计EVM、提升其后向兼容性、让它对功能升级更为友好,而且可以完全不必考虑我们现有的历史包袱,我们该怎么做呢?

在这篇文章中,我会探究这个问题,并记录下由此演化出来的技术说明和设计哲学。

目标

Web是没有版本区别的,而且已经存在了几十年。因此我在此假设,我们想做一个同样没有版本区别的EVM。

我们同样希望保证,这种虚拟机具备良好的后向兼容性。也就是说,至少能良好兼容我们现有的合约,而且,也可以轻松加入新功能。

Curve TVL已恢复至22.2亿美元:金色财经报道,链上数据显示,CRV目前在过去 24 小时内上涨超过 8%,现货价格为 0.6409 美元。随着复苏,Curve 其总锁定价值(TVL)已恢复至 22.2 亿美元。

金色财经此前报道,攻击Curve Finance的未知黑客已退回超2000万美元的资产。[2023/8/6 16:20:51]

无效操作码

要设计一个永续的EVM,最简单可能也最重要的改动便是为合约部署添加一个验证过程。并非所有的字节序列都是有效的EVM代码,任何无效的操作码都不应该被部署到链上,因为在未来,这些代码可能会被分配以一个新的操作码,有不一样的功能。

韩国将在元宇宙项目上投入总计5100万美元:金色财经报道,韩国科技部周三宣布,将向利用元宇宙的本地服务投资277亿韩元(2100万美元)。这笔2100万美元的投资将支持医疗、教育和旅游等领域的13个新项目,这些项目将利用元宇宙创新服务,改善对公众的服务。韩国周二宣布了400亿韩元(3000万美元)的基金,将鼓励元宇宙领域的小型企业积极寻求并购,以扩大业务到全球市场。[2023/3/9 12:51:55]

此种检查的技术详述初次成文化是在EIP-1712中。简要来说,在执行合约创建的状态转变函数之前,执行下列检查:

遍历代码的字节码

林肯公园单曲“Lost”MV由Shibuya联创等人执导:2月10日消息,流行摇滚乐队林肯公园(Linkin Park)新单曲“Lost”MV由数字艺术家Emily “pplpleasr”Yang和Web3视频平台Shibuya联合创始人Maciej Kuciara执导。

推特上发布的视频展示Shibuya上动漫White Rabbit的主角Mirai。单曲MV将于北京时间今日13:00推出。

据悉,Lost是为林肯公园2003年的专辑“Meteora”录制的歌曲但并未收录在专辑中,此次推出是作为“Meteora”发布20周年庆典的一部分。(Decrypt)[2023/2/10 11:58:48]

如果代码是一个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

翻译:阿剑

标签:GASALLCALRAPNAGASWAPSchain WalletMedical data linkWrapped Staked USDT

火必热门资讯
TOKEN:庆祝EXX Mall上线,EXX团队进行ET销毁公告_Colony Network Token

尊敬的EXX用户:为了庆祝EXXMALL上线,ET团队决定销毁团队所持有的部分EXX?Token.

1900/1/1 0:00:00
ETC:末日战车ETC要“继位”以太坊?_aibchain

ETC最近经常被聊到,而且话题很大,那就是--颠覆以太坊。当然,在币圈我们一贯是市值说话,比如很多喊着自己是真正的比特币的分叉币们,在市值还没对比特币造成威胁之前,喊口号都没有什么意义.

1900/1/1 0:00:00
WEB:Web3.0已来 区块链能给哪些互联网公司带来涅槃机会?_web3.0币怎么提现到账号

互联网从上世纪八九十年代诞生至今,一直在升级迭代。从静态网页到用户交互,从被数据投喂到自行交流,互联网早已经历了多次转型.

1900/1/1 0:00:00
VEN:官宣:中币 UP 第一期项目全球首发 LVN_LVN

8月27日,中币宣布实施全新VIP体系,同时将LaunchPad品牌全新升级为“UP”,定位是优质数字资产半价抢购通道.

1900/1/1 0:00:00
VER:BCH交易笔数下跌超九成 Roger Ver会怎么说?_呱呱币Frog

9月6日,加密货币研究机构Messari.io发文就比特币现金网络和比特币闪电网络的指标进行了比较。数据显示,BCH交易笔数在过去12个月里暴跌93%.

1900/1/1 0:00:00
区块链:联合国报告:美中两国数字经济全球领先_亚马逊币多少钱一个

新华社联合国9月4日电联合国贸易和发展会议4日发布的一份报告显示,美国和中国在全球数字经济发展中保持领先,全球数字财富高度集中于这两国的商业平台。报告呼吁各国重视数字经济,共同缩小数字鸿沟.

1900/1/1 0:00:00