首页 > 资讯 > 以太坊虚拟机(EVM)简介
区块新看点  

以太坊虚拟机(EVM)简介

摘要:以太坊虚拟机(EVM)简介区块新看点发布时间: 2022-04-06 17:08关注作者:程伟 | 出自:区块新看点(ID:blockchan888,web:chengwf.com)除了实现价值交换,以太坊还促进了“智能合同”的创建智能合约是为以太坊区块链上运行的各种应用程序提供动力的自动执行程序。
以太坊虚拟机(EVM)简介

区块新看点

发布时间: 2022-04-06 17:08关注

作者:程伟 | 出自:区块新看点(ID:blockchan888,web:chengwf.com)

除了实现价值交换,以太坊还促进了“智能合同”的创建智能合约是为以太坊区块链上运行的各种应用程序提供动力的自动执行程序。

不可替代代币(NFT)、去中心化金融(DeFi)平台、区块链游戏,所有这些都依赖智能合约发挥作用。然而,智能合约本身只能运行,因为以太坊虚拟机(EVM)存在。

EVM是一个计算引擎,有助于智能合约的部署和操作。没有EVM,就不可能在以太坊协议上执行软件程序。因此,EVM是以太坊核心架构的关键部分。

本文介绍以太坊虚拟机(EVM)。我们将介绍EVM的基础知识,包括其结构的组件,如操作码和智能合约。

定义Web3.0什么是以太坊虚拟机(EVM)?

为了理解以太坊虚拟机,我们必须首先探索两个概念:“虚拟机”和“图灵完整性”

虚拟机

虚拟机是模拟物理计算机行为的程序。虚拟机有它的存储和处理单元,在你的电脑上作为进程运行。这有点像一台电脑在另一台电脑上运行。

虚拟机类似于普通的Windows或MacOS软件。这里的区别在于虚拟机被设计为执行更高级的功能。此外,与常规操作系统不同,虚拟机无法访问计算机的其他部分,如存储或带宽。

如果你使用模拟器在PC上玩过Android游戏,那么虚拟机可能很熟悉。虽然模拟器和虚拟机有很大不同,但它们都接近硬件的能力,可以在“Sandbox(沙盒)”环境中执行代码。

图灵完备性

英国数学家艾伦·图灵(Alan Turing)发明了第一台图灵机器,它是当今计算机的先驱。只要有足够的时间和资源,图灵整机可以处理任何计算,无论多么复杂。

现在,让我们将这些想法结合起来,定义以太坊虚拟机:

以太坊虚拟机(EVM)是一个巨大的虚拟机,允许部署和执行代码。您只需安装必要的客户端软件即可访问EVM,并使用它在以太坊上执行程序。本质上,EVM充当“世界计算机”,在分散的环境中执行软件操作。

由于没有集中控制,EVM由几个个人/公司维持,这些个人/公司向系统提供计算能力,以换取奖励。因此,它有助于创建任何一方都无法单方面关闭的抗审查应用程序。

EVM是图灵完备的,因为它可以用于执行各种复杂度的计算。这就是以太坊与比特币的区别,因为比特币是图灵不完整的,限制了其功能。

比特币的主要功能是“分布式账本”,它规定了价值转移的规则。除了处理价值转移,以太坊(通过EVM)还支持智能合约的部署。因此,以太坊被描述为“分布式状态机”。

“State”(状态)是指在任何时间点有关系统的信息。在以太坊中,状态指的是特定时刻存在的地址、账户余额和智能合约代码。每个事务都会导致以太坊的状态发生变化(状态转换),这种变化会反映在整个网络中。

以太坊虚拟机是如何工作的?

在这里,我们将探索以太坊虚拟机的基本构建块。这是为了提供系统的基本概述,因此可能会忽略一些重要的技术细节。

Opcodes(机器码)

EVM使用一系列称为“操作码”的指令来执行不同的任务。EVM中有140多个操作码可以执行不同的进程,因此以太坊将其描述为图灵完成。

我们需要操作码,因为EVM无法解释用Solidity编写的指令,Solidity是用于编写智能合约的语言。因此,智能合约代码被转换为操作码,因此它们可以在EVM环境中执行。

例如,可以使用create操作码创建智能合约,也可以使用STOP操作码暂停正在运行的合约。您可以在这里查看以太坊操作码的详细概述。

Gas(燃料)

Gas是在EVM环境中执行代码的资源,以“gwei”(以太单位)为单位。就像你在现实生活中需要汽油来驱动汽车一样,EVM也需要汽油来执行操作。

前面,我们提到了“操作码”——可以用来在EVM中执行不同操作的特定指令。Gas只是执行特定操作所需的计算资源量。

每次代码执行都会产生一笔Gas费,这取决于许多因素,比如操作的复杂性和网络范围的需求。汽油费激励个人将计算能力借给以太坊。如果没有Gas费,EVM就不能像一台分散的计算机一样工作。

Gas还有另一个用途:防止执行恶意操作,如分布式拒绝服务(DDoS)攻击。虽然EVM几乎可以运行任何计算,但很难预测每个操作的运行时间。

精心设计的恶意操作可以无限运行,导致网络失去稀缺的计算能力,最终崩溃。Gas燃料费用通过迫使恶意参与者为计算过程中执行的每一步付费来防止这一问题。

在开始一个操作之前,你必须指定一个“燃料极限”:你愿意在计算上花费的最大Gas量。一旦超过Gas极限,计算立即停止。这再次阻止任何人部署可能威胁以太坊健康的“无限循环”计算。

上图为:EVM运营及其Gas费用

智能合约

智能合约是在满足预定义参数集后执行的代码片段。智能合约使用条件编程(如果是y,那么是x)来执行操作。

智能合约是不变的、自治的和透明的。这些特性结合在一起,使得智能合约特别有吸引力,尽管它们并非没有缺陷。

“不变性”意味着一旦部署到区块链上,智能合约的代码就无法更改。智能合约是自主的,因为它们可以在没有外部控制的情况下自行执行。它们是透明的,因为管理其性能的规则是用公开的代码编写的。

一些智能合约用于在区块链上创建和交换代币。例如,ERC-20代币有一个智能合约,定义了它们的命名、创建、交换、总供应和其他属性。

交易

一笔交易是来自以太坊帐户的指令。一个示例交易是将以太从钱包发送到一个地址。在这里,您指示EVM将价值从您的钱包转移到区块链上的另一个位置。

并非以太坊上的每笔交易都涉及价值转移;有些可能会传输任意数据。交易的结果还取决于接收者。

一个普通的外部所有账户(EOA)只需接收发送的信息。然而,一旦交易成功,合同账户可能会执行代码。如前所述,事务会导致“状态转换函数”,即以太坊状态的变化。

本节讨论的这些要素构成了EVM基础设施的核心。

以太坊虚拟机的特点

确定性

在编程中,确定性是指程序在每个实例中为特定输入生成相同输出的能力。确定性确保开发人员可以独立地设计程序来执行特定的操作并产生所需的结果。

EVM是确定性的,因此无论执行多少次计算,操作码都会提供相同的结果。这一点很重要,因为以太坊的智能合约驱动的DAPP能够处理高价值的交易,并且必须可靠地执行。否则,用户就不会有信心在使用它们时不出现预期的故障。

单独性

EVM是单独的,这意味着代码无法访问计算机上的进程。您可以在EVM中安全地部署程序,同时保护您的硬件/软件免受潜在问题的影响。

此外,智能合约在EVM内的隔离环境中运行。因此,影响特定智能合约的bug或黑客不会损害底层协议。

可终止的

EVM是图灵完备的,因此理论上,如果它有正确的资源和指令,它可以用来执行任何计算。然而,每次计算都依赖于分配给它的气体。如果Gas耗尽,则操作停止。

在这种情况下,您可以将以太坊视为“准图灵完成”或“可终止”,因为代码执行可以在特定时间终止。但是,此功能对于确保程序不会永远(意外或恶意)运行并导致网络停滞非常重要。

为什么以太坊虚拟机(EVM)很重要?

以太坊虚拟机使以太坊协议上的智能合约得以执行。这些智能合约支持分散的应用程序、代币和以太坊区块链上运行的许多项目。

以下是EVM功能的详细概述:

1.为智能合约提供运行时环境

如果没有EVM,部署智能合约将是徒劳的。EVM为执行智能合约代码提供了一个安全的沙盒环境。

2.作为分散处理单元运行

EVM为以太坊协议提供动力,并为其提供创建分散应用程序(DAPP)所需的可编程性。每次交易或智能合约执行都在EVM中执行。

3.跟踪状态变化

EVM监控以太坊世界状态的变化。正如本文前面所解释的,以太坊语言中的状态指的是在任何时间点对以太坊协议的描述。以太坊的状态包括账户余额、合同代码、合同存储等。

发送ETH、执行代码或创建合约等操作会导致状态发生变化。EVM的工作是更新以太坊网络状态以反映这些变化。

最后的想法

以太坊虚拟机是以太坊运营的核心。没有EVM,以太坊就无法成为“互联网计算机”,为世界各地的用户提供分散的应用程序。

然而,EVM仍然面临许多问题,例如可扩展性差,这限制了其功能。但计划中的以太坊升级,包括分片,有望改善EVM并扩大其使用范围。

精彩回顾:

以太坊2.0:POW到POS、分片链和Beacon链,这有你想了解的一切!

-免责声明

本文仅供参考,仅供参考。区块新看点 提供的此类信息不构成任何投资或交易策略适合任何特定人士的建议或推荐。这些预测基于行业趋势、客户情况等因素,涉及风险、变数和不确定性。对于此处包含的特定预测、预测或预测性陈述的准确性,不提供或暗示任何保证。本文用户同意区块新看点 不对您的任何投资决定负责。请在交易前寻求专业意见。

-未经区块新看点授权允许,请勿转载,谢谢!

END

重要声明:本文部分观点来源引用和转载,非全部为笔者观点,所以转载本文时请备注清楚为“区块新看点-行业整理分析报告”!本文笔者:区块新看点-程伟,加工原创报告,谢谢关注和分享!

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。