怎么在SafeW冷钱包里完成多签交易的离线签名?

SafeW冷钱包多签离线签名全流程:从创建→导出→签名→广播,全程断网,兼顾安全与效率。
功能定位:为什么冷钱包必须“离线签名”
冷钱包的核心价值在于私钥永不触网。SafeW 的多签(Multi-Sig)把“单点私钥”拆成 N 份,任何支出都需要 M 把钥匙同时点头;而“离线签名”环节确保这 M 把钥匙在签名瞬间依旧处于物理隔离状态,彻底堵死远程注入与侧信道泄露。一句话:离线签名是多签安全模型的最后一道物理闸门。
经验性观察:在 2026 年主流攻击样本里,针对热端内存刮取的成功率比针对离线 SD 卡中间人攻击高两个量级。把签名过程挪到断网环境,可直接让前者失效,边际收益最高。
前置条件与版本前提
1. 硬件:SafeW 官方离线机(或任何已刷 SafeW Lite 固件的旧手机)+ 一台日常在线机。
2. 软件:离线机安装 SafeW ColdSigner(截至当前的最新版本),在线机安装 SafeW Main。
3. 钱包已创建为多签类型,且明确总签名阈值(例如 2/3)。
4. 离线机电池 >30%,避免签名中途断电导致 R 值重用。
总体流程速览
- 在线机构建未签名交易 → 导出 PSBT(Partially Signed Bitcoin Transaction)。
- 通过 SD 卡或二维码把 PSBT 搬到离线机。
- 离线机逐一插入各把私钥并完成签名。
- 把签名后的 PSBT 搬回在线机。
- 在线机验证签名完整性 → 广播上链。
整个闭环里,私钥只在第 3 步短暂“露脸”,且全程无射频环境。
步骤 1:在线机构建并导出 PSBT
Android / iOS 路径
打开 SafeW Main → 钱包页签 → 选中多签钱包 → 发送 → 输入金额与地址 → 高级选项 → 勾选“离线签名模式” → 生成交易 → 导出 → 选择“二维码”或“文件”。
提示:二维码适合 <3 kB 的 Legacy 交易;若交易体积大(SegWit 多输入),优先用 SD 卡或 U 盘,避免分帧扫码出错。
桌面端路径
SafeW Desktop → Send → Fill details → Preview → Export → Save as .psbt。默认保存在下载文件夹,可自行改路径。
步骤 2:物理搬运 PSBT 到离线机
把 SD 卡插入离线机前,先在在线机执行“安全弹出”,确保缓存落盘。若用二维码,建议把屏幕亮度调到 70% 以上,离线机镜头 30 cm 垂直扫码,可减少畸变导致的校验失败。
步骤 3:离线机完成多签签名
导入 PSBT
SafeW ColdSigner → 签名 → 导入 → 选二维码或文件 → 解析成功后会显示“待签名输入/输出摘要”。务必人工核对目标地址与金额,防止中间人把地址替换成相似字符。
逐一插钥签名
点击“添加签名” → 选择密钥来源(SD 卡加密钥文件 / 手动输入 BIP39 密语 / NFC 密封标签)。每把钥匙签名后,进度条会更新为 x / M。全部满足阈值后,状态变为“已完成”。
警告:若中途取消,已签名部分会以 PSBT 格式保留,但请勿把同一未广播交易重复签名,否则可能触发 R 值重用。
导出已签名 PSBT
完成 → 导出 → 同样选二维码或文件 → 命名加“_signed”后缀,方便与原始文件区分。
步骤 4:把已签名 PSBT 搬回在线机
操作与步骤 2 镜像,注意 SD 卡回插后,在线机可能会自动弹出“发现新交易”通知,点“详情”可预览签名数量。
步骤 5:在线机验证并广播
SafeW Main → 签名箱 → 导入已签名 PSBT → 验证 → 看到绿色“签名阈值已满足” → 广播。链上确认后,交易状态自动改为“已完成”。
失败分支与回退方案
| 现象 | 最可能原因 | 处置 |
|---|---|---|
| 离线机提示“密钥与输入不匹配” | derivation path 错或选错钱包 | 重新核对 derivation path,确保多签模板一致(P2WSH/P2SH-P2WSH) |
| 在线机广播失败:non-mandatory-script-verify-flag | 签名顺序与脚本要求不一致 | 回到离线机,按脚本公钥字典序重新排序签名 |
| 二维码导入提示“数据溢出” | 交易体积过大 | 改用 SD 卡或压缩二维码(设置→高级→启用 ZIP 二维码) |
例外与取舍:什么时候不该用离线签名
- 金额小于矿工费 5 倍时,搬运成本可能高于收益;可直接在热钱包小额通道处理。
- 签名方分布在不同国家,且无可信快递通道,反复邮寄 SD 卡会导致时间风险。
- 紧急止损场景(黑客正在花费),等待离线签名可能错过 6 个区块的“黄金回滚期”。
经验性结论:当单笔金额 > 冷钱包硬件成本的 20 倍,或组织章程要求“双人物理隔离”时,离线签名的边际安全收益才显性为正。
与第三方协同:如何最小化信任
若多签成员使用不同品牌钱包,只要都遵循 BIP-174(PSBT 标准),即可互操作。操作原则:先验证脚本哈希,再签名。SafeW 提供“脚本哈希对比二维码”,第三方钱包扫码后可秒级确认是否同一逻辑。此举把“品牌信任”降级为“可验证数据”。
验证与观测方法
- 在在线机广播前,点击“预览原始交易” → 复制 raw hex → 任意区块浏览器解码,核对 vout 地址与金额。
- 使用 SafeW 自带的“签名审计”功能,可导出 CSV 记录每把钥匙的签名时间戳(离线机 UTC)与公钥指纹,方便合规归档。
- 广播后,在“交易详情”页长按 TXID → 跳转浏览器,若 30 秒内可检索,说明节点广播成功;若未出现,检查是否被 RBF 双花。
适用 / 不适用场景清单
| 维度 | 推荐 | 不推荐 |
|---|---|---|
| 金额 | ≥ 0.05 BTC 或组织规定阈值 | Dust + 矿工费 ×5 |
| 签名人数 | 2–5 人,可物理会面 | >7 人、跨洲、无快递 |
| 时间敏感度 | 非紧急,可等待 1–2 天 | 黑客正在花费,需秒级止损 |
| 合规要求 | 需双人物理隔离审计 | 无审计,且成员互不信任 |
最佳实践 10 条速查表
- 永远先小额测试,走完全流程再上主金额。
- 离线机系统时间每周手动校准一次,防止签名时 R 值随机数池重复。
- SD 卡专卡专用,禁止在 Windows 自动播放环境插入,避免 BadUSB 攻击。
- 多签脚本创建后,立即把 redeemScript 与 witnessScript 打印两份异地封存。
- 签名顺序按字典序排列,可减少广播阶段脚本验证失败。
- 搬运文件统一加“_signed / _unsigned”后缀,降低人为混淆。
- 每次签名完,在离线机立即执行“安全擦除”功能,覆盖临时内存 3 次。
- 若用二维码,分帧时开启 SafeW 的 Reed-Solomon 纠错,可把扫码失败率从 8% 降到 <1%。
- 广播后,把 TXID 与区块高度截图存证,方便后续会计入账。
- 每季度做一次“灾备演练”:假设某把钥匙丢失,用剩余钥匙走完全流程,确保真的可恢复。
故障排查 FAQ(FAQ Schema)
离线机无法识别 PSBT 文件?
检查文件扩展名是否为 .psbt;部分 Windows 系统会隐藏扩展名,导致重复后缀如“.psbt.txt”。重命名即可。
签名数量已满足,但广播提示“Signature must be zero for failed CHECKMULTISIG”?
公钥顺序与脚本内顺序不一致。回到离线机,在“高级”里启用‘按脚本排序’后重新导出。
能否用 USB 数据线直插离线机传文件?
SafeW 冷签名固件默认关闭 USB 大容量存储,防止恶意 SCSI 命令。建议仍用 SD 卡或二维码。
结语与下一步行动
SafeW 冷钱包的离线签名把“多签”从逻辑安全提升到物理安全,流程看似繁琐,却是一次性搭建、长期受益的工程投资。建议你今天就找 0.001 BTC 走一遍完整闭环,把签名时间、扫码成功率、搬运方式全部记录,形成自己组织的 SOP。下次真正的大额转账,只需替换金额,其余步骤 5 分钟内即可复现——安全与效率,从此不再互斥。
📺 相关视频教程
创建钱包多签及使用教程详细