比特幣多重簽章如何讓多把私鑰共同把關?

比特幣多重簽章如何讓多把私鑰共同把關?的文章封面插畫

家門通常只要一把正確鑰匙就能打開。常見比特幣錢包雖會管理許多私鑰,單一簽章的某筆鏈上資產,通常只要對應的一把私鑰就能授權支出。這種安排直覺又方便,控制權卻會集中在單一祕密上:它一旦外洩,別人可能取得支出能力;它與備份全數遺失,原持有人也可能再也無法動用資產。

多重簽章(multisignature,常簡稱 multisig)改寫的是鏈上花費條件。資產可以被設定為「三把指定私鑰中,至少要有兩把提供有效簽章」才能支出。攻擊者只拿到其中一把時仍無法付款,其中一把意外遺失時,另外兩把也可能完成復原。

因此,多重簽章的核心作用,是把一次事故足以奪走控制權的界線往外推。不過,更多鑰匙也會帶來更多備份、相容性與協調問題。它提供的是另一種風險分配方式,安全效果取決於各把鑰匙是否真的彼此獨立,以及整套復原資料能否在需要時重新組合。

門檻寫在資產的花費規則裡

常見的「二取三」只是門檻的一種例子。一般可寫成 M-of-N:總共有 N 把被承認的公鑰,每次支出至少需要其中 M 把對應私鑰簽署。門檻可以依情境設計,但必須在資產收到時就由鎖定條件確立,無法在付款途中臨時少算一把。

這不代表一筆比特幣被切成三份,分別放進三台裝置。公開帳本仍記錄一個或多個 UTXO,只是它們的支出條件要求多份合格簽章。收款地址讓付款人把資產送到這套條件;日後花費時,參與者要針對同一筆交易內容分別簽署。

交易收集到足夠簽章後,才會送進比特幣網路。全節點會核對公鑰、簽章與門檻是否吻合,也會照常檢查金額、手續費及其他規則。條件通過、交易被收入區塊後,才開始累積交易確認。少一份必要簽章的資料,即使其他欄位都正確,也不會成為有效支出。

分散的是失敗點,不會自動產生獨立性

假設三把鑰匙分別保存在家中裝置、異地備份與受信任協作者手上,二取三可以承受其中一處損壞,也能阻止單一保管者擅自移動資產。家庭共同管理、組織資金控管與跨地點備援,都可能利用這種門檻降低單點事故的影響。

可是,把同一組助記詞匯入三台設備,只是同一把根鑰匙的三份副本。攻擊者取得任一份,就可能重建所有相同鑰匙;火災或惡意程式若同時碰到多份副本,裝置數量再多也沒有形成真正隔離。鑰匙要由獨立亂數產生,存放位置與控制者也要避免共享同一個失敗來源,多重簽章的門檻才有實質意義。

簽署畫面同樣可能成為弱點。多把私鑰可以證明足夠多把鑰匙對同一份交易資料產生有效簽章,卻無法保證每個人都仔細核對收款地址與金額。若兩名簽署者同時相信遭竄改的資訊,他們仍可能共同授權錯誤交易。門檻降低單一鑰匙被盜的風險,沒有替人判斷交易內容是否符合原意。

復原需要的不只簽章數量

二取三在一把鑰匙遺失時仍能支出,但若只剩一把,網路不會因持有人身分可信而降低門檻。這項限制正是安全性來源,也使備份規劃比單一鑰匙更複雜。除了各自的祕密資料,使用者通常還需要保存能描述參與公鑰、排列方式與推導路徑的錢包設定;缺少這些公開資訊,復原工具未必知道該尋找哪些鏈上紀錄或如何重建原來條件。

軟體與硬體之間的相容性、參與者是否仍能聯絡、繼承時能否理解門檻安排,也都會影響長期可用性。門檻設得越高,未經同意支出的難度通常越高,正常付款遭到延誤或永久卡住的機會也可能上升。所有鑰匙集中保存又會抵銷分散效果,因此沒有一個比例能適合所有人。

多重簽章讓比特幣控制權可以由一套公開可驗證的門檻共同約束。它能容忍部分鑰匙故障,也能要求多方同意,代價則是建立、備份與復原都多了幾層條件。判斷一套安排時,關鍵問題是哪些事故可能同時影響足夠多把鑰匙,以及剩餘資料是否真的足以再次完成有效簽署;表面上的鑰匙數量無法單獨回答這兩件事。