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

Pali 支持三类验证器:
- **通行密钥:**浏览器或操作系统请求 WebAuthn 批准。
- **ECDSA:**由配置的 EVM 所有者地址批准账户操作。
- **组合:**按阈值组合子验证器,例如通行密钥或 ECDSA 验证器。
可以将验证器理解为对“谁能批准此账户的操作?”的回答。它的用处在于,你无需更换账户就能改变这个答案:
- 任意一种登录方式(1-of-N):使用手边任意一个通行密钥或密钥批准。
- 几位参与者共同批准(t-of-N):必须有达到阈值的人或设备同意,适合共享资金。
- 所有参与者共同批准(N-of-N):每个配置的登录方式都必须批准,适合最敏感的账户。
策略还可以包含其他策略,因此团队可以表达“负责人的密钥,加上交易台任意两个通行密钥”等规则。策略变更时,地址、余额和历史记录都保持不变。由于签名采用模块化设计,同一账户今后也可以采用新的签名类型,包括后量子签名。
守护者有意不在这个列表中。守护者不能批准交易;其唯一权限是在你失去访问权时,启动缓慢且可见的恢复流程。这种分离既能在失去访问权时提供保护,也不会赋予他人日常控制权。
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 的守护者页面目前收集的是基于密钥的守护者批准,例如钱包、导入账户或硬件账户。已部署的恢复模块完全支持合约账户守护者,但生成其 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:用于通行密钥批准。