主页 > imtoken支持bcc > 硬核! 什么是以太坊虚拟机 (EVM)?

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

imtoken支持bcc 2023-03-03 05:57:51

以太坊联盟和以太坊的关系_以太坊账户_sitehqz.com 以太坊账户停付

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

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

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

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

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

以太坊账户_以太坊联盟和以太坊的关系_sitehqz.com 以太坊账户停付

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

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

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

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

sitehqz.com 以太坊账户停付_以太坊联盟和以太坊的关系_以太坊账户

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

EVM 将数据/信息存储在存储器、内存或堆栈中

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

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

以太坊账户_sitehqz.com 以太坊账户停付_以太坊联盟和以太坊的关系

用户需要支付 gas 来扩展内存。 可以扩容两次,扩容的越多,成本越高。 但使用起来仍然比存储便宜。

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

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

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

以太坊账户_以太坊联盟和以太坊的关系_sitehqz.com 以太坊账户停付

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

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

EVM 技术不断发展并迅速成熟

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

sitehqz.com 以太坊账户停付_以太坊账户_以太坊联盟和以太坊的关系

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

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

快速回顾

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

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

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