Double Spending [PT/EN]
February 2nd, 2023

[PT] Como o Bitcoin é basicamente um arquivo digital, é mais fácil duplicá-lo do que dinheiro em espécie.

Isso significa que algumas pessoas podem manipular pagamentos, utilizando mais de uma vez o mesmo Bitcoin. Isso é conhecido como “Double Spending” (“gasto duplo”, em tradução livre).

Como acontece o Double Spending?

Digamos que eu tenha apenas um Bitcoin e resolvo enviá-lo para você. Essa transação, vamos chamá-la de transação A, vai para o pool de transações não confirmadas e fica esperando confirmação.

Ao mesmo tempo, envio um Bitcoin para a Alice. Essa transação, vamos chamá-la de transação B, também entra no pool de transações não confirmadas. Portanto, enviei um Bitcoin duas vezes, uma para você e outra para a Alice.

Um arquivo digital pode ser copiado e compartilhado
Um arquivo digital pode ser copiado e compartilhado

Como isso é evitado?

Quando as transações são retiradas do pool de transações não confirmadas e colocadas no blockchain, suas validades são verificadas.

Agora digamos que a transação A seja retirada do pool. Parece válida, pois tenho um bitcoin e ele está inserido no blockchain.

Automaticamente a transação B é retirada do pool. É inválida, pois não tenho mais bitcoins para gastar e não é confirmada

Mas e se o processo de validação de A e B acontecesse simultaneamente?

Isso significa que ambas as transações mostrarão que tenho o dinheiro necessário. Bem, neste caso, teremos duas ramificações do blockchain e uma corrida começará.

O primeiro, a atingir o próximo bloco de confirmações, vencerá. Se eles também chegarem ao próximo bloco simultaneamente, teremos outra corrida e assim por diante.

Por isso, é recomendável aguardar algumas confirmações antes de considerar uma transação concluída. Uma vez que é altamente improvável que esta corrida aconteça mais do que algumas vezes.

Portanto, no final, teremos um vencedor claro e apenas uma transação será confirmada. Até que esta corrida seja resolvida, ambas as transações correm o risco de serem canceladas.

Agora você sabe o que é Double Spending e como o protocolo Bitcoin consegue evitá-lo.

Embora seja improvável que o Double Spending ocorra, não é impossível.

**
**Nos próximos DeTalks abordaremos alguns tipos de ataques que em teoria podem causar gastos dobrados.


[EN] Since Bitcoin is basically a digital file, it's easier to duplicate than actual money.

This means some people can manipulate their way to pay more than once with the same Bitcoin. This is what is known as double spending.

How does Double Spending happen?

Let's say I have only one Bitcoin, and I decide to send it to you. 

This transaction, let's call it transaction A, goes into the Unconfirmed Transactions Pool, and is waiting to be confirmed. 

**
**At the same time, I send one Bitcoin to Alice. This transaction, let's call it transaction B, also goes into the Unconfirmed Transactions Pool. So I sent out one Bitcoin twice, once to you, and once to Alice.

A digital file can be copied and shared
A digital file can be copied and shared

So how is this avoided?

When the transactions are taken out of the Unconfirmed Transactions Pool, and put into the blockchain, they are checked for validity. 

So let's say transaction A is pulled out of the pool. It seems to be valid, since I have one Bitcoin, and it is inserted into the blockchain. 

Now transaction B is pulled out of the pool. It is invalid, since I don't have any more Bitcoins to spend, and it does not get confirmed. 

But what if the validation process of A and B happened simultaneously?

Meaning, both transactions will show that I have the money needed. Well in this case, we will have two branches of the blockchain, and a race will begin. 

The first one, to achieve the next block of confirmations, will win. If they reach the next block simultaneously as well, we will have another race, and so on. 

This is why it is recommended to wait a couple confirmations before considering a transaction complete. Since it is highly unlikely that this race will happen more than a few times.

So in the end, we will have a clear winner, and only one transaction will be confirmed. Until this race is resolved, both transactions are in risk of getting canceled.

Now you know what double spending is and how the Bitcoin protocol manages to avoid it.

While double spending is unlikely to occur, it is not impossible.

Next DeTalks we will cover some types of attacks that in theory could cause double spending.

Subscribe to DeTalks
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from DeTalks

Skeleton

Skeleton

Skeleton