BIP16 enforcement change in V0.16



Summary:

The upcoming v0.16 release of Bitcoin contains a minor change to the way BIP16 is enforced, basing activation on block height rather than block time. This brings the enforcement of BIP 16 in line with other BIPs, such as BIP 34, BIP 66, and BIP 65. This change has no impact on consensus since BIP16 was activated before the last checkpoint and is buried under >300,000 blocks. The proposed changes have been written up in the BIP style by John Newbery, although it is not expected to require a full BIP. BIP 16 enforcement is likely to change again with the next bitcoin core release. Therefore, a formal proposal for this as a BIP will quickly be superseded. The proposed update enforces BIP 16 consensus rules based on block height instead of block time. Prior to the date of the consensus rule change being fixed, miners signaled readiness for the change by placing the string "/P2SH/" in the scriptSig of the coinbase transaction txIn. The final activation method was via a hardcoded block time of 1333238400 (April 1st, 2012). Activating the BIP 16 consensus change based on block time has several disadvantages, including that the consensus change can be activated and later deactivated in the same chain. It is less flexible for constructing test chains for testing P2SH and other soft fork activation. This BIP changes the BIP 16 activation method to also be a 'buried' deployment, activating at the block height that BIP 16 actually activated, which is block height 173805. Just as for the buried BIP 34, BIP 65 and BIP 66 deployments, it is technically possible for this to be a non-backwards compatible change. The implementation of the proposed changes can be found on GitHub. The proposed changes have been acknowledged with thanks to Russ Yanofsky, Marco Falke and Suhas Daftuar for suggestions and feedback. This document is placed in the public domain.


Updated on: 2023-06-13T00:12:25.390373+00:00