Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

EIP-7702

Stable 支持 EIP-7702,该标准允许 EOA 将其账户代码设置为现有的智能合约。EOA 执行该合约的逻辑,同时保持其原始地址和私钥。该委托是持久的,直到 EOA 明确更改或清除它。

要了解完整规范,请参阅 EIP-7702。

EIP-7702 在 Stable 上实现的功能

EIP-7702 允许现有 EOA 执行智能合约逻辑,而无需进行账户迁移。在 Stable 以 USDT 为中心的支付环境中,这支持以下模式:

  • 批处理支付:多个调用(例如,在一次工资支付中向多个收款人付款)在一个原子交易中执行。
  • 支出限额:委托合约对 EOA 强制执行每日上限或每笔交易限额。
  • 会话密钥:EOA 授予 dApp 范围化、有时限的交易权限,而无需暴露所有者的私钥。

工作原理

EIP-7702 引入了一种新的交易类型(0x04),它带有一个 authorizationList。每个授权都指定一个智能合约,EOA 将在该交易中执行该合约的代码。流程如下:

  1. 选择或部署委托合约:一个标准的 Solidity 合约,实现了您希望 EOA 运行的逻辑。您可以使用现有的已部署合约或部署自己的合约。尽可能使用经过审计的合约。
  2. 签署授权:EOA 所有者签署一条消息,指定委托合约。
  3. 提交 EIP-7702 交易:交易包含授权,EOA 在执行期间运行委托的代码。

提交后,EOA 的账户代码被设置为委托。后续发送到 EOA 的交易将执行委托的逻辑,直到所有者清除或替换委托。

不变之处

  • 无需新账户:用户保留其现有的 EOA 地址和私钥。没有迁移步骤。
  • 现有密钥仍可签名:EOA 的私钥签署授权和任何后续交易。EIP-7702 不会引入新的签名方案。
  • 标准 EVM 执行:委托作为常规合约代码运行。调试或跟踪合约执行的工具工作方式不变。

安全注意事项

  • **委托访问是完全的。**在委托期间,委托合约对 EOA 拥有完整的执行权限。将委托选择视为信任决策:恶意委托可能会耗尽资产。
  • **委托函数在 EOA 上是公开的。**任何人都可以在 EOA 的地址调用委托的任何外部函数,并且它以 EOA 的余额运行。如果委托在不检查调用者的情况下执行任意调用(例如 Multicall3),则任何人都可以耗尽 EOA。
  • **委托是持久的。**它不会在单笔交易结束时过期。当所有者不再需要委托时,必须明确清除或替换它。
  • Gas 成本略高,因为需要处理授权,但当委托批处理多个调用时,这会被抵消。在 Stable 上,基础费用为 1 gwei,gas 以 USDT0 计价,额外的授权开销远低于一美分,与标准 ERC-20 转账的成本相当。

接下来推荐