
secondary title
What is "Zero Confirmation Transaction"
Transactions on the blockchain are confirmed approximately every 10 minutes, and "zero-confirmation transactions" do not exist in blocks. It refers to the state before a transaction is broadcast to the entire network and is about to be packaged into a block. Before the block containing this transaction is mined, "zero confirmation" exists, but after the block is mined, "zero confirmation" does not exist.
secondary title
Is "zero confirmation transaction" safe?
In a discussion titled "Bitcoin Snack Machine" on the Bitcointalk.org website, Satoshi Nakamoto mentioned that as early as July 2010, Bitcoin tried zero-confirmation payment transactions.
"I think payment processing nodes can do enough checks in 10 seconds or less." Satoshi Nakamoto detailed that when a double-spend attack occurs, network nodes only accept the first transaction they receive. When a transaction is being broadcast, the perpetrator tries to double-spend the attack by broadcasting another transaction at the same time. At this time, it is more important to see which of the two transactions will be prioritized by more transactions in the entire network. Node accepts.
From this point of view, "zero confirmation transactions" are not absolutely safe, and there are indeed certain risks.
Odaily's previous report also summarized the double flower attack5 categoriessecondary title
"Zero-confirmation transaction" anti-double spending scheme
Relay scheme
As early as 2015, Bitcoin developer Mike Hearn discussed in a paper titled "Double spending in Bitcoin and how to make it harder" (Double spending in Bitcoin and how to make it harder) against The solution to the double-spend attack of "zero-confirmation transaction" - the relay scheme. In this relay scheme, when a Bitcoin node discovers a double-spend transaction, it sends the transaction that arrives first to other nodes in the entire network for relay.
Early Bitcoin developers Gavin Andresen and Tom Harding implemented this feature and integrated this feature into the early Bitcoin system, but this content was later removed by the developers. Although Bitcoin Core rejected the agreement, Hearn and Harding kept it in Bitcoin XT.
Bitcoin XT lead developer Tom Harding has been discussing and researching this topic with the BCH community, and at the Satoshi Vision Conference in Tokyo, he talked about a relay system again in a talk titled "Native Respend Resistance."
Build a special transaction output mechanism
In order to prevent double-spending attacks, researchers from the Department of Information Engineering and Communication of the Autonomous University of Barcelona proposed a way to construct a special transaction output mechanism.
A paper titled "double-spending Prevention for Bitcoin Zero-Confirmation Transactions" details the mechanism. That is, if two different signatures are used to sign the same transaction output (double spending), then the private key used to sign the transaction will be exposed.
Raise double spend alerts and create double spend proofs
There are two protocol development proposals that will also support the use of zero-confirmation transactions on the BCH chain. Chris Pacia, the developer of Openbazaar, made a solution called Double Spend Alters. The solution it proposes is that once a double-spend transaction is found in the entire BCH network, an alarm message will be issued to the entire network nodes immediately. However, this solution currently has limitations. Chris Pacia also pointed out that detection cannot prevent all types of double-spending transactions, and further technical development is required.
The Bitcoin Unlimited team is developing a scheme called Double Spend Proof Creation and Forwarding. In this scheme, once any node on the chain receives a double-spend transaction, it will create a double-spend transaction proof, which can be verified by other nodes and propagated to the entire network.
At present, many BCH supporters agree with these ideas and concepts. The reason why more and more people are willing to accept "zero confirmation transactions" is because they think that the probability of double spending is very low. As Satoshi Nakamoto said in 2010: the risk of double-spending attacks in the Bitcoin network is far lower than the risk of credit card being stolen.
At the same time, the double-spending attack itself is very difficult, and the time for double-spending is short. The cost of double spending in most transactions is far greater than its benefits, and for small transactions, double spending is even less profitable.
(I am Mo Xinnan, the author of Odaily. I am exploring the real blockchain. If you are looking for reports on high-quality blockchain projects, please add WeChat: 16601131135. Please note your name, company, and position.)
Further reading:
(I am Mo Xinnan, the author of Odaily. I am exploring the real blockchain. If you are looking for reports on high-quality blockchain projects, please add WeChat: 16601131135. Please note your name, company, and position.)