O que é Proof of Work (PoW)?
P√°gina Inicial
Artigos
O que é Proof of Work (PoW)?

O que é Proof of Work (PoW)?

Intermedi√°rio
Publicado em Dec 6, 2018Atualizado em Apr 18, 2024
10m

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.