Principais conclusões

  • Prova de Trabalho (PoW) é um mecanismo de consenso criado para evitar gastos duplos em sistemas de pagamento digital.

  • PoW é uma parte fundamental do processo de mineração, que envolve adicionar novos blocos de transações ao blockchain e criar novas unidades de criptomoeda.

  • Bitcoin e muitas outras criptomoedas usam PoW como método para proteger sua rede e dados blockchain.

Introdução

Resumindo, Prova de Trabalho (PoW) é um mecanismo criado para evitar gastos duplos em sistemas de pagamento digital. Bitcoin e muitas outras criptomoedas usam PoW como método para proteger sua rede e dados blockchain. Tais mecanismos são frequentemente chamados de algoritmos de consenso ou mecanismos de consenso, porque envolvem múltiplas partes que alcançam o consenso sem a necessidade de confiar umas nas outras.

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

O HashCash de Adam Back é um dos primeiros exemplos de algoritmo de prova de trabalho na época pré-criptomoeda. Ao exigir que os remetentes realizem uma pequena quantidade de computação antes de enviar um e-mail, os destinatários podem mitigar o spam. Esse cálculo não custaria praticamente nada para um remetente legítimo, mas aumentaria rapidamente para alguém que envia e-mails em massa.

O que é um gasto duplo?

Um gasto duplo ocorre quando os mesmos fundos são gastos mais de uma vez. O termo é usado quase exclusivamente no contexto do dinheiro digital – afinal, seria difícil gastar o mesmo dinheiro físico duas vezes.

Quando você paga por um café hoje, você entrega o dinheiro a um caixa que provavelmente o guarda em uma caixa registradora. Você não pode ir à cafeteria do outro lado da rua e pagar outro café com a mesma conta. No entanto, em sistemas de dinheiro digital, existe a possibilidade de que sim.

Você certamente duplicou um arquivo de computador antes de usar os comandos de copiar e colar. Também é fácil enviar o mesmo arquivo por e-mail para dezenas de pessoas. Como o dinheiro digital é apenas dados, é necessário evitar que as pessoas gastem duas vezes, ou seja, copiem e gastem as mesmas unidades em locais diferentes. Um sistema de pagamento digital que não consiga evitar o gasto duplo entrará em colapso rapidamente.

Para uma análise mais aprofundada dos gastos duplos, confira Explicação dos gastos duplos.

Por que a prova de trabalho é necessária?

Se você leu nosso artigo sobre a tecnologia blockchain, saberá que os usuários de criptomoedas estão constantemente transmitindo transações para a rede. No entanto, essas transações não são imediatamente consideradas válidas. Isso só acontece quando eles são confirmados e adicionados ao blockchain.

O blockchain do Bitcoin, por exemplo, funciona como um banco de dados de transações públicas (ledger) que todos os usuários podem ver. Imagine assim: você e três amigos têm um bloco de notas para rastrear suas transações de bitcoin. Sempre que um de vocês quiser fazer uma transferência de valor, anote:

Alice paga a Bob 5 BTC; Bob paga a Carol 2 BTC, etc.

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

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

Agora temos uma forma de rastrear as unidades de BTC. Se Bob tentar fazer outra transação usando os mesmos 2 BTC que acabou de enviar para 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.

Agora, isso pode funcionar bem em um grupo pequeno. Todos se conhecem, então provavelmente concordarão sobre qual dos amigos deve adicionar transações ao bloco de notas. E se quisermos um grupo de 10.000 participantes? A ideia do bloco de notas não se adapta bem, porque ninguém quer confiar em um estranho para gerenciá-lo.

É aqui que entra a Prova de Trabalho. Ela 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 o blockchain de acordo com as regras do sistema.

Como funciona o PoW?

Imagine que nosso bloco de notas do exemplo acima seja o blockchain. Mas não adicionamos transações uma por uma – em vez disso, agrupamo-las em blocos. Anunciamos as transações à rede e, em seguida, os usuários que criam um bloco irão incluí-las em um bloco candidato. As transações só serão consideradas válidas quando o seu bloco candidato se tornar um bloco confirmado, o que significa que foi adicionado ao banco de dados do blockchain.

O processo de validação de transações e acréscimo de novos blocos é chamado de mineração. É caro e difícil, mas também pode ser gratificante. A recompensa do bloco é composta por taxas de transação dos usuários e 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 de seu bloco candidato até que uma solução para um quebra-cabeça seja encontrada.

Fazer hash dos dados do bloco significa passá-los por uma função de hash para gerar um hash de bloco. O hash do bloco funciona como uma “impressão digital” – é uma identidade para os 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 meio de uma função de hashing para criar um hash válido. Se conseguirem encontrar um hash válido para seu bloco candidato, eles o transmitem para a rede, adicionam o bloco ao blockchain e coletam as recompensas de mineração.

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

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

Na Prova de Trabalho, você deve fornecer dados cujo hash corresponda a determinadas condições. Mas você não sabe como chegar lá. Sua única opção é passar seus dados por uma função hash e verificar se atendem às condições. Caso contrário, você terá que alterar ligeiramente seus dados para obter um hash diferente. Alterar até mesmo um caractere em seus dados resultará em um resultado totalmente diferente, portanto, não há como prever qual seria a saída.

Como resultado, se quiser criar um bloco, você estará jogando um jogo de adivinhação. Normalmente, você obtém informações sobre todas as transações que deseja adicionar e alguns outros dados importantes e, em seguida, mistura tudo isso. Mas como seu conjunto de dados não mudará, você precisa adicionar uma informação que seja variável. Caso contrário, você sempre obteria o mesmo hash da saída. Esses dados variáveis ​​​​são o que chamamos de nonce. É um número que você mudará a cada tentativa, então você receberá um hash diferente a cada vez.

Resumindo, mineração é o processo de coletar dados de blockchain e fazer hash deles junto com um nonce até encontrar um hash específico. Se você encontrar um hash que atenda às condições estabelecidas pelo protocolo, você terá o direito de transmitir o novo bloco para a rede. Neste ponto, os demais participantes da rede atualizam suas blockchains para incluir o novo bloco.

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

Como você pode imaginar, tentar adivinhar grandes quantidades de hashes pode custar caro no seu computador. Você está desperdiçando ciclos computacionais e eletricidade. Mas o protocolo irá recompensá-lo com criptomoeda se você encontrar um hash válido.

Vamos recapitular o que sabemos 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.

  • Gerar um hash válido leva tempo, mas outros usuários podem facilmente verificar sua validade repetindo o processo de hash.

Até agora tudo bem. Mas e se você tentar trapacear? O que impede você de colocar um monte de transações fraudulentas no bloco e produzir um hash válido?

É aí que entra a criptografia de chave pública. Não entraremos em detalhes neste artigo, mas confira O que é criptografia de chave pública? para uma visão abrangente sobre isso. Resumindo, existem alguns truques criptográficos interessantes que permitem a qualquer usuário verificar se alguém tem o direito de movimentar os fundos que está tentando gastar.

Ao criar 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ê pode realmente gastar seus fundos e se a soma de seus insumos é maior do que a soma de seus resultados (ou seja, se você não está gastando mais do que tem).

Qualquer bloco que inclua uma transação inválida será automaticamente rejeitado pela rede. É caro até mesmo tentar trapacear. Você desperdiçará seus próprios recursos sem qualquer recompensa.

É aí que reside a beleza da Prova de Trabalho: torna caro trapacear, mas lucrativo agir honestamente. Qualquer mineiro racional procurará um retorno sobre o seu investimento, pelo que se pode esperar que se comporte de uma forma que tenha maior probabilidade de gerar receitas.

Prova de Trabalho (PoW) vs. Prova de Participação (PoS)

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

Nos sistemas Proof of Stake, os mineiros são substituídos por validadores. Não há mineração envolvida nem corrida para adivinhar hashes. Em vez disso, os usuários são selecionados aleatoriamente – se forem escolhidos, deverão propor (ou “forjar”) um bloco. Se o bloco for válido, eles receberão uma recompensa composta pelas taxas das transações do bloco.

Porém, não é qualquer usuário que pode ser selecionado – o protocolo os escolhe com base em uma série de fatores. Para serem elegíveis, os participantes devem garantir uma aposta, que é um valor predeterminado da moeda nativa do blockchain. A aposta funciona como uma fiança: assim como os réus investem uma grande quantia em dinheiro para desencorajá-los de faltar ao julgamento, os validadores bloqueiam uma aposta para desencorajar a trapaça. Se agirem desonestamente, a sua aposta (ou parte dela) será tomada.

A Prova de Participação tem alguns benefícios em relação à Prova de Trabalho. O mais notável é a menor pegada de carbono – uma vez que não há necessidade de fazendas de mineração de alta potência no PoS, a eletricidade consumida é apenas uma fração daquela consumida no PoW.

Dito isto, o PoS não tem o mesmo histórico que o PoW. Embora possa ser considerada um desperdício, a mineração é o único algoritmo de consenso testado em batalha há 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 se o PoS pode rivalizar com a sua segurança, o staking precisa ser devidamente testado a longo prazo.

Considerações finais

A Prova de Trabalho foi a solução original para o problema do gasto duplo e provou ser confiável e segura. O Bitcoin provou que não precisamos de entidades centralizadas para evitar que os mesmos fundos sejam gastos duas vezes. Com o uso inteligente de criptografia, funções hash e teoria dos jogos, os participantes de um ambiente descentralizado podem chegar a um acordo sobre o estado de um banco de dados financeiro.

Leitura adicional

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

  • O que é criptografia de chave pública?

  • O que é um algoritmo de consenso Blockchain?

Isenção de responsabilidade: este conteúdo é apresentado a você “como está” apenas para fins informativos gerais e educacionais, sem representação ou garantia de qualquer tipo. Não deve ser interpretado como aconselhamento financeiro, jurídico ou outro aconselhamento profissional, nem tem a intenção de recomendar a compra de qualquer produto ou serviço específico. Você deve procurar aconselhamento de consultores profissionais apropriados. Quando o artigo for contribuído por um contribuidor terceirizado, observe que as opiniões expressas pertencem ao contribuidor terceirizado e não refletem necessariamente as da Binance Academy. Por favor, leia nosso aviso completo aqui para obter mais detalhes. Os preços dos ativos digitais podem ser voláteis. O valor do seu investimento pode diminuir ou aumentar 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 quaisquer perdas que você possa incorrer. Este material não deve ser interpretado como aconselhamento financeiro, jurídico ou outro aconselhamento profissional. Para obter mais informações, consulte nossos Termos de Uso e Aviso de Risco.