Introdução

A Prova de Trabalho (frequentemente abreviada como “PoW”) é um mecanismo de prevenção para o problema de gasto duplo. A grande maioria das criptomoedas usa esse mecanismo de algoritmo de consenso. Chamamos essa abordagem de livro-razão criptograficamente seguro.

A prova de trabalho é um dos primeiros algoritmos de consenso e ainda é popular hoje. Satoshi Nakamoto introduziu esse conceito no white paper Bitcoin lançado em 2008, mas a tecnologia em si já havia sido concebida antes.​

Antes mesmo de existirem criptomoedas, o HashCash de Adam Back era um dos primeiros exemplos de algoritmo de prova de trabalho. HashCash alivia o problema de spam que assola os destinatários, exigindo que o remetente execute uma pequena quantidade de cálculos antes de o e-mail ser enviado. Esses cálculos são quase fáceis para remetentes regulares, mas para aqueles que enviam grandes quantidades de e-mail, a carga aumenta rapidamente.


Qual é o problema do gasto duplo?

O gasto duplo ocorre quando os mesmos fundos são usados ​​várias vezes. Este termo é essencialmente exclusivo do mundo das moedas digitais, uma vez que a mesma quantia em dinheiro não pode ser paga duas vezes na vida real. Por exemplo, depois de pagar ao caixa pelo seu café, ele fica trancado na caixa registradora. É impossível para um cliente comprar outra xícara de café na cafeteria do outro lado da rua pela mesma quantia.

Isto pode acontecer se um esquema de dinheiro digital for implementado. Todos nós já copiamos arquivos de computador antes e podemos enviar o mesmo arquivo por e-mail para dez, vinte ou até cinquenta pessoas apenas copiando e colando.​

Uma vez que as moedas digitais são apenas formas de dados, precisamos de ter cuidado com a possibilidade de outros copiarem e pagarem pela mesma moeda noutro local. Caso contrário, o nosso sistema monetário entrará em colapso em breve.​

Se você quiser saber mais sobre o problema do gasto duplo, leia "Explicação detalhada do problema do gasto duplo".


Por que a prova de trabalho é necessária?

Se você leu nosso guia sobre tecnologia blockchain, saberá que os usuários publicam transações na rede. Mas essas transações não entram em vigor imediatamente, mas somente após serem adicionadas ao blockchain.​

O blockchain é um enorme banco de dados visível para todos os usuários, para que todos possam ver como os fundos foram usados ​​anteriormente. Imagine isto: você e três outros amigos compartilham um bloco de notas. Não importa quem queira transferir dinheiro em qual moeda, isso será registrado. Por exemplo, Alice paga a Bob 5 unidades monetárias e Bob paga a Carol 2 unidades monetárias.

A complicação desse processo é que a origem dos recursos deve ser mencionada em cada transação. Portanto, se Bob está pagando a Carol duas unidades monetárias, a fonte dos fundos é, na verdade, Bob pagando a Carol duas unidades monetárias de sua transação anterior com Alice.

Dessa forma, temos uma maneira de rastrear essas moedas. Se Bob tentar realizar outra transação usando a mesma unidade monetária que foi paga anteriormente a Carol, em breve todos saberão disso. O compartilhamento de membros do grupo não permitirá que esta transação seja registrada no Bloco de Notas.

Para pequenos grupos, esta abordagem pode funcionar muito bem. Todos se conhecem e podem chegar a um acordo sobre qual amigo registrará a transação no bloco de notas. O que aconteceria se fosse um grupo de 10.000 participantes? Neste ponto, o Bloco de Notas não pode ser expandido de forma eficaz, afinal, ninguém confiaria em um estranho para cuidar do livro-razão.

É aqui que entra a prova de trabalho. A prova de trabalho garante que os usuários não tenham permissão para gastar fundos aos quais não têm acesso. O algoritmo de prova de carga de trabalho combina teoria dos jogos e criptografia para permitir que todos atualizem o blockchain de acordo com as regras do sistema.


Como funciona a prova de trabalho?

O blockchain é o bloco de notas que mencionamos acima. Mas agora não adicionamos transações uma por uma, mas as empacotamos em blocos. Publicamos transações na rede e o usuário que criou o bloco conta a transação em um bloco candidato. Somente quando o bloco candidato se tornar um bloco confirmado a transação terá efeito. Ou seja, a transação é adicionada ao blockchain.

No entanto, adicionar blocos não é barato. A prova de trabalho exige que os mineradores (usuários que criam blocos) usem seus próprios recursos para obter privilégios. Recursos são poder de computação, que podem ser usados ​​para bloquear dados até que uma solução para um problema difícil seja encontrada.

Hashing de dados de bloco refere-se a trazer dados para uma função hash para gerar um valor de hash de bloco. O hash do bloco atua como uma “impressão digital”, uma identificação dos dados de entrada e é exclusivo para cada bloco.

É quase impossível obter os dados de entrada invertendo o hash do bloco. No entanto, conhecendo os dados de entrada, você pode facilmente confirmar se o valor do hash está correto. Basta enviar a entrada para a função e ver se a saída é a mesma.

Dos dados fornecidos para a prova de trabalho, o valor do hash deve atender a determinadas condições. Mas os usuários não sabem como fazer isso. A única coisa que eles podem fazer é passar os dados para uma função hash para verificar se atendem aos critérios. Se não corresponder, modifique ligeiramente os dados e obtenha um valor de hash diferente. Alterar até mesmo um caractere nos dados pode produzir resultados totalmente diferentes, de modo que a saída não pode ser prevista.

Portanto, criar blocos é um jogo de adivinhação. De modo geral, os usuários precisam agregar todas as informações da transação e alguns outros dados importantes a serem adicionados e, em seguida, fazer hash deles simultaneamente. Como o conjunto de dados não muda, uma informação variável precisa ser adicionada. Caso contrário, o valor do hash de saída será sempre consistente. Esses dados variáveis ​​​​são chamados de "número aleatório". Contanto que você tente alterar o nonce todas as vezes, obterá um valor de hash diferente. Este processo é chamado de “mineração”.

Resumindo, a mineração é o processo de coletar dados de blockchain e hash deles com a ajuda de números aleatórios até que um valor de hash específico seja encontrado. Se o valor hash resultante atender às condições estabelecidas pelo protocolo, um novo bloco poderá ser publicado na rede. Ao mesmo tempo, outros participantes da rede podem atualizar suas próprias blockchains para incluir novos blocos.

Para as principais criptomoedas de hoje, é bastante desafiador atender às condições. Quanto maior a taxa de hash de uma rede, mais difícil será encontrar hashes válidos. Isso diminui a velocidade de geração de blocos.

Você pode imaginar o alto custo de adivinhar grandes valores de hash usando um computador pessoal. Isso consome muito tempo e energia de computação. Mas desde que um hash válido seja encontrado, o protocolo recompensa você com criptomoeda.

Vamos revisar o que sabemos até agora:

  • A mineração é cara.

  • Gere blocos válidos para ganhar recompensas.

  • Conhecendo os dados de entrada, o usuário pode verificar facilmente o valor do hash. Os usuários que não mineram podem verificar se o bloco é válido sem gastar muito poder computacional.

Até agora está tudo normal. Mas o que acontece se alguém tentar trapacear? Como podemos impedir a prática de inserir grandes números de transações fraudulentas em blocos para gerar hashes válidos?

A criptografia de chave pública surgiu. Este artigo não entrará em detalhes aqui. Leia "O que é criptografia de chave pública?" " para mais detalhes. Simplificando, usamos algumas técnicas de criptografia compatíveis para verificar se alguém tem autoridade para acessar uma determinada quantia de fundos.

Ao criar uma transação, você a assina. Os usuários da rede podem comparar sua assinatura pessoal com sua chave pública para verificar se elas correspondem. Ao mesmo tempo, os utilizadores também podem verificar se a pessoa tem o direito de utilizar os fundos e se o montante total de entrada é superior ao montante total de saída, ou seja, as despesas pessoais não devem exceder o montante de retenção.

A rede rejeita automaticamente blocos contendo transações inválidas. O custo de tentar trapacear é muito alto. Não é apenas um desperdício de recursos, mas você também não recebe recompensas.

O mistério da prova de trabalho é revelado – o custo da fraude é alto, mas o lucro da operação honesta é enorme. Os mineradores sábios buscarão o retorno do investimento (ROI), agirão com cautela e garantirão lucros.



Quer começar sua jornada com criptomoedas? Acesse Binance e compre Bitcoin agora!



Prova de Trabalho vs. Prova de Participação

A Prova de Participação (PoS) também é um foco importante entre muitos algoritmos de consenso. O conceito remonta a 2011 e foi implementado em vários protocolos menores. Mas ainda não foi adotado entre os grandes blockchains.

Num sistema de prova de aposta, os mineiros são substituídos por “validadores” e não há competição envolvida na mineração e na adivinhação de hashes. Em vez disso, os usuários selecionados aleatoriamente são obrigados a propor ou "cunhar" blocos. Se o bloqueio for válido, o usuário receberá uma recompensa composta por taxas de transação do bloco.

É claro que existem limites para o processo de seleção, e o acordo considerará de forma abrangente vários fatores para selecionar os usuários. Para se qualificar, os participantes devem garantir uma aposta, um valor predeterminado da moeda nativa do blockchain. Uma promessa funciona como uma fiança. Por exemplo, para evitar que os réus evitem o julgamento, eles devem pagar grandes fianças, e os validadores precisam firmar “promessas” para evitar trapaças. Em caso de fraude, a totalidade ou parte do penhor será confiscada.

Comparada com a prova de trabalho, a prova de aposta tem certas vantagens. O mais óbvio é a redução da pegada de carbono, uma vez que o Proof-of-Stake não requer fazendas de mineração de alta potência e consome apenas uma fração da eletricidade do Proof-of-Work.​

Mesmo assim, a popularidade da Prova de Participação ainda está longe da popularidade da Prova de Trabalho. Embora considerada um desperdício, a mineração provou ser o único algoritmo de consenso a ser usado em massa. Por mais de uma década, a prova de trabalho garantiu transações no valor de trilhões de dólares. Para saber se a prova de aposta pode competir com a prova de trabalho em termos de segurança, a aposta ainda precisa ser totalmente testada em operações reais.​


Resumir

A prova de trabalho foi a solução inicial para o problema do gasto duplo, e sua confiabilidade e segurança foram comprovadas. O Bitcoin prova que não precisamos depender de uma entidade centralizada para evitar que o mesmo dinheiro seja gasto duas vezes. Os participantes num ambiente descentralizado podem monitorizar de forma coordenada o estado das bases de dados financeiras através do uso inteligente de criptografia, funções hash e teoria dos jogos.