MetaMask 推出Advanced Permissions 功能 - 自动但受限的批量执行

  • metamask
  • 发布于 22小时前
  • 阅读 41

MetaMask 推出基于 ERC-7715 标准的高级权限(Advanced Permissions)功能,允许用户通过一次性签名授予 DApp 在特定资产、额度及时间范围内的执行权限。该方案结合了智能合约账户与会话账户技术,有效解决了频繁签名疲劳问题,支持定投、自动订阅及 AI 代理等自动化链上场景。

介绍高级权限 (Advanced Permissions)

授予 dapps 有作用域限制的、有时间限制的访问权限,使其代表用户执行操作,无需额外签名、独立钱包或权衡托管风险。

我们新推出的高级权限 (Advanced Permissions)——基于 ERC-7715 并作为 MetaMask Smart Accounts Kit 的一部分——允许用户在单次交互中准确批准 dapp 可以执行的操作。你的 dapp 通过会话账户 (session account) 在该作用域内执行。用户的钱包仍由其掌控。

订阅、DCA、AI Agent、归属 (vesting)、自动复利:如果你一直在等待一种标准的方法来构建这些功能,而无需拼凑各种变通方案,那么这就是你需要的。

Introducing Advanced Permissions

为什么我们要构建高级权限?

从历史上看,加密钱包遵循一种简单的交互模型,其中每笔交易都需要显式的用户签名。这意味着重复的弹窗、应用与钱包之间的切换以及授权疲劳。随着时间的推移,用户开始习惯性地在不阅读内容的情况下批准请求,这与知情同意背道而驰。

此前也没有标准的方法让 dapp 向钱包请求有作用域限制的权限。如果没有这种方法,整个产品类别——订阅、AI Agent、有时间限制的访问——仍然难以或无法很好地构建。

嵌入式钱包解决了一些摩擦,但它们引入了不同的权衡。用户最终在每个 dapp 中都有独立的余额,需要跨多个地址注资和管理资产。体验变得更加碎片化。

高级权限采取了不同的方法:一个钱包,有作用域限制的访问。

什么是高级权限?

高级权限允许用户授予 dapp 代表其执行特定、受限操作的能力,而无需放弃完整的钱包访问权限或为每笔交易签名。

以下是协议层面的运作方式:

  1. 你的 dapp 调用 wallet_requestExecutionPermissions,向用户的 MetaMask 钱包请求一个有作用域限制的权限。
  2. MetaMask 显示一个人类可读的批准屏幕,准确显示正在请求的内容:资产、金额、时长和任何限制条件。
  3. 用户查看,(如果你的请求允许)可以选择调整参数,并批准。
  4. 你的 dapp 通过会话账户 (session account) 在授予的作用域内执行,会话账户是由你的 dapp 创建并控制的专用账户(EOA 或智能账户)。会话账户从不持有用户资金。它通过 ERC-7710 委托兑换权限,在定义的限制范围内直接从用户的 MetaMask 账户执行交易。

例如,用户可以为 AI Agent 设置一个 DCA 策略,在 30 天内每天花费最多 10 USDC 购买 ETH。用户无需每天为每笔交易签名,而是通过 MetaMask 批准单个有作用域限制的权限。

该界面在批准前清晰地列出了条款、资产、金额和时长。一旦授予,应用程序就可以在定义的限制范围内代表用户执行交易。

支持的权限类型

ERC-7715 定义了应请求权限的规范和标准,以及应应用于这些权限的规则。

Smart Accounts Kit 在此基础上提供了四种实现层面的权限类型:

类别 权限类型 功能 示例用例
周期性 erc20-token-periodic, native-token-periodic 每个周期的 Token 转账限额;每个周期重置 订阅、DCA 策略、循环 Gas 预算
流式 erc20-token-stream, native-token-stream 具有可配置起始时间、速率和上限的线性流式额度 归属 (Vesting)、持续支付、渐进式解锁
撤销 erc20-revocation 允许 dapp 代表用户撤销 ERC-20 Token 授权 清理陈旧或有风险的 approve 额度

每种权限类型都接受相应的参数,包括有效期、人类可读的权限理由以及 isAdjustmentAllowed。请参阅高级权限参考文档以获取完整的 schema。

你可以构建什么

高级权限将模型从重复批准转变为基于意图的执行:用户一次性定义有作用域限制的权限,操作将在一段时间内在该作用域内执行。

  1. 自动化和循环流程:订阅、DCA 策略和自动复利可以在一次性批准后运行。将这些映射到 erc20-token-periodicnative-token-periodic 权限,并设置与你的计费或执行周期匹配的 periodDuration
  2. 基于 Agent 的执行:AI Agent 可以在用户定义的边界内进行交易、重平衡或采取行动。Agent 控制会话账户 (session account) 的密钥并通过委托执行——用户的主钱包永远不会暴露,并且 Agent 只能在授予的作用域内操作。无需单独的钱包注资。
  3. 有时间限制的访问:权限接受 startTimeexpiry 参数,支持归属计划 (vesting schedules)、计划执行或会话内游戏操作等用例。结合流式权限进行 Token 的渐进式释放。

高级权限安全模型

高级权限通过 Smart Accounts Kit 的智能合约在链上强制执行。在实践中这意味着:

  • 设计即受限 (Scoped by design):每个权限准确定义了会话账户可以访问的内容:资产、金额、时间窗口和转账类型。委托框架 (Delegation Framework) 的限制执行器 (caveat enforcers) 会拒绝任何超出作用域的执行。
  • 人类可读的批准:MetaMask 在用户授予任何内容之前,会显示一个包含完整权限参数的丰富确认 UI。
  • 用户可调节:如果你的权限请求设置了 isAdjustmentAllowed: true,用户可以在批准前修改参数(例如,减少金额或缩短时长)。
  • 可撤销:用户可以随时通过 MetaMask 的 Dapp 连接选项撤销任何活动权限。
  • 会话账户不持有资金:执行通过用户智能账户 (Smart Account) 的委托兑换发生。会话账户是一个签名密钥,而不是托管点。

其他高级权限资源

  • 高级权限开发者文档:了解 ERC-7715 和 ERC-7710 如何协同工作,以及高级权限与常规委托的比较。
  • 代表 MetaMask 用户执行操作:设置会话账户、请求权限并兑换它们。
  • Scaffold-ETH 2 的高级权限 (ERC-7715) 扩展:探索一个带有工作示例的开箱即用启动项目。
  • ERC-7715 规范:阅读 wallet_requestExecutionPermissions 的完整提案。

关于高级权限的常见问题

如果 dapp 试图超出其权限范围会发生什么?

Smart Accounts Kit 的限制执行器 (caveat enforcers) 会在链上验证每一次执行。如果会话账户尝试执行超出授予范围的操作,交易将被拒绝。

会话密钥 (Session Keys) 和高级权限有什么区别?

会话密钥授予临时的、有作用域限制的访问权限,以代表用户执行操作,但链路到此为止。受托人在固定边界内操作,直到会话过期。

高级权限在两个方面更进一步:

  1. 执行后Hook (Post-execution hooks):条件不仅在交易执行前强制执行,在执行后也会强制执行。这实现了基于意图的权限——用户不再需要预先定义确切的操作,而是可以表达他们想要的结果,而Hook会验证结果是否匹配。如果不匹配,交易将回滚。
  2. 子委托 (Sub-delegation):受托人可以将其权限的有作用域子集传递给另一方。例如,Alice 授予 Bob 高级权限。Bob 随后可以委托给 Carol,Carol 可以使用 Alice 最初授予的意图进行交易,而无需 Alice 批准链路中的每一步。这开启了 Agent 之间的协调、多步骤工作流和 Solver 架构,其中第三方跨多个执行步骤完成用户预期的结果,而无需在每一步都获得新的批准。

会话密钥是单跳的、预验证的访问。高级权限增加了执行后验证和链式委托;如果你正在构建 Agent 工作流、Solver 架构或任何需要在链上进行多方协调的内容,这就是关键的区别。

用户可以在授予权限之前修改它们吗?

是的,如果权限请求包含 isAdjustmentAllowed: true。MetaMask UI 允许用户在批准前调整金额、时长、到期时间和开始时间等参数。

用户如何撤销权限?

用户可以随时通过 MetaMask 直接撤销任何活动权限。

这适用于 EOA 吗?

高级权限需要 MetaMask 智能账户 (Smart Account)。如果用户的账户尚未升级,高级权限流程将在继续之前自动提示他们升级到智能账户。要了解如何将 MetaMask EOA 切换为智能账户,请参阅我们的 MetaMask 支持指南。

这与 ERC-20 approve() 有什么不同?

ERC-20 授权授予合约地址无限(或固定金额)的消费权,没有时间限制、没有周期性限制,也没有人类可读的上下文。高级权限按资产、金额、时间窗口和转账模式进行作用域限制,并在批准前以通俗易懂的语言显示给用户。

由于设计上的局限性,ERC-20 授权面临更大的智能合约漏洞利用和授权黑客攻击风险。

支持哪些区块链网络?

任何支持 EIP-7702 的链都可以用于测试高级权限,包括:

  1. Arbitrum One
  2. Base
  3. Berachain
  4. BNB Chain
  5. Citrea
  6. Ethereum Mainnet
  7. Gnosis
  8. Monad
  9. Optimism
  10. Polygon
  11. Sonic
  12. Unichain

请查看 Smart Accounts Kit 文档以获取有关网络支持的最新详情。

高级权限需要链上交易吗?

不需要,授予高级权限是 ERC-712 签名,而不是链上交易。这也让 dapp 能够为用户抽象出 Gas 成本。


  • 原文链接: metamask.io/news/introdu...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
metamask
metamask
江湖只有他的大名,没有他的介绍。