权限(会话密钥)——ZeroDev

zerodev 发布于 2026-07-20 阅读 10

本文介绍了 ZeroDev 的 Kernel 智能账户权限系统,核心概念是通过组合 Signer(谁)、Policy(何时)和 Action(什么)来创建细粒度权限。权限公式为:1个签名器 + N个策略 + 1个动作。ZeroDev 提供了多种内置策略(如 sudo、调用限制、Gas 限制等),并支持用户自定义插件,适合用于委托交易和自动化场景。

使用 Kernel,你可以为不同的密钥分配不同的权限。其中一些密钥可能由智能账户的所有者持有,另一些可能是你与他人共享以委托交易的短期密钥,后者通常被称为“会话密钥”。

要为某个密钥设置权限,你需要回答三个问题:谁、何时、做什么。

  • (什么密钥)可以执行该操作?
  • 何时(在什么条件下)可以执行该操作?
  • 做什么(具体是什么操作)?

这三个问题对应三种类型的“权限插件”:

  • 签名者(谁)指定密钥及其使用的算法(ECDSA、WebAuthn)。
  • 策略(何时)指定密钥可以使用的条件。一些示例条件包括:
    • 仅在与 Uniswap 交互时
    • 仅在花费 USDC 时
    • 仅每月一次
  • 操作(做什么)指定密钥使用的执行函数。

组合权限

Kernel 是第一个支持可组合权限的智能账户。也就是说,你可以通过组合签名者、策略和操作来构建细粒度的权限。公式如下:

权限 = 1 个签名者 + N 个策略 + 1 个操作

用伪代码表示如下:

const account = createKernelAccount({
  signer: passkeySigner,
  policies: [
    onlyUSDC,
    onlyUniswap,
    oncePerMonth,
  ],
  action,
})

在这里,当所有策略都满足时,签名者就可以执行操作

现在我们来深入了解这些插件类型。

权限插件

由于权限是插件,如果 ZeroDev 提供的默认权限不满足你的需求,你可以自己编写权限

签名者

签名者指定密钥以及密钥使用的算法。ZeroDev 为以下算法提供签名者:

  • ECDSA
  • WebAuthn(Passkey)
  • 多重签名

策略

策略定义了密钥在什么条件下可以使用。ZeroDev 提供以下策略:

操作

操作是智能账户将通过 delegatecall 调用的任意函数。它们让你在执行逻辑上拥有极大的灵活性。

请注意,操作不要与你想实际执行的调用混淆。例如,如果你想与 Uniswap 交互,那只是你想执行的调用。这里的“操作”特指调用 Uniswap 的执行函数。

如果这点让你感到困惑,那就忽略操作吧。大多数情况下,你只需要设置签名者和策略,而 action 将默认为 Kernel 的默认 execute() 函数,这对大多数需求来说已经足够。

下一步

  • 原文链接: docs.zerodev.app/smart-a...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论