1
0
mirror of https://github.com/bitcoin/bips.git synced 2024-11-19 09:50:06 +01:00

Add Backwards Compatibility section to OP_CHECKTEMPLATEVERIFY BIP and change 'Implementations' header to 'Reference Implementation'

This commit is contained in:
Jeremy Rubin 2020-01-20 20:15:23 -08:00
parent 1a42897287
commit c36e492f05

View File

@ -225,9 +225,9 @@ In order to facilitate using CHECKTEMPLATEVERIFY, the common case of a PayToBasi
with no scriptSig data shall be made standard to permit relaying. Future template types may be
standardized later as policy changes.
==Implementations==
==Reference Implementation==
An example implementation and tests are available here:
A reference implementation and tests are available here:
https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify.
@ -519,6 +519,20 @@ Given the simplicity of this approach to implement and analyze, and the benefits
applications, CHECKTEMPLATEVERIFY's template based approach is proposed in lieu of more complete
covenants system.
== Backwards Compatibility ==
OP_CHECKTEMPLATEVERIFY replaces a OP_NOP4 with stricter verification semantics. Therefore, scripts
which previously were valid will cease to be valid with this change. Stricter verification semantics
for an OP_NOP are a soft fork, so existing software will be fully functional without upgrade except
for mining and block validation. Similar soft forks for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY
(see BIP-0065 and BIP-0112) have similarly changed OP_NOP semantics without introducing compatibility issues.
Older wallet software will be able to accept spends from OP_CHECKTEMPLATEVERIFY outputs, but will
require an upgrade in order to treat PayToBasicStandardTemplate chains with a confirmed ancestor as
being "trusted" (i.e., eligible for spending before the transaction is confirmed).
Backports of OP_CHECKTEMPLATEVERIFY can be trivially prepared (see the reference implementation)
for older node versions that can be patched but not upgraded to a newer major release.
== References ==