What is Double Spending ?

8

Since Bitcoin is basically a digital file it’s easier to duplicate than actual money – this means some people can manipulate their way to paying more than once with the same bitcoin. This is what is known as “double spending”…so how can this be avoided ?

Let’s say I have only 1 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 1 Bitcoin to Bob, 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 Bob.

When the transactions are taken out of the unconfirmed transactions pool and put into the blockchain they are checked for their 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 anymore Bitcoins to spend and it does not get confirmed.

But what if the validation process of A and B happened simultaneously ? Meaning both transaction will show that I have the money needed. Well in this case we will have 2 branches of the blockchain and a race will begin – the first one to achieves 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’s recommended to wait until 6 confirmation before considering a transaction complete – Since it’s highly unlikely (like super highly unlikely) that this race will happen more than 6 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 to avoid it’s risks…

 

Ofir Beigel

Owner at 99 Coins ltd.
Blogger and owner of 99Bitcoins. I've been dealing with Bitcoin since the beginning of 2013 and it taught me a lesson in finance that I couldn't get anywhere else on the planet. I'm not a techie, I don't understand "Hashes" and "Protocols", I designed this website with people like myself in mind. My expertise is online marketing and I've dedicated a large portion of 99Bitcoins to Bitcoin marketing.

8 Comments

  1. OkwaIfugo on

    Hello,
    tnx i have a problem.

    someone sent me $2679 and it did not confirm then i sent it out $2794 to my client lbc wallet. i had $110 sent to me which did not confirm. then later i sent out $135 to a bitpie wallet.

    after some hrs someone sent me $6 it confirmed well. then also someone sent me $1000 which confirmed as well.

    but the issue here is this, the $2679 after two days of no confirmation vanished from my wallet history, the $2794 i sent to my client lb wallet also vanished. then the $135 i sent to bitpie wallet reversed back to me together with another $105 i dont know where it came from which showed up in my wallet.

    then the $110 a client sent to me confirmed.

    This transaction of $2679 and the $2794 which i received and sent out is showing double spent. its since friday and 4 days now the harsh is still showing its heading to the destination wallet but when u login wallet it never there again.

    now when i login to send out from my wallet i will be getting a warning that ” An output is already spent in …. showing harsh id of two transactions i sent which reversed ”.

    same thing its telling my supplier who sent me the $2679 when he wants to send it back cos d coins reversed to him.

    Please can you help advice on this as my client is on me and i do not know what to do or do we have to wait further because i still have money in my wallet but cant send it out any funds.

    waiting your reply.

    Thanks.

    • Zsofia - 99Bitcoins support on

      Hi, you cannot resend a Bitcoin until it has been confirmed on the blockchain, otherwise it will be double spending as it just happened. He will be able to send once the first transaction has been confirmed, it might take couple of days if the fees were low if that was not already a double spending. Otherwise eventually the transaction will be cancelled once the transaction is dropped off by all miners and will be rejected on the blockchain, but also needs time. At this point I don’t think so that you have much choice, just wait.

  2. Hi, I had an issue two days ago sending BTC from green address wallet to another wallet. The transacition was doubled in the receiving wallet, one was confirmed and the another is pending. I’m just starting with cryptocoins and after readind this article I understand that it was my fault for not waiting fot all confirmation. And what can I do about that pending transaction in the another wallet, will it be eventually cancelled and how long does it takes? Thanks you very much for your help.

  3. Hello for my first payment (usin Electrum wallet) I set a very low fee because I didn’t know better (like 1 satoshi/B), after a few hours of waiting and reading I eventually modified it on Electrum (upped it to 40 sat/B) and after doing that it tells me on Blockexplorer that I made it a double spending. Did I do something wrong while modifying the fee? Or is that normal process with Electrum? Thank you

    • Zsofia - 99Bitcoins support on

      Hi, you should wait until the first transaction gets cancelled before resend it with a higher fee, otherwise it will result in double spending as happened.

Leave A Reply