
虚拟机之战:WASM与EVM | 万向区块链小课堂
什么是EVM(Ethereum Virtual Machine,以太坊虚拟机)?
以太坊虚拟机是一种轻量级虚拟机,用于在以太坊网络上运行各种智能合约。EVM的功能不同于传统的操作系统,例如一次只能在一台机器上运行的Windows。EVM是现有操作系统的“镜像”,用以模拟本地操作系统,但它又是独立运行的,不会对真正的系统产生影响。
使用EVM,同一平台可以在许多不同的操作系统和硬件架构上运行。这样的特性使得虚拟机适用于如以太坊这样的分布式网络。EVM可以模拟在物理CPU上完成的功能,并实现以太坊网络上的大部分功能。
EVM具有如下特点:
确定的:一个确定的程序能够向同一组输入提供相同的输出,而与它执行相同代码的次数无关。在以太坊网络中,DAPP一次能够处理数百万美元的交易,不同的用户需要知道代码在执行的每个阶段是如何反应的。
隔离的:智能合约需要在完全隔离的环境中运行,以确保如果智能合约发生黑客攻击或bug,而不会影响底层协议的其余部分。
可终止的:以太坊智能合约是图灵完备的。因此,只要有足够的时间和资源,它理论上能够解决任何问题。智能合约应该附带终止机制,因为很难确定合约是否会在给定的时间限制内完成所有操作。以太坊使用gas限额来终止超出执行额度的智能合约。
EVM的功能:
它是以太坊网络的去中心化式处理单元,每个交互、交易和智能合约执行都只能在这里发生。 获取并执行指令,然后通过给定的指令分派器对操作数进行解码。 负责所有数据结构,如操作数、数据处理和指令。 跟踪网络组件,如存储状态、块信息和世界状态。 负责为以太坊网络上不同的智能合约创建运行环境。
EVM面临的挑战:
EVM的速度并不快,它可以处理很多不同的操作,但是它的操作码规范还没有发展到可以处理不同的需求。 支持的语言有限。
什么是WASM(WebAssembly)?
WASM是一种可以在现代浏览器上执行的新型代码,此新代码由万维网联盟(W3C)创建和定义。本质上,WASM(通常称为以太坊2.0)具有EVM的所有功能,并附带额外功能。
为网络而构建:
WASM由来自谷歌、微软和苹果等大型科技公司的各种工程师所组成的开发团队构建。因此,这些工程师得确保WASM与他们的引擎和协议相兼容。
设计时考虑到一系列特定的目标:
快速、高效、可移植:通过利用常见的硬件能力,WASM代码在不同平台上能够以接近本地速度运行。
可读、可调试:WASM是一门低阶语言,但是它有一种人类可读的文本格式,这允许通过人工来写代码、看代码以及调试代码。
保持安全:WASM被限制运行在一个安全的沙箱执行环境中。像其他网络代码一样,它遵循浏览器的同源策略和授权策略。
不破坏网络:WASM的设计原则是与其他网络技术和谐共处并保持向后兼容。
EVM vs WASM
速度
简单地说,EVM是一个万事通,但不是一个大师。EVM如何处理编译就是一个很好的例子。本机引擎难以找到执行某些操作的最佳路径,最终影响EVM的总体吞吐量。EVM只能处理256位字节码,这意味着小于256位的字节码必须先转换为256位格式,然后才能反馈给EVM。EVM的可扩展性问题很明显。
WASM直接转换为编译代码,这使它能够更快地加载,同时增加每个块处理的交易数。
预编译
EVM依赖于预编译(预编译合约)。当发出预编译调用时,EVM将执行预定义的本机代码,然后显示结果。这些预编译是特定于某个协议的基本操作,如签名方案和哈希。尽管预编译可以在不消耗大量gas的情况下提高密码计算的效率,但也会带来一些问题。新预编译的引入通常要求网络进行系统范围的硬分叉。
WASM消除了以太坊对预编译合约的依赖。因为WASM非常高效,开发者可以创建高效快速的智能合约,而不用担心潜在的硬分叉。
灵活性/互操作性
WASM支持更多的语言,并且提供了比EVM更广泛的工具集。WASM支持传统的语言,如Rust、C和C++。WASM还受到本机JavaScript引擎的支持,如Google的V8引擎(Node.js和基于Chromium的浏览器)、Microsoft的Chakra引擎(Microsoft Edge)、Mozilla的Spidermonkey引擎(Thunderbird和Firefox)。
EVM与WASM互相调用?
如上所述,EVM和WASM具有不同的特点,如果能实现两者的相互调用,将对开发者更为友好。
万向区块链推出的“万纳链”,支持EVM虚拟机和WASM虚拟机的相互调用,同时对WASM进行了创新优化。万纳链支持WASM虚拟机意味着开发智能合约不再局限于Solidity一门语言,同时可以使用多种高级语⾔,例如:C/C++/Rust等来编写智能合约,最后编译成WASM字节码就可以在万纳链上运行,极大地降低了入门门槛和开发成本,同时也提高了智能合约的安全性。
万纳链支持隐私计算,隐私合约同样支持高级语言开发,编译成「llvm ir」中间语言执行。隐私合约的输入数据保存在数据节点本地,由数据节点在链下以安全多方计算方式进行隐私计算,并提交计算结果到链上。
点击阅读原文,可了解更多万纳链详情。
参考资料:
The Virtual machines wars: WASM vs. EVM:
https://hackernoon.com/the-virtual-machines-wars-wasm-vs-evm
比推快讯
更多 >>- 前 OnlyFans 高管将推出有影响力的 NFT 交易卡平台
- MetaMask 计划帮助加密货币诈骗的受害者
- Tether 推出与墨西哥比索挂钩的新稳定币
- 印度交易所 CoinDCX 推出加密货币生息功能“Earn”
- BitKeep 推出全球首个用于代币交换的 InstantGas 功能
- ETHGlobal 公布 HackMoney 2022 中10家决赛入围项目
- 链游公会 YGG 回应 Merit Circle 社区:SAFT 协议除资本投资外并未提及其他增值服务
- ARK Invest 再次提交实物比特币 ETF 申请
- 葡萄牙共和国议会驳回两项加密税法案
- 世界银行:不会支持中非共和国的 Sango 加密中心计划
- Footprint Analytics 完成 265 万美元种子轮+ 轮融资,经纬创投领投
- Binance 巴林成为首家持有完整 4 类许可证的加密资产服务提供商
- 前币安高管和投资团队宣布推出 1 亿美元风险基金 Old Fashion Research
- 泰格豪雅CEO在其社交网络展示无聊猿#4215
- 加密指数平台Phuture推出首款产品,专注于“蓝筹”DeFi资产
- FTX创始人SBF入选时代百大人物
- 巴西联邦税务局要求公民对加密货币交易纳税
- DeFi 应用 Finnt 完成 350 万美元种子轮融资,Y Combinator 等参投
- Web3音频流媒体平台Tamago完成100万美元种子轮融资,Block0等参投
- 葡萄牙国会否决了两项寻求对加密货币征税的法案
- 去中心化内容发布平台Mirror 推出将文章铸造为 NFT 的功能
- 巴拉圭众议院通过了一项规范加密采矿和交易的法案
- Jack Dorsey 卸任 Twitter 董事会成员职位
- 美联储会议纪要显示准备继续加息50个基点,加息速度快于市场预期
- CryptoPunks 地板价跌破 10 万美元,与上个月相比下跌 50%
- Cosmos 生态系统核心开发团队 Ignite 拆分为两个独立实体「Ignite」和「NewTendermint」
- CoinMetrics:以太坊上持有超过 100 万美元 USDC 的钱包地址数量超过持有同等规模 USDT 的钱包数量
- Coinbase将上线The Sandbox (SAND)
- Layer 1区块链 Celestia 启动其“Mamaki”测试网
- NGC Ventures 为其新的Web 3基金筹集 1 亿美元,将支持 DeFi、NFT 和 GameFi 的早期项目
- 币安与哈萨克斯坦共和国数字发展部签署谅解备忘录
- 价值 150 万美元的 Moonbirds NFT 在网络钓鱼攻击中被盗
- Ripple 将在与美 SEC 的诉讼案结束后考虑 IPO
- 艺术家 Refik Anadol 基于人工智能的 NFT 收藏品以 620 万美元的价格卖出
- 摩根士丹利:清晰的加密货币监管对行业发展很重要
- StarkWare 融资 1 亿美元,估值 80 亿美元