Pontos-chave

  • O Proof of Work (PoW) é um mecanismo de consenso criado para evitar gasto duplo nos sistemas de pagamento digital.

  • O PoW é uma parte fundamental do processo de mineração que envolve a adição de novos blocos de transações à blockchain e a criação de novas unidades de criptomoeda.

  • O Bitcoin e várias outras criptomoedas usam o PoW como um método para proteger a rede blockchain e seus dados.

Introdução

Em resumo, o Proof of Work (PoW) é um mecanismo criado para evitar gasto duplo nos sistemas de pagamento digital. O Bitcoin e várias outras criptomoedas usam o PoW como um método para proteger a rede blockchain e seus dados. Esses mecanismos são frequentemente chamados de algoritmos de consenso ou mecanismos de consenso, porque envolvem várias partes alcançando o consenso sem a necessidade de confiar uma na outra.

O Proof of Work foi o primeiro algoritmo de consenso a surgir e continua sendo um dos mais importantes, juntamente com o Proof of Stake (PoS). O PoW foi apresentado por Satoshi Nakamoto no whitepaper do Bitcoin em 2008, mas a tecnologia em si foi concebida muito antes disso.

O HashCash do Adam Back é um dos primeiros exemplos de um algoritmo Proof of Work antes do surgimento das criptomoedas. Ao exigir que os remetentes executassem um pequeno cálculo antes de enviar um e-mail, os destinatários conseguiam diminuir o impacto do spam. Esse cálculo não custava praticamente nada para um remetente legítimo, mas para quem enviava e-mails em massa os custos se tornavam altos rapidamente.

O que é gasto duplo?

Um gasto duplo ocorre quando o mesmo fundo é gasto mais de uma vez. O termo é usado quase exclusivamente no contexto de moeda digital – afinal, você teria dificuldade em gastar o mesmo dinheiro físico duas vezes. 

Hoje quando você paga por um café, você entrega o dinheiro para uma pessoa que provavelmente o guarda em um caixa. Você não pode ir ao café do outro lado da rua e pagar por outro café com a mesma nota. No entanto, nos sistemas com dinheiro digital existe a possibilidade de fazer isso. 

Você provavelmente já duplicou um arquivo de computador com os comandos copiar e colar. Também é fácil enviar o mesmo arquivo por e-mail para dezenas de pessoas. Como o dinheiro digital não passa de dados, você precisa evitar que as pessoas gastem duas vezes, ou seja, copiem e gastem as mesmas unidades em lugares diferentes. Um sistema de pagamento digital que não consegue evitar o gasto duplo entrará em colapso em pouco tempo.

Para uma análise mais detalhada sobre gasto duplo, confira o artigo Guia sobre gasto duplo.

Por que o Proof of Work é necessário?

Se você leu nosso artigo sobre tecnologia blockchain, sabe que os usuários de criptomoedas estão transmitindo transações para a rede constantemente. No entanto, essas transações não são consideradas válidas imediatamente, isso só acontece quando elas são confirmadas e adicionadas à blockchain.

A blockchain do Bitcoin, por exemplo, funciona como um banco de dados de transações públicas (ledger/livro-razão) que todos os usuários podem ver. Imagine este cenário: você e três amigos têm um bloco de notas para rastrear suas transações de bitcoin. Sempre que um de vocês quer fazer uma transferência de valor, você anota:

Alice pagou 5 BTC ao Bob; Bob pagou 2 BTC à Carol, etc.

Mas cada vez que você faz uma transação, você se refere à transação de onde os fundos vieram. Então, se o Bob estivesse pagando a Carol com 2 BTC, a entrada seria a seguinte: 

Bob pagou 2 BTC para Carol, valor que veio da transação anterior com a Alice.

Agora temos uma maneira de rastrear as unidades de BTC. Se o Bob tentar fazer outra transação usando os mesmos 2 BTC que acabou de enviar para a Carol, todos saberão imediatamente. O grupo não permitirá que a transação seja adicionada ao bloco de notas porque esses 2 BTC já foram gastos.

Isso pode funcionar bem em um grupo pequeno. Como todos se conhecem, provavelmente chegarão a um acordo sobre quais amigos podem adicionar transações ao bloco de notas. Mas e se quisermos um grupo de 10.000 participantes? A ideia do bloco de notas não seria adequada, pois ninguém quer confiar em um estranho para gerenciar os registros das transações.

É aqui que entra o Proof of Work. Ele garante que os usuários não gastem dinheiro que não têm o direito de gastar. Ao usar uma combinação de teoria dos jogos e criptografia, um algoritmo PoW permite que qualquer pessoa atualize a blockchain de acordo com as regras do sistema.

Como funciona o PoW?

Imagine que nosso bloco de notas do exemplo acima seja a blockchain, mas não adicionamos transações uma por uma – em vez disso, as agrupamos em blocos. Informamos as transações à rede e os usuários que criam o bloco incluirão as transações em um bloco candidato. As transações só serão consideradas válidas quando seu bloco candidato se tornar um bloco confirmado, o que significa que ele foi adicionado ao banco de dados da blockchain.

O processo de validação das transações e adição de novos blocos é chamado de mineração. A mineração é cara e difícil, mas também pode ser gratificante. A recompensa do bloco vem das taxas de transação dos usuários e dos novos bitcoins criados pelo protocolo. 

O mecanismo Proof of Work exige que um minerador (o usuário que cria o bloco) invista recursos como eletricidade e poder de computação para processar o hash de dados do seu bloco candidato até que seja encontrada a solução para um quebra-cabeça.

O hashing de dados do bloco significa executar uma função de hash para gerar uma identidade (hash) para o bloco. Ele funciona como uma "impressão digital" para seus dados de entrada e é exclusivo para cada bloco.

Em outras palavras, um minerador precisa verificar e coletar transações pendentes, organizá-las em um bloco candidato e passar os dados do bloco por uma função de hashing para criar um hash válido. Se eles conseguirem encontrar um hash válido para seu bloco candidato, eles o transmitem para a rede, adicionam o bloco à blockchain e coletam as recompensas de mineração.

Quando um minerador transmite seu bloco candidato e o hash para a rede, outros participantes da rede repetem o processo de hash para verificar se a saída é realmente válida. 

Embora sejam necessárias inúmeras tentativas de hash para encontrar um hash válido, é fácil para uma pessoa confirmar se o hash gerado está correto. Ela só precisa enviar a mesma entrada (dados do bloco) por meio da função hash e verificar se a saída é a mesma.

No Proof of Work você deve fornecer dados cujo hash esteja de acordo com determinadas condições, mas você não sabe como chegar lá. Sua única opção é submeter seus dados através de uma função hash e verificar se eles estão de acordo com as condições. Caso contrário, você deverá alterar um pouco seus dados para obter um hash diferente. A alteração de um simples caractere nos dados acabará em um resultado totalmente diferente, portanto, não há uma forma de prever o resultado.

Por isso se você quiser criar um bloco, estará jogando um jogo de adivinhação. Normalmente você pega informações sobre todas as transações que deseja adicionar e alguns outros dados importantes e, em seguida, junta tudo. Mas, como seu conjunto de dados não será alterado, você precisará adicionar uma informação que seja variável. Caso contrário, você sempre obteria o mesmo hash como resultado. Esses dados variáveis são o que chamamos de nonce. É um número que você vai mudar em cada tentativa, então você receberá um hash diferente toda vez.

Resumindo, a mineração é o processo de coletar dados da blockchain e fazer hashing usando um nonce, até encontrar um hash específico como resultado. Se você encontrar um hash que atenda às condições estabelecidas pelo protocolo, terá o direito de transmitir o novo bloco à rede. Feito isso, os outros participantes da rede irão atualizar suas blockchains para incluir o novo bloco criado.

Para as principais criptomoedas de hoje, as condições são muito difíceis de atender. Quanto mais alta a taxa de hash na rede, mais difícil é encontrar um hash válido. Isso é feito para garantir que os blocos não sejam encontrados tão rapidamente.

Como você pode imaginar, tentar adivinhar grandes quantidades de hashes pode ser caro para o seu computador. Você está desperdiçando ciclos computacionais e eletricidade, mas o protocolo recompensará com criptomoeda se você encontrar um hash válido.

Vamos recapitular o que vimos até agora:

  • A mineração é difícil e cara, mas fornece segurança à rede.

  • Os mineradores que conseguem produzir um bloco válido são recompensados com criptomoedas recém-emitidas e taxas de transação.

  • A geração de um hash válido leva tempo, mas outros usuários podem verificar facilmente sua validade ao repetir o processo de hash.

Até aqui, tudo bem. Mas e se alguém tentar trapacear? O que impede um usuário de inserir transações falsas no bloco e produzir um hash válido?

É aí que entra a criptografia de chave pública. Não vamos nos aprofundar neste artigo, mas confira O que é criptografia de chave pública? para uma análise abrangente. Em poucas palavras, existem alguns truques criptográficos que permitem que qualquer usuário verifique se alguém tem o direito de movimentar os fundos que está tentando gastar.

Quando você cria uma transação, você a assina. Qualquer pessoa na rede pode comparar sua assinatura com sua chave pública e verificar se elas correspondem. Eles também verificarão se você realmente pode gastar seus fundos e se a soma das suas entradas é maior do que a soma das suas saídas (ou seja, se você não está gastando mais do que tem).

Qualquer bloco que inclua uma transação inválida será rejeitado pela rede automaticamente. Tentar trapacear é caro. Você desperdiçará seus recursos sem obter qualquer recompensa.

É aí que reside a beleza do Proof of Work: é caro trapacear, mas é lucrativo para quem age honestamente. Qualquer minerador racional buscará um retorno sobre seu investimento, então é esperado que eles se comportem de uma maneira mais propensa a trazer receita.

Proof of Work (PoW) vs. Proof of Stake (PoS)

Existem vários algoritmos de consenso além do PoW, e um dos mais populares é o Proof of Stake (PoS). O conceito teve origem em 2011 e foi implementado na Ethereum e em vários outros protocolos.

Nos sistemas Proof of Stake, os mineradores são substituídos por validadores. Não há mineração envolvida e nenhuma corrida para adivinhar hashes. Em vez disso, os usuários são selecionados aleatoriamente – se forem escolhidos, devem propor (ou "forjar") um bloco. Se o bloco for válido, todos recebem uma recompensa composta pelas taxas de transações do bloco.

Não é qualquer usuário que pode ser selecionado – o protocolo os escolhe com base em vários fatores. Para se qualificar os participantes devem bloquear um staking, que é uma quantia predeterminada da moeda nativa da blockchain. O staking funciona como uma fiança: uma grande quantia de dinheiro é destinada a desencorajar o réu a fugir do julgamento, de forma semelhante os validadores bloqueiam um staking para desencorajar a trapaça. Se eles agirem desonestamente, o stake (ou uma parte dele) será tomada.

O Proof of Stake tem alguns benefícios em relação ao Proof of Work. O mais notável é que a pegada de carbono é menor – como não há necessidade de farms de mineração de alta potência no PoS, a eletricidade consumida é apenas uma fração da consumida em PoW. 

Dito isso, o PoS não tem o mesmo histórico que o PoW. Embora possa ser percebido como um desperdício, a mineração é o único algoritmo de consenso testado por mais de uma década. Desde o seu lançamento, o PoW do Bitcoin garantiu trilhões de dólares em transações. Para dizer com certeza que o PoS pode alcançar o mesmo nível de segurança, o staking precisa ser devidamente testado a longo prazo.

Considerações finais

O Proof of Work foi a solução original para o problema de gasto duplo e provou ser confiável e seguro. O Bitcoin provou que não precisamos de entidades centralizadas para evitar que o mesmo fundo seja gasto duas vezes. Com o uso inteligente da criptografia, funções hash e teoria dos jogos, os participantes de um ambiente descentralizado podem concordar com o estado de um banco de dados financeiro.

Leituras adicionais

Aviso Legal: este conteúdo é apresentado a você “no estado em que se encontra“ apenas para fins informativos e educacionais, sem qualquer tipo de garantia. O conteúdo não deve ser interpretado como aconselhamento financeiro, jurídico ou profissional, e não tem o objetivo de recomendar a compra de qualquer produto ou serviço específico. Você deve buscar seu próprio conselho de consultores profissionais. No caso de contribuições e artigos enviados por colaboradores terceirizados, note que as opiniões expressas pertencem ao respectivo autor e não refletem necessariamente as opiniões da Binance Academy. Para mais detalhes, por favor leia nosso aviso aqui. Os preços dos ativos digitais podem ser voláteis. O valor do seu investimento pode aumentar ou diminuir e você pode não recuperar o valor investido. Você é o único responsável por suas decisões de investimento e a Binance Academy não se responsabiliza por nenhuma de suas possíveis perdas. Este material não deve ser interpretado como aconselhamento financeiro, jurídico ou profissional. Para mais informações, por favor consulte nossos Termos de Uso e Aviso de Risco.