Safe Zero Confirmation
Last updated
Last updated
Introduction to what zero confirmation is and why zero confirmation can be secure.
Zero confirmation refers to transactions that have not yet been included in a block but have already been broadcast to the network and accepted by major transaction processors (or miners). In the Bitcoin network, zero-confirmation transactions are considered unsafe because Bitcoin's block generation time is 10 minutes, and block sizes are limited, causing transactions to wait for a while before being confirmed. This delay provides attackers enough time to perform double-spend attacks. Therefore, zero-confirmation transactions in the Bitcoin network are generally not accepted by merchants due to their insecurity.
MVC has made improvements on this basis by first removing the Replace-by-Fee (RBF) mechanism, which could lead to the replacement of unconfirmed transactions, thus making the mempool transactions immutable. Additionally, since MVC has no block size limit and can accommodate more transactions, transactions with normal fees can be expected to be included in the next block, significantly reducing the likelihood of double-spending. Moreover, MVC has built-in transaction security mechanisms. If a transaction is double-spent, the network can immediately detect and mark it, giving merchants more confidence when accepting transactions.
By creating stronger and tighter links between network nodes, transactions can spread exponentially and reach the entire network, making the cost of double-spending infinitely high. This is the goal that the so-called "small-world network" aims to achieve:
This design is precisely what Bitcoin's inventor, Satoshi Nakamoto, envisioned. Satoshi mentioned on BitcoinTalk why 10 seconds is sufficient to ensure transaction security:
MVC's zero-confirmation design follows Satoshi Nakamoto's vision. By implementing various security mechanisms, it makes the cost of double-spending infinitely high, allowing merchants to confidently accept zero-confirmation transactions and improving user experience.
In practice, MVC can provide a risk rating for transactions based on the amount being transferred and the cost required for double-spending. The higher the risk rating of a transaction, the more blocks it needs to wait for confirmation. This allows merchants to decide whether to accept zero-confirmation transactions based on their risk tolerance.