智能账户与验证器
Pali 智能账户是可以由模块控制的 EVM 合约账户。通行密钥是控制智能账户的一种受支持方式。用户可以通过浏览器或操作系统的通行密钥界面批准操作,而不必使用普通 EOA 私钥为每次操作签名。
WebAuthn 通行密钥在底层使用 P-256 签名。Pali 的通行密钥验证器可让智能账户验证这些 P-256 证明。因此,生物识别或平台通行密钥批准可以授权链上操作,而无需向 Pali 或 dapp 暴露通行密钥私钥。
为什么使用智能账户?
- 适合日常使用的模块化批准方式。
- 在需要由普通钱包密钥拥有账户时,使用钱包控制的 ECDSA 验证器。
- 通过组合验证器实现共同管理策略。
- 一次用户批准即可批量执行操作。
- 在时间锁结束后,通过守护者恢复。
- 确定性账户创建,让 Pali 能够重建账户记录。
通行密钥、ECDSA 与共同管理账户

Pali 支持以下验证器类型:
- **通行密钥:**浏览器或操作系统请求 WebAuthn 批准。
- **ECDSA:**由配置的 EVM 所有者地址批准账户操作。
- **SLH-DSA:**Pali 的本地后量子签名器使用加密的签名器状态批准操作。有关备份和签名计数器的限制,请参阅后量子签名器。
- **组合:**按阈值组合子验证器,例如通行密钥或 ECDSA 验证器。
可以将验证器理解为对“谁能批准此账户的操作?”的回答。它的用处在于,你无需更换账户就能改变这个答案:
- 一次批准(1-of-N):一个已配置的子验证器必须批准。
- 达到阈值的批准(t-of-N):至少达到配置数量的子验证器必须批准。
- 全部批准(N-of-N):所有已配置的子验证器都必须批准。
Pali 按策略配置的顺序收集本地可用的内置子验证器的批准,直到达到阈值。拒绝一次批准会停止该请求;Pali 不会在拒绝后悄悄改用其他签名器。策略必须保留足够多可在本地签名的内置子验证器,以满足阈值。兼容的自定义验证器可以作为可选子验证器,但 Pali 不会为它们收集外部或自定义签名,也不会收集跨设备批准。此版本不支持嵌套的组合策略。
组合策略构建器需要至少两个已安装的验证器。引导式批准方式切换会替换先前的验证器。当前的高级自定义验证器流程可以保留额外的兼容验证器,但需要正确的模块初始化数据;这不是简单的跨设备批准设置流程。
更换验证器不会改变智能账户的地址、余额或历史记录。访问本地签名器仍依赖其密钥或通行密钥可用;更改策略不会恢复丢失的签名器状态,也不会在恢复后的不同设备之间协调 SLH-DSA 的使用。
守护者是独立的延迟权限,而不是日常批准方式。达到门槛的守护者批准可以改变账户控制权,因此必须谨慎选择和保护守护者。等待期并不会让不可信的守护者变得安全。
Pali 可以使用共享的钱包通行密钥配置,也可以为账户创建单独的通行密钥凭据。共享通行密钥适合希望由一个钱包控制的通行密钥统一操作的用户。独立通行密钥则有助于按服务或策略隔离凭据。
部署
在 Pali 准备创建智能账户时,该账户可能先以反事实地址的形式存在。Pali 根据确定性的工厂输入派生地址,通过 Pali 工厂合约部署,并在本地保存持久账户元数据。
账户最初使用钱包控制的引导验证器,以实现确定性部署。如果用户或 dapp 选择了通行密钥或其他验证器,Pali 会通过一次智能账户执行安装该验证器并移除引导验证器。
网络支持
智能账户要求 Pali 工厂合约和模块合约已部署在 Pali 为当前链使用的地址上。当前 Pali 构建已为 zkTanenbaum 测试网配置智能账户创建;配置生产环境的工厂和模块地址后,zkSYS 生产环境也采用相同模型。
其他兼容 EVM 的链也可以使用这些合约。如果当前网络支持规范的 CREATE2 部署,Pali 可以在钱包内部署缺失的智能账户基础设施:打开“设置”,进入“高级”,然后使用智能账户设置中的“部署”按钮。通行密钥验证器需要 P-256 WebAuthn 验证支持;许多现代 EVM 环境通过 P-256/通行密钥预编译合约提供该能力。
待完成的设置
设置较慢时会提供检查状态操作。离开页面或切换网络不会取消已经提交的交易。尝试再次部署之前,请返回原网络检查设置状态。超时或未收到响应并不能证明没有任何内容被部署。
恢复

如果本地钱包状态被删除,或你在新设备上安装了 Pali,可以根据钱包元数据和链配置重建确定性的 Pali 智能账户。使用通行密钥验证器的账户仍需要相应的通行密钥凭据来批准操作。
一个通行密钥凭据可以控制多个智能账户。Pali 将通行密钥凭据配置与每个已部署账户的智能账户元数据分开保存。
守护者恢复
Pali 使用自托管恢复守护者来恢复智能账户。守护者是用户独立于活动验证器控制的 EVM 地址,通常是备用 EVM 钱包、导入账户或硬件钱包;在链上,守护者可以是任何能够证明签名的账户,包括合约账户。账户可正常访问时,用户可以从策略页面添加或移除守护者,并调整恢复等待时间。
恢复模块通过标准签名检查验证守护者批准:普通地址使用 ECDSA 签名;如果守护者地址本身是合约,则使用 ERC-1271 合约签名检查。因此,守护者可以是另一个智能账户,包括采用组合策略、自定义验证器或未来后量子验证器的账户。恢复流程会继承守护者账户所执行的签名方案,因此恢复安全性不限于传统 ECDSA 密钥。
Pali 的守护者页面可以收集本地密钥型守护者(钱包、导入账户或硬件账户)以及 Pali 能够为其签名的本地智能账户守护者的批准,包括 SLH-DSA 智能账户。智能账户守护者必须已部署到链上,才能响应 ERC-1271 签名检查。未作为 Pali 本地签名账户提供的外部守护者,仍需要通过外部恢复流程生成批准。
守护者恢复不会立即完成。启动恢复时,会创建替代恢复目标,请求配置的守护者签署恢复意图,并提交带时间锁的恢复请求。等待期结束后,任何人都可以完成恢复交易。之后,用户可以使用替代验证器操作账户。
守护者签名绑定链、账户地址、恢复模块、恢复盐值、执行模式和恢复调用数据。Pali 为每次恢复尝试使用新的盐值,且模块只允许每个账户存在一个活动恢复请求。
技术说明:守护者恢复执行器为每个账户保存守护者集合、阈值、延迟、到期时间和待处理的恢复。为使界面清晰,Pali 目前提供简单的守护者流程,而模块本身支持 1-of-N 或 M-of-N 等阈值策略。
dapp 创建的账户
dapp 可以通过 wallet_prepareSmartAccount 请求智能账户:
{
"label": "Trading desk",
"authenticator": {
"id": "p256-webauthn"
}
}
dapp 也可以请求 ECDSA 验证器:
{
"label": "Trading desk",
"authenticator": {
"id": "ecdsa",
"config": {
"owners": ["0x..."],
"threshold": 1
}
}
}
如果请求的 ECDSA 所有者不是本地 Pali 账户,Pali 会显示警告,并要求用户明确确认后才能继续。
标准参考
Pali 智能账户基于公开的智能账户标准构建:
- ERC-4337 账户抽象:用于 UserOperation 风格的账户执行。
- ERC-7579 模块化智能账户:用于验证器和执行器模块。
- ERC-1271 合约签名验证:用于合约账户签名。
- WebAuthn Level 3:用于通行密钥批准。
守护者恢复操作指南
恢复钱包本地记录与更改账户控制权是两种操作。恢复助记词不能绕过已安装的验证器。守护者恢复会在等待期后更改同一智能账户的批准方式。
- 设置: 在当前批准方式仍可用时,打开恢复设置。如果账户尚未部署,先注册账户。选择单独控制的守护者和等待期,并批准链上设置。确保 gas 付款账户有足够余额。
- 开始: 失去访问权时,选择自己能够证明控制权的新批准方式。已配置守护者签署确切的恢复意图。发送请求需要 gas,但此时控制权尚未改变。
- 等待并完成: 恢复成功完成前,原批准方式仍然有效。等待期后返回同一账户和网络。等待期后,任何人都可在到期前发送完成交易,执行守护者已经批准的确切恢复。之后新方式控制同一账户,地址、资金和历史记录保持不变。
完成后,被替换的原批准方式不再授权该账户。确认其他账户和网络不再需要旧密钥或通行密钥后,才能删除它们。请求在完成前到期时,需要重新发起恢复。
新的 Pali 策略提供 3 天或 7 天等待期。10 分钟仅用于已知测试网。这是 Pali 的设置选项,而不是合约统一强制的最小值。已有链上设置仍具有决定性。等待期与之后允许完成恢复的时间窗口不同。
停止意外恢复
如果仍控制当前批准方式,在恢复设置中选择 Disable guardian recovery(停用守护者恢复)。核对账户和网络,批准并支付 gas。移除确认后,所有待处理恢复(包括在钱包外发起的请求)都将失效,同时移除此恢复途径。如需继续使用,应重新设置可信守护者。
移除必须在意外恢复完成前确认;它不能撤销已经完成的恢复。结果不确定时,先检查链上状态。报错、超时或关闭窗口不会取消已发送的交易。不要盲目重发。
可选邮件提醒
设置中的链接会打开 Sysnode Account → Recovery alerts。使用已验证邮箱,连接受支持网络上已部署的智能账户,并用其当前批准方式签署登记消息。此功能是可选的,与设置守护者分开;Sysnode 不接收私钥,也不能转移资金或取消恢复。
关闭 Pali 后监控仍会运行,但依赖服务、其 RPC 和邮件投递。提醒可能延迟或失败,近期链上观测也可能因重组而改变。没有邮件不代表没有恢复请求。请在可信钱包中核对提醒对应的准确账户和网络。