O que é o problema do gasto duplo?

Resposta curta

O problema do gasto duplo é que uma moeda digital pode ser copiada, e o dono pode pagar dois vendedores com o mesmo arquivo. Durante anos a única saída foi um intermediário que mantém uma lista comum e risca as moedas gastas, ou seja, o mesmo banco dentro do computador. O bitcoin trocou o intermediário por uma rede em que reescrever o histórico de pagamentos custa mais do que participar dele honestamente.

Mikhail Savchenko

Por que dinheiro em arquivo não funciona

Quando, no fim do século XX, o dinheiro virou de vez um registro no computador, esse registro revelou uma característica desagradável: ele pode ser copiado. Uma música ou um livro em formato eletrônico são reenviados sem fim, o remetente continua com o seu, o destinatário recebe um igual, e não dá para distinguir a cópia do original. Com uma música, isso é um desastre para as gravadoras. Com dinheiro, é o fim do dinheiro. Se a moeda é um arquivo, o dono pode mandar o mesmo arquivo a dois vendedores e pagar duas vezes (capítulo “Uma pedra no fundo do mar”).

Os programadores chamaram isso de problema do gasto duplo. Dá para ver como funciona no experimento “Uma moeda, dois vendedores”: primeiro você paga os dois vendedores com uma moeda em forma de arquivo, depois tenta o mesmo por meio de um contador que mantém a lista comum.

A solução do intermediário

Durante muitos anos o problema teve uma única solução. É preciso alguém no meio que mantenha a lista comum e risque a moeda gasta antes de aceitá-la do próximo. Ou seja, o mesmo banco, só que no computador. Toda moeda digital sem contador central batia nesse muro, e toda que aceitava um virava mais um banco (mesmo capítulo).

Até a solução mais elegante antes do bitcoin funcionava assim. Em 1982 David Chaum apresentou a assinatura cega: o banco assina a moeda sem ver o número, e quando ela volta confere na lista se ninguém gastou esse número ainda. O gasto duplo estava vencido, e o banco não conseguia ligar a moeda a quem pagou. Mas quem emitia o dinheiro continuava sendo um banco, e em 1998 a empresa de Chaum, a DigiCash, faliu (capítulo “O espectro da criptoanarquia”). O e-gold e o Liberty Reserve também tinham dono, servidor e endereço, e portanto havia quem prender e o que desligar (mesmo capítulo).

Como Satoshi resolveu

Satoshi Nakamoto entregou a lista comum a todos ao mesmo tempo. Cada participante guarda o mesmo livro de pagamentos desde o início. Os pagamentos novos são reunidos num bloco, e para colá-lo ao livro é preciso resolver um problema computacional pesado. Cada bloco aponta para o anterior, e se dois participantes acham a solução ao mesmo tempo, a rede acaba escolhendo a cadeia em que se gastou mais trabalho (capítulo “O deus ocioso”).

Para gastar uma moeda duas vezes, um trapaceiro teria de recalcular todos os blocos depois do seu pagamento mais rápido que o resto da rede, ou seja, ter mais poder de computação que todos os participantes honestos juntos. O contador central deixou de ser necessário. No lugar dele entrou uma multidão de desconhecidos, cada um queimando eletricidade pela recompensa e, com isso, protegendo o registro de todos os outros (mesmo capítulo). Como um atacante com menos poder fica para trás da cadeia honesta está no experimento “Gasto duplo contra a cadeia mais longa”, e o problema computacional é explicado na resposta sobre a prova de trabalho.

Por que isso ainda importa

O dinheiro comum funciona com uma condição: alguém mantém o livro principal, e todos os outros confiam nele ou não têm escolha. O banco sabe quanto dinheiro você tem porque ele mesmo anotou, e ele também pode congelar a sua linha ou recusar um pagamento (capítulo “Uma pedra no fundo do mar”). Por mais de vinte anos, os criptógrafos que tentavam dispensar esse livro esbarraram no gasto duplo. Em 2010 eu olhava para a solução de Satoshi com o entusiasmo de um engenheiro diante da solução alheia em que ele mesmo poderia ter pensado, mas não pensou.

Outras perguntas

Dá para gastar um bitcoin duas vezes?
Só reescrevendo o histórico de pagamentos mais rápido que o resto da rede, ou seja, tendo mais poder de computação que todos os participantes honestos juntos.
Como se evitava o gasto duplo antes do bitcoin?
Com um intermediário que mantém a lista comum e risca as moedas gastas. Assim funcionavam a DigiCash de David Chaum e os bancos comuns, e sem esse intermediário o dinheiro não funcionava.
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.