Bitcoin-Core
addmultisignature
API 呼叫是否依賴於數組中公鑰的順序?還是按字典順序排序?
假設 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