Bitcoin-Core

createmultisig 和 addmultisigaddress 之間的區別?

  • February 5, 2022

bitcoincore (v 0.10) 中的createmultisigaddmultisigaddress之間的功能區別是什麼?

需要明確的是,我了解兩者的功能。IE。multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."] (其中n是 m 的 n 值,後面是十六進制公鑰或 Base58 地址的 JSON 列表)。

但是,multisigCmd 的輸出*(分別是createmultisigaddmultisigaddress*)是:

  • 創建多重簽名: ==> 3outputEqualsPay2scriptBTCAddressscript as hex
  • addmultisigaddress:( ==> 3outputEqualsPay2scriptBTCAddress沒有腳本!

3outputEqualsPay2scriptBTCAddress當使用相同的 JSON 數據輸入時,兩個命令都給出相同的輸出地址(即)。因此,真正的區別只是前者輸出了贖回的十六進制腳本。我錯過了什麼嗎?為什麼需要 2 個命令而不是例如帶有-hex_script_output標誌的單個命令?

  • createmultisig創建一個用於原始交易的 P2SH 多重簽名地址。它會輸出贖回腳本,因為您需要它來花費發送到 P2SH 地址的任何付款。
  • addmultisigaddress將 P2SH 多重簽名地址添加到您的比特幣核心錢包,允許您跟踪和花費該地址收到的付款。它不會輸出兌換腳本,因為 Bitcoin Core 會為您儲存。(您可以稍後使用 檢索它validateaddress。)

我知道這是舊的,但我想從最近的比特幣程式碼的角度發表評論。createmultisig和addmultisigaddress現在**都輸出兌換腳本。

使用兌換腳本似乎只需要使用signrawtransactionwithkey手動簽署原始交易,這似乎是多餘的(對於普通用途),因為 PSBT 命令集自動完成所有這些。 createpsbtdecodepsbtwalletprocesspsbtfinalizepsbtsendrawtransaction

這就是讓我在這裡尋找 createmultisig 和 addmultisigaddress 之間實際區別的原因。我認為我們剩下的只是是否將其添加到您的錢包中。我很困惑,因為起初看起來您需要創建它然後添加它,但實際上您可以直接添加multisigaddress。

引用自:https://bitcoin.stackexchange.com/questions/36053