Bitcoin Forum
June 26, 2024, 05:37:12 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Script Python para extrair informação de uma wallet  (Read 276 times)
bitmover
Legendary
*
Offline Offline

Activity: 2352
Merit: 6028


bitcoindata.science


View Profile WWW
June 10, 2024, 06:10:19 PM
Last edit: June 10, 2024, 06:26:20 PM by bitmover
 #21


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.


Obrigado por postar isso.

Isso mostra q o que eu falei acima, explicando que o que o darkv0rt3x está fazendo é inseguro e inútil, esta alinhado com o entendimento mais recentes do devs do bitcoin core.

Para quem não sabe, achow101 é um dev do bitcoin core.
https://github.com/achow101/

Quote
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).

Se você acessar o site que falei, iancoleman.io/bip39, você consegue tirar a xpriv (Account Extended Private Key) de qualquer seed.

Como exercício  , vale qualquer método para derivar chaves privadas a partir da seed. Mas como medida de segurança,  não se deve fazer isso.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1246
Merit: 674


I rather die on my feet than to live on my knees


View Profile
June 11, 2024, 07:15:57 AM
 #22


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.


Obrigado por postar isso.

Isso mostra q o que eu falei acima, explicando que o que o darkv0rt3x está fazendo é inseguro e inútil, esta alinhado com o entendimento mais recentes do devs do bitcoin core.

Para quem não sabe, achow101 é um dev do bitcoin core.
https://github.com/achow101/

Quote
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).

Se você acessar o site que falei, iancoleman.io/bip39, você consegue tirar a xpriv (Account Extended Private Key) de qualquer seed.

Como exercício  , vale qualquer método para derivar chaves privadas a partir da seed. Mas como medida de segurança,  não se deve fazer isso.

Isso é apenas para descriptor wallets.
Podes achar inútil. Para mim não é! E se calhar para outros também não é.

Continuo a dizer que colocar seeds em sites ou gerar wallets em sites é só ridículo, mas cada um é que sabe!

Volto a repetir que o meu intuito não é aumentar segurança, nem nunca foi. E já o tinha dito!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
TryNinja
Legendary
*
Offline Offline

Activity: 2884
Merit: 7119


Top Crypto Casino


View Profile WWW
June 12, 2024, 01:59:11 AM
 #23

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!
Meio que concordo com você. Creio que não tem nada de errado em exportar uma private-key, ela é a fundação mais básica do Bitcoin, assim como atomos são a fundação da matéria.

Entendo a questão de seguir com os "descriptors" de forma que haja um padrão que ajuda naquela situação onde você tem uma seed mas um derivation path gera tais endereços, outro gera endereços diferentes, aí tem como ser legacy ou segwit... enfim, fácil de se perder... mas dessa forma você só pode facilmente exportar e importar sua carteira se aquele programa suporta esse novo padrão.

@darkv0rt3x consegue fazer um novo resumo do seu problema e o que quer, atualizado com o que entendeu até agora? Não consigo ler todos os replies então fica dificil de acompanhar tudo. Posso tentar te ajudar.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Forsyth Jones
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 712


Duelbits - Play for Free | Win for Real


View Profile WWW
June 18, 2024, 08:05:19 PM
 #24

Meio que concordo com você. Creio que não tem nada de errado em exportar uma private-key, ela é a fundação mais básica do Bitcoin, assim como atomos são a fundação da matéria.

Entendo a questão de seguir com os "descriptors" de forma que haja um padrão que ajuda naquela situação onde você tem uma seed mas um derivation path gera tais endereços, outro gera endereços diferentes, aí tem como ser legacy ou segwit... enfim, fácil de se perder... mas dessa forma você só pode facilmente exportar e importar sua carteira se aquele programa suporta esse novo padrão.

@darkv0rt3x consegue fazer um novo resumo do seu problema e o que quer, atualizado com o que entendeu até agora? Não consigo ler todos os replies então fica dificil de acompanhar tudo. Posso tentar te ajudar.
Pois é cara, a migração para o descritor foi uma atualização realmente necessária e ótima, porém poucos usuários ou os mais experientes ou depois de fuçar muito pela internet que vão saber usar essa parada direito.

Acho que não custava nada manter a exportação de chaves, pois o usuário que exporta essas coisas está ciente dos riscos, ou poderia mudar o nome ou um novo comando especifico pra isso, ex:
Code:
deriveprivkeys "descritor":"script(xpriv/84h/0h/0h/0/*)#checksum" "[0,50]"
Aí derivaria 50 endereços e as chaves associadas:

"endereço" "privkey associada" "index"

 eu imagino que em algum momento em específico, o usuário vai precisar pegar essa chave privada, seja pra assinar mensagem pelo endereço em outro software e etc.

Pra pegar as chaves privadas do Bitcoin Core, ou você faz isso pelo iancoleman colando a xpriv lá.

Pra importar direto na Electrum não há, pois a Electrum deriva a carteira pela xpriv pelo caminho raiz: m/0 ou seja, você deve entrar no iancoleman e colar a xpriv lá pra derivar as xpriv a nível de conta (Account extended private key) para que a Electrum consiga gerar a mesma carteira no Bitcoin Core.

A Sparrow deixa especificar o derivation path quando utiliza xpriv, porém ela não deriva chaves privadas filhas.

Porém se você não confia em sites como iancoleman, a única opção que esses usuários tem é criar seu próprio script para fazer o que você bem queira, como fez o nosso colega darkv0rt3x, porém se você pegar esse script de alguém que já fez, você terá que confiar no código dessa pessoa (a não ser que você saiba revisar o código e veja por sí só). Podia ser tudo pelo Bitcoin core mesmo, eu acho que isso coloca os usuários que queiram exportar chaves filhas mais em risco ainda, pois eles buscaram soluções de terceiros para isso, expondo ainda mais a chave.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits.
..........UNLEASH..........
THE ULTIMATE
GAMING EXPERIENCE
DUELBITS
FANTASY
SPORTS
████▄▄█████▄▄
░▄████
███████████▄
▐███
███████████████▄
███
████████████████
███
████████████████▌
███
██████████████████
████████████████▀▀▀
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
.
▬▬
VS
▬▬
████▄▄▄█████▄▄▄
░▄████████████████▄
▐██████████████████▄
████████████████████
████████████████████▌
█████████████████████
███████████████████
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
/// PLAY FOR  FREE  ///
WIN FOR REAL
..PLAY NOW..
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1246
Merit: 674


I rather die on my feet than to live on my knees


View Profile
June 20, 2024, 08:07:40 AM
 #25

@darkv0rt3x consegue fazer um novo resumo do seu problema e o que quer, atualizado com o que entendeu até agora? Não consigo ler todos os replies então fica dificil de acompanhar tudo. Posso tentar te ajudar.

O meu objectivo é poder ter as PKs das addresses onde eu tenho Bitcoin. E estas apps que a gente vai usando e testando, tipo Peach, Relai e outras, acabam por nunca nos mostrarem as PKs "a nu" ou raw, e era isso mesmo que eu queria, uma vez que com a PK eu posso importá-la, em último recurso no Bitcoin Core, e ter acesso à address com os meus fundos.

Eu tenho a minha forma de ter as minhas PKs guardadas de várias maneiras (redundância), e uma delas é tê-las em papel.

E quando dizem que, ah e tal as PKs não têm toda a informação neessária para transportar wallets de um lado para o outro e é difícil e etc por causa de derivaion paths e não sei que mais. Isso acontece porque houve necessidade das wallets de flexibilizarem determinados processos e agilizarem as coisas e melhorarem o UX.

Para mim podia continuar a coisa o mais arcaica possível. 1 PK gerar uma e uma só address. Ponto final! Mas entendo que se há a possibilidade de evoluir, então que se evolua.

Mas @TryNinja, acho que neste momento, o script que fiz, por mais burro que seja, faz o que pretendo e até mais, por isso estou satisfeito! Obrigado por te disponibilizares a ajudar!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
Forsyth Jones
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 712


Duelbits - Play for Free | Win for Real


View Profile WWW
June 20, 2024, 09:22:40 PM
 #26

...
Eu tenho a minha forma de ter as minhas PKs guardadas de várias maneiras (redundância), e uma delas é tê-las em papel.

E quando dizem que, ah e tal as PKs não têm toda a informação neessária para transportar wallets de um lado para o outro e é difícil e etc por causa de derivaion paths e não sei que mais. Isso acontece porque houve necessidade das wallets de flexibilizarem determinados processos e agilizarem as coisas e melhorarem o UX.

Para mim podia continuar a coisa o mais arcaica possível. 1 PK gerar uma e uma só address. Ponto final! Mas entendo que se há a possibilidade de evoluir, então que se evolua.
...
Então, uma wallet que mostre diretamente a chave privada dos endereços é difícil, o máximo que eles fazem é fornecer o mnemônico que nada mais é que um conjunto de palavras codificada, na verdade essas palavras são um conjunto de códigos hexadecimais extenso codificadas, ele serve pra gerar a chave raiz BIP32 (xpriv) e se tiver um 'salt' adicionada ao mnemônico (passphrase), esse xpriv muda a cada caractere adicionado no 'salt'.

Pra mim, tendo acesso a seed, eu consigo importá-la na electrum que é um software muito confiável, alterar para o derivationpath que eu quero (normalmente nunca vai precisar alterar, pois os padrões são usados em 99% das wallets), mas uma vez ou outra vamos encontrar uma carteira que usa um derivation path diferente, como a Schildbatch wallet (bitcoin wallet para android), aí importando na Electrum, eu consigo obter tanto as chaves privadas quanto a chave privada estendida BIP32.

Ou seja, com o mnemônico ou com a xpriv raiz BIP32 eu consigo chegar ao derivation path e endereços que eu quero, carteiras como a Sparrow você pode fazer isso, já na Electrum, se você só tem a xpriv, ela vai recuperar a nível de conta (com xpriv, electrum não permite alterar o path).

Acho essencial que a carteira deixe exportar chaves privadas, mas se não tiver jeito por ela, tem como fazer por outros softwares como Electrum.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits.
..........UNLEASH..........
THE ULTIMATE
GAMING EXPERIENCE
DUELBITS
FANTASY
SPORTS
████▄▄█████▄▄
░▄████
███████████▄
▐███
███████████████▄
███
████████████████
███
████████████████▌
███
██████████████████
████████████████▀▀▀
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
.
▬▬
VS
▬▬
████▄▄▄█████▄▄▄
░▄████████████████▄
▐██████████████████▄
████████████████████
████████████████████▌
█████████████████████
███████████████████
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
/// PLAY FOR  FREE  ///
WIN FOR REAL
..PLAY NOW..
bitmover
Legendary
*
Offline Offline

Activity: 2352
Merit: 6028


bitcoindata.science


View Profile WWW
June 20, 2024, 11:11:29 PM
 #27

Pra mim, tendo acesso a seed, eu consigo importá-la na electrum que é um software muito confiável, alterar para o derivationpath que eu quero (normalmente nunca vai precisar alterar, pois os padrões são usados em 99% das wallets), mas uma vez ou outra vamos encontrar uma carteira que usa um derivation path diferente, como a Schildbatch wallet (bitcoin wallet para android), aí importando na Electrum, eu consigo obter tanto as chaves privadas quanto a chave privada estendida BIP32.


É comum carteiras que usem derivation paths diferentes,  especialmente em se tratando de altcoins.
Eu já passei por algumas situações assim.

A coinomi por exemplo usa derivation path próprios para ethereum e para monero.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1246
Merit: 674


I rather die on my feet than to live on my knees


View Profile
June 21, 2024, 09:30:09 AM
 #28


Então, uma wallet que mostre diretamente a chave privada dos endereços é difícil...

Por isso mesmo é que eu quis fazer aquele script!


É comum carteiras que usem derivation paths diferentes,  especialmente em se tratando de altcoins.
Eu já passei por algumas situações assim.

A coinomi por exemplo usa derivation path próprios para ethereum e para monero.

Retirando a excepção que o @Forsyth Jones mencionou, os derivation paths são mais ou menos constantes. Quero dizer que o derivation path é constituído por 6 partes:
m: Master or Root node
44': Purpose, pode ser BIP44(P2PKH), BIP49 (P2SH-wrapped SegWit addresses) ou BIP84 (bech32)
0': Coin type for Bitcoin. Cada coin tem um valor, 60 para Shitereum
0': Account index - Número de contas dentro da wallet
0: Endereço de destino (ou externo) ou Endereço de troco (ou interno).
0: Quantidade de endereços a gerar.

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
bitmover
Legendary
*
Offline Offline

Activity: 2352
Merit: 6028


bitcoindata.science


View Profile WWW
June 21, 2024, 02:26:41 PM
 #29


Então, uma wallet que mostre diretamente a chave privada dos endereços é difícil...

Por isso mesmo é que eu quis fazer aquele script!


É comum carteiras que usem derivation paths diferentes,  especialmente em se tratando de altcoins.
Eu já passei por algumas situações assim.

A coinomi por exemplo usa derivation path próprios para ethereum e para monero.

Retirando a excepção que o @Forsyth Jones mencionou, os derivation paths são mais ou menos constantes. Quero dizer que o derivation path é constituído por 6 partes:
m: Master or Root node
44': Purpose, pode ser BIP44(P2PKH), BIP49 (P2SH-wrapped SegWit addresses) ou BIP84 (bech32)
0': Coin type for Bitcoin. Cada coin tem um valor, 60 para Shitereum
0': Account index - Número de contas dentro da wallet
0: Endereço de destino (ou externo) ou Endereço de troco (ou interno).
0: Quantidade de endereços a gerar.

Sei que você não gosta desse site, mas ele ilistra bem o que falei

https://iancoleman.io/bip39/

Clique rm BIp32 e depois em cliente. Vc verá que inclusive a ledger usa um derivation path próprio dela.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
darkv0rt3x (OP)
Hero Member
*****
Offline Offline

Activity: 1246
Merit: 674


I rather die on my feet than to live on my knees


View Profile
June 21, 2024, 02:29:04 PM
 #30


Então, uma wallet que mostre diretamente a chave privada dos endereços é difícil...

Por isso mesmo é que eu quis fazer aquele script!


É comum carteiras que usem derivation paths diferentes,  especialmente em se tratando de altcoins.
Eu já passei por algumas situações assim.

A coinomi por exemplo usa derivation path próprios para ethereum e para monero.

Retirando a excepção que o @Forsyth Jones mencionou, os derivation paths são mais ou menos constantes. Quero dizer que o derivation path é constituído por 6 partes:
m: Master or Root node
44': Purpose, pode ser BIP44(P2PKH), BIP49 (P2SH-wrapped SegWit addresses) ou BIP84 (bech32)
0': Coin type for Bitcoin. Cada coin tem um valor, 60 para Shitereum
0': Account index - Número de contas dentro da wallet
0: Endereço de destino (ou externo) ou Endereço de troco (ou interno).
0: Quantidade de endereços a gerar.

Sei que você não gosta desse site, mas ele ilistra bem o que falei

https://iancoleman.io/bip39/

Clique rm BIp32 e depois em cliente. Vc verá que inclusive a ledger usa um derivation path próprio dela.

Eu gosto do site. O que não aconselho é usar-se o site (nem esse nenhum tipo bitaddress.org)  para gerar addresses ou PKs ou o que quer se seja que a gente depois vá usar em "ambiente de produção"!

Bitcoin is energy. Bitcoin is freedom
I rather die on my feet than living on my knees!
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!