Technology & Security
Over the past few weeks, the Bitcoin Cash (BCH) community has been discussing the subject of merchants accepting zero confirmation BCH transactions. Lots of BCH merchants have been accepting zero confirms lately as well, making the discussion topical again as it was a few years ago.
Zero Confirmation Transactions and the Bitcoin Snack Machine
Zero confirmation transactions are transactions that are broadcast to the network but have not been etched into the blockchain. People like the idea of zero confirm acceptance because the method makes fast payments desirable for both the merchant and customer. However, the topic is also controversial at times because some individuals think the concept can be risky due to double spends and because there have been a few occasions of double spends within both the Bitcoin Core (BTC) and Bitcoin Cash (BCH) networks. Even with these statistics, individuals think the use of zero confirmation transactions is key to broader cryptocurrency acceptance and others have proposed solutions to the zero confirmation doubles spending.
In a discussion called the “Bitcoin Snack Machine” on the website Bitcointalk.org, Satoshi Nakamoto talked about zero confirmation acceptance back in July 2010.
“I believe it’ll be possible for a payment processing company to provide as a service the rapid distribution of transactions with good-enough checking in something like 10 seconds or less,” Nakamoto details. “The network nodes only accept the first version of a transaction they receive to incorporate into the block they’re trying to generate.”
When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it’s a race to propagate to the most nodes first. If one has a slight head start, it’ll geometrically spread through the network faster and get most of the nodes.
Double Spend Relaying
Lots of BCH accepting merchants have been accepting zero confirmations for quite some time, now including Cryptonize.it, Bitasia Exchange, Keys4coins, Bitpay, Satoshi Dice, Mini-POS, Lieferando, and more. Furthermore, Bitcoin developers have been discussing making zero confirmations even safer on the network by using different signaling methods for years.
A while ago, back in 2015, the Bitcoin developer Mike Hearn discussed some solutions in a paper called, “Double spending in Bitcoin and how to make it harder.” In the paper, he discusses a relay method introduced into the Bitcoin Core (BTC) network that was later removed by Core developers.
“That’s why Gavin Andresen and Tom Harding have implemented double spend relaying. This is a change to Bitcoin that makes nodes relay the first double spend of any given transaction that they see (but not others, in order to conserve bandwidth),” Hearn explains.
Both the Bitcoin Core wallet and the next release of the bitcoinj wallet know how to inform the user of conflicting unconfirmed transactions. BitcoinJ already tells you when an unconfirmed transaction is “killed” by a double spend getting confirmed, but informing the user as soon as the double spend is broadcast will go a lot further.
Because of endless arguments about the attempt to fight double spends, Bitcoin Core squashed the protocol but Hearn and Harding kept it in Bitcoin XT. Tom Harding, the Lead Developer of Bitcoin XT, has been discussing and heavily researching the topic with BCH and talked about a relay system in his presentation ‘Native Respend Resistance’ at the Satoshi Vision Conference in Tokyo.
A Mechanism to Construct Special Transaction Outputs
There have been others who have researched other methods like the researchers at the Department of Information Engineering and Communications, at the Autonomous University of Barcelona.
“In order to discourage double-spending attacks, we propose a mechanism to construct special transaction outputs,” details the research paper called ‘Double-spending Prevention for Bitcoin Zero-Confirmation Transactions.’ “Such outputs can be spent with a single signature but have the property that if two different signatures for the same output are disclosed (for instance, in two different transactions spending the same output as a double-spending attack), the private key used to sign the transaction is revealed.”
This allows any observer to generate a third transaction spending the same output and sending the amount to an address controlled by himself.
Two Bitcoin Cash Proposals Geared Towards Double Spend Alerts and Proofs
Lastly, there are two protocol development proposals that would also bolster the use of zero confirmation transactions on the BCH chain. The Openbazaar developer Chris Pacia has written a proposal called “Double Spend Alerts” which is a BCH network message that alerts nodes when a double spend occurs on an unconfirmed transaction. However, Pacia notes the detection does not prevent all types of double spends and states “further technical advances are needed.”
The Bitcoin Unlimited team has a method under development called “Double Spend Proof Creation and Forwarding.”
“By receiving double spend proofs sellers learn about attempts to defraud them faster and can take appropriate steps — This will make a 0-conf transaction on Bitcoin Cash more safe and will give it broader acceptance,” the proposal ‘BUIP088’ reads.
The goal of the implementation is that any node that has access to both transactions can create the proof — And that any other node (even with none of those transactions in the mempool) can validate and forward it.
So far, many Bitcoin Cash supporters are supportive of these ideas and concepts that would prevent and alert network participants of future double spends. Moreover, a lot more merchants and businesses are accepting zero confirmation BCH transactions as well by trusting the network and the low probability of double spend risks. As Satoshi once stated in 2010, the risk of double spends towards zero confirmation transactions on the Bitcoin network, would be far less than the fraud that takes place with credit cards. But at the end of the day, its the merchants’ decision whether or not they want to accept instantaneous payments or wait for a confirmation on the blockchain.
What do you think about zero confirmation transactions? Let us know your thoughts about the subject in the comment section below.
Images via Shutterstock, Pixabay, The Incredibles, and Wiki Commons.
Get our news feed on your site. Check our widget services.