Bitpay xPrivKey zum privaten Schlüssel

Netzwerk: BCH testnet
Client: bitcoin-abc-0.18/bin/bitcoind und bitcoin-cli

Ich möchte xPrivKey, der aus einer exportierten Bitpay-Wallet-Datei stammt, in einen privaten Schlüssel zur Verwendung konvertierenbitcoin-cli importprivkey

Danke schön.

Antworten (1)

xPrivKeyist ein erweiterter BIP32-Schlüssel . Dies kann verwendet werden, um untergeordnete Adressen abzuleiten.

importprivkeyerwartet ein WIF Wallet Import Format .

Um vom erweiterten in das komprimierte Format zu konvertieren, müssen Sie lediglich von Base58Check decodieren und die letzten 32 Bytes (33 für öffentliche Schlüssel) abrufen. Siehe BIP32 - Extended Key Serialization und dann in das WIF-Format codieren:

$ printf "xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkX8Br5ngLNv1TxvUxt4cV1rGL5hj6KCesnDYUhd7oWgT11eZG7XnxHrnYeSvkzY7d2bhkJ7" | base58 -dc | xxd -p 0488ade4013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae623614100edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea

Die letzten 64 Zeichen (32 Bytes) stellen die Hex-Version des privaten Schlüssels dar.

edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea

Dann in WIF konvertieren:

$ priv="edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea"
$ # 0x80 for mainnet, 0xef for testnet
$ pub_suffix=01 # append 01 if the corresponding public key is compressed
$ mainnet_prefix=80
$ ext_priv_mainnet=$mainnet_prefix$priv
$ wif_enc_mainnet_compressed=$(printf "$ext_priv_mainnet$pub_suffix" | xxd -r -p | base58 -c)
$ echo "WIF Mainnet (Compressed): "$wif_enc_mainnet_compressed

WIF Mainnet (Compressed): L5BmPijJjrKbiUfG4zbiFKNqkvuJ8usooJmzuD7Z8dkRoTThYnAT
Wo bekommt man dieses Base58-Programm her?
Gute Frage, ich glaube schonpip install base58