Como funciona a prova de trabalho no bitcoin?

Resposta curta

A prova de trabalho é um atestado de que se gastou eletricidade de verdade em alguma coisa: um problema computacional é difícil de resolver e instantâneo de conferir. No bitcoin, esse problema fica na entrada do livro comum de pagamentos; na rede inteira, a solução aparece em média uma vez a cada dez minutos, e quem a encontra primeiro recebe moedas novas. A história só pode ser reescrita refazendo o trabalho mais rápido que todos os participantes honestos juntos.

Mikhail Savchenko

Um probleminha contra o spam

Em 1997, o criptógrafo britânico Adam Back inventou o Hashcash, um jeito de combater o spam. Antes de enviar um e-mail, o computador do remetente tinha de passar alguns segundos resolvendo um probleminha matemático sem sentido e anexar a solução. Para uma pessoa comum, alguns segundos por e-mail não custam nada, mas para um spammer que envia milhões de mensagens esse trabalho exigiria uma fazenda inteira de computadores. O destinatário conferia a solução na hora. Foi assim que surgiu a prova de trabalho (capítulo “O espectro da criptoanarquia”).

Dá para testar o probleminha de Back no próprio navegador, no experimento “Um selo Hashcash”. O navegador vai aumentando um contador até o hash da mensagem começar com o número certo de zeros, e isso leva tempo, enquanto conferir o selo pronto exige um único hash.

Do Hashcash ao bitcoin

As outras peças os cypherpunks foram pondo na mesa uma por uma. Em 1998, Wei Dai descreveu o b-money, um dinheiro mantido por todos os participantes ao mesmo tempo, em que as moedas novas iam para quem resolvesse um problema computacional. Quase ao mesmo tempo, Nick Szabo criou o Bit Gold, em que a solução do problema virava ela mesma um valor, como ouro tirado da terra, e cada solução nova se prendia à anterior. Em 2004, Hal Finney transformou a ideia de Back no RPOW, um servidor em que provas de trabalho passavam de mão em mão, só que o servidor pertencia ao próprio Finney (mesmo capítulo).

Nenhum desses esquemas decolou. O b-money não respondia como os participantes chegariam a um acordo sobre quem tinha razão quando os registros divergissem, e o Bit Gold ficou só na descrição (mesmo capítulo).

Como funciona no bitcoin

Satoshi Nakamoto pegou o problema de Back e o deixou muito mais pesado. Todos os participantes guardam o mesmo livro de pagamentos, os pagamentos novos são reunidos num bloco, e para colar o bloco ao livro é preciso achar uma solução. O problema é calibrado para que a solução apareça em média uma vez a cada dez minutos na rede inteira, e quem a encontra primeiro ganha moedas novas como recompensa. Vira uma loteria em que os bilhetes são comprados com eletricidade. Cada bloco aponta para o anterior, e a rede fica com a cadeia em que se gastou mais trabalho (capítulo “O deus ocioso”).

Daí vem a proteção. Para reescrever a história e gastar uma moeda duas vezes, seria preciso recalcular todos os blocos depois do seu pagamento mais rápido que o resto da rede (mesmo capítulo). Mais sobre isso na resposta sobre o gasto duplo. No verão de 2010 eu mesmo liguei a geração na carteira do meu MacBook, e o processador passou a testar números atrás daquele que serviria para o próximo bloco.

O que os moradores de Yap já sabiam

Na ilha de Yap se pagava com rodas de pedra talhadas em Palau e trazidas pelo oceano em canoas. Nos anos 1870, o capitão David O’Keefe passou a levar os ilhéus no seu navio e a dar a eles ferramentas de ferro, e as pedras se multiplicaram. Os ilhéus as avaliaram à sua maneira. Uma pedra pequena, talhada com as ferramentas antigas, valia mais que uma roda enorme trazida no porão de um navio estrangeiro, porque o preço de uma pedra era dado pelas pessoas que se afogaram para trazê-la, pelas tempestades e pelos anos gastos (capítulo “Uma pedra no fundo do mar”).

Cento e trinta anos antes de Satoshi, os moradores de Yap descobriram o que os programadores chamariam depois de prova de trabalho. Um registro vale o quanto custa falsificá-lo, e quando a extração fica mais barata, o dinheiro também fica. O bitcoin resolve isso sozinho, aumentando a dificuldade de mineração a cada duas semanas, para que novas ferramentas de ferro simplesmente não existam (mesmo capítulo). Dá para passar uma pedra para outra família e pintar as marcas alemãs no experimento “As pedras de Yap”.

Outras perguntas

Quem inventou a prova de trabalho?
O criptógrafo britânico Adam Back, em 1997, no Hashcash, um sistema contra spam. Satoshi Nakamoto citou o Hashcash no seu texto sobre o bitcoin.
Por que o bitcoin ajusta a dificuldade de mineração?
Para que a solução apareça em média a cada dez minutos, seja qual for o poder de computação da rede. A dificuldade é recalculada a cada duas semanas, e por isso equipamento mais rápido não barateia as moedas.
Ninguém Tem Dinheiro

Livro

Ninguém Tem Dinheiro

A verdadeira história das criptomoedas

A invenção de Satoshi era real. Seus primeiros clientes foram as pessoas que os bancos recusavam.