Multi-Signature
多重簽名 誰將第二個簽名放入腳本中?
我知道腳本如何協同工作,但 Multisig 仍然讓我感到困惑。
輸入腳本:OP_0 [A 的簽名] [B 或 C 的簽名] [序列化兌換腳本]
交易是如何創建的,比如“A”創建了一個交易,他可以在腳本里放一個簽名,但是B的簽名是從哪裡來的呢?A 的錢包終於沒有 B 的私鑰了!
從邏輯上講,交易必鬚髮送給 B,然後 B 將簽名放入腳本中,對嗎?
在“A”簽署交易散列後,散列被更新以顯示他的簽名。“A”會將這個部分簽名的交易雜湊發送給“B”,然後“B”將對該雜湊進行簽名,然後返回反映兩個有效簽名的第三個雜湊。假設只需要花費 2 個簽名,這第三個雜湊就是廣播到網路的內容。
基本上@m1xolyd1an 回答了它,我擴展了一點。所以你會有一個資金交易,它將一些 satoshis 發送到多重簽名交易中。通常到一個“類型 3”地址,即兌換腳本的雜湊,轉換為比特幣地址。
然後您想花費這筆交易,並且此兌換腳本中概述了條件。您已經提供了腳本,redeemscript 的部分將查找 2-of-3,如下所示:
52[pk1][pk2][pk3]53ae
然後,您將創建第一個 tx(“createrawtransaction”)對其進行簽名(“signrawtransaction”),然後將生成的雜湊與另一個私鑰簽名,這會增加 tx 的長度。然後你將它發送到網路。您可以在 testnet 或您的 regtest 環境中重做這個相當簡單的範例,Gavin很久以前就提供了一個非常好的分步範例。
誰將第二個簽名放入腳本中?
這可以是你自己,當你使用冷儲存概念時,這可以是第二個人,你給他散列以使其簽名。
哦,因為這是非常基礎的比特幣,我建議也看看Andreas 的書“掌握比特幣”,在第 7 章關於多重簽名。這本書可以線上閱讀。