BCH: The Case for Renaming Zero-Conf to "Verified"
Update: If you like the idea support it on reddit: https://www.reddit.com/r/btc/comments/87ym3g/the_case_for_renaming_zeroconf_to_simply_verified/ And retweet on Twitter to help spread the idea!
This idea came about discussing the problem of double spending on zero-conf. As many might know there is great work going into making double spending a non-issue on Bitcoin Cash.
Credit also goes to Wecx, Coretrolls.info, John M (Beta Dollar), CryptoWyvern for ideas. However, zero-conf is much more of a problem in regards to miner attacks, and edge exploitation cases. The chances of it happening with a small ticket item from a merchant is extremely extremely low, and also not profitable for the double spender. The effort that goes into double spending for the average consumer purchase just isn't worth it. Thus, zero-conf is pretty safe for merchants. Counterfeit cash (which is essentially zero-conf unless they check every bill) or credit card fraud is also a high risk for merchants, the chances of zero-conf being a problem for a merchant is very low in comparison. As long as the item is not big ticket like a computer or car, then zero-conf is almost completely safe, and the loss would be tiny if such a attack went through. So zero-conf is one of the most awesome original features of Bitcoin, until it got removed by Bitcoin legacy. So what is the problem? Even if we fixed the non-existent double spending on zero-conf, it still looks untrustworthy to a merchant currently unless they know a lot about Bitcoin. (It's a presentation problem) This is just being in the shoes of the merchant. Zero-conf sounds like NOTHING has been verified. I know it's cheating a little bit, but I think naming 0-confirmation to simply "verified" will go a long way to changing this perception. To me as a merchant, if you say "verified" but 0/3 confirmations that's good enough for me. I get that it's not 100%, but it's good enough. When you say it's just 0/3 confirmations or zero-conf, it just says to me the transaction is not done at all.
Of course, we know 0-conf is not actually just a instant message, the transaction has been broadcasted to the network, it just needs to be confirmed and written to the blockchain which takes longer. The current user experience just does not instill confidence, it doesn't inspire trust.
So imagine if you were showing off Bitcoin Cash, and the moment you hit send, a green "verified" 0/3 confirmations showed up. I know it's stupid, but I'm pretty sure people will go "wow that's really fast and awesome" instead of "why is it taking 10 minutes?"
So the new experience would be: Unverified > Verified > Confirmed
Obviously if a merchant detects double spend, then that customer is blacklisted and you don't give him any goods or services again or stop whatever service you are providing in the unlikely case.
Exactly, how this will work I'l leave to you readers, smarter people and developers to figure out.
For example: To improve the security of it more, there can be a delay of 3 seconds, or Peter Rizun mentioned it can get down to 750ms just via optimizations. During the delay, nodes(mempool) could be queried to verify there isn't a second spend of the same outputs. Another example. Verification may only work for amounts below $1000usd. Perhaps the merchant can set the verification threshold. So whilst we are working to completely fix zero-conf 100%, we can fundamentally change the user experience to reflect what zero-conf actually is and make merchants understand this is essentially the 1st confirmation on the network. The second confirmation is when it gets written into the blockchain.
It's safe enough for most low ticket items and services, and merchants need to know that. Nothing much after the Paywall apart from thanks and some comments. Please let me know if I am wrong about anything or anything you would like to add, and I will edit this post. Thanks.
6 of 6 reviewers say it's worth paying for
0 of 6 reviewers say it's not worth paying for