Pages:
Author

Topic: BIP39 - Palavras específicas? (Read 308 times)

legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
May 25, 2024, 11:18:11 PM
#38
~~

Devias criar um tópico para falar sobre esse BIP85. A explicar como funciona, e como podemos utilizar.
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
May 25, 2024, 12:14:43 PM
#37
Isso é muito interessante.

Você tem uma seed mestre que fica guardada em um cofre super seguro e pode ter 2 seeds filho para usar no dia a dia. Uma para guardar seus NFTs e outra para ficar mexendo ativamente no DeFi (e evitar o risco de drain). Qualquer problema, você vai ter a seed mestre que recupera tudo facilmente. É isso ou entendi errado?
Sim, é isso mesmo.

E mesmo que a seed filha seja comprometida, nenhuma atacante vai poder calcular engenharia reversa pra chegar a seed pai (seed mestre, original etc).

Porém se comprometer a seed mestre original, pode chegar as seed filhas através dos indexes, através de tentativas de erros tentando index por index. Mas se a sua seed filha foi gerada pela seed mestre protegida por passphrase, o meliante precisa ter os dois (seed + passphrase) pra chegar as seed filhas geradas por você.
legendary
Activity: 2758
Merit: 6830
May 22, 2024, 09:09:50 AM
#36
A child seed vai dar acesso a todos os endereços resguardados por esta child seed, pois é uma seed normal assim como qualquer outra.
Ao gerar child seed pra cada filho, cada filho terá acesso referente a seed concedida pelo pai, ou seja, o filho vai ter acesso somente aos fundos que ele depositar na carteira resguardados pela child seed que ganhou de seu pai.
Isso é muito interessante.

Você tem uma seed mestre que fica guardada em um cofre super seguro e pode ter 2 seeds filho para usar no dia a dia. Uma para guardar seus NFTs e outra para ficar mexendo ativamente no DeFi (e evitar o risco de drain). Qualquer problema, você vai ter a seed mestre que recupera tudo facilmente. É isso ou entendi errado?
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 22, 2024, 08:21:32 AM
#35

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
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
May 22, 2024, 01:56:45 AM
#34
A child seed gerada deverá ser:

Code:
false pair advance online jaguar calm XXXX XXXX XXXX XXXX XXXX XXXX

Para eu saber que entendeu, coloquei como um exercício pra vocês completarem as palavras restantes, que são as últimas seis palavras... poste aqui as seis palavras restantes ou a seed completa.

Você pode inclusive escolher a extensão do mnemônico da child seed, por exemplo, se sua parent seed possui 12 palavras, pode extendê-la para 18 ou 24 palavras e vice-versa.

Resultado:
Code:
false pair advance online jaguar calm rain rice split rebel insane birth


Dessa forma o pai, ao abrir a sua wallet controla e vê todos os endereços dessas child seed, não precisando abrir varias carteiras para verificar.

Achei algo bem interessante. Se a coisa crescer, pode-se tornar complicado gerir tudo, mas pode ser útil para vários cenários.
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
May 21, 2024, 03:32:50 PM
#33
Interessante, sem duvida.

E essa child seed vai dar acesso a toda a wallet ou apenas alguns endereços?
Por exemplo, imagina um pai que quer dar a mesada em BTC aos filhos. Mas, em vez de criar duas ou tres carteiras para cada filho, tem tudo na mesma carteira, e os filhos apenas tem acesso ao seu endereço.
A child seed vai dar acesso a todos os endereços resguardados por esta child seed, pois é uma seed normal assim como qualquer outra.
Ao gerar child seed pra cada filho, cada filho terá acesso referente a seed concedida pelo pai, ou seja, o filho vai ter acesso somente aos fundos que ele depositar na carteira resguardados pela child seed que ganhou de seu pai.

Vou fazer o teste aqui e demonstrar.. abro o site IanColeman.io e gero uma seed qualquer, esta seed será minha parent seed ou seed mestra.



Parent seed:
Code:
abuse nephew shine urge vendor jungle calm genre require verb cool raccoon

Child seed com o index padrão (zero):
Code:
rely gift collect anxiety seminar bread cruel toe glare vessel artist sunny

Agora vou pegar esta child seed (index = 0) e gerar chaves privadas e endereços públicos com ela....

Clique na imagem para visualizar e dar zoom


Essa child seed, como é uma seed normal, ela também pode atuar como parent seed e gerar child seeds, ou seja, o filho poderá também gerar novas seeds protegidas por esta parent seed e assim sucessivamente e indefinidamente...



Veja que no exemplo acima eu usei o index 154879, faça o teste abrindo o iancoleman usando esta parent seed + index pra ver se não irá gerar a mesma child seed:

Code:
humble mix polar border expose swamp gossip still youth stock adult viable

Agora vamos aprofundar mais um pouquinho... vamos adicionar uma passphrase forte nesta wallet: "abuse nephew shine urge vendor jungle calm genre require verb cool raccoon", sendo assim, nesse exemplo vamos usar:

Parent seed: "abuse nephew shine urge vendor jungle calm genre require verb cool raccoon"
BIP39 Passphrase: milksad9uz*0-ml*oVYgkQj}I5=h6H^
Index: pode ser o "Zero" mesmo...

A child seed gerada deverá ser:

Code:
false pair advance online jaguar calm XXXX XXXX XXXX XXXX XXXX XXXX

Para eu saber que entendeu, coloquei como um exercício pra vocês completarem as palavras restantes, que são as últimas seis palavras... poste aqui as seis palavras restantes ou a seed completa.

Você pode inclusive escolher a extensão do mnemônico da child seed, por exemplo, se sua parent seed possui 12 palavras, pode extendê-la para 18 ou 24 palavras e vice-versa.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
May 21, 2024, 02:58:02 PM
#32
Uso real: eu tenho uma hardware wallet ou uma seed que só uso em uma máquina cold air-gapped, mas quero gerar uma nova seed para hot wallet no celular, porém vou ter que me preocupar em salvar o novo backup armazenando mais uma seed, por que não usar a seed que está no armazenamento cold pra gerar uma child seed? Dessa forma, eu só preciso guardar apenas uma única seed e posso gerar quantas novas child seeds eu quiser... tudo assegurado por um único backup.

Interessante, sem duvida.

E essa child seed vai dar acesso a toda a wallet ou apenas alguns endereços?
Por exemplo, imagina um pai que quer dar a mesada em BTC aos filhos. Mas, em vez de criar duas ou tres carteiras para cada filho, tem tudo na mesma carteira, e os filhos apenas tem acesso ao seu endereço.
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
May 21, 2024, 02:16:17 PM
#31
Mas o que é que o BIP85 faz/permite?

Ter duas sementes para a mesma wallet? Isso até pode ajudar na segurança, mas não vai complicar de mais e aumentar o risco de perda?

Quanta maior for a sensação de segurança, mais desprotegida a pessoa fica...
Muito mais que isso, BIP85 deriva novas sementes (pode ser qualquer coisa, chave privada, até mesmo strings aleatórios que podem ser usados como senhas), você pode escolher um número de 0 a 10.000 (indexes) e a cada index terá uma seed diferente, mas todas determinísticas, semelhante aos endereços e chaves privadas de qualquer semente...

E lembrando que todas as sementes derivadas (child seeds) são sementes normais que podem ser usados em qualquer outra carteira que aceite o formato mnemônico BIP39.

E se adicionar passphrase, as child seeds que serão derivadas serão totalmente diferentes devido ao uso da passphrase, então se for usar passphrase, deve guardar tanto a semente-mestre (parent seed) quanto a passphrase, caso contrário perderá o acesso as child seeds derivadas desta semente + passphrase (+ número de index se estiver usando além do zero 0)...

É semelhante a passphrase BIP39, tem que saber usar...

Uso real: eu tenho uma hardware wallet ou uma seed que só uso em uma máquina cold air-gapped, mas quero gerar uma nova seed para hot wallet no celular, porém vou ter que me preocupar em salvar o novo backup armazenando mais uma seed, por que não usar a seed que está no armazenamento cold pra gerar uma child seed? Dessa forma, eu só preciso guardar apenas uma única seed e posso gerar quantas novas child seeds eu quiser... tudo assegurado por um único backup.

Carteiras como coldcard, passport, bitbox02 e algumas outras hardware wallets,  airgap suportam BIP85.

Vou deixar todas as referências possíveis abaixo, você só encontra isso mais em inglês, poucos sabem disso ainda.

Lembrando que não há risco de engenharia reversa, ou seja, pegar uma child seed pra chegar a parent seed, isso é criptograficamente impossível, ainda mais se estiver usando passphrase pra gerar child seeds.



https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki

https://bip85.com/

https://airgapit.medium.com/secure-mnemonic-management-with-bip85-9af386159657

https://jirijakes.com/text/bip85/

https://www.reddit.com/r/Bitcoin/comments/1bawk6a/tutorial_using_bip85_to_back_up_your_seeds/

https://www.reddit.com/r/BitcoinBeginners/comments/11sk6k6/help_me_better_understand_bip85/
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
May 21, 2024, 01:58:12 PM
#30
Vocês já deram olhada ou usaram o bip85, que coisa incrível?

Mas o que é que o BIP85 faz/permite?

Ter duas sementes para a mesma wallet? Isso até pode ajudar na segurança, mas não vai complicar de mais e aumentar o risco de perda?

Quanta maior for a sensação de segurança, mais desprotegida a pessoa fica...
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
May 21, 2024, 11:48:56 AM
#29
Vocês já deram olhada ou usaram o bip85, que coisa incrível?

O OP pode pesquisar sobre isso antes de usar.

Há também outro recurso incrível chamado seed-otp, que cria uma nova semente de 12 palavras totalmente diferente da sua seed original e só é possível restaurar a seed original usando a decoy seed + chave-otp, como se fosse uma autenticação de 2 fatores…
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
May 21, 2024, 08:46:50 AM
#28

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...
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 20, 2024, 05:25:43 PM
#27
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.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
May 20, 2024, 05:13:06 PM
#26
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
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 20, 2024, 03:41:30 PM
#25
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.
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
May 20, 2024, 03:19:31 PM
#24
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, isso é verdade e como o ser humano não é uma boa fonte de entropia, isso acaba por criar uma seed com baixíssima entropia, o que tornaria extremamente arriscado usá-la, a não quer que adicionasse BIP39 Passphrase, escolhendo uma senha difícil como 7JF(F)CrPAa,]dUs^IPp ou usar palavras aleatórias (em torno de 6 a 8 palavras já fica bom) pra ficar mais fácil de memorizar já forneceria ótima segurança.
Code:
Ex: desabafar
alojar
antimicótico
perdeste
axonal
estivesse
vaselina
terço
Eu usei como exemplo palavras em português, mas eu recomendaria palavras em inglês, pois com à acentuação e o "ç", ficaria mais difícil a recuperação...
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
May 20, 2024, 03:05:11 PM
#23
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.
legendary
Activity: 2758
Merit: 6830
May 20, 2024, 02:08:19 PM
#22
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
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 20, 2024, 01:12:54 PM
#21
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!
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
May 20, 2024, 12:33:05 PM
#20
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:
legendary
Activity: 2758
Merit: 6830
May 20, 2024, 07:15:05 AM
#19
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.
Pages:
Jump to: