Hello. This is a user who uses an electron-cash. I don't think it's appropriate to ask a question here, but I have no other channel to ask it, so I have to raise them here. Please excuse me.
I tried to send a coin to the latest version of the bitcoin-ABC node (0.18.4), but I found it is replayed directly on the SV network. This is true even though the peer of the node is set to be attached only to the bitcoin-ABC side.
By the way, if I set up the network and send the coin with electron-cash, it will not be replayed. How did you make it possible?
Does Electron-cash use the OP_CHECKDATASIGVERIFY flag to make a transaction?
Thank you in advance for your answer.
Does Electron-cash use the OP_CHECKDATASIGVERIFY flag to make a transaction?
Not for normal transactions. This would be complicated and expensive in terms of fees, if you tried to do this for every transaction.
What you want to do is get just 1 split coin and then use that to taint your other coins, so they cannot be replayed.
https://www.reddit.com/r/btc/comments/9yefov/if_you_want_to_dump_bsv_some_tips_on_splitting/
What I want to know is how can electron-cash protect being replayed only with network configuration?
And can I believe it safe? We must move large amount of coins. thank you.
There is a custom version of electron cash specifically for splitting coins. Go to that link Mark just posted and read more.
Yes, unfortunately SV nodes are relaying TX's to the ABC side and vice-versa. This is because behind the scenes the full nodes are still connected to each other and talking to each other. This is why you have to split coins.
It sucks but it is what it is. SV are the ones that forked and didn't implement replay protection. Go complain to them. We are just trying to support both chains on relatively short notice with 0 funds as a volunteer project.
If you want -- contact nChain and CoinGeek and complain to them for not doing the responsible thing and implementing Replay Protection.
I think they thought they could kill the ABC chain with overwhelming hash, which is why they didn't implement replay protection. But I am not a mind reader.
Good luck!
I did split coins with latest normal electron-cash(3.3.2. is this the custom version?). i did it!
I wonder whether it happened by good luck or it work as intended. I haven't answered my question yet. How can Electron-cash do that?
You can follow the 'verifying' step in my guide.
Alternatively: open the coins tab and look at the transaction IDs of all coins that you own. Then switch chains and make sure none of the transaction IDs are the same.
^^ Yes this. The UTXO txid's should be different on both chains. If they are you have successfully created a unique history for your coins on each chain.
To switch chains you need to click on the network icon (green icon, bottom right) and use the network window to switch branches. If you don't see 2 forks in the network window here are some servers on each chain you can connect to:
BCH: blackie.c3-soft.com
BSV: bch.electrumx.cash
By the way, if I set up the network and send the coin with electron-cash, it will not be replayed. How did you make it possible?
What I want to know is how can electron-cash protect being replayed only with network configuration?
And can I believe it safe? We must move large amount of coins. thank you.
To answer your question, nLockTime is being set to the chain tip. The ABC chain is ahead ~50 blocks, and so if you connect to an ABC server, create and broadcast a tx, that tx cannot be replayed on the SV chain, for 50 blocks. This prevents automatic non-malicious replays as SV nodes will have originally rejected the not-yet-mineable tx on their side and won't have it when the timelock is up. To make sure the coins are split however, you need to spend the SV coins yourself, and with different locktime (chain tip of SV chain) that txid will be different, and you will have your coins split.
@cculianu has a post about this on reddit
Thanks SomberNight, that's the answer I expected.
Did electron-cash use nLockTime to protect automatic replays?
I used electron-cash to send a coin and did nothing for 50 blocks on SV chain but it wasn't replayed.
No, nLockTime is set because Electrum is setting it.
And Electrum is setting it because Bitcoin Core is setting it.
And Bitcoin Core is setting it to harden against fee sniping as described by Peter Todd.
Thank you all. I close this.
Most helpful comment
To answer your question, nLockTime is being set to the chain tip. The ABC chain is ahead ~50 blocks, and so if you connect to an ABC server, create and broadcast a tx, that tx cannot be replayed on the SV chain, for 50 blocks. This prevents automatic non-malicious replays as SV nodes will have originally rejected the not-yet-mineable tx on their side and won't have it when the timelock is up. To make sure the coins are split however, you need to spend the SV coins yourself, and with different locktime (chain tip of SV chain) that txid will be different, and you will have your coins split.
@cculianu has a post about this on reddit