MetaMask 推出高级权限功能

MetaMask推出了高级权限功能,该功能基于ERC-7715标准和MetaMask智能账户工具包构建,允许用户授予去中心化应用(DApp)在特定范围和时间限制内代表其执行操作的权限。这解决了频繁签名和权限疲劳问题,增强了安全性,并为订阅、DCA策略和AI代理等复杂应用场景提供了标准化的构建方式。

授予 dapp 有范围限制、有时间限制的访问权限,使其能够在无需额外签名、独立钱包或权衡托管的情况下代用户执行操作。

介绍高级权限

我们新推出的高级权限(Advanced Permissions)——基于 ERC-7715 构建并作为 MetaMask Smart Accounts Kit 的一部分——允许用户在单次交互中精确批准 dapp 可以执行的操作。你的 dapp 通过 Session Account 在该范围内执行。用户的钱包始终由其掌控。

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

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

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

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

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

高级权限采取了一种不同的方法:一个钱包,有范围限制的访问。

什么是高级权限?

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

以下是它在协议层面的工作原理:

  1. 你的 dapp 调用 wallet_requestExecutionPermissions,向用户的 MetaMask 钱包请求有范围限制的权限。
  2. MetaMask 显示一个人类可读的批准屏幕,显示正在请求的确切内容:资产、金额、持续时间以及任何约束条件。
  3. 用户审查,(如果你的请求允许)可以选择调整参数,并批准。
  4. 你的 dapp 通过 Session Account 在授予的范围内执行,Session Account 是由你的 dapp 创建并控制的专用账户(EOA 或 Smart Account)。Session Account 永远不持有用户资金。它通过 ERC-7710 委托(delegation)兑换权限,在定义的限制范围内直接从用户的 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 具有可配置开始时间、速率和上限的线性流式配额 归属、持续支付、逐渐解锁
撤销 erc20-revocation 允许 dapp 代表用户撤销 ERC-20 Token 批准 清理陈旧或有风险的批准(approve)配额

每种权限类型都接受相应的参数,包括 expiry(过期时间)、人类可读的权限理由以及 isAdjustmentAllowed(是否允许调整)。

你可以构建什么

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

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

高级权限安全模型

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

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

其他资源

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

常见问题解答

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

Smart Accounts Kit 的限制执行器会在链上验证每次执行。如果 Session Account 尝试执行授权范围之外的操作,交易将被拒绝。

Session Key 与高级权限有什么区别?

Session Key 授予临时的、有范围限制的访问权限以代表用户执行操作,但受托人在会话过期前在固定边界内操作。

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

  1. 执行后Hook(Post-execution hooks): 不仅在交易执行前强制执行条件,在执行后也会。这实现了基于意图的权限——用户不需要预先定义确切的操作,而是可以表达他们想要的结果,Hook会验证结果是否匹配。
  2. 子委托(Sub-delegation): 受托人可以将自己权限的有范围子集传递给另一方。这开启了 Agent 之间的协作、多步骤工作流和求解器(solver)架构。

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

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

用户如何撤销权限?

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

这对 EOA 有效吗?

高级权限需要 MetaMask Smart Account。如果用户的账户尚未升级,流程将自动提示他们在继续之前升级到 Smart Account。

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

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

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

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

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

0 条评论

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