Nowadays, most Bitcoin Exchanges still require at least three confirmations on a Bitcoin deposit before the depositor is credited the amount in his or her account and allowed to start trading. The delay makes it hard for traders, and all Bitcoiners, to move their Bitcoin on the Bitcoin network as fast as they would often like to.
The intrinsic danger to accepting a zero confirmation transaction on the Bitcoin network, or any altcoin network, is that of the sender committing a double spend attack. However, given the finite number of Bitcoin nodes at any given time, it is possible to use math and verify in real time that a second (double) spending does not and will not enter the Blockchain.
More specifically, with every additional second a larger percentage of active Bitcoin nodes will have heard the original transaction and everyone viewing the blockchain can be increasingly certain that the transaction will be mined in the next block and receive one confirmation, then two, and so on and so forth.
What this means is that any Bitcoin transaction can be accepted with zero confirmations with a mathematically derived confidence level some refer to as “Transaction Confidence.” This transaction confidence measure assures us that even if a double spend were attempted the original and correct transaction is already too heavily propagated to be overtaken.
This mathematically secure way to accept zero confirmation transactions is surprisingly already in use by some familiar Bitcoin services.
MyCelium, a popular Android Bitcoin Wallet App, recently added a new feature to their Local Trader that implements this mathematically secure way to accept zero confirmation transactions on the Bitcoin network. MyCelium plans to eventually provide all of their users with a transaction confidence graph expressed in a loading bar with percentages that allow acceptance of zero confirmation transactions. Users have reported that the transaction confidence percentage reaches the high 90’s within seconds.
For a long time, Bitcoiners have pondered how BitPay manages to confirm Bitcoin payments within their 15 minute window without fear of double spends if one confirmation in the blockchain could potentially take longer than 15 minutes.
It is now blatant that BitPay uses a similar algorithm to accept zero confirmation transactions on all of their Bitcoin business. As of 2013, BitPay has done tens of thousands of Bitcoin transactions in this manner and has not had one instance of a double spend.
Now that BitPay’s secret is out, will more Bitcoin services implement this?
Already, some Bitcoin services such a Coinbase will allow a type of zero-confirmation transaction when Bitcoins are sent in-house from one registered user to another; however, this is a centralized method for near instantaneous Bitcoin transactions and does not scale elsewhere in the Bitcoin network. With this new method already in use by BitPay, any existing large Bitcoin service from BTC-e to Electrum to Coinbase can reduce the amount of confirmations necessary on deposit.
I honestly can’t wait to see transaction confidence, as visualized by MyCelium, implemented everywhere that I use Bitcoin. I’m tired of having to wait hours for my Bitcoins to be spendable!
Bitcoin ATMs should certainly implement this method for added security and to cut the overall physical transaction time at the Bitcoin ATM. In fact, some might even argue that this basic functionality should be added into the main Bitcoin wallet along with additional security measures at the node level to protect against DOS and Sybill attacks.
Also… Don’t be too surprised if/when your favorite altcoin service starts accepting zero confirmation transactions with this method.