Visão Geral
O gasto duplo é o problema fundamental que o Bitcoin foi projetado para resolver: como evitar que uma moeda digital seja copiada e gasta mais de uma vez sem depender de um intermediário confiável. Em sistemas digitais tradicionais, uma autoridade central (como um banco) mantém um livro-razão para evitar gastos duplicados. O Bitcoin substitui isso por um mecanismo de consenso descentralizado baseado em prova de trabalho.
Como o Gasto Duplo Poderia Ser Tentado
Alice tem 1 BTC em um UTXO
Tentativa de gasto duplo:
┌──────────────────────────────────────────┐
│ │
│ TX-A: Alice → Bob (1 BTC por bens) │──► Transmitir
│ │
│ TX-B: Alice → Alice (1 BTC de volta) │──► Transmitir
│ │
│ Ambas referenciam o mesmo UTXO │
│ Apenas UMA pode ser confirmada │
└──────────────────────────────────────────┘
Tipos de Ataques de Gasto Duplo
Ataque de corrida: O atacante envia duas transações conflitantes em rápida sucessão, esperando que o comerciante veja uma enquanto os mineradores confirmam a outra. Isso afeta principalmente comerciantes que aceitam transações de zero confirmações.
Ataque Finney: Um minerador pré-minera um bloco contendo uma transação que envia moedas de volta para si mesmo, então gasta essas mesmas moedas em um comerciante. O minerador imediatamente libera o bloco pré-minerado para substituir a transação do comerciante.
Ataque de 51%: Um atacante com hash power majoritário minera uma cadeia secreta que exclui a transação da vítima, depois a libera para sobrescrever a cadeia pública assim que for mais longa. Esta é a forma mais poderosa de gasto duplo, mas requer recursos enormes.
Como o Bitcoin Previne o Gasto Duplo
- Propagação de transações: Quando os nós recebem uma transação, rejeitam qualquer transação subsequente que tente gastar o mesmo UTXO
- Mineração: Os mineradores incluem apenas uma das transações conflitantes em seu bloco
- Confirmações: Cada confirmação adicional torna exponencialmente mais difícil reverter uma transação
- Regras de consenso: Todos os nós verificam independentemente que nenhum UTXO é gasto duas vezes
Melhores Práticas para Comerciantes
- Para pagamentos pequenos, transações de zero confirmações carregam risco mínimo
- Para valores moderados, esperar por 1-3 confirmações
- Para transações grandes, a recomendação tradicional é esperar por 6 confirmações
- Os pagamentos da Lightning Network alcançam finalidade quase instantânea para transações cotidianas
Conceitos Errôneos Comuns
- O Bitcoin não foi gasto duplamente com sucesso na rede principal em condições normais. Gastos duplos relatados tipicamente envolvem transações de zero confirmações ou exchanges que creditaram depósitos prematuramente.
- RBF (Replace-By-Fee) às vezes é confundido com gasto duplo, mas é uma funcionalidade deliberada para aumentar taxas em transações não confirmadas, não um ataque.