-
Bitcoin Core é outra carteira que não permite mais exportar chaves privadas WIF individuais,
eu fui um dos contrários a esta decisão, os desenvolvedores chegaram a conclusão de que não é seguro.
O Bitcoin Core não tem mais nenhum comando para exportação pk filhas individuais porque desde a implementação de descritores passou a ser o formato padrão, mudaram o derivation path para os padrões atuais: m/44, 49, 84 e 86 para taproot, antes das carteiras descritoras, as chaves privadas eram derivadas de um derivation path reforçado. Quando mudou o derivation path para os padrões atuais, a derivação das chaves filhas deixaram de ser reforçadas, o padrão atual que citei é usado por 99% das carteiras HD e não são reforçadas, chaves não reforçadas significam que não são tão seguras em relação as reforçadas, isso quer dizer que se o usuário vazar qualquer pk de seu endereço e a chave pública estendida, o atacante apenas com essas duas informações pode calcular para derivar TODAS as chaves filhas da carteira!
Descriptor wallets do not allow dumpprivkey because the fundamental principle behind descriptor wallets is that private keys are not enough information to transport a wallet. Private keys lack derivation information and lack information about what kind of scripts to create. They also do not work for wallets that have anything more complicated than just single key scripts. Thus allowing a RPC that only outputs private keys would be working against the point of having descriptors.
Instead of dumpprivkey, descriptor wallets have listdescriptors. This will output all of the descriptors stored in the wallet, which means that it will include information about derivation paths and scripts to create. Descriptors are a full backup of the key and script information stored in the wallet. With 23.0, listdescriptors will also be able to optionally output descriptors containing private keys.
Isso serve para qualquer carteira e não só o Bitcoin Core, pois elas não são reforçadas.
For dumpprivkey, I believe that it's intentionally removed because of the design of BIP44, BIP49, BIP84 and BIP86 standards which now use non-hardened addresses.
Previously, there's no serious issue with exporting a single private key from a legacy HD wallet with hardened addresses since there's no way to compute the parent extended private key from its pair extended public key and a child (
exported) private key.
Now, since the 'address_index' as well as the 'chain_index' (
change) paths aren't hardened, that issue is now possible if an attacker gets his hand on the data mentioned above.
There's a workaround to export your privKey but be warned of the issue above:
https://bitcointalksearch.org/topic/m.62109703Mas você pode dumpar a chave privada raiz (ou xpriv) do Bitcoin core no console com o comando (necessário informar a senha antes):
Fazendo isso vai mostrar todos os descritores da carteira e a chave privada estendida estará no meio dos descritores, algo como:
Para endereços de recebimento:
wpkh(xpriv99999/84h/0h/0h/0/*)#pavne9dy
Para troco (change)
wpkh(xpriv99999/84h/0h/0h/1/*)#pavne9dy
Você pode visualizar as chaves públicas estendidas também apenas com "listdescriptors", não é necessário informar a senha pra usar esse comando, irá mostrar as chaves públicas em formato legacy (xpub) no meio dos descritores, você pode usar essa informação para importar em outra carteira somente a xpub ou o copiar e colar o descritor inteiro (se a carteira tiver suporte para descritor como a Sparrow).
O Bitcoin Core permite importar quantos descritores quiser, ou seja, você pode importar quantas carteiras HD quiser usando o xpriv para importá-las, isso mudou o conceito de carteiras na minha opnião, permitindo que o Bitcoin Core seja a única carteira que faz isso (acho isso um diferencial espetacular), é como se o Core fosse uma espécie de chaveiro para todas estas carteiras HD (xprivs, descritores).
Então no Bitcoin Core, você é o dono de suas chaves privadas assim como qualquer carteira.
Talvez o conceito de preocupar em guardar as pk individuais não seja mais necessário, o que devemos nos preocupar é se a carteira nos oferesse a Seed ou xprivs (no caso do Bitcoin Core).
Para o usuário médio, guardar o keystore (wallet.dat) é a maneira mais segura, pois ele não interage diratamente com as chaves privadas sem ter chances de vazar, ele só precisa lembrar da senha para descritografar a carteira ou gastar as moedas nessa carteira.