A “mineração” é um dos principais elementos que permitem que as criptomoedas funcionem como uma rede descentralizada peer-to-peer (ponto-a-ponto) sem a necessidade de uma autoridade central. É neste processo de mineração de criptomoedas que as transações entre utilizadores são verificadas e adicionadas ao livro de registos (“ledger”) da blockchain e é atualizada a quantidade de moedas em circulação.
Em mais um artigo adaptado da Binance Academy, vamos hoje explicar como funciona a mineração de criptomoedas, um processo que está no centro do conceito das moedas digitais.
Como funciona a mineração de criptomoedas?
O minerador é um “node” (nó) na rede que recolhe transações e tem a função de organizá-las em blocos. Sempre que há novas transações, os mineradores recebem-nas, verificam-nas, adicionam-nas à Memory Pool (onde são armazenadas as transações pendentes) e começam a montá-las num bloco com múltiplas transações.
A primeira etapa no processo para minerar um bloco é padronizar cada transação utilizando a função hash e alocá-las na Memory Pool. Mas, antes de começar a alocar as transações, o nó minerador adiciona uma transação na qual é enviada a recompensa pela mineração. Essa é designada “transação coinbase” e é nela que as moedas são efetivamente criadas a partir do nada; na maioria dos casos, essa será a primeira transação a ser registada num novo bloco.
Depois de cada transação ser convertida em hash, esses hashes são então organizados na Árvore de Merkle ou Hash Tree1, o que significa que os hashes são organizados em pares e depois convertidos novamente em hash até que cheguem “ao topo da árvore”, também chamado “Root Hash” ou “Merkle Root”, e que é basicamente um hash único que representa todos os hashes anteriores que foram usados para o gerar.
O “root hash”, juntamente com o hash do bloco anterior e um número aleatório chamado “nonce” (número ou palavra que pode ser usado uma única vez), é então alocado no Block Header (cabeça do bloco). O “block header” é convertido em hash e será usado como o identificador do bloco. O identificador do bloco deve ser menor que um determinado valor definido pelo protocolo. Por outras palavras, o header hash do bloco deve começar com um certo número de zeros.
Esse valor-alvo, também conhecido como “dificuldade do hash”, é regularmente ajustado pelo protocolo, garantindo que a taxa na qual novos blocos são criados se mantenha constante e seja proporcional à capacidade de processamento de hashing da rede.
Portanto, cada vez que novos “mineiros” entram na rede e a concorrência aumenta, a dificuldade de hashing aumentará, impedindo que o tempo médio do bloco diminua. Pelo contrário, se os mineiros decidirem abandonar a rede, a dificuldade de hashing diminuirá, mantendo o tempo do bloco constante, embora haja menos potência computacional dedicada à rede.
O processo de mineração de criptomoedas exige que os mineiros continuem a fazer hashing repetidamente da cabeça do bloco, iterando através do “nonce” até que um mineiro da rede acabe por produzir um hash de bloco válido. Quando um hash válido é encontrado, o nó fundador transmitirá o bloco para a rede. Todos os outros nós verificarão se o hash é válido e, em caso afirmativo, adicionarão o bloco à sua cópia da blockchain e passarão para a mineração do bloco seguinte.
No entanto, às vezes acontece que dois mineradores transmitem um bloco válido ao mesmo tempo e a rede fica com dois blocos concorrentes. Os mineradores começam a minerar o próximo bloco com base no bloco que receberam primeiro. A competição entre esses blocos continuará até que o próximo bloco seja extraído com base em qualquer um dos blocos concorrentes. O bloco que é abandonado é chamado de Orphan Block2 (bloco órfão) ou Stale Block2 (bloco obsoleto). Os mineradores destes blocos passarão a minerar o bloco vencedor.
“Pools de Mineração”
Embora a recompensa do bloco seja concedida ao minerador que descobre o hash válido primeiro, a probabilidade de encontrar um hash válido é equivalente a uma fração da capacidade total de processamento de mineração da rede. Mineradores com uma pequena percentagem de capacidade de mineração têm uma chance muito pequena de descobrir o próximo bloco.
As “pools de mineração” foram criadas para resolver esse problema: os mineradores organizam-se e partilham a sua capacidade de processamento numa rede e dividem a recompensa entre todos os participantes da pool, de acordo com a quantidade de trabalho que cada um contribuiu para encontrar o bloco.
Siga toda a atualidade tecnológica no TecheNet através do Facebook, Google News e Twitter. Agora, temos também um canal dedicado no Telegram, onde poderá receber todas as novidades em primeira mão.
Notas
1 Árvore de Merkle ou Hash Tree: são estruturas de dados que organizam grandes quantidades de informação numa estrutura em forma de árvore com conteúdos resumidos, permitindo uma verificação mais eficiente e segura do conteúdo.
2 Orphan Block ou Stale Block: são blocos válidos que não fazem parte da blockchain principal. Eles podem ocorrer de forma natural quando dois mineradores produzem um bloco ao mesmo tempo, ou podem ter sido criados por um ataque malicioso (com poder de hashing suficiente) ao tentar estornar alguma transação.
Afinal, quem é Satoshi Nakamoto?
No segundo de uma série de artigos adaptados a partir de originais criados pela Binance Academy (a Binance é a maior plataforma mundial de negociação de criptomoeda), vamos abordar um dos “mistérios” da Bitcoin: a identidade de Satashi Nakamoto, o pseudónimo do seu misterioso criador.
Satoshi Nakamoto é o pseudónimo do responsável pelo desenvolvimento do Bitcoin e pela autoria do whitepaper original que lhe deu origem. Há muita especulação em torno da pergunta “quem é Satoshi Nakamoto?” e da sua verdadeira identidade. Existem até pessoas que alegam, falsamente, ser o próprio Satoshi Nakamoto.
Outros artigos interessantes: