Porque 2 pessoas não podem ter o mesmo par de chaves?

Bom dia,

Estou com uma coisa incomodando bastante em minha cabeça sobre o sistema do Bitcoin, entendo que a chave publica é gerada através da chave privada, desta forma como tenho certeza que uma máquina que fique gerando chaves privadas e publicas nao vai conseguir encontrar minhas chaves e verificar que lá existem fundos registrados? Se eu posso gerar minhas próprias chaves, alguém (ou um software) também pode gerá-las e “roubar” meus fundos caso encontre o par e verifique que lá existem fundos… Tenho alguma garantia matemática que este fato de duas pessoas terem as mesmas chaves sem que haja um hacker ou um vazamento destas chaves nunca aconteceu/nunca irá acontecer?

Já pesquisei bastante sobre e nunca achei informação que me sanasse essa dúvida. Agradeço muito caso alguém que entenda me explique sobre…

Olá Lorenzzz!
Seja bem vindo. A sua questão é bastante complexa porque entra lá no fundo de um dos alicerces estruturais do sistema. Também digo que não sou a pessoa mais indicada para responder a sua questão de forma clara e objetiva, inclusive porque é uma questão onde eu pessoalmente não avancei tanto. O fato de saber que uma chave pública é gerada através da chave privada já indica seu grau de conhecimento. Acrescento apenas que hoje existe um terceiro elemento, nasce a chave privada que dá origem a chave pública e também ao endereço da carteira, sendo que no passado a chave pública era usada como endereço e atualmente deixou de ser usada. Por outro lado, presumo que sabendo como funciona na ida você saiba que a volta é quase impossível, ou seja, obter a chave privada a partir da chave pública. Quando você diz que uma máquina fica gerando chaves privadas talvez você esteja se referindo a aplicativos como walletgenerator ou bitaddress disponíveis na internet. O motivo disso é que a lógica para a criação das chaves privadas é de conhecimento público. Chaves privadas tem como requisito a aleatoriedade, ou seja, são criadas a partir de palavras ou símbolos inseridos num programa ou por simples movimentação do mouse durante algum tempo, de forma aleatória. Esse é o primeiro passo para que a chave privada seja aleatória. Para além disso existem as questões matemáticas para as quais deixo abaixo alguns links que talvez possam ajudá-lo no esclarecimento da sua dúvida.
Além disso existem outros pontos que eventualmente podem colocar em risco este processo de criação. Em tese isso deve estar próximo da casa do impossível no terreno da matemática mas o ser humano contribui para encurtar esta distância tornando possível a existência de chaves privadas idênticas, como um programa de geração de chaves malfeito, como já aconteceu no passado. O bitcoin não é um pacote fechado e pode ser “manipulado” ou “manuseado” em tese, utilizando linguagens diferentes de programação obtendo-se o mesmo resultado no fim para fins de estudo e aprendizagem. Outro detalhe, se o usuário for criar uma chave privada usando aplicativo disponível na internet deve desconectar o modem/internet e varrer o PC antes para ver se não tem vírus. Outros fatores como computação quântica se e quando se tornarem realidade podem se tornar um problema. Em todo caso, se e quando surgir alguma vulnerabilidade tanto na questão das chaves como em outros pontos a comunidade estará atenta e desenvolverá alguma solução como tem feito desde quando foi criado e desta forma o sistema praticamente sobrevive sem sofrer ataques. Na grande maioria das vezes os “roubos” ocorrem na parte vulnerável do sistema, onde estão as carteiras (usuários e corretoras).
Quanto a sua preocupação, bem no limite existe uma possibilidade muito remota onde sejam geradas duas chaves exatamente iguais mas a quantidade de combinações possíveis é tão grande que esta coincidência é praticamente impossível, a não ser que sejam criadas em softwares com problemas, como citado anteriormente mas para entender melhor esta questão é preciso avançar no entendimento das questões matemáticas do projeto.

Uma introdução ao tema pode ser visto no link abaixo:
https://medium.com/@disruptivas/chaves-endereços-e-carteiras-no-bitcoin-diferença-entre-chave-pública-e-endereço-3d4ffa8138d2

Uma pesquisa mais prolongada pode ser feita no link abaixo:

Num sentido mais matemático o link abaixo pode ajudar:

Aplicativo que gera chave com base na movimentação do mouse:
https://www.bitaddress.org/bitaddress.org-v3.3.0-SHA256-dec17c07685e1870960903d8f58090475b25af946fe95a734f88408cef4aa194.html

Erro na geração de chaves privadas:

Como uma chave privada pode ser gerada:

1 Curtida

Muito boa explicação, acho que entendi que o fator das chaves serem randômicas e haver um número quase infinito de chaves possíveis faz com que a segurança seja altíssima, obrigado!

1 Curtida

Excelente resposta. Obrigado, Cecílio.

Como você mesmo apontou, muitos destes sites que geram endereços são “envenenados” propositalmente para gerar chaves que um atacante já tenha em mãos, ou seja… são “bugs” propositais.
Desta forma, mesmo que você desconecte da internet para gerar o endereço, ainda assim é possível que ele gere um endereço que o atacante já tenha posse, sem que você saiba.

Esta é a importância de se utilizar um software bem auditado para geração de chaves.

2 Curtidas

vê este video e tu vai ver que beira ao IMPOSSIVEL, conseguir acertar uma carteira bitcoin assim

é bilhões de vezes mais facil acertar umas 10 vezes seguidas na megasena do que achar uma carteira bitcoin tentando gerar carteiras aleatoriamente

2 Curtidas

Sabe que muito que me faltava para ter uma certeza da segurança era ter a visualização de um número exorbitante dizendo algo do tipo… Nosso cérebro as vezes custa a acreditar em algo sem que consigamos enxergá-lo diante de nossos próprios olhos.

1 Curtida