Bitcoin-Core

addmultisignature API 呼叫是否依賴於數組中公鑰的順序?還是按字典順序排序?

  • September 26, 2020

假設 Alice 和 Bob 是接受比特幣的合夥企業的一部分。他們將所有主要資金儲存在冷藏庫中,直到 3 個月結束時兌現並使用新地址。此冷儲存位於單個地址中。

Alice 和 Bob 都有完整的節點,執行比特幣核心。他們使用控制台功能生成 2-of-2 P2SH 多重簽名地址,使用addmultisignature.

他們交換彼此的公鑰,並將它們作為參數輸入。

如果 Alice 使用以下語法:

addmultisignature 2 '[<alice's key>,<bob's key>]'

和鮑勃使用:

addmultisignature 2 '[<bob's key>,<alice's key>]'

他們最終會得到腳本雜湊和地址嗎?

跟進問題:

您可以通過多次指定某些鍵來賦予它們更多的“權重”嗎?

相同的邏輯是否適用於 SegWit (P2WSH) 多重簽名?

API 呼叫是否addmultisignature取決於數組中公鑰的順序?還是按字典順序排序?

是的。它不會根據BIP67自動排序。

我是怎麼確認的?

我在比特幣核心中使用了以下命令:


addmultisigaddress 2 "[\"0318370919cfceb3d260081eeca3cae19f941eec321f597c48a64839178ea1e3e0\",\"03e783b8cf0474f732cc5d89cc893c25ab8a487785eb541a3ba0b26cfdd38c5c19\",\"02667b6e09a4a82b12cc8e5611373f28673f2cdd2e42b2f7e89825ec82b7f9b054\"]"

獲取多重簽名地址詳細資訊:


{
 "address": "tb1qlfu3fy8apmm4j73kzlxh9s09rtu6vzeru3l0asfd5ylwfqs7e0zs3hfdpt",
 "redeemScript": "52210318370919cfceb3d260081eeca3cae19f941eec321f597c48a64839178ea1e3e02103e783b8cf0474f732cc5d89cc893c25ab8a487785eb541a3ba0b26cfdd38c5c192102667b6e09a4a82b12cc8e5611373f28673f2cdd2e42b2f7e89825ec82b7f9b05453ae",
 "descriptor": "wsh(multi(2,[85ac4db2]0318370919cfceb3d260081eeca3cae19f941eec321f597c48a64839178ea1e3e0,[90060439]03e783b8cf0474f732cc5d89cc893c25ab8a487785eb541a3ba0b26cfdd38c5c19,[98725f4c]02667b6e09a4a82b12cc8e5611373f28673f2cdd2e42b2f7e89825ec82b7f9b054))#qmw7suql"
}

嘗試使用相同的公鑰和在大篷車中創建多重簽名地址的命令,並收到未排序密鑰的警告。

商隊-多重簽名

兩者返回的多重簽名地址和見證腳本相同。當我在大篷車中訂購鑰匙時,它會發生變化:

地址:

tb1q6xnkaa3sej2x580yjc5j20pcy6x0ddxxc8a9ajlvvn2de2htvvpsnp95vd 

見證腳本:

522102667b6e09a4a82b12cc8e5611373f28673f2cdd2e42b2f7e89825ec82b7f9b054210318370919cfceb3d260081eeca3cae19f941eec321f597c48a64839178ea1e3e02103e783b8cf0474f732cc5d89cc893c25ab8a487785eb541a3ba0b26cfdd38c5c1953ae

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