跳到正文

智能账户所有者与恢复风险

审计谁能控制智能账户、恢复如何更换所有者、适用哪些延迟与取消权,以及模块或升级是否形成隐藏的接管路径。

更新于

仅供教育参考,不构成投资、法律或安全建议。恢复或配置错误可能转移智能账户控制权,或导致账户永久锁定。

直接答案

智能账户由部署在该账户上的授权逻辑控制,不一定由单个私钥控制。所有者或验证器可以批准普通操作,而监护人、恢复模块、执行器或升级管理员可能拥有另一条路径,用于更换所有者或执行交易。

恢复功能降低了单个密钥丢失导致账户不可用的概率,却也增加了一个接管攻击面。应审计每一条能够授权执行、更改验证器或所有者、安装模块、升级代码、取消恢复或最终完成恢复的路径。“所有者”和“监护人”等界面标签不能证明合约中的实际权限。

把结果记录为权限表:准确的链上地址、角色、可调用操作、门槛、延迟、取消权限、到期条件、支出范围、升级权限和独立控制域。每次配置变更后,以及该账户存在的每条链上,都要重新核对。

工作原理

  1. 识别账户与代码。 核对链 ID 和账户地址,再确定实现合约、代理或信标、工厂及版本。对于 ERC-1967 代理,应读取实现、信标和管理员存储槽,而不是相信界面徽标。
  2. 列出授权路径。 读取所有者及门槛、ERC-4337 验证器、ERC-7579 验证器、执行器、钩子和回退处理器、Safe 类模块与守卫、会话密钥、恢复合约,以及任何紧急或升级管理员。执行器或 Safe 模块可能绕过普通所有者门槛执行。
  3. 解析恢复状态机。 确定谁能提名替代所有者、如何计算监护人批准、批准是否到期、延迟何时开始、谁能取消、谁能最终完成,以及恢复被替换或重复发起时会发生什么。不要假设所有“社交恢复”合约都采用同一顺序。
  4. 测试独立性与可用性。 如果多个地址由同一设备、个人、云账户、密码库、托管人或管理员控制,它们就不独立。确认发生一个预期故障后仍可达到门槛,同时不让一个控制域拥有足够接管权。
  5. 审查配置权限。 确定谁能增删监护人、验证器、执行器、钩子、模块或回退处理器;更改门槛或延迟;暂停取消;或升级账户与恢复代码。只有当延迟和取消路径不能被其他角色绕过时,时间锁才有意义。
  6. 监控并验证。 订阅或独立轮询恢复、所有者、模块、门槛、实现和管理员变更。任何操作后都要解码交易,并在正确链上核对回执、事件、存储和最终所有者集合;界面提示成功并不充分。

示例

假设账户所有者为 O,有三名监护人 G1G2G3。任意 2-of-3 名监护人可以提议新所有者 N;随后开始 24-hour 延迟;O 可在延迟期内取消;延迟到期后任何人都能最终完成。恢复模块无需 O 批准最终交易,即可调用账户的所有者变更函数。

标签看似代表分布式恢复,但 G1G2 是备份到同一云账户的两个应用。云凭据一旦泄露,单个攻击者就获得实际的 2-of-3 门槛。攻击者提议 N;若监控或取消在 24 hours 内失败,即使 O 的私钥从未被盗,最终完成仍会转移控制权。

因此,审计应把 G1G2 标记为一个控制域,核对恢复模块地址与代码,在未受损设备上测试取消,确认由哪个事件启动延迟,并检查升级管理员能否立即替换模块。除非实现提供有文档且可安全回滚的测试流程,否则不要在持有资产的账户上执行真实恢复测试。

风险与控制

  • 监护人相关性: 使用真正独立的设备、凭据、人员或托管人;测试联络与恢复流程时不要汇集助记词。
  • 模块或执行器权限过大: 检查已安装代码及准确可调用范围。按文档路径移除闲置模块,并在链上验证移除结果。
  • 门槛薄弱: 同时评估抗接管性与可用性。签名者共享一个控制域时,名义上更高的门槛无济于事;无法达到的门槛则会锁定账户。
  • 缺少延迟或可绕过: 在链上核对延迟、启动延迟的事件、谁能缩短延迟,以及每一条能够立即更换所有者的路径。
  • 取消无效: 演练发现与取消流程;在需要时保留原生 Gas 和独立提交路径;确认取消本身需要旧所有者、法定人数还是另一角色。
  • 升级接管: 监控实现、信标和管理员变化。能无延迟升级的管理员应视为有能力改写所有已记录恢复规则。
  • 恶意或陈旧界面: 独立核对链、账户、模块、拟议所有者、门槛、延迟和交易 calldata。绝不要向“恢复”服务透露助记词或私钥。
  • 虚假完成: 取消或最终完成后核对回执与最终存储状态。确认预期所有者和模块已生效,且不需要的提案无法继续执行。

若出现未经授权的恢复,停止签署无关请求,并保存提案 ID、交易哈希、calldata、区块、模块地址和当前状态。在未受损设备上通过独立 RPC 核实警报;若合约规定的取消路径仍可用,应使用该路径,并监控最终完成、升级、模块变更和资产转移。若控制权可能已丢失,应按预先编写的事件响应方案行动,只联系经过认证的项目方或托管方;临时起意的转移可能被抢跑,或暴露目标地址。

常见误区

  • “只有所有者账户能转移资产。” 验证器、执行器、模块、恢复合约或升级后的代码可能提供额外执行路径。
  • “三名监护人就是三个独立方。” 合约只计算地址的有效批准,无法识别共享设备、备份或管理员。
  • 24-hour 延迟保证有时间响应。” 还必须具备监控、可用的取消权限、Gas 和交易打包条件,另一条特权路径也可能绕过延迟。
  • “移除监护人就终止了其访问权。” 应确认最终链上配置,并检查与该方关联的其他角色、模块、会话密钥和待处理恢复。
  • “客服可以恢复任何智能账户。” 只有链上编码或预先配置的权限才能更改自托管账户。没有有效的所有者或恢复路径时,访问权可能永久丢失。

相关主题

来源

导航

搜索知识库...