Author

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

legendary
Activity: 1722
Merit: 4711
**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: 1722
Merit: 4711
**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: 1722
Merit: 4711
**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: 1722
Merit: 4711
**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: 1722
Merit: 4711
**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.
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 20, 2024, 03:10:50 AM
#18
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?
legendary
Activity: 2758
Merit: 6830
May 18, 2024, 04:31:44 PM
#17
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
legendary
Activity: 1722
Merit: 4711
**In BTC since 2013**
May 18, 2024, 08:25:33 AM
#16
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!

Mesmo assim, a maioria das pessoas colocaria a primeira ou a ultima letra em maiúscula. Então, muitos ainda iriam cair nesse armadilha de uma "falsa randomização".
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 18, 2024, 04:34:53 AM
#15
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!
legendary
Activity: 1722
Merit: 4711
**In BTC since 2013**
May 17, 2024, 01:12:56 PM
#14
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?
hero member
Activity: 1274
Merit: 681
I rather die on my feet than to live on my knees
May 17, 2024, 06:24:59 AM
#13
Sim jovem, ja vi essa lista.
No caso eu só queria acrescentar uma letra maiuscula aleatoria no meio das palavras, supondo: melAncia.
Entende, é uma palavra, faz parte da lista e ao mesmo tempo não.
Mas to vendo que não seria possível, vou usar o que ja existe : )
Obrigado pelas informações pessoal!
...
Porque, como não existe pontos de referencia, ou você apontaria todas essas variáveis, ou iria acabar por criar um padrão que acabaria por ser facilmente detectável.
...

Não acho que tenha que acabar sendo facilamente detectado.
Vamos supor que não precisamos do BPI39 para validar o que quer que seja.
Assim de repente consigo pensar num algoritmo que não me parece que seja detectável nem que tenha qualquer padrão.

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.
O que podemos fazer é por exemplo pensar o seguinte:

1 - Quero que, das 12 palavras aleatórias escolhidas das 2048, um número aleatório de palavras vá ter um caractére minúsculo substituído por um caractére maiúsculo, ou seja, dessas 12 palavras, de 1 a 12 palavras terão um caractére minúsculo substituído por um maiúsculo. Pode ser uma apenas, 2, 3, 4, etc, até as 12 palavras com um caractére substituído.
2 - Quero que o caractére das palavras "seleccionadas" para terem um caractére substituído, seja também ele aleatório, ou seja, pode ser o 1º caractére, o 2º, etc, até ao último caractére de cada palavra seleccionada!

Só estes dois pontos já dão para aumentar em muito o número de combinações possíveis às já imensas possíveis e não vejo nenhum padrão que possa ser detectado. E melhor ainda... O número de combinações possível, varia consoante o tamanho das palavras seleccionadas para a substituição do caractére.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
April 30, 2024, 11:15:17 AM
#12
Vou colocar aquela minha imagem favorita que mostra o poder da matemática e da criptografia:



É curioso como praticamente toda semana aparece alguém no forum com essa dúvida. Como se sentem inseguros de confiar que ninguem nunca irá acertar a sua chave privada sem querer...
hero member
Activity: 1120
Merit: 540
Duelbits - Play for Free | Win for Real
April 29, 2024, 04:12:29 PM
#11
Fala pessoal, estou tentando validar algumas frases que não fazem parte da lista "mundial" de frases do site Coinplate
Me fez pensar que essa lista é fixa? Não posso usar outras palavras? Se é fixa, não me sinto seguro. Penso errado?
Valeu!
Você não consegue criar uma carteira válida fora das 2048 palavras do BIP39, além disso, existe uma combinação específica que valida essa semente, chamada de checksum, e mesmo caso você escolher palavras a dedo nessa lista, você não conseguirá criar uma carteira válida, pois a última palavra deve conter a soma de verificação 'checksum' para o restante das palavras.

Caso você queira mesmo usar palavras fora dessa lista, você deve pesquisar sobre Passphrase, uma passphrase é um recurso de segurança em que o usuário pode usar qualquer palavra, números e caracteres ASCII especiais ou uma combinação deles para adicionar uma camada adicional de segurança na semente de recuperação, quaisquer novos caracteres usados ou alterados, simplesmente criará uma nova carteira. Mas você não deve perder nem a semente de recuperação e nem a passphrase, caso contrário você nunca mais poderá reaver/acessar a sua carteira com os endereços em que estão alocados os fundos.



Semente de recuperação, checksum e passphrase: https://learnmeabitcoin.com/technical/keys/hd-wallets/mnemonic-seed/

Passphrase: https://kriptobr.com/beneficios-e-riscos-de-uma-passphrase/
legendary
Activity: 2688
Merit: 2297
April 23, 2024, 09:30:46 AM
#10
Sim jovem, ja vi essa lista.
No caso eu só queria acrescentar uma letra maiuscula aleatoria no meio das palavras, supondo: melAncia.
Entende, é uma palavra, faz parte da lista e ao mesmo tempo não.
Mas to vendo que não seria possível, vou usar o que ja existe : )
Obrigado pelas informações pessoal!

Esse exemplo mostra como humanos são péssimos para escolher coisas aleatórias: https://observador.pt/2016/06/15/teste-o-desafio-matematico-mais-facil-do-mundo/

Tem mil ferramentas, outras mil cores, mas ninguém vai pensar em "plumo" e "anil".. ainda mais se for algo que precise ser lembrado.

Na verdade, você pode escolher qualquer palavra (fora dessas listas) e quantas quiser colocar, softwares como Electrum permitem que você importe essas palavras.


Carteira com a seed 'batata'.

Mas você vai cair nesse problema da baixa aleatoriedade.

Por que será que tantos prêmios da MegaSena são divididos entre pessoas? A galera escolhe número baseado em data de nascimento/etc, de 6^60 cai para 3^12 + 3^30.

Mesmo que você selecione uma frase grande de um livro para criar uma seed, é possível que escolha algo "manjado" também, como um verso bíblico ou outra citação famosa ou o primeiro endereço do Satoshi.. é o "problema do martelo vermelho", o ser humano é péssimo nisso.. desaconselho brain wallets por isso.

Outro grande problema é o backup.. no exemplo dos livros, há diferentes edições, que podem conter pequenas diferenças entre elas.. Já pensou não conseguir recuperar sua carteira por conta de uma letra diferente?

Mas se for numa situação extrema, onde precise fugir, ai vale tudo.
legendary
Activity: 1722
Merit: 4711
**In BTC since 2013**
April 23, 2024, 08:04:21 AM
#9
Sim jovem, ja vi essa lista.
No caso eu só queria acrescentar uma letra maiuscula aleatoria no meio das palavras, supondo: melAncia.
Entende, é uma palavra, faz parte da lista e ao mesmo tempo não.
Mas to vendo que não seria possível, vou usar o que ja existe : )
Obrigado pelas informações pessoal!

Apesar aparentemente parecer dar mais segurança, na realidade acaba por ser.
Porque, como não existe pontos de referencia, ou você apontaria todas essas variáveis, ou iria acabar por criar um padrão que acabaria por ser facilmente detectável.

Não quer dizer que não surgem modelos novos de segurança, para esta finalidade, mas de momento não vale a pena andar a tentar "reinventar a roda".
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
April 22, 2024, 12:43:55 PM
#8
Sim jovem, ja vi essa lista.
No caso eu só queria acrescentar uma letra maiuscula aleatoria no meio das palavras, supondo: melAncia.
Entende, é uma palavra, faz parte da lista e ao mesmo tempo não.
Mas to vendo que não seria possível, vou usar o que ja existe : )
Obrigado pelas informações pessoal!

Se você quer aumentar a segurança, é certo é você adicionar uma passphrase

https://support.ledger.com/hc/pt-br/articles/115005214529-Como-configurar-uma-passphrase?docs=true
https://iancoleman.io/bip39/

É uma palavra adicional, que pode ser maiuscula minúscula etc..
newbie
Activity: 4
Merit: 0
April 22, 2024, 11:44:42 AM
#7
Sim jovem, ja vi essa lista.
No caso eu só queria acrescentar uma letra maiuscula aleatoria no meio das palavras, supondo: melAncia.
Entende, é uma palavra, faz parte da lista e ao mesmo tempo não.
Mas to vendo que não seria possível, vou usar o que ja existe : )
Obrigado pelas informações pessoal!
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
April 22, 2024, 09:23:43 AM
#6
Não, só estou criando palavras e não gostaria de ter surpresas posterior após criar minha carteira off

Se você não quer ter surpresa ao recuperar suas moedas, acho que você não deveria criar sua propria lista.

Existem dezenas de desenvolvedores que conhecem muito sobre criptografia desenvolvendo o BIP39 e semelhantes. Eu não utilizaria uma lista que não tem suporte do BIP-39.

Já existe uma lista em portugues. Porque voce não usa ela?
https://github.com/bitcoin/bips/blob/master/bip-0039/portuguese.txt
newbie
Activity: 4
Merit: 0
April 22, 2024, 09:13:18 AM
#5
Não, só estou criando palavras e não gostaria de ter surpresas posterior após criar minha carteira off
legendary
Activity: 2688
Merit: 2297
April 22, 2024, 08:52:44 AM
#4
Queria saber de onde surgiu essa curiosidade sobre o BIP39.. algum vídeo no YouTube? palestra?

Já é a segunda pessoa que aborda o assunto aqui nessa semana, parece que há uma tendência que surgiu de algum lugar.
newbie
Activity: 4
Merit: 0
April 22, 2024, 05:47:31 AM
#3
Obrigado jovem!
O site do Ian Coleman é justamente esse que passei, Coinplate no link.
Entendo todos os pontos.
O problema seria, usar minhas proprias palavras. E quando precisar recupera-las, não ser validado por BIP39 ou 44, etc. por ser diferente das que existem nessas listas.
Essa dúvida e não poder validar os hashs gerados, me deixa "coçando a cabeça" rsrsrsr
Obrigado!
legendary
Activity: 2688
Merit: 2297
April 21, 2024, 04:29:48 PM
#2
Fala pessoal, estou tentando validar algumas frases que não fazem parte da lista "mundial" de frases do site Coinplate
Me fez pensar que essa lista é fixa? Não posso usar outras palavras? Se é fixa, não me sinto seguro. Penso errado?
Valeu!


Sim, a lista é fixa e pode ser encontrada no GitHub do Bitcoin: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

Também há listas em outros idiomas, mas a lista em inglês é o padrão da maioria das carteiras.

Um dos grandes motivos para existir uma lista fixa é o backup.. se por acaso você trocar alguma letra, por exemplo: escrever "colour" ao invés de "color", fica mais fácil detectar esse erro.. também há questões de checksum, etc.

Só existem 2048 palavras, mas a segurança é muito grande já que as combinações são quase infinitas.. é 12^2048 ou 24^2048, um número gigante.

Resumindo: é mais fácil você fazer alguma besteira ao tentar criar um novo método de backup do que utilizar esses já disponíveis, criados por especialistas.


Sobre o site "coinplate", nunca ouvi falar.. se necessário eu iria direto ao site do Ian Coleman (que eles usaram como base) e o rodaria offline.
newbie
Activity: 4
Merit: 0
April 21, 2024, 10:19:11 AM
#1
Fala pessoal, estou tentando validar algumas frases que não fazem parte da lista "mundial" de frases do site Coinplate
Me fez pensar que essa lista é fixa? Não posso usar outras palavras? Se é fixa, não me sinto seguro. Penso errado?
Valeu!
Jump to: