I believe now is an appropriate time to apply for a BIP number/Draft Status for OP_CTV. A few elements will require updating before the BIP moves out of draft (e.g., the activation dates) but activation dates are a separate discussion from the technical considerations which are the focus of this BIP.
BIP 119: CHECKTEMPLATEVERIFY #875
pull JeremyRubin wants to merge 4 commits into bitcoin:master from JeremyRubin:ctv changing 9 files +705 −0-
JeremyRubin commented at 6:16 PM on January 6, 2020: contributor
- luke-jr added the label New BIP on Jan 17, 2020
-
JeremyRubin commented at 10:54 PM on January 17, 2020: contributor
BTW I looked into the travis error -- it seems that the linter is reading a code block and failing because a C++ lambda looks like a improperly formatted markdown link.
I am happy to add a revert-able patch as below:
bool filter(const CTxIn& c) { return c.scriptSig != CScript(); } uint256 GetStandardTemplateHash(const CTransaction& tx, const uint256& outputs_hash, const uint256& sequences_hash, const uint32_t input_index) { bool skip_scriptSigs = std::find_if(tx.vin.begin(), tx.vin.end(), filter) == tx.vin.end(); return skip_scriptSigs ? GetStandardTemplateHashEmptyScript(tx, outputs_hash, sequences_hash, input_index) : GetStandardTemplateHashWithScript(tx, outputs_hash, sequences_hash, GetScriptSigsSHA256(tx), input_index); }so that you don't have to muck around with a broken linter/supressions, but I think it's better to fix the linter longer term.
-
luke-jr commented at 8:39 PM on January 19, 2020: member
@JeremyRubin This is missing a backwards compatibility section. @kallewoof Can you look into a better fix for the linter issue?
-
kallewoof commented at 4:58 AM on January 20, 2020: contributor
Looking.
-
JeremyRubin commented at 3:51 AM on January 21, 2020: contributor
@luke-jr it was unclear to me that a backwards compatibility section was needed for this BIP, referencing BIP-65 and BIP-112 as examples. Neither covers the OP_NOP reinterpretation as being an incompatibility.
Regardless, I can push a section noting that there are no Backwards Incompatibilities.
-
JeremyRubin commented at 3:57 AM on January 21, 2020: contributor
- BIP 65 -- CLTV/CSV.
-
Add BIP for CheckTemplateVerify 1a42897287
-
Add Backwards Compatibility section to OP_CHECKTEMPLATEVERIFY BIP and change 'Implementations' header to 'Reference Implementation' c36e492f05
- JeremyRubin force-pushed on Jan 21, 2020
-
JeremyRubin commented at 4:18 AM on January 21, 2020: contributor
Added a backwards compatibility section; and rebased to pick up the linter fixes.
-
luke-jr commented at 12:03 AM on January 24, 2020: member
Use BIP 119
- luke-jr renamed this:
Add BIP for CheckTemplateVerify
BIP 119: Add BIP for CheckTemplateVerify
on Jan 24, 2020 - luke-jr renamed this:
BIP 119: Add BIP for CheckTemplateVerify
BIP 119: CHECKTEMPLATEVERIFY
on Jan 24, 2020 -
Assign CTV BIP #119 1db62a07c5
-
Fix Links to images in BIP-119 117f4186e7
-
JeremyRubin commented at 12:57 AM on January 24, 2020: contributor
Thanks Luke! I've set the number & fixed links.
- luke-jr merged this on Jan 24, 2020
- luke-jr closed this on Jan 24, 2020
-
murchandamus commented at 11:13 PM on May 20, 2026: member
Hi @JeremyRubin, I was just going through the list of Draft BIPs, and trying to gauge which ones should be advanced to another Status. Would you agree that BIP119: CHECKTEMPLATEVERIFY should perhaps be advanced from Draft to Complete?
-
JeremyRubin commented at 5:03 AM on May 23, 2026: contributor
I think it's appropriate to be Complete.
The point of being Complete wrt CTV BIP is that there's historical discussions of what CTV can or cannot do, as an unchanged BIP artifact, spanning almost 7 years.
Previously, my preferred way to iterate when there was a substantive change during a feature BIP was to rename it.
CheckOutputsHashVerify -> SecureTheBag -> CheckTemplateVerifyare still 3 "independent" concepts from one another.CTV I think would be unlikely to change at this point, and it serves historical discussion well to not change something like this, since it would confusingly invalidate much historical discussion.
So I'm favorable, but would want to think on it for a bit.