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

以太坊区块链可以被描述为内置编程语言的区块链。或者,它也可以被定义为基于共识的全球执行虚拟机。以太坊协议中负责所有计算的部分被称为以太坊虚拟机(EVM)。

EVM 是以太坊能够运行智能合约的关键。智能合约使以太坊能够利用去中心化应用程序(dapps)的力量。此外,智能合约使公司能够在以太坊区块链上进行所谓的ICO,即首次代币发行,以启动他们自己的代币

以太坊虚拟机要点

  • 以太坊虚拟机(EVM)是用于智能合约的运行时环境,也用于开发和测试智能合约。
  • EVM 是准图灵完备的,这意味着只要发起计算的用户有足够的以太币支付该计算所需的费用,它就能执行任何计算。
  • EVM 是一个沙盒化和隔离的环境,这意味着它运行的代码无法访问网络、文件系统或其他进程。
  • 此外,EVM 无法访问现实世界的数据,例如当前的日期、时间或天气。要获取此类数据,它依赖所谓的预言机。
  • EVM 由以太坊网络的所有全节点运行。

开发智能合约的环境

EVM 是沙盒化的并与现实世界隔离。这意味着在 EVM 中运行的代码无法访问网络、文件系统或任何其他进程。这使 EVM 非常适合开发和测试智能合约,而不会干扰区块链的运作。

你可能会问自己,为什么在沙盒环境中测试智能合约是一个好主意。问题是有缺陷的代码对任何智能合约都可能是有害的,所以确保智能合约代码中没有缺陷是必须的。更重要的是,像 EVM 这样的沙盒环境提供了无限的机会来学习、迭代、改进,最终完成准备好部署到区块链的健壮智能合约。

EVM 的限制

以太坊虚拟机被描述为图灵完备。图灵完备性指的是计算机执行它所面临的任何计算的能力。这意味着,在以太坊中,可以编写能够解决任何合理计算问题的程序或去中心化应用程序。

但 EVM 有一个限制,它作为一种安全预防措施存在。智能合约可以调用其他合约,从而可能导致无限循环。因此,EVM 要求为每一笔网络交易支付Gas费。这意味着,通过耗尽发起交易者的以太币,无限的计算循环被阻止。由于这项安全措施,EVM 不能完全图灵完备。相反,它被称为准图灵完备

另外值得一提的是,EVM 甚至无法访问最基本的现实世界数据。例如,EVM 无法自行知道今天是哪一天,或了解当前温度。为了获取这类数据,这些数据通常是智能合约正确执行所需的,EVM 依赖于称为预言机的实际数据提供者。预言机可以从网站、应用程序或其他地方收集数据,并将其提供给智能合约。

EVM 的作用是什么?

每当在以太坊区块链上发起交易——无论是简单的价值转移还是智能合约部署——EVM 必须执行以下三项检查:

  • 它确认交易是否有正确的值数量,签名是否有效,以及交易的 nonce 是否与该特定交易账户的 nonce 匹配。如果不匹配,交易将提示错误。
  • 它计算交易所需的费用并初始化气体支付。
  • 它执行将以太币或代币转移到指定地址的操作。

如果 EVM 检测到发送者没有为发起的交易分配足够的 Gas,交易将不会成功。在这种情况下,交易费用不会退还给交易的发起者。相反,它支付给矿工。然而,如果因为接收者地址上的错误导致交易不成功,EVM 将退还发送的金额以及相关费用回给发送者。

EVM 是以太坊魔法发生的地方,为区块链技术和加密货币世界增加了额外的价值。由于 EVM 等特性,以太坊平台享受着巨大的流行,其本土加密货币以太币一直是市值最大的加密货币之一。