什么是加密货币执行层?
执行层是区块链系统中负责处理交易、运行智能合约代码、计算费用并更新网络当前状态的部分。它决定用户签署并提交加密货币交易后会发生什么。例如,执行层可以在账户之间转移加密货币、通过智能合约兑换代币、创建数字资产、更新借贷仓位,或拒绝无效交易。Ethereum 官方将执行层描述为负责处理交易并管理 Ethereum 状态的执行客户端网络,详见Ethereum 术语表。
执行层遵循固定的协议规则,因此每个诚实节点都会根据同一组交易计算出相同结果。这种一致性至关重要,因为如果不同节点产生不同的账户余额或智能合约结果,区块链便无法正常运行。执行层与共识层密切相关,但两者承担不同的工作。执行层判断交易和状态变化是否有效;共识层则帮助网络就哪个有效区块应纳入正式区块链历史达成一致。执行层的作用是什么?
执行层负责完成将交易转化为经过验证的区块链状态变化所需的计算。应用交易前,它会检查每笔交易是否符合协议规则。这一过程包括验证交易签名、检查发送方余额、确认账户 nonce、计算 Gas 用量,以及运行任何智能合约指令。执行层还会计算交易产生的新余额、合约存储值、事件日志和交易回执。如果交易无效,执行层会拒绝该交易。如果智能合约执行失败,通常会撤销请求的状态变化,但发送方仍可能需要为已执行的计算支付费用。执行层会按特定顺序处理交易,因为一笔交易可能改变下一笔交易的结果。例如,代币转账必须先更新发送方余额,之后另一笔交易才能使用同一批代币。区块中的每笔交易处理完毕后,执行层会计算该区块产生的最终状态。其他节点可以重复相同计算,以确认区块生产者遵循了协议规则。执行层与区块链状态
区块链状态是账户、余额、智能合约和合约存储数据的当前记录。执行层负责将区块链从一个有效状态推进到下一个有效状态。这一过程通常称为状态转换。状态转换从先前的区块链状态和一笔有效交易开始。随后应用执行规则,生成新状态。对于简单的加密货币转账,执行层会减少发送方余额并增加接收方余额。对于智能合约交易,执行层可能更新多个存储值并与多个其他合约交互。Ethereum 状态包括由私钥控制的外部账户,以及由代码控制的合约账户。重要账户信息可能包括余额、nonce、合约代码和合约存储。Ethereum 通过经过认证的数据结构组织重要的执行层信息,包括官方Merkle Patricia Trie 指南中介绍的状态根、交易根和回执根。
这些加密学根可帮助节点检测执行结果或交易记录是否遭到更改。执行层与 Ethereum 虚拟机
Ethereum 虚拟机是 Ethereum 上执行智能合约指令的计算环境。它通常简称为 EVM。EVM 是 Ethereum 执行层的重要组成部分,但 EVM 与执行层并非完全相同。EVM 负责运行合约代码,而更广义的执行层还负责管理交易、账户状态、费用、回执、区块以及与其他节点组件的通信。所有使用执行客户端的 Ethereum 节点都遵循相同的 EVM 规则。这种确定性设计意味着,同一笔有效交易应在每个诚实节点上产生相同结果。官方Ethereum 虚拟机文档将 EVM 描述为一种去中心化虚拟环境,可在 Ethereum 节点间一致地执行代码。
智能合约代码在由 EVM 执行前,会被转换为称为操作码的底层指令。每个操作码执行特定操作,例如加法、读取存储、写入存储、检查地址或调用其他合约。不同操作所需的计算量各不相同。执行层通过 Gas 衡量这些计算量。执行层与 Gas
Gas 是衡量执行 Ethereum 交易所需计算工作量的单位。每种执行操作都有相应的 Gas 成本。简单的加密货币转账通常比复杂的智能合约交互消耗更少的 Gas。例如,调用多个合约、更新存储并执行大量计算的交易,通常比基本转账需要更多 Gas。Gas 可保护执行层,防止交易要求无限计算资源。如果没有资源限制,恶意或编写不佳的代码可能使节点无限期地执行工作。发送方设置 Gas 上限,以规定交易最多可以使用多少 Gas。如果执行所需的 Gas 超过可用上限,交易就会因 Gas 耗尽而失败,预期的状态变化将被撤销。发送方仍可能需要为失败前已完成的工作付费。官方Ethereum Gas 与费用文档说明,Gas 用于衡量计算工作量并帮助分配有限的网络资源。
当许多用户争夺执行层区块空间时,Gas 费可能上涨。较高手续费可能提高交易被纳入区块的吸引力,但不会改变底层智能合约规则。交易如何到达执行层
加密货币交易通常始于钱包或去中心化应用。用户选择操作、检查详情,并使用私钥签署交易。该签名证明交易已获账户控制者授权。签名后的交易会通过应用程序接口或点对点连接发送至区块链节点。执行客户端通常提供 JSON-RPC 方法,供钱包、应用、开发者和基础设施服务与网络通信。官方Ethereum Execution API 规范将 JSON-RPC 描述为执行客户端与下游工具之间的标准接口。
有效的待处理交易可以进入执行客户端的交易池,通常称为 mempool。区块生产者从可用交易池中选取交易,并将其放入执行负载。交易会按列出的顺序执行。执行层会生成更新后的状态信息、Gas 计算、日志、回执和其他结果。其他节点会独立执行这些交易,以验证拟议结果。交易所在区块获得更多共识确认并达到最终性后,撤销该交易会变得越来越困难。执行层处理的交易类型
执行层可以处理多种区块链交易。价值转账会将网络原生加密货币从一个账户转移至另一个账户。合约部署交易会创建新的智能合约,并将其代码存储在区块链地址中。合约交互交易会调用现有智能合约中的函数。代币转账通常是调用代币合约中的函数,而不是直接转移区块链原生资产。DeFi 交易可能涉及代币交易、提供抵押品、借入资产、偿还债务或提取流动性。治理交易可能通过智能合约投票或提交提案。授权交易可能根据受支持的协议规则,临时赋予外部账户额外的智能账户功能。当前的Ethereum 交易文档介绍了多种交易格式,包括费用市场交易、Blob 交易和较新的授权列表交易。
交易格式可以不断演进,但每笔已接受的交易仍必须通过执行层的验证和状态转换规则。执行层与智能合约
智能合约是存储在区块链地址上的程序,并按照区块链规则执行。智能合约让执行层具备可编程性。具备可编程能力的执行层不仅支持基本加密货币转账,还能支持代币、借贷协议、去中心化交易、数字收藏品、区块链游戏、保险系统和治理工具。用户通过发送包含所需数据的交易与智能合约交互。执行层读取交易并运行所请求的合约函数。合约可能读取已有数据、进行计算、更新存储、转移资产、生成事件日志或调用其他合约。官方Ethereum 智能合约介绍说明,部署和交互合约代码都需要交易和 Gas。
智能合约可以在单笔交易中相互交互,这通常称为可组合性。可组合性让开发者能够将现有链上功能组合成更复杂的加密应用。但它也可能提高执行风险,因为一个合约出现问题,可能影响与其连接的其他合约。执行层与共识层的区别
执行层和共识层是 Ethereum 中相互独立但彼此连接的部分。执行层处理交易并计算状态变化。共识层负责协调验证者、区块提议、证明、分叉选择和最终性。简单来说,执行层判断交易结果是否有效,共识层则判断网络应接受哪一段有效区块链历史。Ethereum 转向权益证明后,完整节点开始同时使用执行客户端和共识客户端。官方运行 Ethereum 节点页面说明,The Merge 之后需要这两类客户端。
两个客户端相互通信,使执行结果与权益证明共识决策保持关联。共识客户端接收并验证共识信息。执行客户端验证交易、执行智能合约并维护执行状态。官方The Merge 说明将原 Ethereum 工作量证明链描述为执行层,将权益证明 Beacon Chain 描述为共识层。
分离这些职责,能让开发者改进执行组件和共识组件,而不必将其视为同一功能。执行与共识如何协同工作
有效的区块链区块必须既正确执行交易,又符合共识规则。提出新区块时,其中的交易必须产生有效的执行结果。执行客户端会检查交易签名、余额、nonce、Gas 上限、智能合约行为和最终状态。共识客户端会检查与提议者、证明、权益证明规则和链上已接受历史相关的信息。验证者不会简单地信任区块生产者提供的执行结果。系统会重新执行交易,以便参与节点独立检查拟议的状态变化。Ethereum权益证明指南说明,拟议区块中的交易会重新执行,以验证状态变化是否有效。
如果执行结果无效,即使区块由活跃验证者提出,诚实节点也会拒绝该区块。如果执行有效,但区块未按共识规则选中,它仍可能无法成为规范链的一部分。因此,区块链要实现安全并可用,两个层面缺一不可。执行客户端与执行层
执行客户端是实现区块链执行规则的软件程序。执行层则是由所有参与的执行客户端构成的更广泛网络和系统。节点运营者会安装执行客户端,以处理交易、维护状态、与节点通信并提供应用接口。不同客户端实现可以遵循同一协议规范,同时采用不同编程语言和内部设计。客户端多样性有助于提升韧性,因为整个网络不再过度依赖某一种软件实现。不过,所有兼容的执行客户端都必须对有效交易的结果达成一致。状态转换行为不一致可能导致节点计算出不同的区块链状态。Ethereum 执行层规范为执行客户端行为和网络升级提供了易读的参考。
执行客户端开发者会使用规范和大量测试,降低结果不一致的风险。普通用户无需运行执行客户端也能提交交易,但运行节点可以提供更强的独立验证能力,并让用户更好地控制区块链访问。执行层与应用层
应用层包含用户交互的钱包、界面和去中心化应用。执行层是负责处理这些应用所创建交易的底层区块链系统。钱包可以创建并签署交易,但无法独立决定区块链的最终状态。去中心化应用可以显示代币兑换界面,但执行层会运行实际完成兑换的智能合约。应用层让区块链活动更易于使用,执行层则负责执行协议规则。应用界面出现问题,并不一定意味着执行层发生故障。例如,网站可能显示错误信息,但底层智能合约和区块链状态仍然正确。反过来也可能出现界面运行正常,但智能合约包含不安全逻辑的情况。因此,评估加密应用时,用户应区分界面风险、智能合约风险和区块链执行风险。执行层与结算层
执行层负责执行交易并计算结果。结算层提供可信场所,用于确认最终所有权并解决争议。在 Layer 1 区块链上,执行和结算可能发生在同一整体网络中,但两者仍是不同概念。在模块化区块链设计中,执行可能在一个网络上进行,另一个网络则负责结算或安全保障。例如,Rollup 可以在 Ethereum 主执行环境之外执行交易,随后将信息或证明发布到 Ethereum。按照 Rollup 的设计,Ethereum 会成为其结算基础层。由于并非每项用户操作都需要由 Layer 1 环境直接执行,这种分离可以提高交易处理能力。不过,用户必须了解二级执行系统如何发布数据、证明结果、处理提现及应对故障。执行说明系统发生了什么变化,而结算则决定根据系统的安全模型,这些变化何时可以视为最终结果。执行层与数据可用性层
数据可用性是指网络参与者能否访问验证区块链活动所需的信息。执行和数据可用性解决的是不同问题。执行层应用交易规则并计算状态变化。数据可用性层确保验证者能够获取必要的交易或区块数据。即使有人声称执行正确,如果关键交易数据被隐藏,系统也无法独立验证。一些模块化区块链设计会将执行、共识、结算和数据可用性拆分为不同组件。Ethereum 支持专门的 Blob 交易,让 Rollup 能更高效地发布临时数据。官方EIP-4844 规范引入了携带 Blob 的交易,以支持 Rollup 的可扩展数据可用性。
EVM 使用 Blob 数据的方式与普通智能合约 calldata 不同。Blob 为 Rollup 提供了更低成本的数据可用性方案,而执行则在 Rollup 环境中进行。Layer 2 网络中的执行层
Layer 2 网络可以提供独立的执行环境,同时依靠 Layer 1 区块链提供部分安全保障或结算服务。这样,许多交易便可以在主 Layer 1 执行环境之外处理。随后,Layer 2 系统会按照自身设计发布交易数据、状态承诺或有效性证明。Optimistic Rollup 通常设有挑战期,可在此期间对无效状态声明提出异议。零知识 Rollup 使用加密有效性证明,证明一组交易遵循了要求的规则。官方Ethereum Layer 2 概览说明,二级网络可以提升处理能力,同时使用 Ethereum 作为结算层。
Layer 2 执行可以降低交易成本并提高吞吐量。不过,每个 Layer 2 系统的排序器规则、提现流程、智能合约风险、证明系统和升级控制都可能不同。用户不应假设所有执行层都具有相同的安全保障。执行发生的位置只是系统整体信任模型的一部分。执行层与 Layer 1 是同一概念吗?
执行层不一定等同于 Layer 1 区块链。Layer 1 指拥有自身协议和安全系统的基础区块链网络。执行层指负责处理交易和计算状态变化的功能部分。Layer 1 区块链可以包含执行层、共识机制、网络规则、数据存储和结算功能。Layer 2 网络也可以拥有自己的执行层,同时依赖 Layer 1 网络进行结算或提供数据可用性。这两个术语回答的是不同问题。Layer 1 和 Layer 2 描述系统在区块链架构中的位置。执行层则描述系统中负责计算和状态转换的部分。执行层与区块生产
区块生产结合了交易选择、执行和共识职责。区块生产者或相关构建者会选择待处理交易,并将其按顺序放入执行负载。交易顺序很重要,因为智能合约结果可能取决于哪笔交易先执行。执行客户端会检查所选交易是否符合区块资源限制。随后,客户端计算最终状态、Gas 用量、回执和其他执行信息。共识系统负责协调区块提议的传播、验证、投票和加入已接受链的过程。其他节点会重新执行,而不是盲目相信区块生产者的计算。这种独立验证是区块链执行层与传统中心化数据库之间的主要区别之一。在中心化数据库中,单一运营者可能直接控制正式状态。在区块链中,许多节点都可以验证拟议状态转换是否遵循共同规则。执行层与交易排序
交易排序决定区块内交易的执行顺序。这一顺序可能影响代币价格、强平结果、拍卖结果和智能合约状态。例如,两名用户可能几乎同时尝试在同一个流动性池中交易。先执行的交易会改变池中余额,并影响后一笔交易获得的价格。通过选择、纳入、排除或排序交易所创造的经济价值,通常称为最大可提取价值(MEV)。官方Ethereum 最大可提取价值文档说明,区块构建和交易排序可以创造超出标准区块奖励和手续费的价值。
有些交易排序方式有助于提升市场效率,另一些则可能让用户获得更差结果。例如,三明治攻击会尝试在用户去中心化兑换之前和之后进行交易,从价格影响中获利。用户可以检查滑点限制、避开浅层流动性并查看预期交易输出,以降低部分执行风险。执行层的可扩展性
执行层可扩展性是指系统在不使验证变得不安全或不切实际的情况下处理更多交易的能力。区块链可以通过提高软件效率、调整资源限制、并行处理交易,或将活动迁移到 Layer 2 系统来提高执行能力。每种扩容方式都有取舍。更大的区块可以处理更多活动,但节点需要更多带宽、存储和计算能力。更复杂的执行可能增加运行验证节点的难度。Layer 2 执行可以降低 Layer 1 的直接需求,但会引入跨链桥、排序器、证明系统和额外智能合约。当交易不依赖相同状态时,并行执行可以提升性能;但相互冲突的交易仍需要谨慎排序。可持续的执行层必须在吞吐量、去中心化、安全性、可预测的验证能力和合理的硬件要求之间取得平衡。执行层安全性
执行层安全性取决于正确的协议规则、可靠的客户端软件、确定性计算和独立验证。严重的执行客户端漏洞可能导致节点对有效状态变化产生分歧。通过多种客户端实现、测试、审计、正式规范和协调网络升级,可以降低这一风险。执行层安全并不意味着所有智能合约都安全。智能合约可能遵循有效的执行规则,但仍然存在代码错误、不安全权限、失效的经济模型或可被利用的设计。即使有效合约代码会产生不理想结果,执行层仍会忠实运行。因此,用户必须同时评估底层执行环境和具体应用的安全性。其他风险包括拒绝服务攻击、状态增长、费用激增、恶意交易排序、预言机操纵、跨链桥漏洞和不安全的合约升级。安全的基础层可以降低基础设施风险,但无法消除所有应用风险或用户失误。执行失败时会发生什么?
交易不符合协议或智能合约要求时,执行可能失败。交易可能因 nonce 不正确、资金不足、签名无效、条件已过期、Gas 不足或合约调用被回滚而失败。无效交易可能在纳入区块前就被拒绝。即使交易已进入区块,也可能在执行时回滚,但 Gas 费用仍可能需要支付。回滚通常会取消失败调用期间产生的状态变化。区块链回执会记录执行成功还是失败。一笔交易失败并不意味着整个执行层停止工作。这通常意味着在当前状态和合约规则下,该笔交易无法完成。钱包和应用通常会在提交前模拟交易,以估算 Gas 用量并识别可能的失败。模拟可以减少失误,但不能保证交易成功,因为交易实际执行前区块链状态可能发生变化。为什么确认前的执行结果可能变化
在交易纳入区块前,钱包可能会显示估算结果。该估算基于模拟时可用的区块链状态。在用户交易执行前,其他交易可能改变价格、余额、流动性、合约存储或借款条件。这对去中心化兑换、强平、拍卖和限量代币销售尤为重要。因此,交易可能产生不同结果、回滚,或超出用户设置的滑点限制。执行层会根据交易在区块中的位置所对应的实际状态处理交易,而不是使用界面先前显示的状态。用户签署前应检查最低收到数量、截止时间、Gas 设置和合约权限。报价要等到执行并确认交易后才是最终结果。执行层对加密货币用户为何重要
执行层影响加密货币用户几乎所有链上操作。它决定转账能否成功、消耗多少 Gas、智能合约会更改什么,以及哪种交易结果会成为区块链状态的一部分。它还会影响应用速度、交易成本、网络容量和开发者能够构建的程序类型。执行层拥堵可能导致费用升高和等待时间变长。高效的执行层可以以较低成本支持更多活动。可编程的执行层让去中心化应用成为可能。安全的执行层让节点能够验证余额和合约状态是否正确更新。了解执行机制,有助于用户理解交易失败、兑换滑点、Gas 费变化或应用使用 Layer 2 网络的原因。执行层对加密货币交易者为何重要
加密货币交易者在转移资产或使用链上市场时,会与执行层交互。执行条件可能影响去中心化交易的最终成本。高额 Gas 费可能使小额交易不划算。流动性不足可能导致合约执行时价格影响较大。交易排序可能使兑换面临最大可提取价值策略的影响。网络拥堵可能延迟充值、提现、跨链转账或抵押品调整。交易失败仍可能消耗费用,并使交易者错过市场机会。在不同网络之间转移资金或与去中心化协议交互前,交易者应考虑执行层成本。他们还应确认目标网络、代币合约、Gas 资产、跨链桥流程和预期确认时间。即使市场判断正确,忽略执行成本和技术风险仍可能导致糟糕结果。如何评估执行层
首先要评估安全性。可靠的执行层应有清晰的协议规则、活跃开发、独立验证,以及正确处理状态转换的良好记录。第二项是去中心化程度。用户应考虑有多少独立参与方可以运行节点、验证交易并参与区块生产。第三项是性能。重要指标包括吞吐量、确认时间、最终确认时间和需求高峰期间的表现。第四项是成本。用户应查看常见费用、费用波动、失败交易成本,以及支付执行费用所需的原生资产。第五项是可编程性。开发者可能会考虑支持的编程语言、虚拟机设计、工具、调试功能和合约兼容性。第六项是互操作性。用户应了解资产和消息如何在执行层与其他网络之间转移。第七项是升级风险。治理控制、紧急权限、软件升级和合约升级权限都可能影响系统的信任假设。关于执行层的常见误解
一种常见误解是认为执行层和共识层承担相同工作。执行层验证状态转换,共识层负责协调各方对已接受区块链历史达成一致。另一种误解是认为 EVM 就代表整个执行层。EVM 是计算引擎,但执行客户端还负责管理交易、状态、回执、网络通信和应用接口。第三种误解是认为每个执行层都是 Layer 1 区块链。Layer 2 系统也可以提供执行,同时依赖另一条区块链进行结算或提供数据可用性。第四种误解是认为区块链成功执行就代表交易在财务上安全。执行层可以正确处理有害的代币授权、糟糕的交易,或与恶意合约的交互。第五种误解是认为已提交交易必定按显示结果执行。状态变化、网络拥堵、交易排序、Gas 上限和滑点规则都可能改变或阻止执行。第六种误解是认为执行速度快就能证明区块链安全或去中心化。性能只是区块链设计的一部分,应与验证要求和信任假设一并考虑。执行层交易示例
假设用户想通过去中心化流动性池将一种加密代币兑换为另一种。钱包会创建一笔交易,其中包含合约地址、兑换指令、代币数量、截止时间、滑点限制和 Gas 设置。用户使用私钥签署交易。执行客户端接收签名后的交易并检查其基本有效性。区块生产者随后将其纳入执行负载。交易在区块中轮到执行时,EVM 会运行流动性池的智能合约代码。合约会检查用户的代币授权、计算当前池价、应用交易手续费,并检查最低输出要求。如果所有要求都满足,合约便转入输入代币、发送输出代币、更新池内余额并生成事件日志。如果可获得的输出低于用户设定的最低要求,执行便会回滚兑换。其他节点会重复执行,以确认拟议结果正确。这个示例展示了执行层如何连接钱包指令、智能合约代码、Gas、状态更新和区块链验证。常见问题
加密货币中的执行层是什么意思?
执行层是负责处理交易、运行智能合约、计算费用并更新账户和合约状态的区块链组件。Ethereum 的执行层是什么?
Ethereum 的执行层是由执行客户端构成的网络,负责处理交易、运行 EVM、广播交易信息并管理 Ethereum 状态。EVM 就是执行层吗?
不是。EVM 是运行智能合约代码的虚拟机,而执行层还包括交易验证、状态管理、Gas 计费、回执、区块和执行客户端服务。执行层与共识层有什么区别?
执行层检查并应用交易,共识层则帮助验证者就有效区块的顺序和最终性达成一致。执行层会创建区块吗?
执行层会帮助组装并验证执行负载,共识系统则负责协调区块提议、证明、分叉选择和最终性。Gas 费是为执行支付的吗?
是。Gas 费支付交易由执行层处理时所消耗的计算工作和有限区块资源。Layer 2 网络可以有执行层吗?
可以。许多 Layer 2 网络在自身环境中执行交易,同时依赖 Layer 1 区块链进行结算、提供数据可用性或保障安全。交易在执行过程中失败会怎样?
预期的状态变化通常会回滚,但发送方仍可能需要为已完成的计算工作支付 Gas。执行层能阻止恶意智能合约吗?
执行层会拒绝违反协议规则的代码,但如果有害或设计不佳的合约逻辑在技术上有效,执行层仍可能运行它。为什么不同交易消耗的 Gas 不同?
智能合约操作所需的计算、存储访问和状态变化各不相同,因此不同交易消耗的 Gas 也不同。所有区块链都有执行层吗?
每条区块链都必须具备验证交易和更新状态的机制,但不同协议对该功能的称呼和架构可能不同。为什么执行具有确定性?
执行具有确定性,才能确保诚实节点从相同初始状态处理相同交易时,计算出相同的最终结果。结语
执行层是将签名交易转化为已验证状态变化的区块链组成部分。它会验证交易详情、运行智能合约代码、计算 Gas、更新余额、生成回执并拒绝无效操作。在 Ethereum 中,执行层由运行 EVM 并维护网络执行状态的执行客户端构成。执行层与共识层协同工作;共识层负责协调验证者,并决定哪些有效区块会成为已接受区块链历史的一部分。执行层也不同于应用层、结算层和数据可用性层,尽管这些组件彼此密切交互。Layer 2 网络可以提供独立的执行环境,同时使用 Layer 1 区块链进行结算或提供数据可用性。执行层设计会影响交易费用、可扩展性、智能合约功能、安全性以及链上应用的用户体验。对加密货币用户来说,了解执行层有助于理解 Gas 费、交易失败、智能合约行为、Layer 2 系统和区块链状态变化。对开发者和节点运营者来说,执行层提供了让独立设备一致计算区块链活动所需的规则和软件。安全且可预测的执行层至关重要,因为每笔代币转账、去中心化交易、合约调用和链上应用都依赖正确执行。您可能也喜欢
反恐融资(CTF)
框架
波动性爆发
热门
目前热门备受市场关注的加密货币
最高成交量
按交易量计算交易量最大的加密货币

