Replay protection in the 2017 forks
How the 2017 forks did, or did not, make their transactions invalid on Bitcoin: Bitcoin Cash's SIGHASH_FORKID, its copies, and SegWit2x's late opt-in marker.
The wiki's angle: replay protection was the line between a fork that meant to be a separate coin and one that meant to replace Bitcoin. SegWit2x only proposed an opt-in version, and it was closed the day the fork was called off.[8][9]
Bitcoin Cash and its copies
The Bitcoin Cash specification introduced a new signature digest used when the SIGHASH_FORKID bit is set[1]. Bitcoin Gold used two-way SIGHASH_FORKID with fork ID 79[2]. Later 2017–18 forks advertised the same idea: Bitcoin Cash Plus lists “2-way Replay protection (SIGHASH_FORK_ID)” and Bithereum “Replay protection (SIGHASH_FORK_ID)”[3][4]. Bitcoin Platinum's site and Bitcoin Uranium's announcement also claimed replay protection[5][6].
SegWit2x
On 23 August 2017 Jeff Garzik opened btc1 pull request #117, “Add opt-in transaction avoidance”, based on a gist by Gavin Andresen[7]. Transactions with the marker “OP_RETURN 'RP=!>1x'” would be non-standard before the fork and invalid after the BIP102 hard fork point[7]. It was re-opened as #134 on 12 October 2017 and closed on 8 November 2017 with no GitHub merge recorded[8], the day SegWit2x was suspended[9].
What is not sourced
This wiki has not found a primary source documenting specific losses from replayed transactions in 2017; such reports are marked unknown here[1]. The general concept is covered under Replay protection[1].
References
- primarybitcoincash.org, “BUIP-HF Digest for replay protected signature verification across hard forks” (SIGHASH_FORKID) [archived]
- btkBitcoin Gold: One GPU, One Vote (BTCTKVR: Forks!) [archived]
- primaryBitcoin Cash Plus README, GitHub bitcoincashplus/bitcoincashplus [archived]
- primaryBithereum README, GitHub BTHPOS/BTH [archived]
- primaryBitcoin Platinum website, bitcoinplatinum.github.io (Wayback Machine copy, 11 Dec 2017)
- primaryBitcoinUranium, “Bitcoin Uranium- Make Bitcoin Great Again”, Bitcointalk topic 2316506 (25 Oct 2017) [archived]
- primaryjgarzik, btc1/bitcoin PR #117 “[consensus] Add opt-in transaction avoidance” (opened 23 Aug 2017, closed 12 Oct 2017) [archived]
- primaryjgarzik, btc1/bitcoin PR #134 “[consensus] Add opt-in transaction avoidance” (re-branched; opened 12 Oct 2017, closed 8 Nov 2017, no GitHub merge recorded) [archived]
- primaryMike Belshe et al., “Segwit2x Final Steps”, bitcoin-segwit2x mailing list, 8 Nov 2017 (Wayback Machine copy)