O “padrinho” do consenso: guia completo sobre proof-of-work

Author logo
Patrick Dike-Ndulue
Post image

Principais insights

O artigo apresenta a origem e evolução do proof-of-work (PoW), mostrando como começou como ferramenta contra abuso de recursos antes de se tornar a base da blockchain descentralizada do Bitcoin. Explica como o PoW garante transações e evita o duplo gasto por meio de desafios computacionais resolvidos por mineradores, mas também destaca desafios de escalabilidade e consumo de energia. Para superar essas limitações, o texto cita o desenvolvimento de camadas de blockchain e novos mecanismos de consenso que buscam mais eficiência sem abrir mão da segurança e descentralização.

Hoje, redes descentralizadas usam diferentes mecanismos de consenso, mas tudo começou com o proof-of-work (PoW). Vamos contar a história de como ele surgiu, como funciona e por que ainda é um dos principais algoritmos do Web3.

No início, o proof-of-work não foi criado como base para redes descentralizadas. Ele não tinha relação com criptomoedas e, na verdade, foi desenvolvido para proteger usuários de “recursos compartilhados” contra abusos. Os criadores do conceito, apresentado em 1993, sugeriram uma solução que limitava o acesso a um recurso exigindo que os participantes realizassem cálculos complexos. Também foi definido que os resultados desses cálculos seriam fáceis e rápidos de verificar.

A primeira versão prática só surgiu cinco anos depois, quando Adam Back criou o projeto Hashcash, com o objetivo principal de combater spam. A ideia era usar criptografia para dificultar o envio de e-mails em massa. Antes de enviar cada mensagem, o remetente precisava realizar cálculos complexos — encontrar um valor de x tal que o hash SHA(x) tivesse N bits iniciais iguais a zero — e incluir o resultado (proof-of-work) no cabeçalho do e-mail.

Para que a mensagem chegasse ao destinatário, era preciso verificar se o remetente resolveu o desafio criptográfico. Isso podia ser feito rapidamente com um cálculo SHA-1 usando um rótulo preparado previamente. Esse rótulo era gerado pelo remetente antes de começar a resolver o problema e ficava disponível para todos os participantes do sistema. Assim, enviar algumas mensagens não causava problemas, mas para fazer uma campanha de e-mails em massa seria necessário muito poder computacional.

Parece familiar? Esse conceito foi usado em 2008 por Satoshi Nakamoto para criar o Bitcoin e sua blockchain baseada em proof-of-work.

Como funcionam as blockchains PoW

No centro da ideia de Nakamoto (ainda não se sabe se é uma pessoa ou um grupo de desenvolvedores) estava a criação de um sistema de dinheiro eletrônico descentralizado, independente de terceiros. Isso permitiria transferir valores diretamente, sem intermediários como bancos.

As informações das transações ficam em um registro distribuído entre os participantes do sistema. O processo de ordenação envolve agrupar as transações em blocos, que têm tamanho limitado. Cada bloco precisa conter dados do bloco anterior. Para isso, todas as informações relevantes (transações, hash do bloco anterior, timestamp etc.) são convertidas em um código único chamado hash. Isso é feito por uma função de hash, que no caso do Bitcoin é a SHA-256. “Full nodes” cuidam da gestão das cadeias, enquanto os mineradores criam novos blocos.

É importante notar que a função de hash sempre gera o mesmo hash a partir dos mesmos dados. Qualquer pequena alteração resulta em um hash completamente diferente.

Como já explicamos, os mineradores precisam calcular o hash de um bloco para adicioná-lo à cadeia. Isso não é demorado por si só, então, para evitar que o problema seja resolvido rápido demais, a rede ajusta a dificuldade a cada 2.016 blocos — cerca de duas semanas. O objetivo é manter o tempo de mineração em torno de dez minutos, garantindo o funcionamento estável da blockchain.

Mas como isso acontece na prática? Os mineradores recebem os blocos e calculam o hash. Porém, a rede exige que o hash seja menor que um valor determinado. Mas o hash não pode ser alterado, certo? É aí que entra o nonce — um número usado apenas uma vez. Ele é adicionado ao bloco e alterado pelos mineradores durante os cálculos, resultando em hashes diferentes. Os mineradores comparam o hash obtido com o alvo de dificuldade e, se for maior, mudam o nonce e recalculam. Esse processo se repete até encontrar um hash igual ou menor que o alvo, podendo acontecer milhões de vezes.

Para ter uma ideia da dimensão do desafio, veja este número:

115792089237316195423570985008687907853269984665640564039457584007913129639936

Esse é o número de combinações possíveis no hash SHA-256. Equivale ao número de estrelas do universo, 115 bilhões de vezes!

A cadeia de transações

Vamos ver uma transação padrão para entender como tudo isso funciona. Suponha que você está enviando BTC para alguém. Depois de gerar e assinar a transação com sua chave privada, ela é enviada para a rede. O full node verifica se está correta e, se não houver problemas, libera para as demais redes. Outros nós também fazem checagens e colocam a transação na fila de não confirmadas (mempool).

Os mineradores coletam as transações da mempool (priorizando as que pagam taxas maiores), agrupam em um bloco e começam os cálculos. Quando um minerador resolve o problema, os full nodes verificam a solução e, se estiver correta, o minerador recebe a recompensa. Nesse momento, o bloco é considerado “minerado” e adicionado à blockchain, e a informação é enviada para todos os participantes. Em seguida, os mineradores já começam a trabalhar no próximo bloco. Ao mesmo tempo, quanto mais blocos são incluídos após o bloco da sua transação, maior o nível de confirmação dela.

Resumindo: para uma transação ser considerada legítima, a maioria dos nós da rede precisa concordar que o bloco onde ela está foi calculado corretamente.

Tudo isso é realmente necessário?

Nakamoto não foi o primeiro a tentar criar um sistema descentralizado, mas foi o primeiro a usar o mecanismo de consenso proof-of-work. Sem ele, seria impossível resolver o problema do duplo gasto, que acontece quando o remetente tenta gastar os mesmos fundos duas vezes antes da confirmação da transação. Os mineradores checam se há duplo gasto sempre que recebem transações da mempool.

É verdade que, em uma blockchain PoW, dois mineradores podem minerar o mesmo bloco. Isso não é necessariamente malicioso e pode acontecer se ambos finalizarem o cálculo quase ao mesmo tempo e um deles não receber a informação de que o bloco já foi minerado. Nesse caso, surge uma cadeia paralela a partir do bloco equivocado. Para eliminar o “ramo” errado, o mecanismo de consenso compara as duas blockchains e dá preferência à versão mais longa.

Problemas e limitações

O maior desafio do PoW — pelo menos em sua forma pura — é a escalabilidade. Por exemplo, a blockchain do Bitcoin processa cerca de 7 transações por segundo, um número baixo. Por isso, a mempool enche em momentos de pico, e transações com taxas baixas podem ficar presas por horas ou dias. À primeira vista, parece que aumentar o tamanho dos blocos ou minerá-los mais rápido resolveria o problema.

Mas aumentar o tamanho dos blocos tem consequências: seria necessário muito poder computacional para criá-los e, assim, só grandes mineradores ou pools permaneceriam na rede, reduzindo a descentralização.

Se você diminuir o tempo de processamento, existe o risco de os nós da rede não conseguirem chegar a um consenso antes do próximo bloco surgir. Com isso, aumentaria o número de “ramos” da blockchain, facilitando o duplo gasto.

Tudo isso está resumido no conceito do trilema da blockchain: redes descentralizadas só conseguem oferecer dois dos três benefícios principais ao mesmo tempo — descentralização, segurança e escalabilidade. Para contornar isso no PoW, são usadas camadas de blockchain. Elas funcionam “por cima” do sistema principal e aumentam a velocidade de processamento das transações.

Além disso, novos protocolos de consenso estão sendo desenvolvidos para atuar junto com o PoW. Por exemplo, Kaspa usa PoW como mecanismo de segurança da rede, mas os blocos são organizados em um grafo acíclico direcionado, permitindo que mineradores trabalhem em blocos diferentes ao mesmo tempo.

Outro ponto importante: quanto mais poder computacional uma blockchain acumula, maior a complexidade dos cálculos e o consumo de energia necessário para minerar.

Author logo
Autor Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Analisado por Rukkayah Jigam

Writer & editor covering digital assets and product updates.