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:
parent
1a42897287
commit
c36e492f05
@ -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 ==
|
||||
|
Loading…
Reference in New Issue
Block a user