O que é Mineração de Criptomoedas?
Índice
Introdução
Como funciona a mineração?
Todas as criptomoedas podem ser mineradas?
Proof of Work (PoW)
Diferentes métodos de mineração de criptomoedas
Mineração via CPU
Mineração via GPU
Mineração ASIC
Pools de mineração
Considerações finais
O que é Mineração de Criptomoedas?
InícioArtigos
O que é Mineração de Criptomoedas?

O que é Mineração de Criptomoedas?

Iniciante
Published Dec 6, 2018Updated Jan 14, 2022
8m

TL;DR

A mineração de criptomoedas se refere ao processo de verificação e validação de transações em uma blockchain. É também o processo responsável por emitir novas unidades de criptomoedas. O trabalho feito pelos mineradores requer muitos recursos computacionais, mas é o que mantém uma rede blockchain segura. Ao validar um bloco, o minerador recebe como recompensa novas criptomoedas emitidas e um valor adicional das taxas de transação.


Introdução

A mineração é o processo no qual as transações de criptomoedas são verificadas e adicionadas ao ledger (livro-razão) público da blockchain. As operações de mineração também são responsáveis pela emissão de novas moedas, que são adicionadas ao fornecimento total em circulação.

A mineração é um dos principais elementos que permitem que a blockchain do Bitcoin funcione como um ledger distribuído. Todas as transações são registradas em uma rede peer-to-peer sem a necessidade de uma autoridade central. Neste artigo, discutiremos a mineração na rede Bitcoin, mas o processo é semelhante para altcoins que adotam o mesmo mecanismo de mineração.


Como funciona a mineração?

À medida que novas transações são feitas na blockchain, elas são enviadas ao memory pool (conjunto de dados). O trabalho de um minerador é verificar a validade dessas transações pendentes e organizá-las em blocos. Podemos imaginar um bloco como uma página do livro-razão (ledger) da blockchain, onde várias transações são registradas (junto com outros dados).
Um node de mineração é responsável por coletar transações não confirmadas do memory pool e organizá-las em um bloco candidato. Em seguida, o minerador tenta converter o bloco candidato em um bloco válido e confirmá-lo. Para isso, ele precisa encontrar uma solução para um problema matemático complexo. Esse processo requer muito poder computacional, mas cada bloco minerado dará ao minerador uma recompensa de bloco, que consiste em criptomoedas recém-criadas mais as taxas de transação. Vamos dar uma olhada no processo de mineração.


Etapa 1 - Hashing de transações

Na primeira etapa da mineração de um bloco, cada uma das transações pendentes do memory pool é submetida a uma função de hash. Cada vez que um dado é submetido a uma função de hash, ele gera um output (saída) de tamanho fixo chamado hash. No contexto da mineração, o hash de cada transação consiste em uma sequência de números e letras que funciona como um identificador. O hash da transação representa todas as informações contidas na transação.
Além de fazer o hash e listar cada transação individualmente, o minerador também adiciona uma transação personalizada, na qual ele envia a si mesmo a recompensa de bloco. Essa transação é conhecida como transação coinbase e é responsável pela criação das novas moedas emitidas. Na maioria dos casos, a transação coinbase é a primeira a ser registrada em um novo bloco, seguida por todas as transações pendentes que aguardam validação.

Etapa 2 - Criando uma Merkle Tree

Após a criação do hash de cada transação, os hashes são organizados em uma estrutura chamada Merkle Tree (Árvore de Merkle). Também conhecida como hash tree, a Merkle Tree é formada pela organização dos hashes das transações em pares. Em seguida, é feito o processo de hashing deles. Os novos hashes de saída (outputs) são então organizados em pares e submetidos novamente à função de hash. O processo se repete até que um único hash seja obtido. Este último hash também é chamado de root hash (ou Merkle root) - em português, hash raiz - e é basicamente o hash que representa todos os hashes anteriores que foram usados para gerá-lo.

Etapa 3 - Encontrando um block header válido (hash de bloco)

O block header (cabeçalho de bloco) funciona como um identificador para cada bloco individual, o que significa que cada bloco possui um hash exclusivo. Ao criar um novo bloco, os mineradores combinam o hash do bloco anterior com o root hash de seu bloco candidato para gerar um novo hash de bloco. Além desses dois elementos, eles também precisam adicionar um número arbitrário chamado nonce.

Então, ao tentar validar seu bloco candidato, um minerador precisa combinar o root hash, o hash do bloco anterior e um nonce e submeter o conjunto de dados à função de hash. O objetivo é criar um hash considerado válido.

O root hash e o hash do bloco anterior não podem ser alterados, então os mineradores precisam alterar o valor do nonce várias vezes até que um hash válido seja encontrado.

Para ser considerado válido, o output (hash de bloco) deve ser menor que um determinado valor alvo, que é definido pelo protocolo. Na mineração de Bitcoins, o hash do bloco deve começar com um certo número de zeros. É isso que define a dificuldade de mineração.

Etapa 4 - Transmitindo o bloco minerado

Conforme mencionamos, os mineradores precisam submeter repetidamente o block header à função de hash, usando diferentes valores de nonce. Eles repetem esse processo até encontrar um hash de bloco válido. Após encontrar, o minerador o transmite para a rede. Todos os outros nodes verificarão se o bloco e seu hash são válidos e, em caso afirmativo, adicionarão o novo bloco em suas cópias da blockchain.

Então o bloco candidato torna-se um bloco confirmado e todos os mineradores iniciam o processo de mineração do próximo bloco. Todos os mineradores que não conseguiram encontrar um hash válido a tempo descartam seu bloco candidato e a corrida de mineração começa de novo.


Ajuste da dificuldade de mineração

A dificuldade de mineração é ajustada regularmente pelo protocolo, garantindo que a taxa com a qual novos blocos são criados permaneça constante. Com isso, a emissão de novas moedas continua estável e previsível. A dificuldade de mineração se ajusta de acordo com a quantidade de poder computacional (taxa de hashing) dedicado à rede.

Sendo assim, toda vez que novos mineradores se juntam à rede e a competição aumenta, a dificuldade de hashing também aumenta, evitando que o tempo médio de bloco diminua. Por outro lado, se muitos mineradores decidirem deixar a rede, a dificuldade de hashing diminuirá, facilitando o processo de mineração de um novo bloco. Esses ajustes mantêm o tempo de bloco constante, independentemente do poder de hash total da rede.


E se dois blocos forem minerados ao mesmo tempo?

Pode acontecer de dois mineradores transmitirem um bloco válido ao mesmo tempo e a rede receber dois novos blocos concorrentes. Os mineradores então começam a minerar o próximo bloco, com base no bloco que receberam primeiro. Isso faz com que a rede se divida (temporariamente) em duas versões diferentes da blockchain.

A competição entre esses blocos continuará até que o próximo bloco seja minerado, no topo de qualquer um dos dois blocos concorrentes. Quando um novo bloco é minerado, o bloco anterior será considerado o vencedor. O bloco abandonado é chamado de bloco órfão ou bloco obsoleto, fazendo com que todos os mineradores que escolheram este bloco voltem a minerar a blockchain do bloco vencedor.


Todas as criptomoedas podem ser mineradas?

O Bitcoin é o exemplo mais popular e bem sucedido de criptomoeda que pode ser minerada, mas nem todas as criptomoedas podem ser mineradas. A mineração de bitcoins é baseada em um algoritmo de consenso chamado Proof of Work (PoW).


Proof of Work (PoW)

Proof of Work (PoW) é o mecanismo original de consenso da blockchain criada por Satoshi Nakamoto. O conceito foi introduzido no whitepaper do Bitcoin, em 2008. Basicamente, o PoW determina como uma rede blockchain obtém consenso para todos os participantes distribuídos, sem intermediários terceirizados. O funcionamento desse mecanismo exige um grande poder computacional para evitar a ação de usuários mal-intencionados.
Conforme mencionado, as transações em uma rede PoW são verificadas por mineradores. Para obter o direito de minerar o próximo bloco, os mineradores competem solucionando problemas criptográficos complexos, usando hardwares de mineração especializados. O primeiro minerador a encontrar uma solução válida pode então transmitir seu bloco de transações para a blockchain e receber a recompensa de bloco.

A quantia de criptomoedas da recompensa de bloco varia em cada rede. Por exemplo, na blockchain do Bitcoin, um minerador bem-sucedido recebe como recompensa de bloco 6,25 BTC (valor referente a dezembro de 2021). A quantidade de BTC em uma recompensa de bloco diminui pela metade a cada 210.000 blocos (aproximadamente a cada quatro anos) devido ao seu mecanismo de halving.


Diferentes métodos de mineração de criptomoedas

Não existe uma única maneira para minerar criptomoedas. O equipamento e o processo mudam à medida que surgem novos hardwares e algoritmos de consenso. Normalmente, os mineradores usam computadores especializados para solucionar as complicadas equações criptográficas. Vamos ver como funcionam alguns dos métodos de mineração mais comuns.


Mineração via CPU

A mineração via Unidade Central de Processamento (CPU) envolve o uso de CPUs de computadores para executar as funções de hash requisitadas pelo mecanismo PoW. Nos primeiros dias do Bitcoin, o custo e a dificuldade de mineração eram baixos. Um CPU comum era capaz de lidar com a dificuldade de mineração, então, qualquer um podia tentar minerar BTC e outras criptomoedas.

No entanto, à medida que mais pessoas começaram a minerar e o hashrate da rede aumentou, a mineração lucrativa tornou-se cada vez mais difícil. Além disso, o surgimento de hardwares de mineração especializados com maior poder computacional acabou tornando a mineração via CPU quase impossível. Atualmente, a mineração via CPU não é mais uma opção viável, visto que todos os mineradores usam hardware especializado.


Mineração via GPU

As Unidades de Processamento Gráfico (GPUs) são projetadas para processar uma ampla gama de aplicações em paralelo. Embora sejam normalmente usadas para videogames ou renderização de gráficos, elas também são usadas para mineração.

As GPUs são relativamente baratas e mais flexíveis do que os populares hardwares de mineração ASIC. Algumas altcoins podem ser mineradas com GPUs, mas a eficiência depende do algoritmo e da dificuldade de mineração.


Mineração ASIC

O Application-Specific Integrated Circuit (ASIC) - em português, circuito integrado de aplicação específica - foi desenvolvido para atender a um propósito específico. No setor cripto, o termo se refere ao hardware especializado para mineração. A mineração ASIC é altamente eficiente, porém é mais cara.

O processo de mineração é uma competição. Para minerar lucrativamente, você precisa de um hardware de mineração competitivo. A mineração ASIC é a opção mais moderna e eficiente, mas tem um custo mais alto do que o uso de CPUs e GPUs. Além disso, o avanço contínuo da tecnologia ASIC faz com que modelos ASIC mais antigos rapidamente se tornem não lucrativos, havendo necessidade de substituição. Isso torna a mineração ASIC um dos métodos mais caros de mineração, mesmo sem incluir os custos de eletricidade.


Pools de mineração

Como uma recompensa de bloco é concedida ao primeiro minerador bem-sucedido, a probabilidade de encontrar o hash correto é extremamente pequena. Mineradores com uma pequena porcentagem do poder de mineração têm uma chance muito baixa de encontrar o próximo bloco por conta própria. Os pools de mineração oferecem uma solução para este problema.

Pools de mineração são grupos de mineradores que juntam seus recursos (poder de hash) para aumentar a probabilidade de obter recompensas de bloco. Quando o pool encontra um bloco válido, os mineradores dividem a recompensa entre todos os participantes do pool, de maneira proporcional à contribuição de cada um.

Pools de mineração podem beneficiar mineradores individuais em termos de custos de hardware e eletricidade, mas o domínio de um grupo de mineração pode aumentar a chance de um possível ataque de 51% na rede.


Considerações finais

A mineração de criptomoedas é uma parte fundamental da rede Bitcoin e de outras blockchains PoW. É um dos mecanismos que mantêm a rede segura e garante a emissão de novas moedas de forma estável. A mineração tem vantagens e desvantagens. A mais óbvia vantagem é a possibilidade de obter ganhos com as recompensas de bloco. No entanto, os lucros da mineração podem ser afetados por uma série de fatores, incluindo os custos de eletricidade e preços de mercado. Não há garantia de que você terá lucros, então antes de minerar criptomoedas, faça suas próprias pesquisas (DYOR) e avalie todos os potenciais risco.