Bitcoin — Problema do gasto duplo (Double Spend Problem)

Cléber Oliveira
2 min readMay 7, 2018

--

Sabemos da facilidade de duplicação que arquivos eletrônicos(data) possuem. Por muito tempo os pesquisadores envolvidos em criar uma moeda virtual descentralizada assinada criptograficamente tiverem esse problema, como garantir que a mesma moeda não seja copiada em duas transações?

O bitcoin resolveu esse problema. Vamos imaginar uma pessoa tentando enviar o mesmo bitcoin para duas pessoas de forma simultânea a mesma quantidade de moedas.

As transações são no valor de 1 BTC(Bitcoin) cada, acontecem no mesmo tempo e X só possui 1 BTC:

Transação A = X -> Y em 2017–11–15T00:30:58Z

Transação B = X -> Z em 2017–11–15T00:30:58Z

As transações antes de serem confirmadas ficam no mempool, local de memória nos full nodes que armazena transações que ainda não possuem confirmações, assim no momento da montagem do bloco pode acontecer dois casos;

1- Se a transação A for processada antes, B será automaticamente rejeitada, pois as entradas(inputs) já teriam sido gastas anteriormente e não poderá ser confirmada. O reverso também é valido, B antes de A.

2- As transações A e B são processadas simultaneamente, nesse caso especifico teremos duas cadeias concorrentes e uma competição começará para verificar quem conseguirá o proximo bloco, por isso é sempre interessantes esperar algumas confirmações. Esse processo pode acontecer algumas vezes apesar de raro, mas uma das cadeias será negada pelos full nodes, ou seja, a cadeia de A ou B não continuará a existir em algum momento, fazendo o cancelamento de qualquer transação subsequente destruindo uma das cadeias.
*Com 6 confirmações o risco da transição ser cancelada é de 0.1%

Dessa maneira Satoshi Nakamoto resolveu o problema do gasto duplo sem a necessidade de um intermediário. Hoje todo controle financeiro é realizado pelos bancos centrais com informações recebidas dos bancos convencionais, dessa maneira eles conseguem assegurar que seu dinheiro seja gasto apenas uma vez. O sistema possibilita matematicamente uma maneira de confiança, onde fica claro a probabilidade minima de fazer uma copia valida de um bitcoin.

Uma transação na rede bitcoin leva cerca de 1 hora para ser validada e armazenada no blockchain. Hoje o Bitcoin é atraente no uso para envio de remessas ao exterior de forma rápida, segura e com alta liquidez, e seu grande potencial como store of value(algo escasso que tende a ter grande interesse de troca). O Bitcoin tem muito a desenvolver antes de ser usado no dia a dia, mas seu sistema decentralizado está tornando obsoleto os intermediadores de transações financeiras de forma excepcional, criando oportunidade para novos negócios digitais e novas aplicações financeiras.

--

--