以太坊:虚拟机之战:WASM 与 EVM

什么是以太坊虚拟机(EVM)?

以太坊虚拟机是一种轻量级虚拟机,用于在以太坊网络上运行各种智能合约。EVM的功能不同于Windows等传统操作系统,后者一次只能在一台机器上运行。EVM是构建在本机操作系统上的高级抽象,用于模拟物理机。

通过使用EVM,相同的平台可以在许多不同的操作系统和硬件架构上运行。该特性使虚拟机适合以太坊等网络,可以通过分布在世界各地的不同机器上的不同客户端访问这些网络。EVM可以模拟在物理CPU上执行的功能,并负责以太坊网络上的大部分功能。

EVM具有以下特点:

确定性

确定性程序对相同的输入集提供相同的输出,而与它执行相同代码的次数无关。在以太坊中,dApp每次处理数百万美元,各种用户需要知道代码在执行的每个阶段是如何反应的。

Kava 增加对以太坊虚拟机智能合约的支持:金色财经报道,Kava 在其以太坊 Co-Chain 的 Alpha 版发布中增加了对以太坊虚拟机 (EVM) 智能合约的支持。EVM 的发布使来自以太坊生态系统的开发人员和去中心化应用程序或dapps能够在 Kava 上构建和部署。作为 Kava Pioneer Program 的一部分,以太坊 Co-Chain 的封闭测试网将部署超过 15 个协议,包括收益农业协议 Beefy Finance、收益聚合器 AutoFarm 和流动性协议 RenVM。这些项目将在主网启动之前测试 Kava 的以太坊和 Cosmos 联合链之间的互操作性。在主网启动后,在 Kava 网络上启动的协议也将能够利用其 7.5 亿美元的 Kava Rise 开发者激励计划。(coindesk)[2022/3/9 13:46:37]

可隔离

Astar Network在核心功能部分添加X-VM(跨虚拟机):官方消息,波卡生态智能合约平台Astar Network(原Plasm)宣布,在核心功能部分添加了X-VM(跨虚拟机)。Astar的开发人员可以在WebAssembly和Ethereum虚拟机上同时部署Solidity和Ink。[2021/8/4 1:34:07]

智能合约需要在完全隔离的环境中运行。这确保了如果智能合约发生黑客或bug,它不会影响底层协议的其他部分。

可终止

以太坊智能合约是图灵完备的。因此,只要有足够的时间和资源,他们就应该能够解决任何问题。智能合约应该有终止机制,因为很难确定合约是否会在规定的期限内完成所有操作。以太坊使用“gas”限制来终止超出执行限制的智能合约。

Web 3 项目FileStar文曲星将集成以太坊虚拟机::据官方消息,近日,FileStar文曲星社区开发者在Github上提交改进提案(SIP-0003: Bring EVM to FileStar),即将在FileStar上集成EVM(以太坊虚拟机)。该提案的基本开发已经完成,目前已进入测试阶段。

该提案正式实施之后,开发者将可以在FileStar上使用Solidity开发智能合约,为FileStar带来智能数据管理、资产发行等功能。

EVM(以太坊虚拟机)是以太坊生态的核心,也是目前应用最为广泛的链上虚拟机,有着十分成熟的开发与应用生态。FileStar上集成EVM(以太坊虚拟机),将促进其链上生态发展,更好的为Web 3互联网的发展提供基础设施,并服务于其他区块链项目。[2021/4/22 20:47:49]

EVM的功能

动态 | 迅雷链发布“支持EVM、WASM双虚拟机模式”等四项技术升级:4月10日,在2019中国国际区块链技术与应用大会上,迅雷链总工程师来鑫受邀出席并发表了\"支撑亿级用户的区块链技术革新\"的演讲,在迅雷链原有的百万TPS、秒级确认的领先性能的基础上,发布四大技术革新:1.首家支持EVM、WASM双虚拟机模式,兼容能力再扩展;2.率先实现国密体系中签名逆推公钥的算法,提升主链运行效率;3.创新实现存储快照化,从根本上降低节点存储压力,提高节点启动速度;4.实用可行的隐私保护方案。此次技术革新将极大提升区块链开发效率、降低开发门槛,进一步促进区块链技术赋能实体经济。[2019/4/10]

它是以太坊网络的去中心化处理单元。每个交互、交易和智能合约执行都只能在这里发生。

获取并执行指令,然后通过给定的指令分派器解码操作数。

负责所有的数据结构,如操作数,数据处理和指令。

跟踪网络组件,如存储状态、区块信息和世界状态。

负责为以太坊网络上的不同智能合约创建运行时环境。

EVM的挑战

EVM处理如此多不同的操作并不快,但是它的操作码规范还没有发展到可以处理变化的需求。

未能进化意味着语言也有局限性。

什么是WebAssembly(WASM)?

WebAssembly(WASM)是一种新型代码,可以在现代浏览器上高效地执行。这个新代码是由万维网联盟(W3C)创建和定义的。WASM是为网络而建的,包括来自谷歌、Mozilla和苹果的工程师。本质上,WASM通常被称为Ethereum2.0,它具有EVM的所有功能,并附带了额外的功能。

专为网络打造

如前所述,来自谷歌、微软和苹果等大型技术公司的工程师都是开发团队的一部分。因此,这些工程师要确保WASM与他们的引擎和协议兼容。

设计时考虑了一组特定的目标

创建WASM是为了快速、高效和便携。WASM将利用常见的硬件能力,以“接近本地速度”执行。

易于阅读和调试。它具有人类可读的文本格式,代码可以手动查看、编写和调试。

确保安全。它通过增强主机浏览器的权限策略和保持向后兼容性来实现这一点。

EVM与WASM

速度

简单地说,EVM是一个万事通,但却什么都不懂。EVM如何处理编译就是这一点的一个很好的例子。本机引擎努力寻找执行某些操作的最佳路径,最终影响EVM的总体吞吐量。

EVM只能处理256位字节码,这意味着小于256位的字节码必须先转换为256位格式,然后才能发送给EVM。EVM的可扩展性问题很明显,因为它每秒只处理25个交易。

WASM直接转换为编译后的代码,这使它能够更快地加载,同时增加每个区块所处理的交易数量。

预编译

EVM依赖于预编译(预编译合约)。当发出预编译调用时,EVM将执行预定义的本机代码,然后显示结果。这些预编译特定于用于基本操作的特定协议,例如签名方案和哈希。

尽管预编译在不消耗大量gas的情况下使加密计算变得高效,但它们也带来了问题。引入新的预编译器通常要求网络经历一个系统范围的硬分叉。

WASM消除了以太坊对预编译合同的依赖。由于WASM非常高效,开发人员可以创建高效、快速的智能合约,而无需担心潜在的硬分叉。

灵活性和互操作性

WASM支持更多的语言,并且提供了比EVM更广泛的工具集。WASM支持传统语言,如Rust、C和c++。WASM也被本地JavaScript引擎支持,例如Google的V8引擎、微软的Chakra引擎和Mozilla的Spidermonkey引擎。

小结

以太坊引入了比特币区块链上不可用的某些功能。以太坊虚拟机的引入允许开发人员轻松地创建和部署智能合约。然而,EVM也有许多局限性,而WASM正试图解决这些局限性。根据WebAssembly.org,WebAssembly1.0已经被提供给四个主要的浏览器引擎。

Source:https://medium.com/momentum6/the-war-on-virtual-machines-wasm-vs-evm-8e68f9d53ef4

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

地球链

波场ENS:从 ENS 的空投中学习

ENS果然空投了,它的规则很有趣,值得学习:空投将分配给曾经注册过或目前有效的「.eth」二级域名注册地址,空投权重主要按账户而非域名数量计算,公式为0.27乘以至少持有1个ENS域名的天数.

[0:15ms0-1:30ms