Pontos chave a lembrar

  • A prova de trabalho (PoW) é um mecanismo de consenso criado para evitar gastos duplos em sistemas de pagamento digitais.

  • A PoW é um elemento chave no 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 muitas outras criptos utilizam a PoW como método de segurança para suas redes e dados da blockchain.

Introdução

Em resumo, a Prova de Trabalho (PoW) é um mecanismo criado para impedir gastos duplos em sistemas de pagamento digital. O Bitcoin e muitas outras criptomoedas usam a PoW como método para garantir a segurança de sua rede e dos dados da blockchain. Esses mecanismos costumam ser chamados de algoritmos de consenso ou mecanismos de consenso, pois envolvem várias partes alcançando um consenso sem que seja necessário confiar umas nas outras.

A prova de trabalho foi o primeiro algoritmo de consenso a surgir, e continua sendo um dos mais importantes juntamente com a prova de participação (PoS). Ele foi introduzido por Satoshi Nakamoto no whitepaper (livro branco) do Bitcoin em 2008, mas a tecnologia foi projetada muito antes.

O HashCash de Adam Black é um exemplo de um algoritmo de prova de trabalho que surgiu antes do desenvolvimento das criptomoedas. Ao solicitar que os remetentes façam um pequeno cálculo de computador antes de enviar um e-mail, seria fácil reduzir o spam. Esse cálculo praticamente não custaria nada para um remetente legítimo, ao contrário de uma pessoa enviando e-mails em massa.

O que é gasto duplo?

O gasto duplo acontece quando o mesmo dinheiro é gasto várias vezes. Esse termo é usado quase exclusivamente no contexto de moedas digitais. Afinal, é difícil gastar duas vezes as mesmas moedas ou notas. 

Quando você paga um café, entrega dinheiro em espécie ao caixa, que depois o guardará no caixa. Você não pode ir a outro café e pagar com o mesmo dinheiro. No entanto, em sistemas de caixa digital, existe essa possibilidade. 

Você provavelmente já duplicou um arquivo usando os comandos copiar e colar. Também é fácil para você enviar o mesmo arquivo por e-mail para dezenas de pessoas. Como as moedas digitais, no fim das contas, são apenas dados, é necessário evitar que as pessoas consigam copiar e gastar as mesmas unidades em locais diferentes. Um sistema de pagamento digital que não consiga impedir gastos duplos colapsará em pouco tempo.

Para saber mais sobre gasto duplo, sinta-se à vontade para ler o artigo Gasto duplo explicado.

Por que a prova de trabalho é necessária?

Se você leu nosso artigo sobre tecnologia blockchain, você sabe que usuários de criptomoedas transmitem constantemente transações na rede. Essas transações não são consideradas válidas imediatamente. Elas só se tornam válidas quando são confirmadas e adicionadas à blockchain.

A blockchain do Bitcoin, por exemplo, funciona como um banco de dados de transações públicas (um registro) que cada usuário pode visualizar. Imagine: seus três amigos e você têm um bloco de anotações para acompanhar suas transações em Bitcoin. Toda vez que um de vocês quer fazer uma transferência de valor, vocês registram:

Alice paga 5 BTC ao Bob; Bob paga 2 BTC à Carol, e assim por diante.

Toda vez que você realiza uma transação, você se refere à transação de onde vêm os fundos. Portanto, se o Bob pagasse a Carol com 2 BTC, a entrada seria, na verdade, algo assim: 

Bob paga 2 BTC à Carol a partir dessa transação anterior com Alice.

Agora temos uma maneira de acompanhar as unidades de BTC. Se o Bob tentar realizar uma transação com os mesmos 2 BTC que ele acabou de enviar à Carol, todo mundo vai saber. O grupo não vai permitir adicionar a transação ao bloco de anotações, porque esses 2 BTC já foram gastos.

Isso poderia funcionar em um grupo pequeno. Todo mundo se conhece e provavelmente concordariam sobre quais amigos deveriam adicionar transações ao caderno. Mas e se for um grupo, desta vez, de 10.000 pessoas? O bloco de anotações não é adequado, porque ninguém quer confiar em um estranho para administrá-lo.

É aí que a prova de trabalho entra. Ela garante que os usuários não gastem dinheiro que não têm permissão para gastar. Combinando teoria dos jogos com criptografia, o algoritmo PoW permite que todos atualizem a blockchain, em acordo com as regras do sistema.

Como funciona a PoW?

Imagine que o nosso bloco de anotações do exemplo acima seja a blockchain. Ainda assim, em vez de adicionar as transações uma a uma, nós as agrupamos em blocos. Nós anunciamos as transações para a rede, e então os usuários que criam um bloco vão incluí-las em um bloco candidato. As transações só serão consideradas válidas quando o bloco candidato se tornar um bloco confirmado, ou seja, quando ele for adicionado à blockchain.

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

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

Fazer hash dos dados de um bloco significa passar esses dados por uma função de hash para gerar um hash do bloco. Esse hash do bloco é uma “impressão digital”: ele identifica seus dados de entrada e é exclusivo de cada bloco.

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

Quando um minerador divulga seu bloco candidato e seu hash na rede, os demais participantes repetem o processo de hashing para verificar se o resultado é realmente válido. 

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

No caso da prova de trabalho, você precisa fornecer dados cujo hash corresponda a certas condições. Mas você não sabe como chegar lá. Sua única opção é, portanto, passar seus dados por uma função de hash e verificar se o resultado corresponde às condições. Se não corresponder, você terá que modificar seus dados de forma bem sutil para obter um hash diferente. Se você alterar nem que seja um único caractere nos seus dados, você obterá um resultado totalmente diferente. Portanto, não há como prever o resultado.

Assim, para conseguir criar um bloco, você precisará jogar um “jogo de adivinhação”. Em geral, você pega informações sobre todas as transações que deseja adicionar e outros dados importantes antes de fazer o hash de tudo. Como seu conjunto de dados não muda, você precisa adicionar uma variável ao conjunto. Caso contrário, você sempre obterá o mesmo hash na saída. Essa variável é o nonce. Trata-se de um número que muda a cada tentativa, para que você obtenha um hash diferente em cada vez.

Em resumo, a mineração é o processo de reunir os dados da blockchain e fazer hash deles junto com um nonce até encontrar um hash específico que satisfaça as condições do protocolo. Se você encontrar um hash que atenda às condições definidas pelo protocolo, terá o direito de divulgar o novo bloco para a rede. Os outros participantes da rede atualizarão suas blockchains para incluir o novo bloco.

Para as criptomoedas mais importantes, essas condições são extremamente difíceis de cumprir. Quanto maior a taxa de hash em uma rede, mais difícil é encontrar o hash correto. Isso ajuda a garantir que os blocos não sejam encontrados rápido demais.

Como você pode imaginar, tentar adivinhar quantidades enormes de hashes é muito caro para o seu computador. Além de consumir seu hardware, você desperdiça eletricidade. É por isso que o protocolo vai recompensá-lo com criptomoedas se você encontrar o hash correto.

Vamos recapitular o que sabemos até agora :

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

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

  • A geração de um hash válido leva tempo, mas outros usuários podem facilmente verificar se ele é válido repetindo o processo de hashing.

Até agora, tudo bem. Mas o que acontece se você tentar trapacear? O que impede você de inserir transações fraudulentas no bloco antes de produzir um hash válido?

É aqui que a criptografia de chave pública entra em cena. Não vamos entrar em detalhes aqui, mas você ainda pode ler O que é criptografia de chave pública? para saber mais. Em resumo, existem técnicas de criptografia inteligentes que permitem que qualquer usuário verifique se alguém tem permissão para movimentar os fundos que está tentando gastar.

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

Qualquer bloco que contenha uma transação inválida será rejeitado automaticamente pela rede. Trapacear vai custar caro. Além de desperdiçar seus recursos, você não receberá nenhuma recompensa.

É aí que mora a beleza da prova de trabalho: ser honesto é mais lucrativo do que trapacear. Todo minerador racional buscará um retorno sobre investimento, então é de se esperar que ele aja de uma maneira que seja mais provável gerar receita.

Prova de Trabalho (PoW) e Prova de Participação (PoS)

Existem muitos algoritmos de consenso além da PoW, mas um dos mais populares é a Prova de Participação (PoS). Esse conceito remonta a 2011 e foi implementado no Ethereum e em vários outros protocolos.

No caso da Prova de Participação (PoS), os mineradores são substituídos por validadores. Não há mineração e nem uma corrida para encontrar o hash correto. Em vez disso, os usuários são selecionados aleatoriamente: se forem escolhidos, eles precisam propor (ou “forjar”) um bloco. Se o bloco for válido, eles receberão recompensas compostas pelas taxas das transações do bloco.

Nem todo mundo pode ser selecionado; o protocolo leva em conta alguns parâmetros para fazer a escolha. Para serem selecionados, os participantes precisam bloquear um stake, um valor predeterminado da moeda nativa da blockchain. O stake funciona como uma garantia: assim como os réus colocam uma grande quantia de dinheiro para desencorajar que eles fujam do julgamento, os validadores bloqueiam um stake para não trapacear. Se eles agirem de forma desonesta, todo o stake (ou parte dele) será confiscado.

A Prova de Participação (PoS) tem vantagens em relação à Prova de Trabalho (PoW). A mais notável é a redução da pegada de carbono. Como não é necessário ter fazendas de mineração de alta potência para a PoS, a eletricidade consumida é apenas uma fração da consumida com a PoW. 

Dito isso, a PoS não tem o mesmo histórico que a PoW. Embora possa ser vista como um desperdício, a mineração é o único algoritmo de consenso testado há mais de uma década. Desde seu lançamento, a PoW do Bitcoin protege transações no valor de bilhões de dólares. Para afirmar com certeza que a PoS está no mesmo nível de segurança da PoW, o staking precisa ser testado corretamente em larga escala.

Conclusão

A Prova de Trabalho era a solução original para o problema de gasto duplo e, desde então, comprovou sua confiabilidade e segurança. O Bitcoin provou que não precisamos de entidades centralizadas para impedir que fundos sejam gastos mais de uma vez. Com o uso inteligente de criptografia, funções de hash e teoria dos jogos, os participantes de um ambiente descentralizado conseguem concordar sobre o progresso de um banco de dados financeiro.

Para mais informações

  • O que é mineração de criptomoedas e como funciona?

  • O que é criptografia de chave pública?

  • O que é um algoritmo de consenso de blockchain?

Aviso de não responsabilidade e alerta sobre riscos: este conteúdo é fornecido “como está” apenas para fins de informação geral e de caráter educacional, sem quaisquer declarações ou garantias de qualquer tipo. Ele não deve ser interpretado como conselho financeiro, jurídico ou de um profissional, nem como uma forma de recomendar a compra de um produto ou serviço específico. Você deve se informar com profissionais adequados antes de qualquer decisão. Quando o artigo for redigido por um colaborador terceirizado, por favor, observe que as opiniões do artigo podem não refletir necessariamente as da Binance Academy. Leia o aviso de não responsabilidade na íntegra aqui para saber mais. Os preços de ativos digitais podem ser voláteis. O valor do seu investimento pode aumentar ou diminuir e você talvez não receba de volta o valor investido. Você é o(a) único(a) responsável pelas suas decisões de investimento e a Binance Academy não é responsável por eventuais perdas que você possa sofrer. Este conteúdo não deve ser interpretado como conselho financeiro, jurídico ou profissional. Para saber mais, consulte nossos Termos de Uso e o alerta sobre riscos.