更换守护人本质上是修改智能合约里的守护人列表,移除操作一旦上链确认,该地址就从"有权签名的守护人"名单中被彻底删除了,旧成员被移除后无法再发起有效的恢复请求。
为什么旧成员无法再发起恢复
社交恢复的触发条件是"达到阈值数量的守护人共同签名",而智能合约验证签名时,会实时读取当前的守护人列表。移除了就是移除了,旧地址的签名不再计入恢复所需的权重。Candide 的合约设计中,只有 Owner 可以移除 Guardian,一旦 revokeGuardianWithThreshold 执行完成,被移除的地址就失去了 Guardian 角色的所有权限。
步骤 1:确认旧成员已被成功移除
先检查链上状态,确保操作已经生效,而不是只在前端"隐藏"了。
怎么做:在区块浏览器里搜索你的钱包地址,查找 GuardianRemoved 或 RevokeGuardian 这类事件日志。如果能看到这笔交易记录,且区块高度已经确认,说明移除完成。Candide 的合约里明确标注,revokeGuardianWithThreshold 方法只有 Owner 可以调用,且一旦调用即生效。
完成标准:区块浏览器上能查到对应事件,且该地址不再出现在钱包的"守护人列表"中。UniPass 的文档也明确指出,守护人在账户恢复中的权重由智能合约管理,移除后权重归零。
步骤 2:重置恢复阈值(如有必要)
移除一个守护人后,如果剩余守护人数低于原来的阈值(比如原来是 3/5,移除后只剩 4 个),你需要同步调整阈值,否则恢复流程永远无法触发。
怎么做:在守护人管理界面,找到"阈值设置"或"Threshold"选项,把数字调低(比如从 3 改成 2 或改成 3/4)。这个操作本身是一笔独立的链上交易,需要再付一次 Gas。
完成标准:守护人列表和阈值都已更新,满足"阈值≤当前守护人总数"。Candide 的 addGuardianWithThreshold 方法允许 Owner 在添加时同时设定新阈值,移除逻辑同理。
高危风险:如果你移除后没有调低阈值,未来任何恢复请求都无法凑够人数签名,相当于给自己"锁死了恢复通道"。很多钱包不会主动提示你调整阈值,这属于 Owner 自己需要算清楚的账。
常见失败原因
移除操作未打包确认就被关闭了钱包:如果你发起移除交易后,没有等 10-20 秒确认就关了页面,交易可能还在内存池里没上链。旧守护人在这段窗口期内理论上仍能发起恢复(如果他能抢在你前面凑够签名),不过需要你和旧成员同时在线操作,概率极低。
误以为移除后旧成员"签名作废"适用于所有合约:有些钱包支持"轮换守护人"——即连续执行移除和添加。在这两笔交易之间,如果旧成员恰好在同一区块内发起了恢复请求,且旧交易先被打包,理论上有短暂重叠风险。但这是极端情况,正常操作下无需担心。
操作完成后
校验方式:回到钱包的守护人管理界面,刷新页面。确认被移除的地址已消失,且阈值显示正确(比如"3/4")。
下一步动作:如果你是为了"安全升级"才更换守护人(比如怀疑旧成员被钓鱼),建议在被移除的地址上再操作一步——让他主动从自己的设备里删除这个钱包的相关授权记录。链上移除已经断绝了他的权限,但本地残留的数据如果被其他恶意软件读取,仍可能泄露隐私。



