decen{BR}

Por que não se pode minerar Bitcoin usando um computador comum?

Por que não ganhamos Bitcoin apenas rodando o Bitcoin Core? Qual é o incentivo para manter um nó Bitcoin em funcionamento? Essas são perguntas freqüentes, e bastante antigas, porém ainda muito relevantes.

Sempre acompanhamos os acalorados debates envolvendo o futuro do Bitcoin, e um dos tópicos mais controversos sempre trata da “visão original de Satoshi Nakamoto”.

Satoshi criou o Bitcoin tendo algo me mente. E, infelizmente, aquilo que ele almejava era bem distinto do Bitcoin que temos hoje.

Minerar Bitcoin no PC

No código Bitcoin original, de autoria de Satoshi Nakamoto, a idéia por trás do Bitcoin era que cada participante poderia simplesmente deixar o Bitcoin Core funcionando em segundo plano no seu computador e o próprio programa iria recompensar o usuário com alguns Bitcoins por dia, em troca de a sua contribuição para a rede.

O software original de Nakamoto também previa um mercado P2P funcionando diretamente no cliente Bitcoin, para que pessoas conseguissem efetuar compra e venda de mercadorias usando Bitcoin sem sair do programa. Tratava-se de um mercado 100% descentralizado, assim como o Bitcoin.

Por fim, o Bitcoin original também trazia códigos relacionados a permitir transferências financeiras por email. Em tese seria possível transferir Bitcoin usando endereços de email. Como essa funcionalidade nunca foi implementada, não sabemos como Satoshi planejava criar tal sistema, porém podemos inferir que envolveria um sistema de tradução de emails para endereços Bitcoin dentro da rede P2P.

Infelizmente, como hoje sabemos nada disso acabou sendo implementado no Bitcoin Core atual. Satoshi Nakamoto desapareceu e, com o falecimento de Hal Finney, que foi um dos cerebros por trás dos primeiros passos do Bitcoin, o projeto parece ter mudado de rumo e se tornado mais “direto ao ponto”. Bitcoin tornou-se um meio de reserva e transferência de valores, sem o tal mercado P2P e demais funcionalidades.

Diferente do que parecia ser a visão original do Satoshi, temos hoje grandes corretoras e mercados centralizados, o que vai de encontro diametral ao que o autor manifestou no código fonte original. Esse é um longo tópico que podemos abordar em artigos futuros mas, para fins deste artigo, vamos focar na mineração.

Como o programa Bitcoin Core foi originalmente executado na API do Windows32 (WIN32 em linguagem C++), ele era um programa baseado em mineração usando a CPU. Era, portanto, um programa comum, tal qual o MS Office ou o Photoshop, por exemplo.

Assim, a “visão original” de Satoshi era a mineração baseada em uma CPU comum, e não em super máquinas dedicadas à mineração conforme temos hoje. Para abordar o assunto, vamos partir do início : o que significa minerar?

O que significa minerar Bitcoin?

Minerar Bitcoin significa … verificar blocos. Apenas!

Mineradores gastam centenas de gigawatts, coletivamente, procurando soluções a um quebra-cabeças criptográfico (falaremos mais disso logo adiante). Quando uma solução para esse desafio é encontrada, ela é transmitida a todos na rede P2P Bitcoin, que a verificam e então a aceitam ou não o novo bloco.

A tarefa de minerar Bitcoin é realmente simples, e foi implementada de forma muito elegante por Satoshi Nakamoto.

De fato, todos os algoritmos usados no Bitcoin já existiam anterioremente, porém a forma com que ele encaixou tudo é que torna Bitcoin especial.

A garantia de integridade de dados no Bitcoin é dada por uma cadeia de confiança que vai ligando logicamente um dado a outro de modo que é impossível alterar sequer um bit sem alterar todas as assinaturas digitais, o que acusaria a falsificação.

Nesse processo, o Bitcoin usa pesadamente um processo criptográfico chamado “SHA256”. (Não se assuste com esse nome aparentemente enigmático!)

SHA256

Assim como muitos outros conceitos em criptomoedas, esse algoritmo é conhecido por sua sigla, que significa “Algoritmo de Hash Seguro” (SHA). O número que vem em seguida é a quantidade de bits que o algoritmo produz na saída. No caso de SHA256, portanto, são 256 bits – que equivale a 32 bytes. Quando escrito no formato hexadecimal, 32 bytes se tornam 64 letras ou números.

Ufa!

O SHA256 tem algumas peculiaridades que fizeram dele a escolha de Satoshi para o Bitcoin original. Primeiramente, o algoritmo requer muito pouca memória, e utiliza somente instruções triviais para funcionar. Portanto é possível implementar SHA256 em qualquer tipo de computador usando hardware de baixo custo.

Não demorou para que desenvolvedores de software paralelo imediatamente enxergassem o potencial para este algoritmo ser implementado em interfaces gráficas, conhecidas como GPUs.

De fato, vários algoritmos criptográficos já tinham implementações para GPU. Por exemplo, para quebrar hashes de senhas armazenadas em bancos de dados usa-se um processo muito parecido ao de minerar Bitcoin!

O que esses desenvolvedores fizeram, então? Implementaram o SHA256 altamente paralelizado em SDK’s de desenvolvimento de software para as GPU’s mais populares do mercado: Nvidia e AMD.

A Era das GPUs

Entramos, então, na era da mineração usando GPUs.

As vendas de placas gráficas para mineração Bitcoin dispararam, e “produzir moedinhas” em casa tornou-se um passatempo lucrativo para muitos.

O que começou como uma espécie de hobby coletivo foi crescendo rapidamente conforme as criptomoedas ganhavam valor de mercado.

Entusiastas mostravam nas redes sociais, principalmente no Reddit e Twitter, suas belas instalações construídas exclusivamente para minerar criptomoedas.

O Youtube trazia as últimas inovações dos mineradores, incluindo idéias inusitadas como aquários contendo computadores mergulhados em óleo mineral, sistemas de refrigeração industrial, galpões abandonados transformados em indústrias de mineração de criptomoedas, e assim por diante.

Hobyistas estavam no paraíso!

Havia espaço para todo tipo de especialidade, desde eletrônica básica até engenharia de grande escala. Enquanto isso as GPUs se esgotavam nas lojas de hardware. Gamers reclamavam da falta de GPUs em estoque, enquanto mineradores efetuavam compras enormes com dezenas, até centenas, das últimas e melhores GPUs disponíveis no mercado.

GPU: Paralelismo Massivo

Por que as GPU’s fizeram tanto sucesso?

Porque eram muito mais adequadas para o trabalho de mineração de Bitcoin que até mesmo as melhores CPU’s disponíveis à época.

Sua arquitetura de paralelização permitia utilizar algo como 1024 threads trabalhando em em paralelo, enquanto uma CPU normal da época era capaz de executar entre 4 e 8 threads. O nível de paralelismo da GPU era simplesmente incomparável com até mesmo as melhores CPUs.

Enquanto isso, os usuários domésticos que ainda rodavam o Bitcoin Core para minerar notaram que eles não estavam mais produzindo muitos Bitcoin por dia. Conforme as GPU’s dominavam a mineração, a dificuldade de rede tornou a mineração usando CPU inviável. As GPU’s produziam

Logo logo, o código Bitcoin passaria a ser distribuído com sua função de mineração de CPU desativada, pois se tornou um desperdício de ciclos de energia e de CPU, haja vista a enorme superioridade das GPUs na geração de hashes SHA256.

Enquanto mineradores GPU estavam felizes produzindo toneladas de Bitcoins, hackers de hardware desenvolviam uma maneira ainda mais rápida de minerar Bitcoin: os temidos ASICs.

ASICs e o Adeus às GPUs

ASIC é um nome genérico dado a chips que são criados para uma única finalidade. A sigla, em inglês, significa Application Specific Integrated Circuit ou, em tradução livre, circuito integrado espećifico para uma aplicação.

ASICs são chips desenhados para desempehar uma, e apenas uma, função específica. É como se o algoritmo que uma CPU executa fosse codificado de forma eletrônica em um “core” que só executa aquele conjunto de instruções. Ocorre que, quando implementados de forma otimizada, ASICs podem funcionar milhares de vezes mais rápido que uma CPU genérica naquela função específica.

Por exemplo, um programador pode implementar o algoritmo SHA256 em um chip chamado FPGA, usado para prototipar ASICs. Quando este chip de desenvolvimento está pronto para produção, o código FPGA pode ser enviado para a Asia, onde o chip pode será replicado milhões de vezes a baixo custo.

Como o leitor já deve estar imaginando, alguém teve a brilhante idéia de produzir chips dedicados a produzir hashes SHA256 de forma massivamente paralela.

Então, ao possuir circuitos desse tipo, o desafio passaria a ser produzir máquinas contendo dezenas de chips ASIC cuja unica função era produzir hashes SHA256.

Não demorou muito tempo para que máquinas dedicadas, possuindo dezenas desses chips, começassem a bombar bilhões de hashes SHA256 por segundo, deixando as GPUs comendo poeira e tornando-as obsoletas para mineração de Bitcoin.

Era o fim da era das GPU. Empresas de hardware, como a Bitmain, passaram a produzir máquinas cada vez mais velozes. O hash rate do Bitcoin, ou seja a taxa com que hashes SHA256 eram produzidos, saltava a cada nova máquina Antminer produzida pela Bitmain.

Após o advento das ASICs, minerar com CPU não era cogitado sequer remotamente. Nem as melhores GPUs conseguiam competir.

Para se ter uma idéia, uma máquina Antminer S19 é capaz de produzir 95 trilhões de hashes SHA256 por segundo. Para fazer uma comparação bem informal, uma boa CPU moderna é capaz de produzir algo como 100 mil hashes por segundo.

E a visão de Satoshi?

Assim, a ingenuidade de Satoshi tornou impossível a mineração usand CPU’s. A visão de cada usuário tendo acesso a uma cota de Bitcoin diário tornou-se inviável.

Por que?

O algoritmo SHA256 é facilmente acessível aos desenvolvedores do Windows, mas também estava disponível para hackers de hardware que explodiram a cobertura da mineração Bitcoin através da implantação de máquinas que não podem fazer nada além de gerar hashes SHA256 mais rápido do que qualquer CPU jamais poderia sonhar.

Isso foi possível porque SHA256 consome muito pouca memória e exige apenas instruções muito simples, facilmente implementadas em hardware.

Foi assim que GPUs e mineradores ASIC encerraram a era da mineração Bitcoin baseada em CPU – mas este não foi o fim da história.

Muitas moedas novas adotam algoritmos de criptografia muito difíceis, que não são tão fáceis de implementar usando ASICs.

Essas moedas geralmente adotam os algoritmos de criptografia como o CrypTonight ou HODL.

Enquanto chips dedicados são difíceis de fabricar para uma determinada criptomoeda e enquanto algoritmos usarem muita memória, isso permite que as CPUs competem com GPUs e ASICs. O devs Ethereum, por exemplo, estudam tecnologias como ProgPoW, que visa inviabilizar a construção de máquinas ASICs para Ethereum, devolvendo assim o protagonismo às GPUs.

E foi assim que se encerrou a era da mineração amadora de Bitcoin. Hoje apenas instalações profissionais, usando máquinas Antminer de última geração, conseguem ser competitivas.

Referências

Cinco criptomoedas que ainda são lucrativas de minerar com CPU

Dez criptomoedas que você pode minerar em casa

Wikipedia: Mineração de Bitcoin

Engenheiros colocam computador do programa Apollo para minerar bitcoin em teste

Sobre @ Autor(@)
Publicado por decen{BR} - decen{BR} é nosso avatar coletivo, @ qual usamos na editoria do site. Normalmente, os conteúdos publicados pel@ decen{BR} são traduções de nosso site parceiro crypto.bi - (ou contribuições indiretas de um de seus autores). Confira nossa página Sobre (menu lateral) para conhecer a nossa equipe! Saiba Mais o Decen{BR}