Skip to content

Commit c36e492

Browse files
committed
Add Backwards Compatibility section to OP_CHECKTEMPLATEVERIFY BIP and change 'Implementations' header to 'Reference Implementation'
1 parent 1a42897 commit c36e492

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

bip-ctv.mediawiki

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,9 @@ In order to facilitate using CHECKTEMPLATEVERIFY, the common case of a PayToBasi
225225
with no scriptSig data shall be made standard to permit relaying. Future template types may be
226226
standardized later as policy changes.
227227

228-
==Implementations==
228+
==Reference Implementation==
229229

230-
An example implementation and tests are available here:
230+
A reference implementation and tests are available here:
231231
https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify.
232232

233233

@@ -519,6 +519,20 @@ Given the simplicity of this approach to implement and analyze, and the benefits
519519
applications, CHECKTEMPLATEVERIFY's template based approach is proposed in lieu of more complete
520520
covenants system.
521521

522+
== Backwards Compatibility ==
523+
524+
OP_CHECKTEMPLATEVERIFY replaces a OP_NOP4 with stricter verification semantics. Therefore, scripts
525+
which previously were valid will cease to be valid with this change. Stricter verification semantics
526+
for an OP_NOP are a soft fork, so existing software will be fully functional without upgrade except
527+
for mining and block validation. Similar soft forks for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY
528+
(see BIP-0065 and BIP-0112) have similarly changed OP_NOP semantics without introducing compatibility issues.
529+
530+
Older wallet software will be able to accept spends from OP_CHECKTEMPLATEVERIFY outputs, but will
531+
require an upgrade in order to treat PayToBasicStandardTemplate chains with a confirmed ancestor as
532+
being "trusted" (i.e., eligible for spending before the transaction is confirmed).
533+
534+
Backports of OP_CHECKTEMPLATEVERIFY can be trivially prepared (see the reference implementation)
535+
for older node versions that can be patched but not upgraded to a newer major release.
522536

523537

524538
== References ==

0 commit comments

Comments
 (0)