跳至主要內容
Standards Track Final

BIP-11: M-of-N 標準交易

定義多重簽名交易的標準腳本格式。

Gavin Andresen 2011年10月18日
BIP 編號

11

類型

Standards Track

狀態

Final

創建日期

2011-10-18

摘要

BIP-11 定義了 M-of-N 多重簽名交易的標準腳本格式。這種交易需要 N 個公鑰中的 M 個 對應私鑰簽名才能花費,為資金管理提供了更高的安全性和靈活性。

動機

多重簽名交易解決了單一密鑰控制的多個問題:

安全性提升

單一密鑰遺失或被盜不會導致資金損失。例如 2-of-3 設置中, 即使一個密鑰被攻擊者獲取,資金仍然安全。

備份冗餘

2-of-3 設置允許遺失一個備份而不影響資金存取。 這對於長期儲存非常重要。

共同控制

多方必須同意才能移動資金,適用於公司財務、託管服務等場景。

技術規範

裸多簽腳本

BIP-11 定義的「裸」多簽腳本直接放在 scriptPubKey 中:

scriptPubKey 格式

OP_M <pubkey1> <pubkey2> ... <pubkeyN> OP_N OP_CHECKMULTISIG

M 和 N 是 OP_1 到 OP_16 之間的操作碼

scriptSig 格式(花費時)

OP_0 <sig1> <sig2> ... <sigM>

OP_0 是由於 OP_CHECKMULTISIG 的一個 bug,會消耗一個額外的堆疊元素

範例:2-of-3 多簽

scriptPubKey:
OP_2
<pubkey_A>
<pubkey_B>
<pubkey_C>
OP_3
OP_CHECKMULTISIG

scriptSig(使用 A 和 B 簽名):
OP_0
<signature_A>
<signature_B>

驗證過程:
1. 推入 OP_0(dummy)
2. 推入 sig_A 和 sig_B
3. 推入 OP_2(需要 2 個簽名)
4. 推入三個公鑰
5. 推入 OP_3(共 3 個公鑰)
6. OP_CHECKMULTISIG 驗證

限制

限制 說明
最大公鑰數 3 標準交易限制,非共識規則
共識最大值 20 OP_CHECKMULTISIG 的硬限制
腳本大小 520 bytes 標準交易的最大腳本大小

與 P2SH 的關係

BIP-11 定義的裸多簽有幾個缺點:

  • 地址長:所有公鑰都在輸出中,無法用傳統地址表示
  • 費用高:輸出較大,發送方支付更多費用
  • 隱私差:多簽結構在鏈上公開可見

BIP-16(P2SH)解決了這些問題,允許將多簽腳本哈希為簡短地址。 現代多簽通常使用 P2SH 或 P2WSH 而非裸多簽。

裸多簽(BIP-11)

公鑰直接放在輸出中,無法使用地址,較少使用。

P2SH 多簽(推薦)

多簽腳本哈希為 3 開頭的地址,更短、更便宜、更私密。

常見配置

2-of-3 — 最常見,適合個人安全儲存和小型團隊
3-of-5 — 適合企業和機構,提供更多冗餘
2-of-2 — 用於託管和原子交換
1-of-N — 任一密鑰可花費,用於備份場景

總結

BIP-11 建立了多重簽名交易的基礎標準。雖然現代應用更多使用 P2SH 或 P2WSH 包裝的多簽, 但 BIP-11 定義的 OP_CHECKMULTISIG 操作碼仍然是所有多簽實現的核心。

已複製連結
已複製到剪貼簿