BIP 119: CHECKTEMPLATEVERIFY #875

pull JeremyRubin wants to merge 4 commits into bitcoin:master from JeremyRubin:ctv changing 9 files +705 −0
  1. JeremyRubin commented at 6:16 PM on January 6, 2020: contributor

    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.

  2. luke-jr added the label New BIP on Jan 17, 2020
  3. 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.

  4. 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?

  5. kallewoof commented at 4:58 AM on January 20, 2020: contributor

    Looking.

  6. 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.

  7. JeremyRubin commented at 3:57 AM on January 21, 2020: contributor
    • BIP 65 -- CLTV/CSV.
  8. Add BIP for CheckTemplateVerify 1a42897287
  9. Add Backwards Compatibility section to OP_CHECKTEMPLATEVERIFY BIP and change 'Implementations' header to 'Reference Implementation' c36e492f05
  10. JeremyRubin force-pushed on Jan 21, 2020
  11. JeremyRubin commented at 4:18 AM on January 21, 2020: contributor

    Added a backwards compatibility section; and rebased to pick up the linter fixes.

  12. luke-jr commented at 12:03 AM on January 24, 2020: member

    Use BIP 119

  13. luke-jr renamed this:
    Add BIP for CheckTemplateVerify
    BIP 119: Add BIP for CheckTemplateVerify
    on Jan 24, 2020
  14. luke-jr renamed this:
    BIP 119: Add BIP for CheckTemplateVerify
    BIP 119: CHECKTEMPLATEVERIFY
    on Jan 24, 2020
  15. Assign CTV BIP #119 1db62a07c5
  16. Fix Links to images in BIP-119 117f4186e7
  17. JeremyRubin commented at 12:57 AM on January 24, 2020: contributor

    Thanks Luke! I've set the number & fixed links.

  18. luke-jr merged this on Jan 24, 2020
  19. luke-jr closed this on Jan 24, 2020

  20. 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?

  21. 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 -> CheckTemplateVerify are 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.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-30 10:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me