Bitpay xPrivKey a clave privada

Red: BCH testnet
Cliente: bitcoin-abc-0.18/bin/bitcoind y bitcoin-cli

Quiero convertir xPrivKey, que es del archivo de billetera Bitpay exportado, a clave privada para usarbitcoin-cli importprivkey

Gracias.

Respuestas (1)

xPrivKeyes una clave extendida BIP32 . Esto se puede usar para derivar direcciones secundarias.

importprivkeyespera un WIF formato de importación de billetera .

Para convertir del formato extendido al comprimido, todo lo que necesita hacer es decodificar desde Base58Check y obtener los últimos 32 bytes (33 para claves públicas). Ver BIP32 - Serialización de clave extendida y luego codificar en formato WIF:

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

Los últimos 64 caracteres (32 bytes) representan la versión hexadecimal de la clave privada.

edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea

Luego convierte a WIF:

$ 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
¿De dónde sacas este programa base58?
Buena pregunta, creo que fuepip install base58