Símbolo do Jus.com.br Jus.com.br

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

Exibindo página 1 de 2
Agenda 04/06/2018 às 10:04

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.

Fique sempre informado com o Jus! Receba gratuitamente as atualizações jurídicas em sua caixa de entrada. Inscreva-se agora e não perca as novidades diárias essenciais!
Os boletins são gratuitos. Não enviamos spam. Privacidade Publique seus artigos

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.

Sobre o autor
Bruno Cardoso

Advogado, graduado em Direito pela Universidade Federal da Grande Dourados - UFGD. E-mail: contato@brunocardosoadv.com Twitter: @advbrunocardoso Instagram: @advbrunocardoso Facebook: @brunocardosoadvocacia

Informações sobre o texto

Este texto foi publicado diretamente pelos autores. 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

Publique seus artigos Compartilhe conhecimento e ganhe reconhecimento. É fácil e rápido!