<blockquote>
  <p>So what stops me from doing the same thing with bigger, riskier transactions?</p>
</blockquote>

<p>Because anyone accepting a bigger, riskier transaction should know enough to wait for at least a single confirmation.</p>

<p>Restaurants and stores all know that they will be subjected to a certain amount of theft and fraud, but since the amounts are so small, it's mitigated by their business volume.  Preventing easily-fraudable transactions from getting too high is the reason credit cards and debit cards have limits.</p>

<p>If you were to buy a house, however, you'll notice that the means of payment is a much slower and complex process than it is to buy a sandwich.  You don't just swipe a card at the realtor's office and walk out with the keys to a house.</p>

<p>Bitcoin isn't much different.  A zero-confirmation transaction is enough for a barista to hand you a cup of coffee, but not enough for someone to let you drive off with a new car.  For that, they would make you wait for at least one confirmation (about 10 minutes with a proper fee) or for 6 confirmations (60 minutes with a proper fee).  I should point out that this is still much faster than traditional financing in these situations.</p>

<p>Once even a single confirmation has occurred, it will now cost <em>you</em> a non-negligible amount of money in hashing power to reverse the transaction.  Every new confirmation compounds that amount.  In other words, unless the transaction is extremely large (think government budget sized), you would be losing money by attempting the fraud...and it wouldn't even be guaranteed to work.</p>

<p>In short, your own incentives prevent you from attempting fraud.</p>

CC BY-SA 3.0
2017-12-22T19:58:07.653Z
thanks for the answer, could you please elaborate more on "it will now cost you a non-negligible amount of money in hashing power to reverse the transaction" with some numbers and examples?
AK_
CC BY-SA 3.0
2017-12-22T20:52:26.867Z
To reverse a transaction that already has been confirmed once, you need to build a valid block on top of the *previous* block, and then find a second on top of that one.  You will need to do this faster than the rest of the network can find a single block.  That means you will have to control a *very* large amount of hashing power, that could otherwise be used to mine legitimately.  Your fraud would have to make you a lot of money in order for you to want to miss out on mining.
Jestin
CC BY-SA 3.0
2017-12-22T19:47:04.273Z
2017-12-22T19:47:04.273Z
Jestin
<p>Nothing stops it.  Thus, for bigger transactions, it would be wise for the recipient to wait for confirmation before delivering any goods.</p>

<p>In this case, the restaurant has made the business decision that it is worth the risk to serve you your meal before the transaction confirms, even though it could later be double-spent.  They apparently think that in the long run, any such losses would be exceeded by the extra business from allowing customers to pay with Bitcoin and receive their food immediately.</p>

<p>If they were selling something bigger like computers, cars, or houses, they would probably decide that it was not worth the risk, and that customers would be more willing to wait to receive their goods.</p>

CC BY-SA 3.0
2017-12-22T19:44:54.023Z
2017-12-22T19:44:54.023Z
Nate Eldredge
<p>There's nothing stopping you, you would just be paying higher fees and the restaurant would receive the same amount. Therefore, there's no point of doing it unless the transaction is stuck in the mempool.</p>

<p>The restaurant needs to wait for atleast 6 confirmations to make the transaction almost statistically permanent. If it does not wait that long, it is possible, but not easy, that the transaction can be reverted. This is why you should always wait 6 confirmations.</p>

CC BY-SA 3.0
2017-12-22T19:41:42.953Z
The linked question talks about double-spending.  By doing this, you certainly can prevent the restaurant from receiving the money and instead keep it for yourself.
Nate Eldredge
CC BY-SA 3.0
2017-12-22T19:49:45.373Z
I've extended my answer
Cedric Martens
CC BY-SA 3.0
2017-12-22T19:40:16.917Z
2017-12-22T19:49:36.580Z
2017-12-22T19:49:36.580Z
Cedric Martens
<p>I'm in a restaurant where they serve me my meal without waiting for the blockchain confirmation. Technically speaking I can cancel my transaction before the confirmation according to <a href="https://bitcoin.stackexchange.com/questions/4514/is-it-possible-to-cancel-an-unconfirmed-transaction">this</a></p>

<p>So what stops me from doing the same thing with bigger, riskier transactions?</p>

CC BY-SA 3.0
2017-12-22T19:45:32.850Z
Nothing, but I assume that most buyers will follow some [best practice like waiting for at least 6 confirmations](https://en.bitcoin.it/wiki/Confirmation) when dealing with huge amount of BTC.
Chak
<transactions><blockchain><bitcoin-core>
Security wise what stops me from canceling an unconfirmed transaction?
AK_
# Security wise what stops me from canceling an unconfirmed transaction?

(Asked by: username_0 on 2017-12-22)

I'm in a restaurant where they serve me my meal without waiting for the blockchain confirmation. Technically speaking I can cancel my transaction before the confirmation according to [this](https://bitcoin.stackexchange.com/questions/4514/is-it-possible-to-cancel-an-unconfirmed-transaction)

So what stops me from doing the same thing with bigger, riskier transactions?

**Tags:** transactions, blockchain, bitcoin-core

> **Comments:**
> **username_1**: Nothing, but I assume that most buyers will follow some [best practice like waiting for at least 6 confirmations](https://en.bitcoin.it/wiki/Confirmation) when dealing with huge amount of BTC.  

---

## 3 answers

### Answer by username_2 on 2017-12-22. Score: 3

> So what stops me from doing the same thing with bigger, riskier transactions?

Because anyone accepting a bigger, riskier transaction should know enough to wait for at least a single confirmation.

Restaurants and stores all know that they will be subjected to a certain amount of theft and fraud, but since the amounts are so small, it's mitigated by their business volume. Preventing easily-fraudable transactions from getting too high is the reason credit cards and debit cards have limits.

If you were to buy a house, however, you'll notice that the means of payment is a much slower and complex process than it is to buy a sandwich. You don't just swipe a card at the realtor's office and walk out with the keys to a house.

Bitcoin isn't much different. A zero-confirmation transaction is enough for a barista to hand you a cup of coffee, but not enough for someone to let you drive off with a new car. For that, they would make you wait for at least one confirmation (about 10 minutes with a proper fee) or for 6 confirmations (60 minutes with a proper fee). I should point out that this is still much faster than traditional financing in these situations.

Once even a single confirmation has occurred, it will now cost *you* a non-negligible amount of money in hashing power to reverse the transaction. Every new confirmation compounds that amount. In other words, unless the transaction is extremely large (think government budget sized), you would be losing money by attempting the fraud...and it wouldn't even be guaranteed to work.

In short, your own incentives prevent you from attempting fraud.

> **Comments:**
> **username_0**: thanks for the answer, could you please elaborate more on "it will now cost you a non-negligible amount of money in hashing power to reverse the transaction" with some numbers and examples?  
> **username_2**: To reverse a transaction that already has been confirmed once, you need to build a valid block on top of the *previous* block, and then find a second on top of that one.  You will need to do this faster than the rest of the network can find a single block.  That means you will have to control a *very* large amount of hashing power, that could otherwise be used to mine legitimately.  Your fraud would have to make you a lot of money in order for you to want to miss out on mining.  

---

### Answer by username_3 on 2017-12-22. Score: 1

Nothing stops it. Thus, for bigger transactions, it would be wise for the recipient to wait for confirmation before delivering any goods.

In this case, the restaurant has made the business decision that it is worth the risk to serve you your meal before the transaction confirms, even though it could later be double-spent. They apparently think that in the long run, any such losses would be exceeded by the extra business from allowing customers to pay with Bitcoin and receive their food immediately.

If they were selling something bigger like computers, cars, or houses, they would probably decide that it was not worth the risk, and that customers would be more willing to wait to receive their goods.


---

### Answer by username_4 on 2017-12-22. Score: -1

There's nothing stopping you, you would just be paying higher fees and the restaurant would receive the same amount. Therefore, there's no point of doing it unless the transaction is stuck in the mempool.

The restaurant needs to wait for atleast 6 confirmations to make the transaction almost statistically permanent. If it does not wait that long, it is possible, but not easy, that the transaction can be reverted. This is why you should always wait 6 confirmations.

> **Comments:**
> **username_3**: The linked question talks about double-spending.  By doing this, you certainly can prevent the restaurant from receiving the money and instead keep it for yourself.  
> **username_4**: I've extended my answer  

---

