15 November 2020, BCH forked into two chains: BCH and BCHSV. We continued to monitor related risks and noticed that relevant exchanges/wallets suspended deposits and withdrawals. Since the two chains after the fork are not protected against replay, it may cause a transaction initiated on one chain to perform a replay attack on the other chain, causing property damage to related objects (depending on the actual attack scenario).
In the absence of replay protection, to separate these two kinds of on-chain assets, the current community solutions mainly include the following two:
1. Input pollution method
The principle is to introduce the output of an illegal transaction as input, then the input of this illegal transaction will make the transaction illegal.
E.g: A transaction is broadcast to the BCHSV chain, and the UTXO of an illegal transaction (legal in BCH and illegal in BCHSV) is cited as input. Then this transaction is equivalent to being contaminated and will not be recognized by the BCHSV chain, then the transaction will be Replay is immune; correspondingly, a transaction is broadcast to the BCH chain, and UTXO of an illegal transaction (legal in BCHSV, illegal in BCH) is cited as input, then this transaction is equivalent to being contaminated and will not be tainted by the BCH chain Acknowledge, then this deal is immune to replay.
2. Construct a unique opcode transaction
The consensus of the two chains is different. If the construction of a chain is legal, the illegal transactions on the other chain can also be separated. The consensus difference between the two parties in this fork is also reflected in the opcode, which can be in the BCH chain , Construct an output that contains OP_CHECKDATASIG, then the transaction is legal on BCH, but it is illegal on BCHSV; similarly, in the BCHSV chain, construct an output containing OP_MUL, then the transaction is legal on BCHSV , But it is illegal on BCH.
Combining the community approach and the relevant engineering practice experience of the exchange, we recommend using the first input pollution method, but this requires a coinbase transaction of BCH or BCHSV after the fork (coinbase transaction) UTXO as a source of pollution, from this coinbase transaction A large number of small outputs can be divided. When the user withdraws, these small outputs can be used as one of the inputs of the new transaction to construct the withdrawal transaction, so as to complete the separation more conveniently.
In addition, from engineering practice, I also suggest that the number of confirmations for deposits and withdrawals can be appropriately increased, although at present, there is no obvious attack on the two fork chains.
It's not true. Nothing happened on 13 Nov. On 15 Nov 2020 BCH forked into BCH and BCHA. On 15 Nov 2018 BCH forked into BCH and BSV formerly called (BCHSV).
You copy articles you know nothing about.