createmultisig 和 addmultisigaddress 之間的區別?
bitcoincore (v 0.10) 中的createmultisig和addmultisigaddress之間的功能區別是什麼?
需要明確的是,我了解兩者的功能。IE。
multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."]
(其中n
是 m 的 n 值,後面是十六進制公鑰或 Base58 地址的 JSON 列表)。但是,multisigCmd 的輸出*(分別是createmultisig和addmultisigaddress*)是:
- 創建多重簽名:
==> 3outputEqualsPay2scriptBTCAddress
,script as hex
- addmultisigaddress:(
==> 3outputEqualsPay2scriptBTCAddress
沒有腳本!)
3outputEqualsPay2scriptBTCAddress
當使用相同的 JSON 數據輸入時,兩個命令都給出相同的輸出地址(即)。因此,真正的區別只是前者輸出了贖回的十六進制腳本。我錯過了什麼嗎?為什麼需要 2 個命令而不是例如帶有-hex_script_output
標誌的單個命令?
createmultisig
創建一個用於原始交易的 P2SH 多重簽名地址。它會輸出贖回腳本,因為您需要它來花費發送到 P2SH 地址的任何付款。addmultisigaddress
將 P2SH 多重簽名地址添加到您的比特幣核心錢包,允許您跟踪和花費該地址收到的付款。它不會輸出兌換腳本,因為 Bitcoin Core 會為您儲存。(您可以稍後使用 檢索它validateaddress
。)
我知道這是舊的,但我想從最近的比特幣程式碼的角度發表評論。createmultisig和addmultisigaddress現在**都輸出兌換腳本。
使用兌換腳本似乎只需要使用signrawtransactionwithkey手動簽署原始交易,這似乎是多餘的(對於普通用途),因為 PSBT 命令集自動完成所有這些。 createpsbt,decodepsbt,walletprocesspsbt,finalizepsbt,sendrawtransaction。
這就是讓我在這裡尋找 createmultisig 和 addmultisigaddress 之間實際區別的原因。我認為我們剩下的只是是否將其添加到您的錢包中。我很困惑,因為起初看起來您需要創建它然後添加它,但實際上您可以直接添加multisigaddress。