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

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

以太坊虚拟机 (EVM) 是区块链驱动的软件平台。 EVM 允许软件架构师构建和部署去中心化应用程序 (dApp)。区块链开发人员非常重视它们,因为它们不会延长停机时间,并且能够保护创建的应用程序对象不被修改或更改。

如果您希望开始使用 EVM,那么您无需成为专家级程序员。 EVM 的设计方式也消除了对真正强大的硬件的需求,这使得它们适合初学者。

以太坊区块链平台包括外部账户和合约账户。通过从其中任何一个发起的传输,用户可以发送 ETH 或二进制格式的数据。当平台开发人员使用 gas 时,它可以保护 EVM 免受可能最终减慢区块链网络的各种攻击。此外,根据其类型,以太坊 (ETH) 网络数据驻留在存储、内存或堆栈中。

以太坊通过执行操作码工作

用户可以通过 selfdestruct Solidity 命令禁用 EVM 帐户或完全删除它们。但是以太坊实际上是如何运作的呢?智能合约平台能够通过执行特定类型的指令(称为操作码)来执行各种任务。每个操作码的大小为 1 字节(或 8 位),并被编码为字节码。当用户执行某项任务时,操作码也会被拆分为字节。

由于总共有 140 个操作码,因此据说以太坊虚拟机是图灵完备的,这意味着它可以(理论上)解决任何类型的计算问题。在其上执行的源代码无法访问用户 PC 上的其他系统进程,从而有效地隔离了 EVM。

如前所述,以太坊上有两种主要类型的账户:外部账户和合约账户。 EVM 能够平等地对待两者。每个账户都有一定的 ETH 余额。同时,任何携带 ETH 的转账都可以改变它。

还值得注意的是,从一个账户向另一个账户发起的转账可能包含一定数量的 ETH 或二进制数据(也称为有效负载)。其他操作可能取决于实际帐户。因此,如果它包含源代码,那么它就会被执行。有效载荷有效地变成了输入数据。如果未设置,则用户发送的代码将被执行并最终返回一个全新合约的代码。

在构建阶段,合约的源代码不包含任何内容(换句话说,它是空的)。由于没有中央权威,合约在所有以太坊网络节点上运行。这种方法可能会导致(相当大的)区块链网络减速(这可能是本意)。为了真正放慢速度,他们可以创建许多不同且复杂的合约。

为了确保免受此类攻击,每个操作码都带有基本级别的 gas 成本,而 gas 就像一个代币,用于支付 EVM 以执行交易。它的主要目标是对操作需要多少工作设置一定的限制。随着 EVM 完成传输,它开始(逐渐)使用它的 gas。

EVM 将数据/信息存储在存储、内存或堆栈中
EVM 规范列出了三个独立的存储区域,包括存储、内存和堆栈。存储区域可以在每个帐户内找到,并且能够存储合约状态变量。存储被分配作为发布智能合约过程的一部分。用户可以通过“sendTransaction”函数调用来改变它。

值得注意的是,没有合约能够读取另一个合约的存储(出于安全和隐私原因)或直接写入其中。同时,内存是线性的,可以保存临时变量。由于它们实际上只存在于调用函数本身中,因此在调用之间会擦除内存。用户可以在字节级别寻址内存,但一次读取的限制设置为 256 位,写入可能在 8 到 256 位之间的任何位置。

用户需要支付gas以扩展内存。它可以二次扩展,扩展得越多,成本就越高。但与存储相比,使用它仍然更便宜。

EVM 规范将其定义为堆栈机器。堆栈是进行计算的地方。这个数据区可以承载多达 1024 个小局部变量。每个堆栈项的总大小为 256 位。堆栈也是不同数据存储区域中最经济的。

程序员可能对堆栈的访问权限有限。他们可以将 16 个顶部元素之一复制到顶部,或者选择让顶部元素与下面的 16 个元素之一交换位置。为了获得更深入的访问,用户可以开始将堆栈元素移动到存储区域或直接移动到内存。

从技术上讲,日志不是内存类型

值得注意的是,日志并不是真正的内存类型。但它们也用于保存数据,因此在引入 Ethereum/Solidity 时它们也可以覆盖它们。日志可以通过索引结构携带数据,其映射达到块级别。智能合约一旦创建就无法访问日志中包含的数据。但它们可能会从区块链本身之外到达。其中一些数据也可以在布隆过滤器中找到。

有关 EVM 的其他重要信息涉及 Solidity 自毁操作,该操作从区块链中删除源代码。但它仍将是区块链历史的一部分,并且可能仍会保留在大多数 EVM 节点中。

EVM 技术正在发展,迅速成熟

在过去的几年里,EVM 技术有了长足的发展。一个名为 Syscoin 的著名项目通过协调平台利用了比特币和以太坊的优势,开发了自己的网络增强虚拟机 (NEVM)。正如其开发人员所解释的那样,Syscoin 的设计保持了比特币共识机制和联合挖矿的“黄金标准”安全性,同时借助 L2 ZK-Rollup 技术提供了以太坊 2.0 未来预期的性能特征。

NEVM 的主要优势是:智能合约的 L2 可扩展性,以及由 ZK-Rollups 提供支持的独立费用市场。

NEVM 也与以太坊兼容,因此基本上任何基于 ETH 的智能合约都可以部署在 NEVM 上。然后是强大的安全性,因为该平台利用经过验证的 L1,通过利用比特币合并挖掘的 PoW 和符合比特币的共识。除了这些功能之外,协议适配还可以在比特币和以太坊(SYS <-> NEVM)之间实现无需信任的价值可移植性,所有这些都在一个单一的、协调的平台上

快速回顾

以太坊账户可能是外部的和合约的。用户可以通过进行交易将 ETH 代币或二进制数据从一个账户发送到另一个账户。由于 gas 用于传输,因此几乎不可能开始(故意)降低 EVM 的性能。

为了在以太坊中存储数据,开发人员可以选择使用存储、内存或堆栈。

要删除 EVM 帐户,他们可以使用 selfdestruct Solidity 操作。还有一个选项可以通过更改内部状态的值来停用它们。

本文来自互联网,不代表前途科技立场,如若转载,请注明出处:https://accesspath.com/insight/5707347/

(0)
NEXTECH的头像NEXTECH
上一篇 2022年1月24日 下午1:30
下一篇 2022年1月24日 下午1:42

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注