Json-Rpc
如何從多重簽名地址轉儲私鑰
如何從多重簽名地址轉儲私鑰?我嘗試使用
dumpprivkey
RPC 函式但返回錯誤: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-