Json-Rpc

如何從多重簽名地址轉儲私鑰

  • November 26, 2018

如何從多重簽名地址轉儲私鑰?我嘗試使用dumpprivkeyRPC 函式但返回錯誤:Address does not refer to a key

您無法轉儲多重簽名地址的私鑰,因為該地址分配了多個密鑰對(因此有多個可能的私鑰)。您需要指定所需的密鑰對。首先,使用以下命令獲取屬於該地址的公鑰:

$ bitcoin-cli getaddressinfo <your address>

{
 "address": "<your address>",
 ...
 "embedded": {
   ...
   "pubkeys": [
     "<pubkey 1>",
     "<pubkey n>",
     "..."
   ],
  ...
}

假設你想要對應的私鑰<pubkey 1>,你可以將它轉換成一個簡單的P2PKH地址然後使用dumpprivkey,例如:

$ hash160 <pubkey 1>
 <pubkey 1 hash>
$ echo 00<pubkey 1 hash> | xxd -r -p | base58 -c
 <P2PKH address>
$ bitcoin-cli dumpprivkey <P2PKH address>
 <privkey>

哪裡hash160只是一個使用 openssl 的 bash 腳本:

#!/bin/bash
## Command Line parsing
#######################

if [[ $# -lt 1 ]]; then
   echo "Usage: $ hash160 <input-hex>"
   exit 1
fi

inputHex=$1

hash1="$(printf $inputHex | xxd -r -p | openssl sha256 | cut -c 10-)"
printf $hash1 | xxd -r -p | openssl ripemd160 | cut -c 10-

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