时间:2021-12-04|浏览:467
以太坊虚拟机是在以太坊网络上运行各种智能合同的轻量级虚拟机。EVM不同于W的功能indows等待传统操作系统,后者一次只能在机器上运行。EVM 模拟物理机是本机操作系统中构建的高级抽象。
通过使用EVM,同一个平台可以在许多不同的操作系统和硬件架构上运行。该功能使虚拟机适用于以太坊和其他网络,可以通过分布在世界各地的不同机器上的不同客户访问这些网络。EVM物理C可以模拟PU对以太坊网络上的大部分功能负责。
EVM具有以下特点:
确定性
确定性程序为相同的输入集提供相同的输出,与其执行相同代码的次数无关。在以太坊,dApp每次处理数百万美元,各种用户都需要知道代码在执行的每个阶段是如何反应的。
可隔离
智能合约需要在完全隔离的环境中运行。这确保了如果黑客或b在智能合约中发生ug,它不会影响底层协议的其他部分。
可终止
以太坊智能合同是图灵完整的。因此,只要有足够的时间和资源,他们就应该能够解决任何问题。智能合同应有终止机制,因为很难确定合同是否会在规定的期限内完成所有操作。以太坊使用gas限制终止超出执行限制的智能合同。
EVM 的功能
它是以太坊网络的去中心化处理单元。这里只能发生每一个交互、交易和智能合行。
获取并执行指令,然后通过给定的指令分配器解码操作数。
负责操作数、数据处理和指令等所有数据结构。
跟踪存储状态、区块信息和世界状态等网络组件。
负责为以太坊网络上的不同智能合约创造运行环境。
EVM 的挑战
EVM处理这么多不同的操作并不快,但其操作代码规范还没有发展到处理变化的需要。
未进化意味着语言也有局限性。
什么是WebAssembly (WASM)?
WebAssembly (WASM)是一种可以在现代浏览器上有效执行的新代码。这个新代码由万维网联盟(W3C)创建和定义。WASM来自谷歌、Mozilla和苹果的工程师在一起。本质上,WASM通常被称为E通常被称为Ethereum 2.0,它具有EVM所有功能,并附加额外功能。
专门为网络打造网络
谷歌、微软、苹果等大型技术公司的工程师都是开发团队的一部分。因此,这些工程师必须确保WASM兼容他们的引擎和协议。
在设计中考虑了一组特定的目标
创建WASM快速、高效、便携。WASM以接近本地速度执行常用硬件能力。
易于阅读和调试。它具有人类可读的文本格式,代码可以手动查看、编写和调试。
确保安全。这是通过增强主机浏览器的权限策略和保持向后兼容性来实现的。
EVM 与 WASM
速度
简单地说,EVM是万事通,却什么都不懂。EVM如何处理编译就是这一点的一个很好的例子。本试图找到执行某些操作的最佳路径,最终影响EVM总吞吐量。
EVM只能处理256位字节码,这意味着小于256位的字节码必须转换为256位格式,然后才能发送给EVM。EVM可扩展性问题很明显,因为它每秒只处理25笔交易。
WASM直接转换为编译代码,可以更快地加载,增加每个块处理的交易量。
预编译
EVM依靠预编译(预编译合同)。发出预编译调用时,EVM将执行预定义的本机代码,然后显示结果。这些特定的预编译协议用于基本操作,如签名方案和哈希。
虽然预编译不消耗大量gas在这种情况下,加密计算变得高效,但它们也带来了问题。引入新的预编译器通常要求网络在系统范围内经历硬分叉。
WASM消除了以太坊对预编译合同的依赖。ASM非常高效,开发人员可以在不担心潜在硬分叉的情况下创建高效、快速的智能合同。
灵活性和互操作性
WASM支持更多的语言,并提供比E更多的语言VM更广泛的工具集。WASM支持R等传统语言ust、C和c 。WASM也被本地JavaScript例如,发动机支持 Google 的 V8 引擎(基于 Node.js 和 Chromium 浏览器),微软的 Chakra 引擎(Microsoft Edge)和 Mozilla 的 Spidermonkey 引擎(Thunderbird 和 Firefox)。
用戶喜愛的交易所
已有账号登陆后会弹出下载