Multisignature scripts set a condition where N public keys are recorded in the script and at least M of those must provide signatures to unlock the funds. This is also known as an M-of-N scheme, where N is the total number of keys and M is the threshold of signatures required for validation
—— 引自《精通比特币》
多重签名(Multisig)是一种增强比特币交易安全性的关键技术,它要求多个私钥共同授权才能完成资金转移。本文将深入探讨其运作原理、实际应用与局限性,助你全面掌握这一重要机制。
什么是多重签名技术?
多重签名技术通过脚本条件约束,要求N个预设公钥中至少提供M个有效签名才能解锁资金(称为M-N模式)。该方案于BIP11提案中首次规范化,并引入了OP_CHECKMULTISIG操作码。
技术实现原理
多重签名交易的锁定脚本格式如下:
M ... N CHECKMULTISIG- N:脚本中记录的密钥总数
- M:验证所需的最小签名阈值
例如,2/3多重签名脚本表示为:
2 3 CHECKMULTISIG对应解锁脚本需提供至少两个有效签名(注:脚本首位的0是由于CHECKMULTISIG的实现缺陷导致的占位符)。
资金发送至该脚本后处于"中间状态",需满足签名条件方可动用。这意味着任何参与者均无法单独控制资产,必须协作完成交易。
核心应用场景
仲裁交易模式
在买卖双方交易中引入第三方仲裁机构:
- 创建包含买家、卖家、仲裁方公钥的2/3多重签名地址
- 买家将资金发送至该地址
- 卖家发货后,买家验货确认则与仲裁共同签署转账给卖家的交易
- 若发生纠纷,仲裁方可根据协商结果与任一方共同签署退款交易
增强型钱包安全
在线钱包服务可采用2/2多重签名方案:
- 用户本地设备与服务器各持有一个私钥
- 提现需双方同时签名
- 有效防范单点风险(服务器被入侵或用户设备中毒)
扩展应用场景
- 合伙经营:多人共同管理资金,防止任意一方挪用
- 遗产规划:设置时间锁与多重签名组合,实现资产继承自动化
- 企业财务:要求多部门授权方可动用资金,强化内控机制
技术局限性
尽管安全性突出,传统多重签名方案存在明显缺点:
交易体积膨胀
CHECKMULTISIG脚本长度显著大于普通P2PKH脚本- 每个全节点需永久存储相关UTXO数据,增加网络负载
灵活度限制
- BIP11最初将密钥数量限制为3个,难以满足复杂场景需求
- 交易构造复杂度高,用户体验较差
这些缺陷促使了更先进的P2SH(支付到脚本哈希) 方案诞生,将复杂逻辑隐藏在哈希值中,大幅提升效率与隐私性。
常见问题
多重签名是否需要所有参与者在线?
不一定。可预先签署部分交易,最终只需凑齐所需签名数即可广播。但部分场景(如仲裁模式)需实时协调。
私钥丢失会导致资产永久锁定吗?
取决于设置方案。在2/3模式下,丢失一个私钥仍可动用资金;但若丢失数量超过(N-M)个,则资产将永久锁定。
与传统单签名地址相比优势何在?
- 防单点故障:破解一个私钥不足以盗取资产
- 决策民主化:适合组织共同资产管理
- 流程透明化:所有签名动作可在链上验证
是否支持非对称权重设置?
原生脚本不支持权重分配,但可通过嵌套智能合约或自定义脚本实现差异化权限管理。
交易费用是否更高?
是。因包含更多签名数据,交易体积更大,所需矿工费用相应增加。
多重签名技术为比特币生态提供了关键的安全增强层,虽存在效率瓶颈,但其设计思想仍深刻影响着后续区块链安全方案的发展。随着Layer2解决方案和新型脚本语言的演进,多重签名的应用形态将持续优化。