Bitcoin Forum
June 14, 2024, 10:48:30 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 99 »
1  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 11, 2024, 07:15:57 AM

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!
2  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 07, 2024, 10:33:58 AM

Olha, eu tenho todas as minhas PKs em papel. É da tua/nossa responsabilidade certeficares-te que as escreves correctamente. Essa é a ideia. Seres o "ultimate accountable" pelo que fazes com as tuas PKs.
Aliás, eu escrevi as addresses e as respectivas PKs umas ao pé das outras. É um dos meus backups. Claro que não é o único, mas é um deles.

Eu ainda sou do tempo, em que não havia seed... Então, se a pessoa queria guardar em papel, tinha mesmo de guardar o PK.  Roll Eyes

Nunca usei, mas lembro-me deste site www.bitaddress.org que servia para criar wallet, e tem um modelo XPTO para se imprimir.

Pois. Não acho nada de errado em termos as PKs em papel. Claro que tem os seus riscos, mas é como tudo... Há riscos em praticamente tudo!

Não é boa prática de segurança. Os tempos mudaram e as carteiras também.
Uma private key te dá acesso apenas a um endereço.

As carteiras hoje são desenhadas levando em consideração que você guardou sua Seed.

Se você fizer uma transação numa carteira moderna, ela automaticamente envia o troco da transação para outro endereço , em outro derivation path, o qual você provavelmente não fez o backup.

Ou seja, Vai acabar perdendo suas moedas se seu backup for a private keys.

Claro que é uma boa prática de segurança. Aliás, teres redundância dos backups das tuas PKs é uma boa prática de segurança!
Usares apenas um meio de backup, é que é má prática de segurança. Pelo menos na minha opinião.

Depende da carteira.
Se usares a do Bitcoin Core, não é a wallet que te faz essa gestão. És tu e tens que saber o que estás a fazer. Essa é a ideia de custodial! Teres controlo absoluto dos teus fundos.
Pelo menos é assim que funciona o Bitcoin Core na linha de comandos. Colocas o endereço de destino e tens que fazer as contas para a fee da rede e para o que queres que seja enviado. Se fizeres mal as contas ou não colocares uma address para o "troco", todo o troco é considerado fee!
 Mas também admito que esta é a minha visão. Não ter que ser igual para todos nem tem que ser a mais correcta. É só a mais correcta para mim!
Portanto, resumindo:
1 - Ter várias formas de backup é melhor que ter apenas uma. E lá por ser em papel não tem que ser pior que meteres a PK ou a Seed ou whatever em discos de metal e mais não sei quantos malabarismos que inventam, para o risco de perder ser igual.
2 - Custodial, para mim é ter as PKs à minha disposição. Não é uma app que me permite enviar os meus Bitcoins para onde eu quiser, quando eu quiser, mas sem me mostrar as minhas PKs.
3 - Sites para gerar addresses ou para derivar addresses ou whatever??? NÃO, muito obrigado! Nem que seja um site comprovadamente criado pelo Satoshi.
4 - Não sei como é o processo de chegar de uma Seed a uma PK. O que sei é que euma PK é um número aleatório e é nele que tudo começa. Portanto, mais importante que uma Seed, para mim, é a PK em si.
5 - Ser o "ultimate accountable" é para mim a definição suprema de ser dono do meu património, ou vice-versa!
3  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 07, 2024, 09:17:05 AM

A sua seed é a private key de todos os endereços da sua wallet. Uma simples operação matemática irá derivar todas as private keys.

O que você está fazendo não aumenta sua segurança, pelo contrário.

Eu não quero aumentar a segurança. Quero apenas ter as PKs comigo.

Com exercício, para uma seed sem fundos, beleza, vale qualquer coisa. E o mais eficiente é botar na ferramenta que recomendei.

Agora se tiver fundos aí, pode parar pq voce já tem suas chaves e está apenas expondo elas nessa brincadeira.

Continuo a dizer que é mau aconselhar usar sites para esses efeitos. Qualquer coisa que exponha as PKs à internet, é mau. Pelo menos para efeitos de guardar PKs por muito tempo!


Quote
Mas colocar a seed noutra wallet, continua a não me mostrar as PKs das addresses! Se quiseres fazer um backup de uma as adresses em papel, como é que fazes? (Eu respondo: não fazes).

Não se deve fazer backup de private keys em papel. Isso não foi feito para seres humanos lerem.

Uma private key é assim:

Code:
KzTT1W3toHBjkNFh3YTTnfwN3WUJXPGaAy9E592oDCfZWDCJPMBF

Imagina escrever isso na mão. Trocar um B por um 8, ou um 0 por um O e está tudo perdido.
Em papel só se deve guardar a seed.


Olha, eu tenho todas as minhas PKs em papel. É da tua/nossa responsabilidade certeficares-te que as escreves correctamente. Essa é a ideia. Seres o "ultimate accountable" pelo que fazes com as tuas PKs.
Aliás, eu escrevi as addresses e as respectivas PKs umas ao pé das outras. É um dos meus backups. Claro que não é o único, mas é um deles.



Então mas quando se tem uma wallet no Electrum, não se consegue obter as PKs?
Nunca experimentei, nem pesquisei, por isso pergunto.

Sim, na Electrum sim. Mas como é raro eu usar a Electrum, também só soube que dava para extrair as PKs agora que fiz o script e enquanto não consegui fazer o script, acabei opr ir testar com a Electrum.


Outra curiosidade, qual é o objetivo de obter as PKs?
Ou apenas estas a explorar um exercício para aprender mais sobre o tema?

O objectivo é só esse. Ter as PKs e em qualquer eventualidade, tenho sempre a possibilidade de recuperar as addresses.



Eu ainda sou do tempo, em que não havia seed... Então, se a pessoa queria guardar em papel, tinha mesmo de guardar o PK.  Roll Eyes

Nunca usei, mas lembro-me deste site www.bitaddress.org que servia para criar wallet, e tem um modelo XPTO para se imprimir.

Pois. Não acho nada de errado em termos as PKs em papel. Claro que tem os seus riscos, mas é como tudo... Há riscos em praticamente tudo!
4  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 06, 2024, 09:45:07 PM

Oh @bitmover, eu também não ando cá há dois dias, né?
Ou não me conheces minimamente pelo tipo de conteúdo dos meus posts ou então nem percebo como é que tu achas sequer possível que eu caísse num erro desses.
Essa wallet que usei já teve coins mas já lá não há nada há muito tempo. Até tu próprio podias ter ido ver  se eu lá tinha alguma coisa e evitavas passar sequer a ideia que eu era tão novato quanto isso. :p :p !

E se não tem moedas, pq é tão absurdo botar a seed no site q eu sugeri?

Se vc só quer as private keys da seed  você pode usar isso aqui também.

https://stackoverflow.com/questions/54202617/how-to-generate-bitcoin-keys-addresses-from-a-seed-in-python

Eu não tenho mas se alguém ler comentários a sugerir colocar seeds em sites, pode dar asneira. Ninguém quer isso. Eu por acaso não tenho mas também já sei mais ou menos o que a casa gasta mas pessoas com menos experiência podem cair nesse erro e darem-se mal. Por isso, a minha opinião é que sugerir sites para gerar wallets e/ou para o que quer que seja que envolva expôr PKs à internet, nunca é bom conselho!
5  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 06, 2024, 07:58:46 PM
Desculpa lá mas nem parece teu. Tu és mais sábio que isso.
Seja lá qual for o site, até podia ser do Satoshi, mas eu nunca iria meter uma seed ou seja o que for, para me dar as PKs das minhas addresses! Acho que isso é conselho que eu jamais daria a quem quer que fosse.

Cara, o que você está fazendo já é por si só altamente inseguro. Se você tem qualquer dinheiro nessa seed, já recomendo que pare imediatamente seu experimento. Tire todas as moedas dessa wallet pq sua seed já está comprometida.

Tudo que você está fazendo é inseguro. Você está baixando um monte de libs, procurando githubs por aí etc.. e botando sua seed num "código python " para extrair sementes.

Eu apenas te mostrei a forma correta de derivar private keys de seeds. Pelo código de um desenvolvedor bitcoin que criou o bip39, ou seja, um dos inventores da seed.

Novamente, isso serve apenas para fins experimentais. Você não deve criar códigos python com sua seed se ela tiver fundos.
Acho que o que você está fazendo é mais perigoso do que usar o iancoleman.io

Oh @bitmover, eu também não ando cá há dois dias, né?
Ou não me conheces minimamente pelo tipo de conteúdo dos meus posts ou então nem percebo como é que tu achas sequer possível que eu caísse num erro desses.
Essa wallet que usei já teve coins mas já lá não há nada há muito tempo. Até tu próprio podias ter ido ver  se eu lá tinha alguma coisa e evitavas passar sequer a ideia que eu era tão novato quanto isso. :p :p !
6  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 06, 2024, 07:48:48 PM
Se fores às definições da app, tem lá uma opção para criar um backup.

O meu objectivo, em concreto era apenas conseguir tirar as addresses e as PKs, para eu ficar com controlo total sobre as addresses da wallet. Eu sei que tenho controlo "total" porque é non-custodial e etc. Mas a verdade é que Not your keys, not your bitcoin. E portanto, a Peach não te mostra em plain text em lado nenhum as PKs de cada address que ela gera para as tuas transacções. E eu queria ter as PKs comigo. Foi só por isso que tentei fazer este script!

Mas, nessa opção de backup, podes obter a seed. Logo se tens a seed, basta colocares no Electrum e passas a ter o controlo fora do Peach da tua wallet.
Eu nunca experimentei, mas pensei que seja possível. Ou não!?

Mais ou menos. A opção para gerar o backup é uma coisa, teres a seed é outra. Tens uma opção para mostrar a seed se não me engano.

Mas colocar a seed noutra wallet, continua a não me mostrar as PKs das addresses! Se quiseres fazer um backup de uma as adresses em papel, como é que fazes? (Eu respondo: não fazes).

Sim, é possível. Aliás eu testei importar na Electrum e funcionou. Mas é o que eu disse, não fico com as PKs na mesma!

Eu tenho a seed phrase e já tentei usá-la para extrair as PKs mas tudo o que consigo é uma PK em formato WIF. Não quero WIF. Quero no mesmo formato que o Bitcoin Core as mostra com o comando dumpprivkey.

Se você tem a seed e quer derivar as private keys, você não precisa de nada disso.

Basta botar aqui
https://iancoleman.io/bip39/

Ele vai generate todas as private keys e respectivos addresses

Desculpa lá mas nem parece teu. Tu és mais sábio que isso.
Seja lá qual for o site, até podia ser do Satoshi, mas eu nunca iria meter uma seed ou seja o que for, para me dar as PKs das minhas addresses! Acho que isso é conselho que eu jamais daria a quem quer que fosse.
Eu sei que o site muito provavelmente é de confiança e etc, mas quando falamos aqui em OpSec para guardar as nossas wallets/Pks de forma a nunca as perdermos, dizer para meter uma seed num site para nos dar as PKs, não é o melhor conselho, acho eu.

Vais dizer que o posso fazer offline e etc... Ok, mas também nada me garante que não haja um mecanismo qualquer que quando detecta uma ligação à net, que não envia informação em cache ou sobre outra forma qualquer, para o dono do site!

Podes dizer que as libraries que eu usei, podem fazer o mesmo, talvez, mas então muitos outros projectos que usam as mesmas libraries estariam a sofrer do mesmo.
7  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: June 06, 2024, 10:54:18 AM
Estou a tentar fazer um script em Python para extrair umas informações de uma wallet que é a Peach que tenho usado para comprar Bitcoin P2P.
O objectivo é mesmo tentar extrair as PKs das addresses desta wallet. Ou pelo menos uma PK.

Fiquei curioso, porque também uso o Peach.

Onde vais buscar a informação da wallet? Consegues extrair algum ficheiro com essa info? Não me lembro de ver isso na app...

Depois, qual é o objetivo de recolher essa informação?

Não sei ao certo o que queres dizer com o "ir buscar a informação da wallet". A própria wallet sugere-te de tempos a tempos fazer um backup. Isso cria um ficheiro JSON encriptado.
Desse ficheiro, se o souberes desencriptar, deves poder tirar informação sobre a wallet. Não sei qual informação ao certo, mas talvez histórico de transacções, etc.

Se fores às definições da app, tem lá uma opção para criar um backup.

O meu objectivo, em concreto era apenas conseguir tirar as addresses e as PKs, para eu ficar com controlo total sobre as addresses da wallet. Eu sei que tenho controlo "total" porque é non-custodial e etc. Mas a verdade é que Not your keys, not your bitcoin. E portanto, a Peach não te mostra em plain text em lado nenhum as PKs de cada address que ela gera para as tuas transacções. E eu queria ter as PKs comigo. Foi só por isso que tentei fazer este script!
8  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 22, 2024, 01:21:32 PM

Interpretei um pouco errado o que você disse então, pois o tópico é sobre usar outras palavras  (onde cabe tudo q eu falei) e vi que você sugeriu acentos etc...

Eu não sugeri acentos, acho eu. O que alguém sugeriu foram letras maiúsculas e depois acho que foi o joker_josue que disse que se nós tentássemos ser random, íamos acabar por ser apanhados com um padrão qualquer e eu então falei num algoritmo em que podíamos usar randomização sem cairmos em padrões nenhuns!

De facto o forum portuguẽs, e ainda bem, é bastante permissivo e permite-nos divagar muito nos tópicos e, talvez por causa disso, a gente por vezes dê por nós a discutir coisas completamente desviadas do tópico original.
Prometo tentar limitar-me mais ao assunto principal do OP de futuro! Smiley
9  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 20, 2024, 10:25:43 PM
Mas e vocês lêem o que eu escrevo? Eu quando dei o exemplo que dei, parti logo do proncípio que não havia essas verificações de BIPs nenhuns. Que era só para demonstrar que não temos que facilmente nos tornar previsíveis quando pensamos em algo random! Ou que a randmoness pensada por "nós" se torne facilmente previsível!

Não usar nenhum bip ou qualquer outro padrão de criptografia não vai tornar sua carteira nem mais randomica nem mais segura.

A não ser que você tenha bastante experiência com criptografia, não deveria mexer com isso.

São realizadas várias operações matemáticas a partir da seed para a derivação das chaves públicas e privadas e endereços. A chance de você simplesmente perder seu dinheiro ou ser hackeado ao tentar reinventar a roda é enorme.

A segurança que o bitcoin e o bip 39 oferecem já é enorme. Dá electrum tb. O ponto de falha desses protocolos é justamente a pessoa sentada na cadeira (phishing, vírus, etc), e você só está aumentando esse risco

@bitmover, eu não estou a negar nada disso. Não disse nem sugeri para se reinventar a roda nem tão pouco que era melhor o que eu sugeri que o que já existe.

Jamais falei que ia mexer em criptografia, que tinha experiência ou que sabia o que estava a fazer.

Tenho alguma ideia da complexidade de algumas das operações matemáticas que envolvem a geração/criação das public keys na curva que Bitcoin usa, porque fiz isto há uns meses atrás:
https://gitlab.com/PsySc0rpi0n/bitcoinexp

Jamais disse que ia usar o que sugeri em alguma coisa para mim, por isso não vou nem ser hackeado nem perder dinheiro/bitcoins nenhuns. Pelo menos com o que eu sugeri.

Não sei porque é que vocês levam sempre as conversas para extremos completamente opostos ignorando por completo os princípios de onde eu parti e o objectivo que eu tinha que era simplesmente demonstrar que não tínhamos que nos tornar previsíveis quando tentamos ser "random", ok? Foi só isto.
10  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: May 20, 2024, 09:19:15 PM
Ei my man, eu li seu tópico, mas como estava meio sem tempo, não deu pra ler tudo, você quer extrair as chaves privadas em formato WIF, certo? Essa wallet da peach não fornece um mnemônico? Você pode através do mnemônico BIP39 restaurar as chaves privadas de cada endereço em formato WIF em ferramentas para uso offline como Electrum, iancoleman etc, definindo corretamente o derivation path.

Seria ótimo se você fizesse um vídeo demonstrando como desvendou o mistério, eu acho ótimo essas coisas. Mas sei que fazer um vídeo requer muito tempo e pode ser trabalhoso, mas pretendo voltar aqui quando estiver aprendendo python (atualmente eu não conheço ou sei como usar essa linguagem).

Sim, a wallet fornece a Seed Phrase e foi através dela que fiz o script. Como podes ver pela minha reposta anterior, já consegui fazer o que queria e extrair "todas" as addresses e "todas" as keys que pretendia, tal como faz a Electrum.

Agora vou aproveitar e fazer mais algumas alterações e deixar o script mais "bonito" e até talvez interagir um pouco com o user! Tipo pedir quantas addresses quer, se quer addresses para "change", se quer imprimir juntamente as PKs e acho que será tudo!

Ainda tentei fazer o script usando o file de backup da wallet, mas fiquei "preso" num erro que não consegui resolver, e decidi fazer apenas pela Seed Phrase!

Se quiseres seguir o que vou adicionando ao script, podes ir vendo aqui:
https://gitlab.com/PsySc0rpi0n/peachkeyextractor
11  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 20, 2024, 08:41:30 PM
Sim, mas em que é que isso é diferente de te enganares em duas outras palavras? É a mesma coisa.
Não é mais perigoso que o que já é! Enganares-te com essas palavras ou com outras quaisquer, vai sempre gerar wallets diferentes!
É mais fácil trocar atenção por atençao ou cachorro por cabelo? Essa é a diferença.

Aliás, não importa se já é perigoso. Não há nenhum motivo para deixar ainda MAIS perigoso. Cheesy

Eu não considero mais perigoso até porque será sempre uma app a gerar a wallet através das palavras. E para o software, tanto faz que as palavras sejam parecidas ou não. Ou são iguais ou são diferentes. Não há "parecidas" para o código nem mais fácil enganar-se com esses duas ou com outras duas quaisquer!

(Nota: nunca falámos em as wallets serem geradas à mão por nós, acho eu)

Ou que a randmoness pensada por "nós" se torne facilmente previsível!

É verdade que se pedirmos as pessoas para escolherem 24 palavras, dificilmente teríamos duas pessoas a dizerem exatamente mesmas 24 palavras e na mesma ordem.

Globalmente falando era difícil acertar nas palavras escolhidas por alguém escolhido aleatoriamente. Mas, conhecendo uma pessoa pessoalmente, o cenário muda um pouco. Porque normalmente as pessoas vão dizer palavras que gostam, como o animal preferido, a fruta preferida, o mês preferido, etc. Então o acertar nas palavras acaba por ser mais fácil.

Sim, nisso concordo. Se escolhermos nós a lista de palavras, claro. Seremos sempre mais previsíveis. Se fôr um software a escolher as palavras, será indiferente pela mesma razão que mencionei a cima quanto ao ser mais fácil ou mais difícil trocar uma palavra por outra. Para o código / software, é indiferente.

Mas até era um exercício interessante para os compute scientists. Ou se calhar até já há estudos. Que seria colocar um código a correr durante um ano ou dois a gerar 12 palavras de uma lista, aleatoriamente. Apontava-se a frequência e a posição de cada palavra e depois probabilisticamente ou estatisticamente, tentar encontrar padrões de uma determinada fonte de aleatoriedade, que em linux é muito comum usar-se o /dev/urandom.
12  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 20, 2024, 06:12:54 PM
Seria perigoso porquê? Estás a referir-te a possíveis bugs em código e depois também no código para recuperar wallets através de backups?
Por que eu poderia usar uma wallet diferente da original. Normalização é tudo.

Eu gero a seed: cachorro gato papagaio atencao

Aí na hora da recuperação eu uso: cachorro gato papagaio atenção

Wallet diferente.

Sim, mas em que é que isso é diferente de te enganares em duas outras palavras? É a mesma coisa.
Não é mais perigoso que o que já é! Enganares-te com essas palavras ou com outras quaisquer, vai sempre gerar wallets diferentes!
Partindo do princípio que temos as mesmas 2048 palavras e que o OP quer alterar um caractére de minúsculo para maiúsculo, só para baralhar possíveis brute forcers ou qualquer outro tipo de ataque.

Mas para isso seria preciso que as wallets fossem sensíveis as letras maiúsculas e minúsculas, e acho que não o são. Ou estou enganado?

Também não sei, mas não faria sentido serem-no sem precisarem.
Mas o meu post foi partindo do princípio que não haveria essas verificações e era só para demonstrar (ou tentar) que não temos que ser previsíveis quando tentamos "randomizar" alguma coisa!

Uma wallet que usasse isso simplesmente não seria BIP39, ou seja, não seria compatível com o que temos aí bas regras do bitcoin.

Nada impede que você crie a sua wallet e invente a sua regra. A electrum fez isso, eles tem outro sistema que não é o bip 39 (embora eles leiam wallet bip 39 também)

Quote
https://electrum.readthedocs.io/en/latest/seedphrase.html

Motivation

Early versions of Electrum (before 2.0) used a bidirectional encoding between seed phrase and entropy. This type of encoding requires a fixed wordlist. This means that future versions of Electrum must ship with the exact same wordlist, in order to be able to read old seed phrases.

BIP39 was introduced two years after Electrum. BIP39 seeds include a checksum, in order to help users figure out typing errors. However, BIP39 suffers the same shortcomings as early Electrum seed phrases:


Mas e vocês lêem o que eu escrevo? Eu quando dei o exemplo que dei, parti logo do proncípio que não havia essas verificações de BIPs nenhuns. Que era só para demonstrar que não temos que facilmente nos tornar previsíveis quando pensamos em algo random! Ou que a randmoness pensada por "nós" se torne facilmente previsível!
13  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 20, 2024, 08:10:50 AM
Partindo do princípio que temos as mesmas 2048 palavras e que o OP quer alterar um caractére de minúsculo para maiúsculo, só para baralhar possíveis brute forcers ou qualquer outro tipo de ataque.

Mas para isso seria preciso que as wallets fossem sensíveis as letras maiúsculas e minúsculas, e acho que não o são. Ou estou enganado?
Não são sensíveis. Nem mesmo acentos importam, visto que tudo é normalizado.

atenção -> atencao
Atencao -> atencao
AtenÇaO -> atencao

Não importa.

Seria bem perigoso permitir essas diferenças para gerar wallets diferentes. Já não basta 2048 possibilidades em 12-24 lugares diferentes... Tongue

Seria perigoso porquê? Estás a referir-te a possíveis bugs em código e depois também no código para recuperar wallets através de backups?
14  Local / Desenvolvimento & Discussões Técnicas / Re: Script Python para extrair informação de uma wallet on: May 19, 2024, 09:53:12 PM
Bem, entretanto se não fosse no forum internacional, não conseguia chegar ao meu objectivo. E não estava muito longe! Faltaram apenas 2 detalhes.

Com o seguinte código já consigo sacar as Private Keys no formato que pretendo, ou seja, antes de chegar a WIF (base58).

Code:
from bitcoinlib.keys import HDKey
from bitcoinlib.mnemonic import Mnemonic
from bitcoinlib.encoding import base58encode
from bitcoinlib.encoding import double_sha256

# Example seed phrase (mnemonic)
mnemonic_phrase = "thunder trade sleep rack pair ranch sense hand inquiry gauge you know"

# Create a Mnemonic object
mnemonic = Mnemonic()
# Convert the mnemonic phrase to a seed (binary)
seed = mnemonic.to_seed(mnemonic_phrase)

# Create an HD wallet from the seed
hdkey = HDKey.from_seed(seed, network='bitcoin')

# Derive a private key using the specific derivation path (m/84'/0'/0'/0/2)
key = hdkey.subkey_for_path("m/84'/0'/0'/1/0")

# Get the corresponding native SegWit address
bitcoin_address = key.address(encoding='bech32')

# Prepend and append the network byte (0x80) and the compression flag (0x01)
prvKey_data = (b'\x80' + key.private_byte + b'\x01')

# Calculate the checksum
checksum = double_sha256(prvKey_data)

# Prepend the checksum to the double sha256'ed key
private_key_base58 = base58encode(prvKey_data + checksum[0:4])

print("Bitcoin address:", bitcoin_address)
print("Private key (Base58):", private_key_base58)
15  Bitcoin / Wallet software / Re: Python script to extract information from Peach wallet/software on: May 19, 2024, 09:46:05 PM
Do you mind correcting your spelling error (exrtract) in your thread's title? It hampers searching by keywords in thread titles somewhat and on a minor level it's also maybe a bit embarrassing to have errors in such prominent locations. You could also lock this thread, now that you got a working solution.

Those typos comes from my laptop keyboard having some keys almost dead and I almot have to hammer them to make them to work. And then, what happens is that other keys also get pressed when I hammer the one I wanted.

If I know ow to lock it, I'll will!

Thanks
16  Bitcoin / Wallet software / Re: Python script to exrtract information from Peach wallet/software on: May 19, 2024, 08:47:31 AM
The private key I'm looking for is:
Quote
KxEd..............B9L

and the one I'm getting is:
Quote
33.................3cZ
That's because WIF isn't just ECDSA Private key encoded to base58. (you've asked ChatGPT?)
It needs to have a "network byte", "compression flag" (to tell clients to derive compressed pubKey) and a 4-Byte "checksum".
To do that, you can also use "bitcoinlib.encoding" and import "double_sha256" to calculate the checksum.

With that, add these to your code: (remove 'print' if you do not want to output those)
Code:
.
.
.
from bitcoinlib.encoding import double_sha256
.
.
.
# Prepend Network Byte and Append Compression Flag
prvKey_data = (b'\x80' + key.private_byte + b'\x01')
print("prvKey_data:",bytes.hex(prvKey_data))

# Calculate the Checksum
checksum = double_sha256(prvKey_data)
print("checksum:",bytes.hex(checksum[0:4]))

# Replace this part:
# private_key_base58 = base58encode(key.private_byte)
# With this:
private_key_base58 = base58encode(prvKey_data + checksum[0:4])

Well, who knows, knows... Thank you. It computed correctly the private key in the format I wanted.
Thank you
17  Bitcoin / Wallet software / Re: Python script to exrtract information from Peach wallet/software on: May 18, 2024, 09:41:26 AM
A further bit closer. I can now obtain a PK in the format I want. It's just that it's not the correct PK.

The private key I'm looking for is:
Quote
KxEd..............B9L

and the one I'm getting is:
Quote
33.................3cZ

This is the code I have now:
Code:
from bitcoinlib.keys import HDKey
from bitcoinlib.mnemonic import Mnemonic
from bitcoinlib.encoding import base58encode

# Example seed phrase (mnemonic)
mnemonic_phrase = "word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 "

# Create a Mnemonic object
mnemonic = Mnemonic()
# Convert the mnemonic phrase to a seed (binary)
seed = mnemonic.to_seed(mnemonic_phrase)

# Create an HD wallet from the seed
hdkey = HDKey.from_seed(seed, network='bitcoin')

# Derive a private key using the specific derivation path (m/84'/0'/0'/0/2)
key = hdkey.subkey_for_path("m/84'/0'/0'/0/2")

# Ensure we have the private key (HDKey object with private key)
if not key.is_private:
    key = key.to_private()

# Get the private key in WIF format
private_key_wif = key.wif()

# Get the corresponding native SegWit address
bitcoin_address = key.address(encoding='bech32')

# Encode the private key in base58 (just for demonstration, typically WIF is
# already base58 encoded)
private_key_base58 = base58encode(key.private_byte)

print("Private key (WIF):", private_key_wif)
print("Bitcoin address:", bitcoin_address)
print("Private key (Base58):", private_key_base58)
18  Local / Desenvolvimento & Discussões Técnicas / Re: BIP39 - Palavras específicas? on: May 18, 2024, 09:34:53 AM
Partindo do princípio que temos as mesmas 2048 palavras e que o OP quer alterar um caractére de minúsculo para maiúsculo, só para baralhar possíveis brute forcers ou qualquer outro tipo de ataque.

Mas para isso seria preciso que as wallets fossem sensíveis as letras maiúsculas e minúsculas, e acho que não o são. Ou estou enganado?

Também não sei, mas não faria sentido serem-no sem precisarem.
Mas o meu post foi partindo do princípio que não haveria essas verificações e era só para demonstrar (ou tentar) que não temos que ser previsíveis quando tentamos "randomizar" alguma coisa!
19  Bitcoin / Wallet software / Re: Python script to exrtract information from Peach wallet/software on: May 17, 2024, 10:46:26 PM
So, I'm a little bit closer but the private key is still wrong and is presenting actually an extended public key instead:

Code:
from bitcoinlib.keys import HDKey
from bitcoinlib.mnemonic import Mnemonic

# Example seed phrase (mnemonic)
mnemonic_phrase = "word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 word1 "

# Create a Mnemonic object
mnemonic = Mnemonic()
# Convert the mnemonic phrase to a seed (binary)
seed = mnemonic.to_seed(mnemonic_phrase)

# Create an HD wallet from the seed
hdkey = HDKey.from_seed(seed, network='bitcoin')

# Derive a private key using the specific derivation path (m/84'/0'/0'/0/2)
key = hdkey.subkey_for_path("m/84'/0'/0'/0/2")

# Ensure we have the private key (HDKey object with private key)
if not key.is_private:
    key = key.to_private()

# Get the private key in WIF format
private_key_wif = key.wif()
# Get the corresponding native SegWit address
bitcoin_address = key.address(encoding='bech32')

print("Private key (WIF):", private_key_wif)
print("Bitcoin address:", bitcoin_address)

But the output I get is this:
Quote
Private key (WIF): xpub6Gds........................................NcHTzM
Bitcoin address: bc1qn8l7k52dsl2kmpemq8ualqpc3uk8lyvt7grmyp

So, ig anyone knows how to make this write, please gimme a help! Smiley
20  Local / Desenvolvimento & Discussões Técnicas / Re: Verificador de Saldo de Endereços Bitcoin on: May 17, 2024, 12:01:54 PM

...

Uma ferramenta como é essa é bastante útil para mim, e sinceramente não encontrei uma melhor aí...
Como tenho muitos endereços em diversas carteiras (desktop, mobile e hardware wallet) fica difícil acompanhar o saldo total. Assim, coloco vários endereços ai ,e em qualquer lugar posso ver o saldo sem precisar consultar várias vezes um block explorer (uma pesquisa para cada endereço)

Edit: Implementada a sugestão do Gagux

Tenho mais ou menos o mesmo problema mas resolvo de forma fácil.
Adiciono todas as addresses onde tenho Bitcoin numa wallet na Electrum, apenas como WatchWallet. Para mim tem servido!

Nesse caso, q vantagem da ferramenta é poder utilizar até no seu celular sem precisar instalar nada.

Todos os endereços são salvos localmente no seu browser, então nem precisa adicionar novamente depois.

Sim, claro.
No meu caso eu faço mesmo questão de não trazer "o meu saldo" em lado nenhum nem do telemóvel nem de dispositivo nenhum.
A Electrum está intalada apenas no meu PC para esse efeito!

Mas acho um óptimo trabalho e uma boa ferramenta para quem gosta de ter as coisas sempre à mão de semear sem ter grandes chatices. Apenas precisas de um browser, que hoje há em qualquer device, quase!
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 99 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!