O quebra-cabeça pelo qual eles oferecem um trilhão de dólares a quem resolver

Gonzalo Álvarez Marañón    5 abril, 2021
O quebra-cabeça pelo qual eles oferecem um trilhão de dólares a quem resolver

Você gosta de quebra-cabeças matemáticos? Bem, aqui está um muito lucrativo… mas difícil de decifrar! Se você descobrir um método para quebrar os hashes usados ​​no Blockchain, poderá obter todos os futuros Bitcoins que ainda não foram minerados!

A mineração de criptografia é baseada em um conceito chamado “prova de trabalho” (e no acaso). Os mineiros com os maiores recursos computacionais ao seu alcance (e que são mais favorecidos pelo acaso) são recompensados ​​com novos bitcoins. Neste artigo, explicaremos a origem da prova de trabalho, ligada ao combate ao spam, e como ela é utilizada hoje no Bitcoin.

Se os spammers tivessem que pagar por cada e-mail que enviam, a história seria bem diferente

Adam Back pensava assim em 1997. Criptógrafo e hacker de renome, ele havia lido um artigo publicado em 1992 por Cynthia Dwork e Moni Naor sobre como combater o spam exigindo cálculos matemáticos caros. Este artigo o inspirou a desenhar sua proposta de pagamento por e-mail : se você quiser enviar spam, você terá que pagar, mas não com dinheiro, você vai pagar com o suor do computador. O spammer terá que resolver um quebra-cabeça criptográfico de dificuldade variada e não enviará seu e-mail até encontrar a solução. Resolver o quebra-cabeça será muito complicado, mas verificar a solução, muito simples. Em outras palavras, você prova que trabalhou muito ou não há spam. E assim nasceu Hashcash.

A proposta de Back requer a adição do cabeçalho X-Hashcash : ao protocolo SMTP, de forma que, se uma mensagem chegar a um gateway de correio ou cliente de correio sem tal cabeçalho, ela será rejeitada imediatamente. E com qual token esse cabeçalho deve ser preenchido?

Em primeiro lugar, é necessária uma função hash segura . Embora o Hashcash propusesse o SHA-1, hoje outro algoritmo seria usado, como o SHA-256 ou o SHA-3.

Em segundo lugar, o Hashcash usa os seguintes parâmetros:

  1. Um fator de dever w, tal que 0 <= w <= L , onde L é o tamanho da saída da função hash (em bits). É usado para modular a dificuldade do quebra-cabeça.
  2. Um número de versão, ver .
  3. Um parâmetro de carimbo de data / hora: time .
  4. Um identificador de recurso : resource .
  5. Um número escolhido aleatoriamente de pelo menos 64 bits: trial.

token Hashcash é composto pela união desses campos pelo caractere ‘:’, da seguinte maneira:

token = view : time : resource : trial

O quebra-cabeça consiste em calcular repetidamente o hash do token até que os w bits mais significativos sejam 0, aumentando em um o valor do trial  cada vez que não estiver correto. Obviamente, quanto maior o valor de w, mais difícil será o quebra-cabeça. Felizmente para o destinatário, verificar se a solução do quebra-cabeça está correta é tão trivial quanto calcular o hash do token. Além disso, não importa quantos quebra-cabeças você resolva, resolver um novo sempre levará, em média, o mesmo tempo: a dificuldade permanece constante para um determinado valor de w. E se o poder de computação melhorar com o tempo, apenas aumente w e novamente voltará a suar.

Claro, os tokens só são considerados válidos se não se repetirem, pois então, resolvido um, bastaria anexá-lo a todas as mensagens de spam. Uma maneira barata de resolver o problema de como armazenar um histórico de tokens é configurar um período de validade, calculado graças ao parâmetro time.

Embora essa ideia não tenha se concretizado para combater o spam, ela acabou inspirando Satoshi Nakamoto a projetar a prova de trabalho do Bitcoin.

Mineiros de criptografia cunharão bitcoins com o suor de seus ASICs

Na mina a terra é escavada em busca de um recurso escasso e muito valioso. No Bitcoin, o recurso escasso é o poder de computação. Os nós da rede Bitcoin competem entre si em uma corrida frenética para serem os primeiros a resolver um quebra-cabeça criptográfico, chamado de “prova de trabalho”, baseado em Hashcash.

Explicado de uma forma muito simplificada, o hash do novo bloco, c, que você deseja incorporar na cadeia de blocos é obtido, é concatenado com um noncex, e o hash do conjunto é calculado. Se o valor hash resultante começar com um número predeterminado de zeros, ou seja, for menor que um determinado target, você venceu a corrida! Caso contrário, adicione um ao nonce e recomece.

A função hash usada no Bitcoin é SHA256, passada duas vezes consecutivas. Expressos matematicamente:

SHA256 (SHA256 ( c | x )) < alvo ( d )

A dificuldade desse quebra-cabeça pode ser adaptada dinamicamente variando o número d de zeros à esquerda que o hash deve ter. Assim, uma dificuldade de 1 significa que o hash deve ter (pelo menos) um zero à esquerda, enquanto uma dificuldade de 10 significa que o valor do hash terá pelo menos 10 zeros à esquerda. Quanto maior o nível de dificuldade, mais zeros iniciais serão necessários e mais complicado será o quebra-cabeça, pois a dificuldade aumenta exponencialmente com o número de zeros. Obviamente, quanto mais complicado o quebra-cabeça de hash, mais poder de computação ou tempo leva para resolvê-lo.

Bitcoin define a dificuldade para que, globalmente, um novo bloco seja criado a cada 10 minutos, em média. O primeiro mineiro a resolver o quebra-cabeça recebe uma recompensa na forma de bitcoins e cobra as taxas aplicadas às transações contidas no bloco. A recompensa para o vencedor é programada desde o início. Inicialmente, o cripto mineiro vencedor foi recompensado com 50 bitcoins para cada novo bloco. Essa recompensa é reduzida à metade a cada 210.000 blocos, ou seja, aproximadamente a cada 4 anos. Devido à redução da recompensa do bloco pela metade, a quantidade total de bitcoins em circulação nunca excederá 21 milhões de bitcoins. Esses incentivos financeiros devem compensar a despesa de recursos computacionais ou ninguém mineraria bitcoins.

Estou minerandoooo!!!

No início, um computador com uma CPU decente era suficiente para extrair bitcoins. Mas os fortes incentivos aumentaram rapidamente a dificuldade do mecanismo de prova de trabalho. As CPUs foram logo substituídas por GPUs, estas por sua vez por FPGAs e, como os bitcoins valorizaram, foram usados ​​circuitos integrados de aplicativos específicos (ASICs). Não sei se todas as criptomoedas que adquirem esses equipamentos são feitas de ouro, mas seus fabricantes certamente encontraram sua veia particular. A barreira de entrada para a mineração é tão alta hoje que por muitos anos a comunidade de mineração foi dominada por um pequeno número de grupos de mineração de “grandes jogadores”.

Como resultado, o grupo supostamente grande e diverso de pares que mantêm coletivamente a integridade do sistema acaba se tornando um grupo muito pequeno de entidades, cada uma das quais possui enorme poder computacional na forma de hardware especializado, alojado em fazendas gigantescas, as maiores dos quais estão na China, Rússia, Islândia, Suíça e os EUA.

Esses grupos exclusivos formam uma espécie de oligopólio que divide entre si a responsabilidade de manter a integridade do sistema. A porta está aberta para abusos de poder, como omitir transações específicas ou discriminar usuários específicos. No final, Bitcoin e Blockchain não são tão descentralizados como o esperado em sua concepção original porque a integridade do sistema não é distribuída entre um grande número de entidades, mas está concentrada em poucas entidades muito poderosas, estabelecendo uma espécie de centralidade oculta que isso prejudica a natureza distribuída de todo o sistema.

O lado perverso das provas de trabalho

E não vamos esquecer um pequeno problema associado aos testes de trabalho. Visto que resolver quebra-cabeças criptográficos requer um grande gasto de poder computacional, o processo de mineração / validação é proibitivamente caro, tanto em termos de eletricidade quanto de dissipação de calor. Esse consumo tem um impacto extremamente prejudicial ao meio ambiente.

Em um trabalho publicado em 2019, The Carbon Footprint of Bitcoin , seus autores afirmam que a mineração de Bitcoin é responsável por 0,2% de todo o consumo de eletricidade no mundo e que produz tanto dióxido de carbono quanto uma metrópole do tamanho de Kansas City (cerca de 500.000 habitantes )

Outra pesquisa publicada na Nature em 2018, Quantificação dos custos de energia e carbono para mineração de criptomoedas , calculou que a mineração de Bitcoin, Ethereum, Litecoin e Monero combinados produziu o equivalente a entre 3 e 13 milhões de toneladas de dióxido de carbono em um período de 30 meses. E vendo o preço crescente de todas essas criptomoedas, apesar de sua volatilidade, tudo indica que o consumo de energia (e as emissões) continuarão crescendo.

Mais uma vez, é mostrado que quando a criptografia salta das lousas dos criptógrafos para o mundo real, as coisas se complicam. Afinal, o Bitcoin não funciona no papel, mas em processadores. E quanto mais trabalho, mais consumo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *