多签中的derivation
在多重签名(Multisig)钱包中,Derivation Path(派生路径) 的作用与单签钱包类似,都是定义“如何从根密钥(Master Seed)一步步派生出具体的公钥和地址”。
但在多签架构下,派生路径有更严格的标准规范(如 BIP48/BIP87)以及独特的协调机制。
1. 为什么多签需要特定的派生路径?
在单签(Single-sig)中,常用的派生路径标准有:
BIP44:
m/44'/0'/0'(Legacy1...)BIP84:
m/84'/0'/0'(Native SegWitbc1q...)
如果在多签钱包中继续使用 BIP84/BIP44,硬件钱包(如 Coldcard、Ledger、Trezor、OneKey 等)在签名时会产生混淆,无法自动判断这笔交易是普通的单签交易,还是包含多个参与方(Cosigners)的多签交易。
为了避免混淆,社区推出了专门用于多重签名的派生路径标准:
BIP48(最广泛使用的多签派生标准)
BIP87(针对结构化多签 Descriptor 钱包的新标准)
2. BIP48 标准派生路径解析
在比特币 Native SegWit(原生隔离见证,bc1q... 地址)多签中,标准的派生路径格式为:
我们可以将该路径拆解为:
| 路径节点 | 含义 | 说明 |
| m | Master Key | 根密钥 |
| 48' | Purpose | 固定为 48',表示这是一个多重签名(Multisig)派生路径 |
| 0' | Coin Type | 币种代码(0' 代表比特币主网 Bitcoin Mainnet;1' 代表测试网 Testnet) |
| 0' | Account | 账户索引(第 0 个账户) |
| 2' | Script Type | 脚本类型: • • |
提示:从该路径派生出的扩展公钥,前缀通常为 Zpub(注意大写 Z,不同于单签 BIP84 的小写
zpub),用来向客户端表明这是一个 P2WSH 多签公钥。
3. 多签派生的核心运作机制:从 Master 到 Address
在典型的 2-of-3(3 个签名人,任意 2 个授权即可支出)多签钱包中,派生与地址生成的过程如下:
硬件/参与者 A (Seed A) ───> 派生 m/48'/0'/0'/2' ───> 公钥 A (pubkey_A) 硬件/参与者 B (Seed B) ───> 派生 m/48'/0'/0'/2' ───> 公钥 B (pubkey_B) ───> 组合 & 排序 ───> 生成多签地址 (P2WSH) 硬件/参与者 C (Seed C) ───> 派生 m/48'/0'/0'/2' ───> 公钥 C (pubkey_C)
步骤说明:
统一路径:所有参与多签的设备/私钥,必须在各自的树下使用完全相同的派生路径(如
m/48'/0'/0'/2')派生出属于各自的扩展公钥(Zpub/xpub)。收集 Zpub/xpub:协调软件(如 Sparrow Wallet, Electrum, Caravan 等)收集这 3 个 Zpub/xpub 以及各自的 Master Fingerprint。
确定索引派生地址:对于第
i个接收地址,每个 Zpub 各自派生出第i个子公钥(例如m/48'/0'/0'/2'/0/i):签名人 A 派生出:$\text{pubkey}_{A, i}$
签名人 B 派生出:$\text{pubkey}_{B, i}$
签名人 C 派生出:$\text{pubkey}_{C, i}$
按字典序排序(Lexicographical Order, BIP67):将这三个公钥进行严格排序(如 $A < B < C$),生成赎回脚本(Redeem Script),最后哈希得到该索引下的比特币多签地址(
bc1q...)。
4. 多签 Derivation 中的“坑”与注意事项
① 必须严格备份公钥、路径与 Master Fingerprint
在单签中,只要有助记词,任何钱包按 BIP84 都能恢复资产。
但是在多签中,仅凭助记词是无法自动恢复资产的!
你必须记录下:
所有参与方的公钥(Zpub/xpub)
各自对应的 Master Fingerprint
使用的完整 Derivation Path(如
m/48'/0'/0'/2')多签门限配置(如 2-of-3)
通常这些信息会保存在一份 Wallet BSMS / Output Descriptor 文件(或二维码)中。
② 硬件钱包对路径的严格校验
当你用硬件钱包对多签 PSBT 交易进行签名时,硬件钱包会检查 PSBT 中的 [Master Fingerprint / Derivation Path] 标注。如果硬件钱包发现 PSBT 请求的派生路径与设备内设定的多签路径不一致(例如软件请求了 m/84'/0'/0' 而非 m/48'/0'/0'/2'),出于安全考虑,硬件钱包会拒绝签名或弹窗报警。
③ 导出多签公钥时的路径选择
在软件钱包(Sparrow)创建多签导出配置时,需要注意为每个硬件设备选择正确的导出口(通常选择 BIP48 / P2WSH 模式),以保证生成的扩展公钥带正确的派生信息。