bitpie钱包苹果下载|以太坊虚拟机 (EVM):它是什么以及它是如何工作的?

2022-11-14栏目:加密货币

简单的机器通常被定义为一种物理设备,它通过减少用户的工作量来简化工作。计算机属于这一类,因为它根据用户提供的输入执行复杂的过程、计算和操作。它代表他们执行复杂的任务。

同样,虚拟机 (VM)是一种计算机资源,它使用软件而不是物理计算机来运行程序和部署应用程序。VM 通常执行硬件计算机的所有功能,但以软件代码的形式存在。虚拟机使用自己的操作系统,独立于其他虚拟机运行。

什么是以太坊虚拟机?

通过上述机器和虚拟机的一般定义,更容易将以太坊虚拟机 (EVM) 的概念联系起来。

推荐阅读 1

Solidity 简介:值得拥有的工具

2

Web3 中你应该知道的 35 个术语

以太坊虚拟机是一个巨大的虚拟机,便于代码的部署和执行。EVM 通常被描述为图灵完备的,这意味着只要有足够的时间、内存和必要的指令,它就可以解决任何计算任务,无论多么复杂。

EVM 允许开发人员在以太坊上创建去中心化应用程序。它还存储所有以太坊账户和智能合约,以简化数据的检索和所述合约的执行。任何人都可以通过以太坊节点从世界任何地方访问 EVM,这些节点以一定的费用(gas)将计算能力提供给以太坊网络。

什么是智能合约?

智能合约是自动执行的代码行,允许用户或其他自动代码等实体在不需要中央权限的情况下相互交易。在以太坊的情况下,智能合约是使用 Solidity 编程语言编写的。

用于编写智能合约的软件代码使它们安全,因为它们一旦部署在以太坊网络上就无法更改或更改。每次执行智能合约时,都会改变以太坊虚拟机的状态。

这一特性进一步使 EVM 成为“状态机”,因为它执行计算和跟踪执行属于智能合约的代码所导致的状态变化的繁重工作。EVM 通过监控账户上的 ETH 余额、智能合约的数据输出以及以太坊地址和智能合约完成后执行的交易来做到这一点。

操作码协助 EVM 完成智能合约任务。

如前所述,以太坊上的智能合约是使用 Solidity 编程语言编写的。但是,EVM 不能直接执行智能合约代码。它必须首先使用作为较低级别机器指令的操作码进行编译。

操作码协助 EVM 执行执行智能合约所需的特定任务。EVM 可以执行大约150 个操作码,这些操作码执行与算术、内存、比较、交易所、复制、比较、停止、记录、推送数据和从块中检索信息相关的各种操作。

EVM 经济以 Gas 费为基础。

如前所述,以太坊节点借出计算能力并被激励使用 ETH gas 这样做。顾名思义,Gas 是为以太坊智能合约执行和其他转换提供动力的燃料。该过程类似于车主需要购买燃料来为发动机提供动力以使其从 A 点移动到 B 点。

根据指令的复杂性,各个操作码具有分配给它们的单独气体成本。此外,智能合约中的每个操作码执行都需要一定量的气体由以太坊虚拟机处理。因此,智能合约中的操作码决定了 EVM 执行的最终 gas 费用。

以太坊的 Gas 费也是使用供需机制设计的。在需要处理交易的情况下,gas 费用通常会上涨,正如在几次 NFT 铸币厂和高加密货币交易活动期间所见证的那样。

除了激励以太坊节点所有者借出他们的计算能力外,gas 还保护以太坊网络免受涉及以类似于DDoS 攻击的方式部署大量复杂智能合约的攻击。由于执行大量智能合约将需要同样巨额的 ETH 汽油费,因此可以防止此类攻击。

以太坊虚拟机的用例。

因此,以太坊虚拟机 (EVM) 为以下用例提供了理想的环境:

  • 去中心化应用程序的开发,这些应用程序纯粹基于软件代码运行,没有中央权威。
  • EVM 允许使用智能合约创建 ERC-20 代币。这些代币是可替代的,可用于表示价值。例如,以太坊上的 USDC 等稳定币就是与一美元挂钩的 ERC-20 代币。
  • 以太坊虚拟机用于创建NFT,即 ERC-721 代币。
  • 通过在以太坊虚拟机上部署智能合约,可以实现 Uniswap 和 Sushiswap 等去中心化交易所。管理去中心化交易所交易的智能合约被称为自动做市商(AMM)。
  • 因此,EVM 是以太坊上去中心化金融(DeFi)的支柱。

一些 EVM 陷阱。

然而,EVM 并非没有缺点。

首先,驾驭其复杂性需要计算机科学和编程方面的背景知识,从而限制了开发人员的访问权限。

其次,在对其计算能力的需求高峰期,ETH 的 gas 费用往往会飙升。尽管这种情况持续了几个小时,正如Yuga Labs Otherside Land Mint 所见证的那样,但对于负担不起高额费用的区块链用户来说,这是一个痛点,导致一些人寻找替代方案,如 Solana、BNB 链和 Tron。

第三,尽管 EVM 的设计考虑了去中心化,但观察到以太坊节点是中心化的。这些节点托管在中心化云服务器上。

亚马逊网络服务处理几乎 25% 的以太坊节点。Microsoft Azure、阿里云、谷歌云平台、DigitalOcean 和 Hetzner 也是以太坊节点运营商的热门选择。

这种类型的中心化可能会在出现中断的情况下削弱以太坊网络,例如 2021 年 12 月 8 日发生的中断,当时亚马逊网络服务中断了近半天。中断导致 币安和 Coinbase 等中心化交易所的运营中断。它还影响了 dYdX 等去中心化交易所。