
对于初次接触以太坊及 Hegotá 讨论中「Frame Transactions」概念的初学者来说,最直接的理解方式是:这是一种由多个环环相扣步骤组成的交易。一帧可能负责验证发送方,另一帧用于支付授权,后续帧则执行用户指令。本文聚焦于这种基本结构,而非整个 EIP-8141 提案的全部内容。
EIP-8141 引入了一种全新的 Frame Transaction 类型,目前分配的交易类型为 0x06。
单笔交易最多可包含 64 帧,每帧可独立设置执行模式与 Gas 限额。
帧结构将交易验证、Gas 支付和用户执行过程完全分离。
APPROVE 操作码可分别对执行、支付或二者同时进行授权。
Frame 抽象机制实现了原生账户抽象、原子批处理、Gas 赞助(保持与术语一致)以及可编程签名验证等功能。
EIP-8141 Frame Transaction 规范 正式描述了一种新的交易格式,其有效性和 Gas 支付方式均可抽象定义。EIP-8141 规范
该交易载荷包括发送方地址、签名、费用和帧列表。每个帧分别设定自身的模式、标志、目标、执行及状态 Gas 限额、转账数额与数据。现行规范将 MAX_FRAMES 设定为 64,FRAME_TX_TYPE 指定为 0x06。
简言之,传统交易结构较为固定,即发送方签名并支付;Frame 抽象则将其转变为可编程的多步骤流程。
每个 EIP-8141 帧可采用以下三种执行模式之一:
| 模式 | 基本用途 |
|---|---|
| VERIFY | 将帧用于交易验证 |
| SENDER | 以交易发送者身份执行 |
| DEFAULT | 以协议指定的 ENTRY_POINT 身份执行 |
执行模式决定帧的上下文环境。VERIFY 帧能在发送方相关帧之前执行验证逻辑,SENDER 模式允许授权操作以发送者身份调用,DEFAULT 模式则提供协议层中立身份。
这种模块化结构是 原生账户抽象 的核心,因为验证无需绑定单一私钥或特定签名方案。
EIP-8141 增设了 APPROVE 操作码,用于更新交易的授权上下文。
验证逻辑支持多种授权范围:
APPROVE_PAYMENT — 授权 Gas 支付
APPROVE_EXECUTION — 授权后续发送方帧执行
APPROVE_EXECUTION_AND_PAYMENT — 同时授权上述两项
帧目标必须为 APPROVE 呼叫方,仅允许目标账户进行授权。授权一旦确认,后续 SENDER 帧即可在发送方上下文下执行。
这一分离机制也支持支付方合约或支付方单独授权最大 Gas 消耗额度,而用户自身验证逻辑则授权实际操作。
现行规范定义以下七个帧相关新指令:
| 操作码 | 功能 |
|---|---|
| APPROVE | 授权支付和/或执行 |
| TXPARAM | 读取交易参数 |
| FRAMEDATALOAD | 从指定帧加载数据 |
| FRAMEDATACOPY | 将帧输入复制到内存 |
| FRAMEPARAM | 读取帧参数与执行状态 |
| SIGPARAM | 读取签名相关元数据 |
| SIGDATACOPY | 复制支持的签名数据 |
如 TXPARAM 可提取发送方、最大费用、签名杂湊与帧数量等交易级信息;FRAMEPARAM 能读取执行模式、标志位、已用 Gas 及是否启用原子批处理等帧详情。这些基本查询操作的 Gas 消耗为 2。
Frame Transaction 将 Gas 支付 职责与发送方角色彻底分离。VERIFY 帧可指定其他账户或支付方合约承担 Gas 支付,实现原生 Gas 赞助(与术语一致)功能。
例如,用户持有稳定币,另一个账户作为 Gas 支付者。Frame Transaction 可通过 ERC-20 代币转账补偿支付方,而实际链上费用则由指定支付方结算。
每帧均设有执行与状态 Gas 限额。未用完的 Gas 会减少实际向支付方收取的金额,但不会增加剩余帧的执行额度。
原子批处理机制将多个执行帧绑定为一体,使其要么全部成功,要么全部回滚。
例如,先进行 ERC-20 授权,再执行兑换操作。若设有原子批处理标志,兑换帧回滚时前面的授权也会一并回滚,避免交易失败后遗留无用的代币授权。
这正是 Frame Transaction 简化多步骤智能合约互动的直接应用场景之一。
以太坊现有的 ERC-4337 账户抽象框架 主要依赖智能账户、打包器、UserOperations 与支付方来实现可编程钱包。Frame Transaction 则直接将此灵活性引入 协议层。
EIP-8141 的可编程验证机制支持多种签名方案、金钥轮换、未来签名聚合及后量子安全适配。默认代码让未部署合约代码的账户亦可参与,而部署帧可于验证前进行账户部署。
灵活性带来新权衡。任意验证逻辑可能引发交易池拒绝服务或大规模失效,因此公共内存池规则对验证前缀与 Frame Transaction 处理方式设有专门限制。
以太坊 Frame Transaction 本质上是由多个可编程帧组成的一笔交易。EIP-8141 让不同帧分别承担验证、Gas 支付与执行等功能,不再将这些流程硬编码于同一交易角色之中。
这一区别极为重要:EIP-8141 是协议级提案,Frame Transaction 则是其引入的新交易格式。模块化结构是实现 Gas 赞助(与术语一致)、原子批处理、可编程验证、灵活签名及原生账户抽象的基础,无需为每项功能建立独立交易机制。
是的。VERIFY 模式专为交易验证设计,不会改变链上持久状态。这有助于节点在决定是否将待处理 Frame Transaction 纳入公共内存池前,更安全地模拟验证过程。
不一定。在 EIP-8141 机制下,支付方可由可编程验证逻辑动态决定,因此无法仅凭交易数据静态确定支付账户。支付授权会在交易验证流程中完成。
流程上会先确认发送方授权,然后才能对实际承担 Gas 费用的账户或支付方进行支付授权。这一分离带来执行与支付的独立授权机制。
不能。Frame Transaction 的 Gas 计账机制明确禁止一帧借用其他帧未消耗的 Gas 预算。每帧均设有独立执行与状态 Gas 限额,交易总 Gas 限额则包含固有 Gas 及相关帧的执行上限。
标准支付方依协议规范实现,合约代码需与指定标准完全一致,节点可高效追踪其 Gas 承诺。非标准支付方则受更严格内存池限制,仅允许一笔待处理交易,以降低大规模失效与拒绝服务风险。
本文内容仅供学习和参考。EIP-8141 仍处于以太坊协议演进过程中,相关规范在主网上线前可能会发生变更。











