safe和硬件钱包碰到扳手攻击的区别

Viewed 14

Mixin Safe 资产保管方案已认真查阅完毕——这次不是泛泛看文档,而是把 MixinNetwork/safe 开源仓库的源码(BOOT.md、README、keeper/signer/apps 全链路)和官方开发者文档的 Safe API 一起读了一遍。以下是完整的分析报告。


一、总体架构:双 MTG 网络(来自 BOOT.md)

Mixin Safe 由两个独立的 MTG(Multi-party Threshold Group)网络组成,都运行在 Mixin Kernel 之上:

网络 职责 资源 安全要求
Signer 网络 MPC 门限签名(DKG 密钥生成 + 签名聚合) 8 核 / 8GB+ RAM,计算密集 必须与互联网隔离,保存所有私钥份额,每小时加密备份
Keeper 网络 账户/交易管理、协调各方、观测链上 2 核足够 不存 MPC 私钥,同样需隔离
  • MPC 阈值 = MTG 成员数 2/3(主网实际 28 节点 19/28)
  • 节点间通过 Mixin Messenger 群聊传递 MPC 消息,用 ECDH 派生 AES key 加密
  • 有应急终止开关:Observer 可执行 ActionTerminate=100 关停全部 signer/keeper 节点

二、三方角色制衡(源码 common/request.go + keeper/group.go)

Holder (1)   —— 资产所有者,只能【发起】提案
Signer (2)   —— MPC 签名节点,只能【签名】
Observer (3) —— 独立监督实体,只能【审批/撤销/关闭/终止】

这是最核心的设计:发起权、签名权、审批权物理分离。所有动作按编号严格绑定角色(Propose→Holder,Approve/Revoke/Close/Terminate→Observer,Keygen/Sign→Signer)。

三、BTC/LTC 保管:miniscript 2/3 + 90 天时间锁(apps/bitcoin/account.go)

thresh(2, pk(HOLDER), s:pk(SIGNER), sj:and_v(v:pk(OBSERVER), n:older(12960)))

P2WSH 地址(bech32)。解锁条件:

  • HOLDER + SIGNER → 即时转出(日常通道)
  • HOLDER + OBSERVER 或 SIGNER + OBSERVER → 必须等 12960 blocks ≈ 90 天(OP_CHECKSEQUENCEVERIFY)

即:Signer 被黑/作恶时资产无法立即被提走(Observer 路径有 90 天冷却窗),Holder 丢钥时也有 Observer 恢复通道。

四、ETH/Polygon/MVM 保管:GnosisSafe + 自定义 Guard(apps/ethereum/abi/)

  • 部署标准 Gnosis Safe L2 v1.4.1(CREATE2 确定性部署)
  • Safe 内部 2/3:owner=HOLDER、member=SIGNER、recovery=OBSERVER
  • MixinSafeGuard 自定义 guard 合约:guardSafe(observer, timelock) 初始化,每次交易前 checkTransaction 强制校验 observer 与时间锁,交易后记录 safeLastTxTime

五、Signer MPC:FROST 门限签名(signer/frost.go)

  • frost.Keygen(DKG)+ frost.Sign,支持 secp256k1 / Ed25519
  • ProtocolMixinPublic variant:用随机标量 r 派生出一次性公钥 P——这就是 Mixin 的 ghost key 机制(对应 API 里的 mask + keys[])
  • Ed25519 子路径派生,一份主份额可派生多资产地址
  • 份额每 5 秒检查备份、10 分钟无响应视为失败、多轮握手状态机

六、安全边界总评

这套方案设计相当严谨:

  • 加密学:FROST/CMP 门限签名,单节点泄露份额无法签名
  • 网络:Signer 物理隔离 + 加密消息传递
  • 治理:发起/签名/审批三权分立 + 终止开关
  • 链上:BTC miniscript 时间锁、ETH GnosisSafe+Guard 双重保障

结论:Safe 对链上资产(BTC/ETH)的保管是双保险设计;对 XIN 这类内核内资产则依赖 ghost key 机制——你的卡单属于该机制的协议边角缺陷(duplicate key 拒绝无自动回退),不是保管安全性问题,但需要官方人工重置才能恢复。


-2026-10-1

0 Answers