- Dec 16, 2015
- 2,806
- 6,088
BUIP100: Ability to disable the "automated replay protection" specified for November 2018
Submitted on 25th August 2018 by freetrader
Background
The specification for Bitcoin Cash's May 2018 fork included a "replay protection" requirement [1] which forks compliant full node clients off the network by changing the "forkid" from 0 to 0xFF0001 when the median time past[2] of the most recent 11 blocks (MTP-11) is greater than or equal to UNIX timestamp 1542300000 (November 2018 hardfork).
Effectively this means that Bitcoin Cash, incl. BUcash, client MUST hardfork in November, just to preserve compatibility with wallet software.
This means that simply running an existing compliant full node such as ABC 0.17.x is not sufficient to indicate that you want to "not fork" in November. You would get forked off from the existing wallet ecosystem.
Motivation
Make it a choice in BU to not comply with that rule of the May 2018 specification.
i.e. be able to continue running and remain compatible with the current ecosystem even if you want to vote for no other changes at this time.
Goal
Make "no changes" a valid choice, not requiring a hard fork on BU full nodes, and effectively vote against the policy of 6-monthly hardforks in the future by removing this requirement.
Task
Make code which fulfils this particular requirement in the May specification entirely optional in BU.
Default value
The default value of the option is to break compliance with the May 2018 specification by not forking the replay protection. Rationale is that on Bitcoin Cash, clients usually issue an update prior to the next hard fork which suspends the replay forking until the next HF, whenever that is scheduled.
Not following the requirement is safer than following it, in this case, because it will keep BUcash in sync with the SPV nodes by default.
Timetable
Must be implemented, tested and released at least 2 weeks before timestamp 1542300000.
(This timeframe is subject to debate - please comment on this BUIP!)
Caveats
Must review and test both enabled & disabled pathways carefully, that's about the only one I can think of. Comments welcome.
References
[1] https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/may-2018-hardfork.md#automatic-replay-protection
[2] MTP: the "median time past" value of a block, calculated from its nTime value, and the nTime values of its up to 10 immediate ancestors.
EDITS:
- add default value proposition
- change default value proposition to 'break compliance with the automated replay forking'
- number changed from 99 to 100 (solex)
Submitted on 25th August 2018 by freetrader
Background
The specification for Bitcoin Cash's May 2018 fork included a "replay protection" requirement [1] which forks compliant full node clients off the network by changing the "forkid" from 0 to 0xFF0001 when the median time past[2] of the most recent 11 blocks (MTP-11) is greater than or equal to UNIX timestamp 1542300000 (November 2018 hardfork).
Effectively this means that Bitcoin Cash, incl. BUcash, client MUST hardfork in November, just to preserve compatibility with wallet software.
This means that simply running an existing compliant full node such as ABC 0.17.x is not sufficient to indicate that you want to "not fork" in November. You would get forked off from the existing wallet ecosystem.
Motivation
Make it a choice in BU to not comply with that rule of the May 2018 specification.
i.e. be able to continue running and remain compatible with the current ecosystem even if you want to vote for no other changes at this time.
Goal
Make "no changes" a valid choice, not requiring a hard fork on BU full nodes, and effectively vote against the policy of 6-monthly hardforks in the future by removing this requirement.
Task
Make code which fulfils this particular requirement in the May specification entirely optional in BU.
Default value
The default value of the option is to break compliance with the May 2018 specification by not forking the replay protection. Rationale is that on Bitcoin Cash, clients usually issue an update prior to the next hard fork which suspends the replay forking until the next HF, whenever that is scheduled.
Not following the requirement is safer than following it, in this case, because it will keep BUcash in sync with the SPV nodes by default.
Timetable
Must be implemented, tested and released at least 2 weeks before timestamp 1542300000.
(This timeframe is subject to debate - please comment on this BUIP!)
Caveats
Must review and test both enabled & disabled pathways carefully, that's about the only one I can think of. Comments welcome.
References
[1] https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/may-2018-hardfork.md#automatic-replay-protection
[2] MTP: the "median time past" value of a block, calculated from its nTime value, and the nTime values of its up to 10 immediate ancestors.
EDITS:
- add default value proposition
- change default value proposition to 'break compliance with the automated replay forking'
- number changed from 99 to 100 (solex)
Last edited by a moderator: