I've seen a lot of methods hard forked chains use to provide both strong and opt-in replay protection so that transactions are only valid on one of the chains. Examples of such rules include using a transaction-invalidating output, and using a specific
My question is why are any of these mechanisms neccessary to protect a holder from replay attack? More specifically, why can't a person who holds coins pre-fork protect themselves simply by spending a pair of coin-splitting transactions on each chain like this:
- Alice has sole knowledge of the private key needed to spend UTXO
Awhich is valued at 1 "LegacyCoin" before the hard fork.
- Hard fork creates a new coin called "NewCoin" based on the blockchain history of LegacyCoin.
Anow contains 1 LegacyCoin according to the LegacyCoin network and 1 NewCoin according to the NewCoin network because that's how hard forks work.
- Alice creates and signs two transactions: one that spends
Band one that spends
C(both of which Alice also has sole knowlege of the priavte key).
- Alice then simultaneously broadcasts these signed transactions on the two networks: broadcasting the transaction
A->Bonly on the LegacyCoin network and the transaction
A->Conly on the NewCoin network.
- Both transactions get confirmed on their respective networks and now Alice has effectively split the original value of UTXO
Ainto the two blockchains in complete absence of any replay protection mechanisms implemented by NewCoin. The coins can now be concidered split because even if she spends
B, no one else can spend
C(and vice versa) becuase they are different UTXOs and require different signatures to spend. Also, obviously no one can spend
Abecause it is already spent on both chains.
Why is statement in step 5 not true? Where does this logic break down requiring actual replay protection mechanism to be implemented by hard-forked chains?