本文介绍了以太坊虚拟机(EVM)及其核心组件,包括虚拟机、智能合约、操作码和 Gas。EVM 是以太坊网络的核心,它允许开发者创建智能合约,实现各种应用,如代币生成和交易。文章还探讨了 EVM 的使用案例,例如 ERC-20 和 ERC-721 代币,以及去中心化交易所。
由Alchemy撰写
发布于2022年3月2日,阅读时长5分钟
世界的计算机。不可阻挡的机器。以太坊的心脏。以太坊虚拟机(EVM)拥有许多名称,突显了其对于以太坊网络的重要性。它是其核心特性,使其不仅仅像比特币一样是一个“分布式账本”,而是一个“分布式状态机”。
EVM 允许开发者使用一种名为 Solidity 的编程语言创建智能合约。智能合约的一个流行的应用是管理 token 的生成和交换。许多应用和协议使用 token 来奖励用户对实现其目标而言重要的行为。如果没有 EVM,这一切都不可能实现。
为了更好地理解 EVM 的强大之处,让我们看看它的一些核心组件:
去中心化网络难以摧毁。如果你想做到这一点,你需要移除当前在线的每一个节点,并找到一种方法来阻止更多节点出现。
分布式网络
使去中心化网络扩展的一个好方法是使用虚拟机(VM)。这是因为 VM 可以在不同的操作系统和硬件以及任何地理位置运行。VM 作为代码和执行代码的机器之间的抽象层运行。
VM 的功能类似于具有存储、内存和 CPU 的物理机器,但它们纯粹作为代码运行。理论上,任何人都可以运行 VM,这使其成为去中心化网络的高度可移植平台。对于 EVM,它使用去中心化的节点网络来执行智能合约。
智能合约是自我执行的代码行,允许各方在不需要任何中心机构的情况下相互交易。在智能合约中,有一系列定义的操作,当满足链上或链下的某些条件时,这些操作会被执行。一些操作可能是将资金转移到某个地址,与另一个合约通信,甚至创建新的合约。与第三方执行交易不同,任何发送者都可以将资金发送到智能合约的地址以触发这些操作。
智能合约如何工作
智能合约之所以成为一种安全的交易方法,是因为代码无法更改或修改。智能合约总会有一个预期的结果,这是代码内置的信任。每次执行合约时,都表示它改变了 EVM 的状态。
EVM 可以被描述为“状态机”,因为它负责计算执行智能合约代码所导致的状态变化。这意味着它维护账户的以太币余额、智能合约的数据存储以及账户和合约级别的交易,因为它们已完成。所有这些操作都会改变网络的“状态”。
EVM 交易
智能合约主要使用 Solidity 语言编写。EVM 无法直接执行 Solidity,因此首先必须将代码编译成称为操作码的较低级别的机器指令。
EVM 被广泛标记为 图灵完备 或更准确地说是准图灵完备。这意味着 EVM 理论上可以解决任何计算问题。这是通过执行机器级别的指令(称为 EVM 操作码)来完成的。
EVM 操作码协助 EVM 完成智能合约或交易的特定任务。目前,EVM 大约可以执行 150 个操作码。它们涵盖了一系列操作,包括:算术、停止、日志记录、复制、推送、内存、比较和交换。以及检索区块和环境信息。你可以在这里找到操作码列表。
EVM 操作码
为了提高效率,EVM 将其字节码转换为操作码,其中每个操作码在字节码中被分配一个或多个字节。每个操作码操作都需要 EVM 执行特定数量的 gas。你可能听说过 gas,但它是什么?
Gas 可能是关于 EVM 的最受关注但最不被理解的话题。在撰写本文时,gas 价格可能非常高,但有一些努力来改善这个问题。高 gas 价格可能是主流接受以太坊的主要障碍。但是,我们为什么要支付 gas 价格,以及是什么导致价格如此之高?
gas 的用途是作为每个以太坊节点计算智能合约操作的费用。需要为计算收取费用,以防止攻击者通过部署大量需要长时间计算的复杂合约来阻止网络运行。这种类型的 DDoDS 攻击是不鼓励的,因为它运行起来会非常昂贵。
每个操作码都有一个 gas 成本,更复杂的操作码具有更高的成本。例如,简单的加法运算成本为 3 gas,并且每个交易的起始成本为 21,000 gas。大多数抱怨不是关于 gas 本身,而是完成一次成功交易的 gas 限制。
Gas 限制是发送者愿意为交易的执行和验证支付的最大 gas 量。要获得 gas 费用,可以将总 gas 成本(操作的基本值)乘以 gas 价格(完成这些操作的成本)。就像给你的汽车加实际汽油时一样,汽油本身有成本,到达目的地所需的汽油量也有成本。
Gas 费 = 总 Gas 成本 x Gas 价格
Gas 费用是为了补偿验证者,验证者负责确保交易中的信息有效,EVM 没有错误/异常,并且发送者确实具有支付计算所需的资金。当发送者设置高 gas 限制时,这表明操作很复杂,会激励验证者获取交易以获得高额奖励。
EVM gas
当网络活动很高时,验证者可以简单地从具有更高 gas 限制的待处理交易池中进行选择。因此,gas 费用受供需影响。好处是任何未消耗的 gas 都会退还给发送者。
如果达到预付的 gas 限制,验证者仍然会因其工作而得到补偿,但交易不会完成。通过这种方式,EVM 是准图灵完备的,因为它能够完成的计算受到发送者愿意支付的完成金额的限制。
现在我们已经介绍了 EVM 的每个要素,让我们看看这些部分如何结合在一起以帮助为以太坊中的项目提供支持:
ERC-20 token 是可以在地址之间转移、具有固定数量并且其价值在整个网络中相同的 token。遵循 EVM 上定义的数据结构的智能合约用于创建 ERC-20 token。此数据结构控制 token 的命名、分配、供应量和监控。
一些应用程序和项目使用 ERC-20 token 来激励用户。去中心化视频流网络 Livepeer 使用 Livepeer token (LPT) 来激励那些向网络提供资源的人。智能合约上的去中心化保险 Nexus Mutual 使用 NXM token 允许用户购买保险和提出索赔。
去中心化交易所部署智能合约以允许用户交换 ERC-20 token。这些智能合约被称为自动化做市商 (AMM),因为它们允许用户在没有任何第三方控制的情况下为某些 token 的流动性池做出贡献。Uniswap 和 SushiSwap 等一些流行的交易所是这种 AMM 模型的应用。
自动化做市商
另一种广受欢迎的 token 标准是 ERC-20 的非同质化同类 ERC-721。这些智能合约用于铸造 NFT(非同质化 token),这些 token 是在整个区块链中具有独特价值的 token。创建独特的艺术作品是这些类型 token 的最大用例。游戏领域中的其他项目(如 Axie Infinity 和 God Unchained)使用这些 token 作为游戏中的收藏品。
EVM 使以太坊成为一个平台而不仅仅是一个区块链。但是,EVM 不是一个完美的系统。交易速度和网络吞吐量方面存在许多挑战。这是开发社区和 以太坊路线图 的重点关注领域。如果以太坊要实现其彻底改变我们彼此交易方式的承诺,那将是在改进 EVM 的基础上实现的。
Supercharged | Alchemy | Substack
获取免费的以太坊 RPC 和开发者工具 获取你的 API 密钥
📚 目录
分享:
\
\
以太坊\
\
以太坊分片:区块链分片简介\
\
什么是区块链分片以及它与以太坊有何关系?
\
\
以太坊\
\
什么是增强交易?\
\
探索一种新的交易类型,保证交易被挖掘并针对 Gas 进行优化
\
\
以太坊\
\
什么是以太坊承诺级别?\
\
了解安全(已证明)、已最终确定和最新的承诺级别
Alchemy 将最强大的 web3 开发者产品和工具与资源、社区和传奇支持相结合。
- 原文链接: alchemy.com/overviews/wh...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!