以太坊虚拟机(EVM)是什么?区块链智能合约的执行引擎

·

以太坊创始人Vitalik Buterin在构建以太坊时,希望突破区块链技术的边界。比特币启发了他的想法,但他认为这项技术应该不仅仅是处理交易。因此,他创建了以太坊区块链网络。以太坊不仅具备比特币的所有特性——能够处理点对点交易并以不可篡改和去中心化的方式存储它们——还能运行智能合约,这是比特币无法实现的。

那么,区块链如何运行智能合约呢?在以太坊中,答案就是以太坊虚拟机(EVM)。EVM构成了以太坊网络运作的核心支柱。本文将深入探讨EVM的定义、工作原理、优势以及应用场景,并首先简要回顾智能合约的基本概念。

关键要点

智能合约简介

智能合约是自动运行在区块链网络上的计算机程序或应用。它们由开发者部署的数据代码组成,用于执行特定指令。用户无法控制智能合约,因为它们会按照编程的方式运行。

以太坊网络是第一个实现智能合约的区块链。因此,如今有数百万个智能合约被编码并部署在以太坊区块链上。EVM在这一成就中扮演了至关重要的角色。

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

EVM内置在以太坊协议的核心中。顾名思义,EVM是一种虚拟机或数字软件,为以太坊网络提供动力。虚拟机软件可以执行程序、存储数据、连接网络并执行其他计算任务。它还负责智能合约的代码执行和部署。

EVM的工作原理

由于以太坊处理的不仅仅是点对点价值交易,它需要一个复杂的计算系统。因此,以太坊开发者将其称为“无限状态机”,而不是分布式账本。这基本描述了EVM的工作方式。以太坊网络包含两种状态:世界状态和机器状态。

世界状态

世界状态是以太坊存储账户余额和智能合约的地方。与比特币账本类似,它是去中心化、不可篡改且所有人在线可访问的。EVM每次完成交易后都会更新这一层。这意味着任何拥有区块浏览器的人都可以实时查看以太坊区块链上的相同数据。

机器状态

机器状态是EVM逐步处理交易的地方。它也被广泛称为以太坊的开发者沙盒。以太坊网络处理两种类型的交易。第一种是“消息调用”——当一个账户向另一个账户转移ETH代币时。在这种情况下,EVM将ETH代币从一个钱包地址转移到另一个钱包地址,然后更新世界状态上的交易。发送方需要为交易完成的计算支付Gas费用。

第二种交易类型是“合约创建”。它指的是开发者希望在以太坊上执行智能合约的场景。在这种情况下,发送方提供Gas费用并输入“智能合约字节码”。

Solidity编程语言

创建以太坊智能合约最广泛使用的计算机语言是Solidity。与Javascript类似,它是一种适合人类使用的高级语言,但机器无法理解。因此,开发者用Solidity编写智能合约后,必须使用以太坊虚拟机编译器(如solc)将其翻译成机器语言或字节码。

智能合约的执行

随着EVM执行代码,Gas供应会根据执行计算的Gas成本而减少。如果在交易完成前的任何时刻Gas供应降至零,EVM会立即停止执行。它会放弃交易,并且不会改变世界状态。网络不受影响,但发送方的ETH余额会减少,以支付执行到停止点所需的计算费用。然而,如果执行成功完成,EVM会更新世界状态以匹配机器状态版本。

以太坊Gas费用

从上述内容可以看出,Gas费用在处理以太坊区块链交易中扮演着关键角色。当以太坊使用工作量证明(PoW)共识机制时,处理交易需要硬件和电力,矿工需要激励来执行任务。在处理ETH代币转移时,Gas费用根据交易池的拥堵程度而变化。

在执行智能合约时,Gas费用的作用有所不同。在执行点时,智能合约字节码被分解成更小的部分,称为“操作码”(opcodes)。操作码是操作代码的缩写,是EVM用于执行计算的指令。每个操作码都被分配了一个Gas费用——操作码越复杂,成本越高。这一步对于保护以太坊区块链免受恶意攻击至关重要。例如,如果用户发起DDos攻击,EVM将继续在机器状态下执行智能合约。它会为每次计算收取Gas费用,当发送方Gas耗尽时,它会放弃交易。

EVM的优势

如上所述,EVM防止了恶意活动对网络的攻击。因此,它使得智能合约和其他自动化服务能够在一个安全可靠的平台上执行。

截至撰写本文时,以太坊网络是最大的加密货币生态系统。更重要的是,它被视为去中心化应用(DApp)创建和智能合约部署的黄金标准。许多其他区块链创建了侧链,允许以太坊开发者无需更改代码即可转移他们的应用。

EVM也是去中心化的,意味着任何人都可以在无需许可的情况下在以太坊上创建智能合约。它还使开发者能够构建和部署去中心化服务和应用,这些近年来获得了极大的 popularity。

EVM的应用场景

随着以太坊虚拟机执行智能合约,许多新发明涌入区块链领域。以下是EVM的五大应用场景:

ERC-20代币

ERC-20代币是使用预定义数据结构的智能合约生成的。数据结构负责为代币命名、分发和跟踪。在2017年首次代币发行(ICO)流行时,许多新加密货币使用ERC-20代币启动。如今,ERC-20代币的最佳用途是稳定币,如USDT。

去中心化交易所(DEX)

去中心化交易所(DEX)允许用户通过部署智能合约来购买、出售或交易加密货币。例如Uniswap和SushiSwap等交易所还使用自动做市商(AMM)应用,使用户能够无需第三方干预即可利用代币的流动性池。

NFT

非同质化代币(NFT)是存储在区块链上的数字 artifacts,用于验证所有权且无法复制。区块链爱好者使用智能合约创建和铸造NFT系列。一些最昂贵的NFT系列包括Bored Ape Yacht Club(BAYC)和Cryptopunks。所有者可以在OpenSea等市场上转移或交易他们的NFT。

DeFi借贷

去中心化金融(DeFi)借贷指的是允许用户在没有第三方的情况下借贷加密货币的平台。智能合约管理借贷协议。贷款会立即发放给借款人,而贷款人有时会每日收到利息。

去中心化自治组织(DAO)

去中心化自治组织(DAO)是一个没有中央权威的社区实体。在DAO中,个体成员集体做出关于项目的治理决策。DAO的规则由核心社区成员建立,并通过智能合约实施。

EVM的局限性

EVM有两个显著的局限性。首先,它要求用户具备Solidity和编码技能的前置知识。许多人需要编码帮助,这使得新用户难以创建和与智能合约互动。

其次,在创建智能合约或部署以太坊网络应用时,Gas费用可能变得非常昂贵。

哪些加密货币与EVM兼容?

EVM兼容的区块链是解决昂贵Gas费用问题的一个简单方案。开发者借用了以太坊网络的某些部分,并创建了DApp,使用户能够快速轻松地在任何EVM网络之间转移资产。如今许多最流行的区块链都采用这种EVM兼容的方法,主要包括:

EVM的未来

在比特币的基本基础上,Vitalik Buterin的愿景是创建一个几乎所有人均可访问的去中心化超级计算机。以太坊虚拟机在实现这一愿景中发挥了巨大作用。自概念提出以来,EVM已经经历了多次升级,并持续演进和改进。

Dencun升级引入了EIP-4844,为以太坊带来了原型danksharding。这通过允许网络更高效地处理第二层(Layer-2)交易数据,显著降低了Gas费用。原型danksharding由一种称为blobs的新数据类型支持,这些数据从区块链中移除而不是永久存储。同时,作为Dencun升级一部分的EIP-4788通过使EVM能够直接访问信标链的状态,增强了互操作性。这对于流动质押和跨链互动等协议至关重要。Dencun升级于2024年3月完成。

展望未来,以太坊的路线图强调通过rollups实现可扩展性,其中零知识EVM(zkEVM)将扮演关键角色。zkEVM支持高效的链下交易处理,同时保持与以太坊的兼容性,从而改善可扩展性。

总结

以太坊虚拟机是以太坊网络基础架构的重要组成部分。它对于允许智能合约在区块链上运行至关重要,该软件负责执行多种计算任务。除了其操作重要性外,EVM还通过帮助防止攻击来保护网络,支持一个安全、有弹性且去中心化的平台供开发者构建。

👉 探索更多区块链技术进阶指南

常见问题

什么是以太坊虚拟机(EVM)?
EVM是以太坊网络的核心组件,是一种软件环境,用于执行智能合约和处理交易。它确保所有节点在无需信任的情况下达成一致状态,是去中心化应用运行的基础。

EVM如何执行智能合约?
开发者用Solidity等高级语言编写智能合约,编译成字节码后部署到以太坊网络。EVM解析字节码中的操作码,逐步执行计算,过程中消耗Gas费用以确保资源合理使用和网络安全。

Gas费用在EVM中起什么作用?
Gas费用是以太坊网络中计算资源的计价单位,用于支付交易和执行智能合约所需的计算成本。它防止网络滥用,激励矿工或验证者处理交易,并保护网络免受恶意攻击如无限循环或DDoS。

哪些区块链与EVM兼容?为什么兼容性重要?
兼容EVM的区块链包括Binance Smart Chain、Avalanche、Polygon等。兼容性允许开发者轻松迁移以太坊上的DApp和智能合约,无需重写代码,同时享受更低费用或更高速度,促进跨链互操作性和生态扩展。

EVM的主要局限性有哪些?
EVM的局限性包括Gas费用可能高昂(尤其在网络拥堵时),需要编码知识(如Solidity)才能创建智能合约,以及处理速度受限于区块链共识机制。这些正在通过Layer2解决方案和升级(如EIP-4844)逐步改善。

零知识EVM(zkEVM)是什么?它如何改善以太坊?
zkEVM结合零知识证明技术,允许在链下执行交易的同时保持与以太坊虚拟机的兼容性。它通过将多个交易打包证明并提交到主网,大幅提升吞吐量并降低费用,是以太坊实现可扩展性路线图的关键组成部分。