Este texto foi publicado no Jus no endereço https://jus.com.br/artigos/66683
Para ver outras publicações como esta, acesse https://jus.com.br

O que é "gasto duplo" e como o Bitcoin é capaz de evitá-lo?

O que é "gasto duplo" e como o Bitcoin é capaz de evitá-lo?

Publicado em . Elaborado em .

Você pode se surpreender ao saber que, mesmo antes do Bitcoin, houve inúmeras tentativas de criar um sistema monetário digital seguro e tecnicamente sustentável.

Você pode se surpreender ao saber que, mesmo antes do Bitcoin, houveram inúmeras tentativas de criar um sistema monetário digital seguro e tecnicamente sustentável.

Já no início da década de 90, desenvolvedores, criptógrafos e diferentes grupos de pessoas estavam tentando resolver o "problema do gasto duplo", relacionado ao dinheiro digital.

Todavia, todas essas tentativas falharam porque um problema óbvio com o dinheiro digital é que as transações podem ser copiadas e gastas duas vezes, assim como qualquer outro arquivo digital.

Com efeito, o Bitcoin só foi capaz de sobreviver e prosperar exatamente porque resolveu o "problema do gasto duplo", através de uma solução criptográfica descentralizada, proposta e publicada em 2008 por Satoshi Nakamoto em seu famoso white paper1.

Consequentemente, esse foi um grande problema e sua solução introduziu o Bitcoin ao mundo, sendo adotado rapidamente, ganhando popularidade e redefinindo a maneira como usamos dinheiro, ao ser a primeira criptomoeda funcional do planeta.


MAS AFINAL, O QUE É “GASTO DUPLO”?

“Gasto duplo” significa gastar o mesmo dinheiro duas vezes.

Fonte: <http://bitcoins.net/guides/double-spend.asp>. Acesso em: 27 de maio de 2018.

Por exemplo, se você comprar uma maçã por R$ 2,00 (dois reais), você não poderá gastar os mesmos R$ 2,00 (dois reais) para comprar uma laranja.

Se pudesse, o dinheiro em si seria inútil, pois todos teriam quantias ilimitadas e a escassez, a qual dá valor à moeda, desapareceria.

O "gasto duplo" (double spending2) de bitcoins (BTC) é o ato de se usar os mesmos bitcoins mais de uma vez em diferentes transações.

Vale lembrar que Bitcoin é dinheiro digital (P2P electronic cash), não dinheiro físico.

Portanto, as transações com Bitcoins têm a possibilidade de serem copiadas e retransmitidas. Isso abre a possibilidade de que o mesmo BTC possa ser gasto duas vezes pelo seu proprietário.

Como?

Ora, qualquer um pode simplesmente copiar o dinheiro digital e pagar em outro lugar. Afinal, moedas digitais, como o Bitcoin, são apenas mais uma forma de arquivos digitais3.

Digamos, por exemplo, que você tenha um arquivo salvo em seu computador. Você pode copiá-lo facilmente e, em seguida, enviá-lo para um amigo que o salvaria também em seu computador pessoal.

Logo, não há nada que impeça você de copiar esse arquivo muitas vezes e compartilhar o mesmo arquivo com várias pessoas, assim como já fazemos hoje com arquivos de textos, fotos, músicas em MP3, vídeos, etc.

Em nosso exemplo anterior, você pagou a maçã em dinheiro (papel-moeda), então o pagamento foi confirmado e verificado instantaneamente por outro humano.

Entretanto, com moedas digitais, como o BTC, se esse mecanismo de verificação estiver faltando, isso pode levar a um duplo gasto.

Atualmente, os sistemas bancários de pagamentos eletrônicos identificam os processos de transações financeiras e gerenciam seu saldo para que você não possa utilizar o mesmo dinheiro em duas operações diferentes.

No entanto, esse método é totalmente dependente de uma autoridade central que seja capaz de realizar as verificações necessárias nos saldos das contas de seus usuários.

Dessa forma, tudo é feito pelo sistema de transferência e de pagamentos controlado pelos bancos, tendo em vista a necessidade de um “terceiro de confiança” em métodos centralizados de pagamento.

Por outro lado, no sistema descentralizado do Bitcoin, não existe uma entidade central controladora, uma vez que em seu protocolo a confiança é criptográfica e baseada no consenso entre todos os membros que se utilizam da rede, de forma totalmente transparente, já que seu código fonte é aberto e auditável (open source) por qualquer um que assim o queira.

Como vimos, se o dinheiro digital pode ser falsificado (copiado), ele se torna inútil.

Eis aqui, portanto, pela primeira vez na história, a grande inovação trazida pelo Bitcoin: apesar de ser uma moeda digital (criptomoeda), ele resolve o problema de ser copiado e gasto duas vezes, sem a necessidade de controle centralizado por um “terceiro de confiança”, como veremos a seguir.


COMO O BITCOIN SOLUCIONA O “PROBLEMA DO GASTO DUPLO”?

Como vimos, a possibilidade de "gasto duplo" por um indivíduo é uma grande preocupação para todas as transações digitais.

Sendo assim, a rede Bitcoin se protege contra "gastos duplos" através da verificação de cada transação, por meio de um algoritmo de validação conhecido como "Prova de Trabalho" (Proof of Work ou PoW), realizado pelos chamados "mineradores", responsáveis por auditar e confirmar, ou seja, "minerar" todas as transações realizadas, prescindindo de uma autoridade central para tanto.

Dessa forma, cumpre elucidar que a mineração4 de bitcoins é o processo de fazer com que o hardware do computador faça cálculos matemáticos criptográficos para que a rede Bitcoin possa verificar a autenticidade e validade das transações, aumentando assim sua segurança.

Em razão disso, os mineradores de Bitcoin podem cobrar taxas de transação pelas transações que confirmam, sendo recompensados com bitcoins recém-criados.

Portanto, o trabalho dos "mineradores" é auditar essas operações e registrar a informação em uma base de dados pública, universalmente compartilhada e imutável, chamada Blockchain (cadeia de blocos).

Além disso, "a integridade e a ordem cronológica da cadeia de blocos são reforçadas com criptografia"5, ressalta o site Bitcoin.org, mantido pela Bitcoin Foundation.

É importante destacar que a Blockchain do Bitcoin mantém um ledger (livro-razão) de transações com registro de hora e ordem cronológica desde o início de sua operação em 20096.

Isso é feito através da criação de um número de "hash" específico para cada transação e bloco.

A cada 10 minutos, um bloco7 (ou seja, um grupo de transações) é adicionado ao ledger. E todos os nós da rede Bitcoin mantêm uma cópia desse livro de registros global (Blockchain).

Vejamos como a rede Bitcoin lida com o problema do "gasto duplo":

Fonte: <https://coinsutra.com/wp-content/uploads/2017/06/Bitcoin-Confirmations-e1498718174774.jpg>. Acesso em: 11 de maio de 2018.

Vamos supor que você tenha 1 bitcoin (BTC) que você tenta gastar duas vezes.

Você fez a transação de 1 BTC para um destinatário “x”. Agora, você novamente assina e envia o mesmo 1 BTC para um destinatário “y” para com isso tentar enganar o destinatário “x” e "y".

Sendo assim, ambas as transações entram no conjunto de transações não confirmadas. Mas apenas sua primeira transação recebeu confirmações e foi verificada pelos mineradores em seu bloco.

Todavia, sua segunda transação não conseguiu confirmações suficientes porque os mineradores consideraram a transação como inválida, logo, ela foi retirada da rede.

Isso ocorre porque, caso haja uma tentativa de realizar um gasto duplo em algum bloco, o bloco que será validado e reconhecido pela rede será aquele que veio da cadeia mais longa, ou seja, com maior poder computacional (hashpower).

Isso é feito de forma automática pelos computadores que sustentam a rede, dispensando a necessidade da intervenção humana para validação e registro das operações.

Mas e se tentativa de gasto duplo for realizada simultaneamente?

Quando os mineradores extraem as transações simultaneamente do pool de operações, qualquer transação que receber o número máximo de confirmações da rede será incluída na Blockchain e a outra será encarada como "gasto duplo" e será descartada automaticamente pela rede, tornando-se um "bloco-órfão".

Isso pode parecer injusto para o destinatário “x”, pois a transação pode falhar na obtenção de confirmações ou até mesmo ser aceita sem nenhuma confirmação. Sim, isso pode acontecer.

Portanto, o "gasto duplo" ainda é possível (embora altamente improvável) no Bitcoin. Se isso ocorrer, pelo menos uma das partes em uma das transações não receberá os bitcoins8.

Por isso, fiquem ligados!

É recomendável que qualquer destinatário de bitcoins espere por, pelo menos, 6 confirmações.

Fonte: <https://hackernoon.com/competitive-coin-obsolescence-d84daa7533b7>. Acesso em: 28 de maio de 2018.

Aqui, "6 confirmações" significa simplesmente que, depois que uma transação foi adicionada à Blockchain, mais 6 blocos contendo várias outras transações foram adicionados após ela.

"Confirmações9" nada mais são que blocos contendo mais transações sendo adicionadas à Blockchain.

Todas essas confirmações e transações são registradas na Blockchain, tornando-as irreversíveis e impossíveis de serem adulteradas10.

Portanto, se um destinatário “x” receber seu número mínimo de confirmações, ele poderá ter a certeza de que não foi um gasto duplo do remetente.

Por que o destinatário “x” pode estar certo?

Porque, para ser capaz de duplicar essa moeda, o remetente tem que voltar e reverter todas as transações nos 6 blocos que foram adicionados após a transação.

No entanto, depois que uma transação é confirmada, ela se torna irreversível e é registrada publicamente na Blockchain. Quanto mais confirmações uma transação tiver, mais difícil é gastar duas vezes os mesmos bitcoins.

Devido ao protocolo criptográfico de consenso, a probabilidade de uma transação de "gasto duplo" ser aceita diminui exponencialmente a cada confirmação que uma transação recebe.


COMO ATAQUES DE "GASTO DUPLO" PODEM ACONTECER?

Ataque 51% (majority attack)11:

Fonte: <https://i.ytimg.com/vi/dFi3dQsBIiU/maxresdefault.jpg>. Acesso em: 28 de maio de 2018.

Se, de alguma forma, um invasor capturar 51% do poder de hash da rede, ou seja, ter mais poder computacional do que todo o resto da rede Bitcoin, o gasto duplo pode acontecer.

"Hash power" significa o poder computacional que verifica as transações e blocos correspondentes. Se um invasor tiver esse controle, ele poderá reverter qualquer transação.

Mas para que isso ocorra, o fraudador deverá modificar todos os blocos anteriores ao que ele está tentando enviar o gasto duplo, da forma mais rápida possível e com mais poder computacional (hashpower) do que toda a rede Bitcoin.

Até agora, nenhum ataque desse tipo aconteceu, porque controlar 51% da rede é altamente dispendioso, já que depende da dificuldade atual da mineração, do preço do hardware e do custo da eletricidade, tornando eventual tentativa economicamente inviável.

Hoje a rede Bitcoin é uma das redes com maior poder computacional do mundo e qualquer tentativa de ataque se tornaria muito mais onerosa que qualquer possibilidade de ganho, desestimulando a "força computacional desonesta" e mantendo a integridade da rede.

Ataque de corrida (race attack12):

Um dos possíveis ataques de gasto duplo é chamado de "ataque de corrida", principalmente quando destinatários aceitam um pagamento de imediato, ou seja, com 0 confirmações, pagamento este que foi uma tentativa de gasto duplo em outra transação.

Fonte: <https://i.ytimg.com/vi/87bHzNsZs7M/maxresdefault.jpg>. Acesso em: 27 de maio de 2018.

Vejamos como:

Quando um atacante envia a mesma moeda em rápida sucessão para dois endereços diferentes, o resultado óbvio é que apenas um deles será incluído.

O mesmo ocorre se o fraudador enviar as mesmas moedas novamente para o endereço dele.

Sendo assim, depois que o atacante faz as duas transações, estas farão parte de um conjunto de transações não confirmadas. Qualquer que seja a transação verificada primeiro e receber 6 confirmações, será aceita e a outra será descartada.

Portanto, se você, como destinatário de bitcoins, não esperar pelas confirmações de pagamento, então, em um caso como esse, há 50% de chance de você receber a moeda com gasto duplo (e você não receberá esse dinheiro), caso o invasor receber as confirmações primeiro.

Com efeito, esses riscos não podem ser totalmente eliminados se transações continuarem sendo aceitas com 0 confirmações.

Por essa razão, não podemos nos esquecer que é recomendado a qualquer destinatário de bitcoins que espere pelo menos 6 confirmações.

Assim que validada, a transação é propagada pela Blockchain da rede.

Até agora, no entanto, nos quase 10 anos de história do Bitcoin, nenhum desses ataques foi bem-sucedido.

Com efeito, o mecanismo do Bitcoin em manter um livro-razão de transações universal e público, cujas validações se dão por um processo matemático de "Prova de Trabalho" (PoW) ainda precisa ser hackeado, já que não existem ocorrências de "gastos duplos" em seus blocos de transações13.

Fonte: <https://blockchain.info/pt/double-spends>. Acesso em: 11/05/2018.


CONCLUSÃO

Como vimos, a grande inovação advinda com o sistema P2P de dinheiro digital do Bitcoin foi a solução de um dos grandes problemas decorrentes da digitalização do dinheiro: o chamado "double spending" ou "gasto duplo".

E seu mérito maior foi realizar essa façanha descentralizadamente, de forma em que a própria rede garante a autenticidade de cada transação sem mais dependermos de uma autoridade central intermediadora, como governos, bancos ou outras instituições.

Sei que você deve estar se perguntando: Ok. Mas qual a relevância jurídica desse tema?

Pois bem. Foi exatamente a solução do problema do "gasto duplo" que alçou a rede Bitcoin ao status de sistema monetário digital fidedigno.

Tudo isso em razão de sua capacidade de autolegitimar as transações registradas em sua Blockchain, aberta e pública (open source), de forma totalmente descentralizada, através do processo de "Prova de Trabalho" (PoW) realizados pelos mineradores.

Por essa razão, hoje podemos considerar transações com bitcoins juridicamente válidas e eficazes, tendo em vista a legitimidade e a segurança imanente ao sistema P2P do Bitcoin.

A revolução tecnológica desse início do século XXI, advinda com o Bitcoin, representa uma disrupção histórica nunca antes vista, principalmente quando falamos de criptografia e de segurança de sistemas descentralizados de dinheiro digital (e-cash)


REFERÊNCIAS

1. NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. Disponível em: <https://bitcoin.org/bitcoin.pdf>. Acesso em 12/05/2018.

2. "If a malicious user tries to spend their bitcoins to two different recipients at the same time, this is double spending. Bitcoin mining and the block chain are there to create a consensus on the network about which of the two transactions will confirm and be considered valid." Disponível em: <https://bitcoin.org/en/vocabulary#double-spend>. Acesso em 21 de maio de 2018.

3. "Digital currencies, like Bitcoin Core, are just another form of digital files". Disponível em: <https://www.bitcoin.com/info/what-is-bitcoin-double-spending>. Acesso em: 11 de maio de 2018.

4. "Bitcoin mining is the process of making computer hardware do mathematical calculations for the Bitcoin network to confirm transactions and increase security. As a reward for their services, Bitcoin miners can collect transaction fees for the transactions they confirm, along with newly created bitcoins. Mining is a specialized and competitive market where the rewards are divided up according to how much calculation is done. Not all Bitcoin users do Bitcoin mining, and it is not an easy way to make money." Disponível em: <https://bitcoin.org/en/vocabulary#mining>. Acesso em 18/05/2018.

5. "The integrity and the chronological order of the block chain are enforced with cryptography". Disponível em: <https://bitcoin.org/en/how-it-works>. Acesso em 18/05/2018.

6. Disponível em: <https://coinsutra.com/bitcoin-double-spending/>. Acesso em: 11 de maio de 2018.

7. "A block is a record in the block chain that contains and confirms many waiting transactions. Roughly, every 10 minutes, on average, a new block including transactions is appended to the block chain through mining." Disponível em: <https://bitcoin.org/en/vocabulary#block>. Acesso em 18/05/2018.

8. "Nevertheless, double-spending is still possible (though highly unlikely) in Bitcoin. If this does occur, at least one party in one of the transactions will not receive the Bitcoin". Disponível em: <https://www.investopedia.com/ask/answers/061915/how-does-block-chain-prevent-doublespending-bitcoins.asp#ixzz5Gp8tnsaD>. Acesso em: 11 de maio de 2018.

9. "Confirmation means that a transaction has been processed by the network and is highly unlikely to be reversed. Transactions receive a confirmation when they are included in a block and for each subsequent block. Even a single confirmation can be considered secure for low value transactions, although for larger amounts like 1000 US$, it makes sense to wait for 6 confirmations or more. Each confirmation exponentially decreases the risk of a reversed transaction." Disponível em: <https://bitcoin.org/en/vocabulary#confirmation>. Acesso em 18/05/2018.

10. "All these confirmations and transactions are time-stamped on the blockchain, making them irreversible and impossible to tamper with." Disponível em: <https://coinsutra.com/bitcoin-double-spending/>. Acesso em: 11 de maio de 2018.

11. Disponível em: <https://learncryptography.com/cryptocurrency/51-attack>. Acesso em 28 de maio de 2018.

12. Disponível em: <https://en.bitcoin.it/wiki/Irreversible_Transactions#Race_attack>. Acesso em 28 de maio de 2018.

13. Disponível em: <https://blockchain.info/pt/double-spends>. Acesso em: 27/05/2018.


Autor


Informações sobre o texto

Este texto foi publicado diretamente pelo autor. Sua divulgação não depende de prévia aprovação pelo conselho editorial do site. Quando selecionados, os textos são divulgados na Revista Jus Navigandi.