Em criptomoeda, o double-spending é uma vulnerabilidade que permite a hackers alterar uma rede de blockchain e usar o mesmo token digital para diferentes transações. Este problema pode tornar-se um grande contratempo para o ativo digital por duas razões principais:
- Cria uma discrepância entre os registos de gastos e os montantes disponíveis da moeda transacionada.
- Afeta a distribuição da moeda e causa a diluição do ativo.
Exemplos/tipos de ataques double-spending incluem ataques “race”, ataques de 51% e o ataque de Finney. Um ataque “race” é quando o atacante inicia duas transações usando o mesmo ativo digital, mas com a intenção de apenas uma ser confirmada. Por exemplo, eles podem iniciar um pagamento ao comerciante A enquanto transmitem o mesmo montante ao comerciante B. Se a última transação for bem-sucedida primeiro, o comerciante A não receberá o pagamento.
Um ataque de 51% acontece quando hackers ou criminosos obtêm a maioria do controle sobre uma blockchain. Isto permite aos atacantes verificar ou negar qualquer transação, independentemente da sua legitimidade. Eles também conseguem modificar a disposição de blocos, permitindo que eventos de double-spending passem despercebidos. Isto é principalmente direcionado a redes mais pequenas, em oposição a grandes blockchains como a Bitcoin ou a Ethereum.
O ataque Finney, nomeado em homenagem a um dos primeiros adeptos da Bitcoin, Hal Finney, é direcionado a comerciantes que não aguardam pela confirmação das transações. Finney descreve isso como uma situação em que um miner pode gerar um bloco que inclui uma transação do endereço A para o endereço B, sendo que ambos são de propriedade do atacante.
Em seguida, o atacante fará outra transação do endereço A para o endereço C (que pertence a um comerciante). Se o comerciante aceitar a troca de bens ou serviços sem confirmação da rede, o atacante pode libertar o bloco com a transação inicial. Isto invalida a transação feita ao comerciante.