Aspectos chaves

  • 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

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. Esses 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 confiança entre elas.

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.

O HashCash de Adam Back é um dos primeiros exemplos de algoritmo de Prova de Trabalho na era anterior ao surgimento das criptomoedas. Ao exigir que os remetentes realizem um cálculo mínimo antes de enviar um e-mail, os destinatários podem mitigar o spam. Esse cálculo não custaria praticamente nada a um remetente legítimo, mas aumentaria rapidamente para alguém que envia e-mails em massa.

O que é gasto duplo?

O 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 na caixa registradora. Você não pode ir até a cafeteria do outro lado da rua e pagar outro café com as mesmas contas que já entregou. No entanto, em sistemas de dinheiro digital, existe a possibilidade de você fazer isso.

Você provavelmente duplicou um arquivo de computador usando 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, é preciso evitar que as pessoas dupliquem os gastos, ou seja, copiem e gastem as mesmas unidades em lugares diferentes. Um sistema de pagamento digital que não consiga evitar a duplicação de gastos entrará em colapso em pouco tempo.

Para obter mais informações sobre gastos duplos, consulte Gastos duplos explicados.

Por que o mecanismo de Prova de Trabalho é necessário?

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

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

Alice, o par de Bob 5 BTC; Bob, o par de Carol 2 BTC, etc.

Mas, toda 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 ficaria assim:

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

Agora temos uma maneira de rastrear unidades BTC. Se Bob tentar fazer outra transação com 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 notebook porque esses 2 BTC já foram gastos.

Isso é algo que pode funcionar bem em um grupo pequeno. Todos se conhecem, então provavelmente concordarão sobre quais amigos devem adicionar transações ao caderno. Mas o que acontece se quisermos ter um grupo com 10 mil participantes? A ideia do notebook não se adapta bem, porque ninguém quer confiar em um estranho para gerenciá-lo.

É aqui que o mecanismo de Prova de Trabalho entra em ação. Ele garante que os usuários não gastem dinheiro que não têm o direito de gastar. Usando 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 notebook do exemplo anterior seja o blockchain, mas ali não adicionamos as transações uma a uma, mas sim as agrupamos em blocos. Anunciamos as transações na rede e então os usuários que criarem um bloco irão incluí-las 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 foi adicionado ao banco de dados blockchain.

O processo de validação de transações e adição 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 do usuário 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 computacional para fazer 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 hash para gerar um hash do 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 hash para criar um hash válido. Se conseguir encontrar um hash válido para seu bloco candidato, ele o transmite para a rede, adiciona o bloco ao blockchain e coleta 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, é essencial que alguém confirme 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 atenda a determinadas condições. No entanto, você não sabe como conseguir isso. A única opção que você tem é passar seus dados por uma função hash e verificar se as condições foram atendidas. Caso contrário, você precisará modificar ligeiramente seus dados para obter um hash diferente. Mesmo a alteração de um único caractere em seus dados produzirá um resultado completamente diferente, portanto, não há como prever como será a saída.

Como resultado, se você quiser criar um bloco, 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 depois os agrupa. Mas como seu conjunto de dados não mudará, você deverá adicionar informações variáveis. 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ê obterá um hash diferente a cada vez.

Resumindo, mineração é o processo de coletar dados de blockchain e fazer hash deles 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 da atualidade, as condições são incrivelmente difíceis de cumprir. 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 para o seu computador: você está desperdiçando ciclos de computador e eletricidade. No entanto, se você encontrar um hash válido, o protocolo irá recompensá-lo com criptomoeda.

Vamos recapitular o que sabemos até agora:

  • A mineração é difícil e cara, mas proporciona 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 vamos nos aprofundar nisso neste artigo, mas confira O que é criptografia de chave pública? para obter uma visão abrangente do tema. Resumindo, existem alguns truques criptográficos 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 ver se elas correspondem. Eles também verificarão se você realmente pode gastar seus fundos e se a soma de seus insumos é maior 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. Até tentar trapacear custa caro: você perderá seus próprios recursos sem receber qualquer recompensa.

Essa é a beleza do mecanismo de Prova de Trabalho: torna caro enganar, 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 rendimento.

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

Além do PoW, existem muitos algoritmos de consenso, 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 ou corrida para adivinhar os 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.

No entanto, não é possível selecionar qualquer usuário: o protocolo os escolhe com base em vários fatores. Para serem elegíveis, os participantes devem bloquear uma aposta, que é um valor predeterminado da moeda nativa do blockchain. A aposta funciona como a fiança: assim como os réus pagam uma grande quantia em dinheiro para evitar ir a julgamento, os validadores bloqueiam uma aposta para desencorajar o engano. Se agirem desonestamente, a sua aposta (ou parte dela) será tomada.

O mecanismo de Prova de Participação tem algumas vantagens sobre a Prova de Trabalho. O mais notável é a menor pegada de carbono: uma vez que fazendas de mineração de alta potência não são necessárias no PoS, a eletricidade consumida é apenas uma fração daquela consumida no PoW.

Dito isto, o PoS não tem a mesma história que o PoW. Embora possa ser considerada um desperdício de recursos, a mineração é o único algoritmo de consenso testado em batalha há mais de uma década. Desde o seu lançamento, o mecanismo PoW do Bitcoin garantiu transações no valor de trilhões de dólares. Para dizer com certeza se o PoS pode rivalizar com a segurança do PoW, o staking precisa ser testado adequadamente no longo prazo.

Conclusões

A Prova de Trabalho foi a solução original para o problema de gastos duplos 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 ou criptomineração e como funciona?

  • O que é criptografia de chave pública?

  • O que é um algoritmo de consenso blockchain?

Aviso Legal e Aviso de Risco: Este conteúdo é apresentado "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 individual de consultores profissionais adequados. Como este artigo foi contribuído por terceiros, observe que as opiniões expressas são do colaborador terceirizado e não refletem necessariamente as da Binance Academy. Para mais informações, leia nosso aviso legal completo aqui. Os preços dos ativos digitais podem ser voláteis. O valor de um investimento pode diminuir ou aumentar e você pode não recuperar o valor investido. Somente você é responsável por suas decisões de investimento. 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.