Fundamentos da Blockchain – Parte 2 : Mineração – Mineradores e o algoritmo de prova de trabalho
Nesse segundo capítulo sobre os fundamentos da Blockchain será observado e analisado a mineração, os mineradores e o algoritmo de prova de trabalho.
Antes de iniciarmos – Fundamentos da Blockchain – Parte 2 : Mineração – Mineradores e o algoritmo de prova de trabalho, caso ainda não tenha acompanhado a primeira parte sugiro ler para melhor entendimento da segunda parte.
Acredito que após ler este artigo, você deve ter uma compreensão básica de um mecanismo de consenso fundamental por trás de blockchains como o Bitcoin, que o ajudará a entender os conceitos apresentados nos artigos a seguir nesta série.
Fundamentos da Blockchain – Parte 2 : Mineração – Mineradores e o algoritmo de prova de trabalho.
- O que é a mineração e porque é útil.
Assim como as linhas em uma página são projetadas para serem preenchidas com caracteres, um espaço em cada bloco em um blockchain é projetado para ser preenchido com informações de transação. Uma página tem limites de espaço (o número de linhas ou o tamanho do papel) assim como um bloco em uma blockchain (o número máximo de bytes por bloco).
Quando uma folha de papel está cheia, mas a história não está terminada, o escritor deve continuar escrevendo em uma nova folha de papel.
As cadeias de blocos funcionam de forma semelhante: quando um bloco está cheio, ele tem que ser assinado e criptograficamente unido ao bloco anterior, de forma que se posicionem um após o outro, como os vagões de um trem em sequência atrás da locomotiva. Esse encadeamento é feito adicionando mais informações ao cabeçalho do bloco de um novo bloco pelos mineradores, que você pode considerar como nomear o bloco. Esses mineradores competem essencialmente pelo direito de nomear novos blocos.
Mineração, mineradores e nós.
Mineração é o processo pelo qual as transações de blockchain são validadas e novos blocos baseados em PoW são nomeados, usando vários tipos de processadores. As pessoas que fazem isso são chamadas de mineradores. Nos primeiros dias da blockchain, isso lá em 2015, muitos mineradores tinham um nó local configurado, criando assim o efeito necessário de descentralização. Hoje em dia, muitos mineradores independentes se conectam a pools e não precisam operar seus próprios nós. Muitos operadores de nó não fazem mineração. Um nó não é equivalente a um servidor, mas cuida de tarefas semelhantes. A blockchain é montada por uma rede de nós, que executam sua própria versão do software blockchain, seguindo deterministicamente as regras para atingir o mesmo estado em todos os outros nós da rede.
Seguindo essa lógica, cada bloco existente, os blocos já extraídos, tem seu nome dado pelos mineradores, e vamos nos referir a esse identificador como um hash de cabeçalho de bloco. O hash do cabeçalho do bloco, também conhecido como “hash do bloco“, é um hash SHA256 duplo do cabeçalho do bloco e usado para identificar o bloco anterior no próximo bloco que é extraído. No mundo da blockchain, tudo é nomeado em um código alfanumérico específico chamado “hash”, que é uma mistura de letras e números que formam uma fila.
Na linguagem da blockchain, hashes representa o endereço da carteira de um usuário. Armazena as informações sobre transações (P2P) entre vários usuários de blockchain, lembrando que as transações nem sempre são entre usuários. Uma transação pode ser de um endereço para outro pertencente ao mesmo usuário, ou de um usuário para um contrato inteligente.
Visão geral sobre hashes.
Elas protegem a integridade dos dados ocultando e codificando a mensagem original em uma fila única e, portanto, criam, de certa forma, o elemento dos melhores nomes na blockchain, permitindo que tudo permaneça transparente. Fácil né, calma que agora vou complicar um pouco.
Hashes representam a quantidade compactada de dados de entrada em, por exemplo, 32 bytes, mesmo se a mensagem original tivesse 3 milhões de bytes. A compactação de dados é fornecida pela função de compactação da função de hash específica. A quantidade de bytes em que os dados são compactados por uma função hash depende da função. O algoritmo de hash SHA-1 produz uma sequência de 20 bytes.
Vamos abordar mais sobre as hashes na próxima parte da série.
A prova de trabalho vincula os blocos.
O cabeçalho de cada bloco contém informações sobre o bloco anterior, exceto para o bloco genesis, que é o primeiro bloco extraído na blockchain, em uma sequência linear de blocos que formam uma blockchain. Isso significa que, por exemplo, o terceiro bloco tem informações codificadas em seu cabeçalho de bloco que o liga ao segundo bloco na sequência.
Isso é essencial para tornar a blockchain do Bitcoin resiliente e os dados da transação, registrados nesses blocos, seguros. O cabeçalho do bloco 3 é uma combinação do hash do cabeçalho do bloco 2, apresentado em um bloco sob a tag “previousblockhash”, misturado com um conjunto único de caracteres que chamamos de nonce (número usado apenas uma vez). O nonce é o código secreto aplicado no processo de nomear um bloco de blockchain de Bitcoin e é o que os mineradores estão procurando. Emparelhar dois blocos adjacentes usando seu cabeçalho de bloco é como os blocos segurando “mãos digitais” para criar uma corrente forte.
Isso também garante que o Bitcoin fique ainda mais resistente com o tempo. Quanto mais longa for a blockchain, melhor protegidos estarão os blocos mais antigos.
A força está nos mineradores.
A colaboração dos mineradores no que eles chamam de pools de mineração é sobre a montagem de grandes fazendas de mineração, compostos de milhares de chips ASIC poderosos (mineradores de Bitcoin), com a intenção de melhorar suas chances e multiplicar seu tempo e custo-benefício na corrida de adivinhação de força bruta.
Observando que os mineradores de Bitcoin usam chips ASIC, pois as GPUs e CPUs não são mais eficazes para minerar BTC (mas podem ser usadas para Ethereum e outros).
Encontrar o nonce correto é como o bloco é nomeado, o que significa que o bloco pode ser finalmente adicionado a uma blockchain. Eles são recompensados com a criptomoeda nativa daquela rede por seus esforços, os mineradores operam na base de que esse montante cobre o custo da eletricidade consumida e muito mais.
Hoje, 1 BTC é igual a mais ou menos 200 mil reais. O valor da recompensa do bloco atual é de 6,25 BTC, isso será reduzido pela metade para 3,175 BTC em 2024.
Outra forma de recompensa para os mineradores é as validações das transações. Os mineradores precisam verificar as transações para que não incluam uma transação inválida em seu bloco.
Por exemplo: João envia 1 BTC para Maria, esta transação primeiro precisa ser validada pelos mineradores. Para cada transação que ajudam a verificar, eles recebem uma taxa, se o minerador vencer a corrida de nomenclatura nonce, a recompensa do bloco para o bloco em que uma determinada transação foi incluída.
Quanto mais recompensas forem obtidas, mais poder computacional será gasto para obtê-las. Mas tome cuidado, o número de transações que podem ser processadas não está totalmente relacionado com a quantidade de hashpower que um minerador possui.
Quanto mais alto for o custo para minerar um bloco, mais segurança ele terá contra agentes mal-intencionados. No caso do Bitcoin, a taxa de dificuldade de ajuste constante garante que cada bloco leve o alvo 10 minutos para minerar, o que significa que a quantidade de computação necessária aumenta à medida que mais capacidade de mineração entra na rede, aumentando ainda mais a segurança da rede.
Conheceu esse universo dos criptoativos em 2016 e desde 2017 vem intensificando a busca por conhecimentos na área. Hoje trabalha juntamente com sua esposa no criptomercado de forma profissional. Bacharelando em Blockchain, Criptomoedas e Finanças na Era Digital.