Mythbusting: 10-minute confirmation time makes Bitcoin unsuitable as a 'cash' method of payment

13 1216
Avatar for Cain
Written by
4 years ago

(Article also available in Spanish)

Bitcoin Core (BTC) supporters say that Bitcoin isn't meant for buying coffee. They argue Bitcoin's purpose is to be a store of value, not a currency. Digital gold, they say, not digital cash.

Bitcoin Cash (BCH) supporters, on the other hand, believe Bitcoin is meant to be used as a medium of exchange, as well as a store of value. BCH proponents want their currency to be used to pay for coffee, for meals, for taxi rides, and anything else you can imagine.

So why the difference in opinion?

In order to answer this question properly, we must explain some of the technical differences between BTC and BCH. On August 1, 2017, the Bitcoin network forked and gave birth to Bitcoin Cash. This means that both BTC and BCH share the same identical transaction history from the genesis block to block height 478557, but any transactions made after that are not shared between the two networks . The below diagram is a good outline of the major forks that have happened over the years:

In addition to having different transaction sets after August 2017, the real main difference between BTC and BCH is that while BTC maintained its 1 MB block size limit, BCH increased this limit from 1 MB to 8 MB initially, and then to 32 MB, which is where it currently stands.

So why is block size so important? The way Bitcoin works is that when transactions are first broadcast to the network, they remain "unconfirmed" and sit in a kind of "waiting area" called the mempool until they get included in a mined block. Only after they are included in a block do they become "confirmed" and thus leave the mempool. The more blocks that are mined on top of the block a transaction is included in, the more unlikely it is that the transaction can be reversed. This is why exchanges typically require several "confirmations" before they credit you with your Bitcoin.

Since BTC has smaller blocks, and for the moment, more transactions, there might not be enough space in the next block for all the transactions that are waiting to confirm. This means that any leftover transactions will have to wait for a block that does have space to include them. As a result, the Bitcoin Core developers created a "fee market" whereby those transactions with the highest fees would get priority over lower fee transactions. They implemented new software known as Replace By Fee (RBF). This way, if you send a BTC transaction during a period of heavy network traffic, and the transaction fails to confirm, you can send the same coins in another transaction but with a higher fee hoping it will get into a block faster.

Unfortunately, RBF comes with a fatal flaw that essentially kills BTC's use case as cash. This is because RBF makes it easy for people to perform what's called a double-spend on the BTC network. Let's say you're in a cafe and order coffee. You make a transaction, which gets detected by the point of sale system, and you're immediately handed your drink. Then once you leave the store, you send a new transaction using the same coins but with a higher fee, not to the cafe's wallet address but to one you yourself control. Due to RBF, the higher fee transaction is the one that gets included in the next block, and the original lower fee transaction gets dropped altogether. The cafe never receives the funds, and you get to keep your coffee. This is what's known as a double-spend. Watch the video below to see how easily this can be exploited on BTC:

As you have just witnessed, due to the activation of RBF, BTC is no longer suitable as a cash method of payment. An attacker could easily double-spend a merchant virtually at will. If you're a merchant accepting BTC, it would be wise to wait for at least one confirmation to make sure your funds are secured, though of course no one is willing to sit in a store for ten minutes (or more) just waiting for a payment to go through.

But there's good news. Bitcoin Cash preserves Bitcoin's use case as cash because BCH does not have RBF. Instead, the network follows the "first seen" rule where miners accept the first transaction they see as opposed to the transaction with the highest fee. This means that trying to successfully perform a double-spend on the BCH network is significantly more difficult. Merchants can accept transactions that have not yet been confirmed in a block relatively safely as they don't have to worry about customers leaving the store and making a higher-fee transaction to replace the one they just made. Transactions that have still not been confirmed are known as zero-confirmation transactions (0-conf). With 0-conf enabled, users can send and receive BCH instantly without having to wait for the transaction to be confirmed in a block.

But wait, what about the stats on doublespend.cash? Good question.

Technically speaking, it is still possible to perform a double-spend on BCH. It's just much more difficult. You'd have to send two transactions at virtually the same time and hope that the fraudulent transaction ends up being the one that gets confirmed. But if the attempted double-spend transaction is sent even a couple of seconds after the original, the chances of it being included in a block drop dramatically due to the first transaction having likely already propagated throughout the network.

Here is a tweet from the creator of doublespend.cash that states that when a double-spend attempt is not broadcast simultaneously, the chances of success were only 1 out of 3992.

Therefore, a merchant's point of sale system only has to wait a couple of seconds to check the network and insure another transaction using the same coins wasn't broadcast subsequently. If another transaction is seen, they can simply decline the sale. If you're selling $5 cups of coffee, are you willing to risk that a bad actor has a 1 out of 4,000 (.025%) chance of defrauding you? Assuming most of your customers are regular people not trying to scam you with highly technical software, the likelihood of getting cheated is going to be orders of magnitude less than .025%.

Perhaps this is not what you wanted to hear. Perhaps what you wanted to hear is that 0-conf on BCH is absolutely safe, but the reality is that you can never be 100% sure that any transaction is safe. Even with confirmed transactions, it is theoretically possible that the network can be rolled back, undoing previously mined blocks. Therefore, the real question is how much risk are you willing to accept in your business? If you're trying to sell a house for $1M, it's probably a good idea to wait for a number of confirmations before finalizing the sale. But if you're talking about selling cups of coffee, instant 0-conf transactions should pose no risk.

With that said, the BCH protocol developers continue to work on ways to improve 0-conf security so that in the future, the risk of accepting unconfirmed payments should be even lower.

In summary, while the 10-minute confirmation time might make BTC unsuitable as a cash method of payment, the same rules don't apply to BCH, which was created to be used as cash for everyday payments, as a store of value, and one day, as a unit of account.

Thanks for reading.

Thank you to the folks in the Coinspice telegram channel for helping me answer some of my questions about 0-conf and double-spending, as well as the illustrious Jonald Fyookball who was generous enough to offer to read my submission to make sure there were no glaring mistakes.

Sponsors of Cain
empty
empty
empty

3
$ 13.20
$ 5.00 from @btcfork
$ 5.00 from @MarcDeMesel
$ 2.00 from @DavidRAllen
+ 6
Avatar for Cain
Written by
4 years ago

Comments

Thanks! I'll have a good read through in a short while and update this comment with suggestions if I come up with any.

Meanwhile, what's the SLP address that you'd want tokens delivered to?

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Sure thing. And thanks for the tip!

simpleledger:qz2uhtczvgkqxztq5rxlf3spqcdt8znawyhm2wf2ks

$ 0.00
4 years ago

+100 MYTHBUSTER awarded

txid: 4bdaf733e568eaed45af354fae6dc93ed94807985d4655c9a7e1eabac19b090b

Feel free to subscribe to this Memo topic where I post updates when new articles come out, points are awarded, and also stats updates on the token distribution:

https://memo.cash/topic/Mythbusting

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

The new maximalist narrative is that "Bitcoin was never intended to be spent in brick&mortar stores". It's funny seeing maximalist killing BTC, one feature at a time.

$ 0.50
4 years ago
$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Hi, the date of BCH Gravition fork is not correctly. Take that image: https://memo.cash/a/b4e0a1f12a

$ 0.10
4 years ago

Thanks and done!

$ 0.00
4 years ago

Nice! I can tell people my writing has been translated into multiple languages =)

$ 0.00
4 years ago
$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

First and only comment (not requiring an edit, just for readers' information):

As you have just witnessed, due to the activation of RBF, BTC is no longer suitable as a cash method of payment. An attacker could easily double-spend a merchant virtually at will. If you're a merchant accepting BTC, it would be wise to wait for at least one confirmation to make sure your funds are secured, though of course no one is willing to sit in a store for ten minutes (or more) just waiting for a payment to go through.

RBF definitely makes safely accepting BTC for casual payments more insecure unless extra care is taken, e.g. rejecting accept RBF transactions, which then creates additional hassle.

But I don't think it's entirely fair to say it's completely unsuitable. Higher fees play a larger role in that than potential double spends which could be mitigated by more intelligent payment processing - which is exactly what the likes of BitPay do.

The sad truth is that BTC's roadmap just takes an intentional turn away from being a payment method "on chain", which, if it works out according to their plans, will necessarily drive most commerce off the chain due to overhead fee costs. It will also make sure most of the world's population can't simply use it "as cash" because of the fees being inordinate.

The topic of how to determine whether 0-conf is suitable for your business needs could fill another article, but I found your article busted this particular myth very well.

Finally, I have an open invite to any merchant that has been defrauded by double-spend on BCH to publish their case. I'm sure I've seen other people issue similar invitations many times, and I've not seen an instance yet.

https://twitter.com/btcfork/status/1207623434093629440

Merchants, do let us know if you ever have a problem - BCH is about improving and making Bitcoin safer for you as well as your customers.

$ 0.15
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Fantastic article! Plus... even if a Bitcoin Cash merchant really felt the unnecessary need to wait the full 10 minutes (which is essentially unnecessary), a 10-minute wait time is NOTHING compared to credit cards when it comes to peace of mind that the transaction has gone through & is irreversible. With the credit card dispute system, a consumer can dispute a transaction for MONTHS after the transaction takes place! So, the “confirmation process” for credit cards actually takes MONTHS! During that time, a credit card charge might be charged back to the merchant! That simply can never happen with Bitcoin Cash. All Bitcoin Cash BCH transactions are final.

$ 0.55
4 years ago

Thanks Scott! And totally agree with everything you said.

$ 0.00
4 years ago