怎么在SafeW中一次性清理失效签名者并同步更新阈值?

功能定位:为什么必须“一次性”处理失效签名者
在 SafeW Wallet 的 MPC-TSS 多签金库里,任何一名成员长期离线都会让“可用签名数”掉到下限以下,导致后续提币、紧急暂停、参数调整等提案无法通过。传统做法是先删人、再单独改阈值,两步提案间隔至少 10 分钟,还要付两次 Gas。SafeW v5.7 起把“删除签名者+同步更新阈值”合并为同一笔链上事务,官方叫Batch Signers Cleanup,本文围绕该入口展开。
前置检查:哪些地址算“失效”
SafeW 不提供“离线天数”的绝对指标,而是把“最近 90 天未参与任何已执行提案”的地址标灰。经验性观察:若 90 天内链上 nonce 无变化且未对任意提案签名,即可视为候选清理对象;否则建议保留,避免误删后需要社交恢复。
一键扫描入口(分平台最短路径)
- 移动端(iOS/Android):首页 → 金库卡片 → 右上角“⋮” → 权限管理 → 签名者健康度 → 系统已自动勾选“90 天无签名”地址。
- Chrome 插件:顶部导航 DAO → My Vaults → 选择目标金库 → Settings → Signers → 点击 Health Check。
- 桌面端(Electron):左侧栏 Multisig → 双击金库 → 右侧tab切到 Members → 右上角 Scan。
扫描结果页会给出“预计减少 Gas 支出”与“清理后新阈值”,确认无误再进入下一步。
操作路径:如何一次性打包提案
在扫描结果页底部,可看到批量清理并同步阈值按钮(Batch Clean & Threshold Sync)。SafeW 会按以下顺序自动生成链上调用:
- 删除指定签名者地址;
- 将阈值更新为“剩余在线人数”或手动输入值;
- 若剩余人数不足新阈值,系统会弹窗阻止,避免锁死金库。
整个流程只需一次“提交提案”,后续由在线成员按原阈值签名即可。经验性观察:打包后 Gas 比两步走省约 30%,在以太坊主网 30 gwei 环境下大约能省 12–15 USD。
阈值下调的边界条件
SafeW 强制要求“新阈值 ≤ 剩余签名者数”,且不得低于 2。若你原本就是 2/3,想删掉 1 人,系统会把阈值自动降到 2/2,无需手动计算;若你坚持保持 2/3,则必须先补充新成员,否则无法提交。
例外与取舍:什么时候不该一键清
以下场景建议改用“单点移除”或暂缓操作:
- 金库参与外部 DeFi 委托投票(如 Uniswap 治理),被删地址仍持有投票权,一键清会导致委托失效;
- 被删地址掌握 NFT 稀有索引信息,删除后社交恢复需重新链上声明所有权;
- 团队合规要求“必须保留 7 名签名者”,即使有人离线也不能低于该数量。
警告:若删除后剩余成员恰好等于阈值,任何一名成员设备丢失都会直接锁死金库。建议至少保留 1 名冗余。
与第三方机器人协同:如何自动提醒离线成员
SafeW 并未内置机器人,但提供 webhook 事件 signer.inactive_90。你可以在 Telegram 群绑定一个通用提醒机器人(如 @raw_data_bot),收到事件后先 @离线成员,给予 7 天宽限期,再决定是否清理。该方案遵循权限最小化:机器人仅接收事件,不持有任何签名权限。
故障排查:提案提交失败常见原因
| 报错提示 | 根因 | 处置 |
|---|---|---|
| Threshold too low | 新阈值小于 2 | 手动调高或补充成员 |
| Insufficient signers | 剩余人数 < 新阈值 | 取消本次清理 |
| Nonce expired | 链上 nonce 已变 | 返回首页下拉刷新后重试 |
验证与观测:如何确认清理成功
- 在“提案记录”里看到 Executed 状态,且事务列表包含
removeOwner与changeThreshold两步; - 回到金库首页,阈值数字已更新,成员列表不再显示被删地址;
- 用区块链浏览器查同一笔 tx,两个事件间隔 数十毫秒内,可验证打包成功。
适用/不适用场景清单
- DAO 财库 5/8 → 5/7
- 空投小队 3/5 → 3/4
- 家族基金 2/4 → 2/3
- 合规要求 7/7 必须满员
- 金库正参与链上投票委托
- 被删地址掌握唯一 NFT 白名单
最佳实践 6 条
- 每季度运行一次 Health Check,而非等提案卡死才处理;
- 删除前先导出成员 Etherscan 链接,留作社交恢复凭证;
- 冗余原则:剩余签名者 ≥ 阈值 +1,防止单点丢失锁死;
- Gas 抽象:用 GasPool 垫付,避免主网没 ETH 导致失败;
- 提案描述写清楚“清理+降阈”原因,方便后续审计;
- 若团队规模 >20 人,用 webhook 提醒+7 天宽限期,减少误删。
FAQ(Schema 标记)
一键清失败后还能重新提交吗?
可以,失败交易不会消耗额外 Gas,返回首页刷新 nonce 后重新打包即可。
被删地址还能恢复吗?
需要剩余成员发起“新增签名者”提案,走完整流程,不能自动回滚。
是否支持只降阈值不删人?
可以,在 Health Check 页取消勾选任何地址,仅手动调低阈值即可。
收尾:下一步行动
打开 SafeW → 进入金库 → 运行 Health Check,若出现灰名地址,直接点击“批量清理并同步阈值”,在 3 分钟内完成链上打包。清理后记得把新阈值截图同步到团队 Notion,并给剩余成员做一次设备备份检查。这样即可在下一季度前,保持金库“在线人数>阈值”的健康状态,避免再次卡死。


