市值: $2.2269T 1.08%
成交额(24h): $51.7314B 36.39%
恐惧与贪婪指数:

39 - 恐惧

  • 市值: $2.2269T 1.08%
  • 成交额(24h): $51.7314B 36.39%
  • 恐惧与贪婪指数:
  • 市值: $2.2269T 1.08%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

什么是以太坊虚拟机(EVM)以及它如何执行代码?

The Ethereum Virtual Machine (EVM) executes smart contracts in a secure, isolated environment, using gas to meter computation and ensure network-wide consensus.

2025/11/27 17:19

了解以太坊虚拟机(EVM)

1. 以太坊虚拟机(EVM)是一个去中心化的运行时环境,在以太坊区块链上执行智能合约。它是以太坊支持可编程交易和去中心化应用程序(dApp)的能力背后的核心计算引擎。以太坊网络中的每个节点都运行一个 EVM 实例,确保整个系统达成共识。

2. EVM 使用基于堆栈的架构运行,最大堆栈深度为 1024 项。它处理用字节码编写的指令,字节码是由 Solidity 或 Vyper 等高级编程语言生成的。这些智能合约代码被编译成 EVM 操作码——EVM 可以解释和执行的低级机器指令。

3. EVM 中的每个操作都会消耗预定义数量的 Gas,这充当计量机制,以防止无限循环并阻止恶意计算。用户必须以以太币(ETH)支付燃气费才能执行交易或部署合约,确保网络资源得到高效、公平的使用。

4. EVM与主机操作系统和网络保持完全隔离,为代码执行提供安全的沙箱环境。这种设计可以防止智能合约直接访问外部系统,从而减少与文件系统、网络或其他进程相关的漏洞。

5. 以太坊上的状态更改(例如更新帐户余额或修改存储)只有在交易成功完成时才会最终确定。如果执行期间发生错误,所有状态修改都会恢复,从而保持整个区块链的数据完整性。

EVM 如何执行智能合约代码

1. 当用户发送交易以部署智能合约或与智能合约交互时,该请求将在以太坊点对点网络上广播。矿工或验证者接收交易并将其包含在块中进行处理。

2. 在执行之前,EVM 会初始化一个新的执行环境,其中包含发送者地址、接收者地址、输入数据、gas limit 和正在传输的值等信息。此上下文定义了代码运行的条件。

3. 合约的字节码被加载到内存中,EVM 开始按顺序处理每个操作码。操作可能涉及算术计算、操作内存或持久存储中的数据、调用其他合约或触发事件。

4. 在执行过程中,EVM 会跟踪每次操作后的 Gas 消耗。如果可用气体在任何时候降至零以下,执行将立即停止,交易将失败。然而,由于计算工作是由网络执行的,因此仍需收取 Gas 费。

5. 成功完成后,对以太坊状态所做的任何更改(例如写入合约存储或转移资金)都将永久提交。与事件发射相关的日志也会被记录下来,稍后可以通过 dApp 或索引服务进行查询。

Gas 和操作码在 EVM 操作中的作用

1. Gas 是 EVM 功能的关键组成部分,充当计算工作的单位。每个操作码都有特定的 Gas 成本,具体取决于其复杂性和资源使用情况。像加法这样的简单操作需要最少的 Gas,而存储写入或加密功能则需要更多的 Gas。

2. 开发人员必须仔细优化其智能合约代码,以最大限度地减少 Gas 支出,尤其是在部署大规模应用程序时。低效的代码不仅会增加成本,还会导致最终用户无法进行交互。

3. EVM 强制执行严格的确定性:给定相同的输入和初始状态,每个节点必须得出完全相同的结果。这确保了分布式网络的一致性,并防止由于执行结果不同而产生分叉。

4. CALL、DELEGATECALL 和 STATICCALL 等特殊操作码允许合约之间进行交互。这些合约间通信支持模块化设计,其中复杂的逻辑被分割到多个协同工作的合约中。

5. 尽管 EVM 功能强大,但它在维护安全性和可预测性方面也存在一些限制。例如,没有对浮点运算的原生支持,并且通过气体约束和调用深度限制有效地防止了递归。

常见问题解答

当智能合约耗尽 Gas 时会发生什么?当智能合约在执行期间超出分配的 Gas 限制时,EVM 会立即停止处理。所有状态更改都会回滚,但交易仍以失败状态保留在区块链上,并且发送者会损失为计算支付的天然气。

EVM 可以执行任何编程语言的代码吗? EVM 本身只理解字节码。在部署之前,Solidity、Vyper 或 Yul 等高级语言必须编译为 EVM 兼容的字节码。只要存在编译器将语言翻译成有效的操作码,源语言就不会限制执行。

EVM 图灵完备吗? EVM 是准图灵完备的。虽然它支持循环和条件逻辑,但气体限制的存在阻止了无限计算。这种设计选择牺牲了完整的图灵完整性,以确保所有执行的实际终止。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

TONUSDT永续合约资金费率是多少?

TONUSDT永续合约资金费率是多少?

2026-07-27 02:39:50

定义和核心机制1. TONUSDT永续合约资金费率是专门适用于各大交易所交易的TON/USDT永续合约的定期费用兑换机制。 2. 作为价格锚定工具,防止TONUSDT永续市场价格与基础TON/USDT现货指数价格持续背离。 3. 费率每 8 小时计算一次,采用综合平均保费指数和利息成分的公式计算,通...

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

TONUSDT永续合约资金费率是多少?

TONUSDT永续合约资金费率是多少?

2026-07-27 02:39:50

定义和核心机制1. TONUSDT永续合约资金费率是专门适用于各大交易所交易的TON/USDT永续合约的定期费用兑换机制。 2. 作为价格锚定工具,防止TONUSDT永续市场价格与基础TON/USDT现货指数价格持续背离。 3. 费率每 8 小时计算一次,采用综合平均保费指数和利息成分的公式计算,通...

查看所有文章

User not found or password invalid

Your input is correct