eWASM能否真如其设想,撬动整个以太坊2.0-ODAILY_APE:NFT

EthereumVirtualMachine的缩写,中文直译全称为以太坊虚拟机。对于没有接触过软件开发的用户来说,EVM看似晦涩难懂。但是如果我们先类比什么是Java虚拟机,或许会更好理解。

简单的类比:EVM之于以太坊,正如Java虚拟机之于Java语言

在做开发前,程序员需要把Java代码编译成字节码,但计算机无法识别字节码,Java虚拟机的作用就是把字节码编译成计算机系统可以识别的机器码指令,然后在计算机上运行。那么同样的,EVM的存在是为了能让程序员用Solidity编写的合约代码,运行在以太坊的环境中。

可见,以太坊就相当于计算机环境,而EVM负责把合约代码编译成以太坊能识别的机器码运行。在网络较为繁荣,也就是开发者搭建应用需求比较旺盛的时候,每天甚至每小时都会有成千上万条新的代码写入以太坊网络。但是,这些合约代码,如果无法被编译成系统可以识别的语言信号,就无法转化成具体的指令和程序。所以,我们可以把EVM看成是以太坊生态中最重要的资源转换器。没有了他,以太坊上的代码就无法生效,即便是开发者孜孜不倦地编写程序语言,也等同于停更。须知,任何一款程序的代码停止更新,就意味着他走向终结。另外,如果没有EVM,任何人都无法在以太坊协议上执行程序软件,因为这样一来他们写入系统的代码,全是Bug。

链游公会YGG推出新的Reward Vaults:11月14日日消息,链游公会Yield Guild Games(YGG)推出新的Reward Vaults,持有公会徽章的用户可以在新的Polygon Reward Vaults上质押YGG代币并获得League of Kingdoms与Thetan Arena代币奖励。

YGG表示,此前的Reward Vaults包含了Aavegotchi和Crypto Unicorns两个项目,总计质押了超350万枚YGG代币。[2022/11/14 13:02:30]

为进一步强化读者对EVM的概念,大家不妨先明晰两个概念:虚拟机和图灵完备性。

读懂两个最关键概念:虚拟机和图灵完备性

首先,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

也就是说在实体计算机中能够完成的工作,在虚拟机中都能够实现。虚拟机通过生成现有操作系统的全新虚拟镜像,具有和Windows系统完全一样的功能,但它又是独立运行的,不会对真正的系统产生影。

质押平台Freeway:正在运行多个恢复计划:10月26日消息,质押平台Freeway发推解释最近暂停服务的原因,并表示正在运行多个恢复计划。

据此前报道,Terra研究员FatMan发推称,Freeway已停止平台所有取款。所有团队成员的名字已从网站删除,疑似发生Rug Pull,所涉金额达1亿美元。[2022/10/26 16:39:44]

因此,可以这么理解,以太坊的虚拟机就是以太坊智能合约的运行环境,系统中的节点可借助EVM来运行自己的DAPP。另外,由于以太坊虚拟机的运行环境完全与主链隔离,这自然而然地形成了一种测试环境。这种测试环境,给了许多没有区块链技术经验的开发者大胆试错的机会,因为他们的错误代码完全不会影响到以太坊智能合约。

著名说唱歌手Eminem将在Nifty Gateway发售NFT收藏品:4月21日,NFT交易平台Nifty Gateway发推宣布,著名说唱歌手Eminem将于4月25日在该平台发售NFT收藏品。[2021/4/21 20:42:06]

其次,图灵完备是个技术术语,得名自英国数学家艾伦·图灵,发明了第一台图灵机器,它是当今计算机的先驱。后来,计算机业界用图灵完备代指可以处理任意复杂程度的计算。从理论上看,以太坊可以部署任何类型和功能的计算机程序,只是这些程序是分布式的,而非通常我们所看到的中心化的,而这一切,需要归功于EVM的底层设计。从这一角度来看,比特币并不是图灵完备的,因为他只是个分布式账本,无法执行任何应用程序。

最后,综合这两大概念,可知EVM是一个可以执行任何复杂度计算的、完全虚拟化的计算机系统,从这一点来看它又像以太坊的大脑。

EVM执行过程中的关键性模块

慢雾:Cover协议被黑问题出在rewardWriteoff具体计算参数变化导致差值:2020年12月29日,慢雾安全团队对整个Cover协议被攻击流程进行了简要分析。

1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;

2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;

3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;

4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;

5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;

6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;

7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;

8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;

9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;

10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;

11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。具体accRewardsPerToken参数差值变化如图所示。[2020/12/29 15:58:07]

EVM的运转,紧紧地围绕着以太坊的生态。所以,很多让我们感到晦涩但又熟悉的以太坊术语,其实均与EVM有着莫大的关系。

Kava 4主网“Gateway”测试网将于今晚10点发布:据官方推特,Kava将于今晚10点发布Kava-4主网“Gateway”的测试网,测试网最终功能包括支持Harvest货币市场、支持在Kava上借贷BTC、XRP、BUSD、支持在Harvest上借贷BTC、XRP、BNB、BUSD以及Kava原生资产等。

Kava是一个支持多资产抵押的跨链DeFi协议,支持主流数字资产的抵押及稳定币贷款服务。[2020/9/28]

首先是操作码。EVM就是通过操作码,来解释和转译Solidity编写的指令。目前EVM中有140多个不同的操作码,他们类似EVM直接发出的指令。例如,CREAT操作码对应着创建智能合约,STOP操作码意指暂停正在运行的合约;

其次是Gas费。Gas费是在EVM环境中执行代码的资源,以“gwei”为单位。具体来看,执行任何一笔交易,都需要消耗算力资源和存储空间,就像我们在手机中任意下载一个应用,都需要占用电量和内存。这部分隐性的消耗,在链上就直观地转化成显性的Gas费成本。EVM和Gas费之间的关系,像是汽车和汽油,EVM每执行一项指令,都要消耗对应额度的Gas费;

最后是执行转账功能,这也是EVM和全体以太坊用户都能产生关联的地方。EVM在转账时的具体步骤如下:

1)核对是否有误差,包括转账数值和签名的有效性等;

2)计算转账所需要的Gas费,并执行收取Gas费指令;

3)将数字资产转账到指定的地址。

需要注意的是,EVM若检测出转账者未支付足够的手续费,那么转账会被回滚,且不退转账费,直接支付给矿工。另外,如果是收款人地址错误导致的交易失败,EVM会原封不动的把转账本金和手续费退回给付款人。

浅析EVM公链的概念和重要动向

以太坊在公链赛道,稳坐龙头地位,无论是生态应用数量和总锁仓量都占行业绝大多数。因此,市面上主流的公链,都选择兼容EVM,他们也因此得名EVM公链。

EVM兼容,指的是在其公链上搭建的智能合约,可以快速便捷而又低成本地在以太坊上来回迁移、无缝搬运。目前,很多公链在开发中,特意实现了EVM兼容的功能,以达到最大化承接以太坊外溢项目的功能,类似于移动互联网玩法中的引流。所以,许多公链项目方都将实现EVM兼容,作为其最大的卖点和看点。

当然,从目前的行情来看,EVM兼容链的最终优胜者,依然寥寥。

什么是eWASM?它和EVM的关系是什么?

熟悉以太坊生态的朋友都知道,以太坊2.0是以太坊的终极形态,它在实现了POW转POS机制后,能够高性能地处理一切计算任务,甚至媲美Web2的互联网产品。但是,按照目前EVM的底层设计和性能表现来看,EVM实在无法与以太坊2.0的理想状态适配。于是,eWASM成为EVM的接棒者、替代品。

交待一下,WebAssemly即Web上的汇编,作为近年来兴起的Web执行环境,是一种为基于栈的虚拟机设计的的二进制指令格式。相对JavaScript,拥有更好的性能、较低的存储成本、更安全的执行环境、更多的语言支持等优势。

按照设想,因为相比于EVM,eWASM具有更好的性能以及更好的扩展性,可以支持Solidity、C++、Rust、AssemblyScript等编程语言,开发合约会更容易。eWASM也与当前的Web标准兼容,因而更容易在普通浏览器中运行,用户无需扩展程序即可访问DApp。

此外,以太坊并不是唯一一个使用WASM作为其底层执行引擎的,EOS、Dfinity、Polkadot、Tron、Cardano、Spacemesh等都已经或正在采用WASM。

值得注意的是,以太坊2.0分为三个阶段:PoS、分片,以及排在最后的eWASM。目前大家最关心的转POS,也就是合并,还在准备过程当中。所以尚需时日的eWASM,其代码更新的频次并不多,但他的概念足够吸引人。eWASM能否真如其设想,撬动整个以太坊2.0,还将持续关注。

今天的分享就到这里,后期会给大家带来其他赛道的龙头项目分析。感兴趣的可以点个关注。我也会不定期整理一些前沿咨询和项目点评,欢迎各位志同道合的币圈人一起来探索。

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

金宝趣谈

[0:0ms0-3:973ms