Autor:
fillipponeTópico original:
There are 2^256 private keys out there: how big is that number?
Ontem, enquanto navegava pela toca do coelho do Bitcoin, tropecei no infame site keys.lol
https://keys.lol(Aviso: perda de tempo!)
Basicamente, é um site que gera aleatoriamente 128 chaves privadas em cada página e verifica o saldo de endereços (compactados e não compactados) na blockchain, relatando eventuais saldos positivos ou transações passadas.
Uau!
Se você encontrar um saldo positivo nessas páginas geradas pelo lado do cliente, na verdade você é o proprietário legitimo desse saldo e nada o impede de transferir para a sua própria carteira.
Passei algumas horas naquele site, gerando milhares de chaves privadas, claro, sem encontrar nada, nem um único endereço usado, muito menos um com saldo.
Então, comecei a pensar que poderia aprimorar um pouco o processo e conversando com alguns colegas usuários aqui no fórum, pensei que poderiamos ter um script gerando chaves privadas aleatórias, após solicitar ao meu proprio nó de bitcoin o saldo em tal endereço e eventualmente transferir qualquer saldo para minha propria carteira. Trabalhar localmente deve agilizar um pouco o processo, pensei.
Eu sabia desde o inicio que as possibilidades de encontrar algo eram pequenas, mas queria tentar porque procurar saldos e não encontrar nada me garantiria que ninguem poderia fazer o mesmo com meu próprio bitcoin guardado com tanto ciumes em minha carteira fria.
Enquanto esperava que o @babo divulgasse seu roteiro, pensei comigo mesmo "Fillipone é apenas um peão no jogo da vida"... como ninguém nunca pensou nisso?
De volta a toca do coelho, descobri rapidamente o Large Bitcoin Collider.
https://lbc.cryptoguru.org/aboutUau, este é um projeto sério.
Basicamente, milhares de servidores distribuidos gerando e verificando 26 trilhões (!!!) de chaves privadas diariamente.
Nos primeiros três anos, eles conseguiram encontrar 7 chaves privadas. Isso é muito! Eu imaginei que as chances eram muito menores, mas provavelmente há algum tipo de bug em alguma carteira que utiliza um gerador de números aleatórios abaixo do ideal para criar as chaves. (Mais pesquisas são necessárias aqui!)
Vamos revisar rapidamente alguns números:
Número de chaves privadas teoricamente possíveis: 2^256 ou aproximadamente 10^77
Número de endereços bitcoin: 2^160
Número de chaves privadas pesquisadas pelo Bitcoin Collider: 2^160
Número de
endereços de Bitcoin usados : 18.000.000
O número de chaves privadas REALMENTE possivel, é um pouco menor que 2^256, conforme especificado
aquiVamos trabalhar alguns exemplos.
- Suponha que tenhamos um bilhão de endereços ativos, cada um delos com um saldo positivo: sabemos que isso é aproximadamente 10^3 maior que o número real.
Provavelmente o número de átomos no universo é 10 ^ 3 maior que o número de endereços, então é justo dizer que encontrar uma chave privada com um valor positivo é quase tão provavel que encontrar um desses átomos espalhados por todo o universo visivel.
Qual é o tamanho de um bilhão de atómos? De acordo com esta resposta do Quora, é menor que uma bactéria E.Coli. Então, adivinhe, pegue essa bactéria, triture em um nivel atomico, distribua-a no universo e tente encontrar um desses atomos. Bem dificil, não é?
- O segundo exemplo é deste artigo . Suponha que queremos escanear todas as chaves privadas em busca de um saldo positivo e suponha que cada habitante da terra tenha uma velocidade de escaneamento um bilhão de vezes maior que o dobro do poder computacional atual da rede Bitcoin, assim:
* 10 bilhões de pessoas;
* multiplicado por um bilhão;
* multiplicado pelo dobro do poder computacional do Bitcoin, cerca de 100 mil terahash por segundo;
obtemos: 1.000.000.000.000*1.000.000.000*100.000*100.0000.000.000 = 10^10*10^9*10^5*10^12 = 10^36
Para simplificar, arredondamos para baixo '115.792.089.237.316.195.423.570.985.008.687.907.852.837.564.279.074.904.382.605 .163.141.518.161.494.336' para 10^77, e temos obteve que, se verificarmos cada chave privada, em busca de um saldo positivo, levaria 10^77/10^36 = 10^41 segundos, quantos anos seriam?
Como há cerca de 31557600 segundos em um ano, corresponde a cerca de 10^41/31557600 = 31^33 anos, o que é mais ou menos 10^23 vezes a idade estimada do universo (atualmente estimada em 13,82 bilhões de anos), em curto
100.000.000.000.000.000.000.000, ou seja, cerca de 100 bilhões de bilhões de vezes a idade do universo.
- Todos os exemplos anteriores não levaram em conta a energia envolvida em tais cálculos. É claro que todas essas máquinas muito poderosas poderiam ser alimentadas por algum tipo de energia. Quanta energia seria necessária? Bem, muito, de acordo com esse infográfico:
Link para RedditOutros exemplos sobre quanto levaria para adivinhar aleatoriamente uma chave privada:
Mais referencias:
Outros números muito grandes:
Aqui estão apenas alguns exemplos, se você tiver fontes ou comentários adicionais para fazer, sinta-se a vontade para compartilhar abaixo, que eu adicionarei à lista!
Tradução oferecida por iniciativa de: