{"number":448,"title":"Taproot-native (Re)bindable Transactions","authors":["Gregory Sanders","Antoine Poinsot","Steven Roose"],"status":"Draft","type":"Specification","layer":"Consensus (soft fork)","created":"2026-03-11","license":"CC0-1.0","requires":[],"replaces":[],"replacedBy":[],"discussion":[],"abstract":"This document proposes deploying three new operations for Tapscript: BIP 446 OP_TEMPLATEHASH , BIP 348 OP_CHECKSIGFROMSTACK , and BIP 349 OP_INTERNALKEY . These minimal operations introduce modular functionalities which improve existing second layer protocols and make new ones possible through plausible interactivity requirements.","eli5":"Bundles three small script instructions, OP_TEMPLATEHASH, OP_CHECKSIGFROMSTACK and OP_INTERNALKEY, into a single proposed upgrade. Together they would let transactions commit to specific future spends or be re-bound to new ones, improving Lightning and enabling other second-layer protocols.","categories":["taproot","consensus","transactions"],"filename":"bip-0448.md","githubUrl":"https://github.com/bitcoin/bips/blob/master/bip-0448.md","format":"markdown","readingMinutes":3,"inbound":0,"revisions":1,"impact":0,"core":false,"references":[119,340,341,342,346,348,349,446],"lastModified":"2026-03-17","html":"<h2 id=\"abstract\">Abstract</h2>\n<p>This document proposes deploying three new operations for <a href=\"/bip/342\">Tapscript</a>:\n<a href=\"/bip/446\">BIP 446 <code>OP_TEMPLATEHASH</code></a>, <a href=\"/bip/348\">BIP 348 <code>OP_CHECKSIGFROMSTACK</code></a>, and <a href=\"/bip/349\">BIP 349 <code>OP_INTERNALKEY</code></a>.</p>\n<p>These minimal operations introduce modular functionalities which improve existing second layer protocols and make new\nones possible through plausible interactivity requirements.</p>\n<h2 id=\"motivation\">Motivation</h2>\n<p>The three proposed operations are simple, well-understood, and enable powerful new capabilities while minimizing the\nrisk of surprising behavior or unintended applications. They improve existing, well-studied protocols and make promising\nnew ones possible.</p>\n<p><code>OP_TEMPLATEHASH</code> allows a Tapscript to commit to the exact transaction that must spend it. This capability is a common\nbuilding block for second-layer protocols that is emulated today by requiring a signature from all involved parties.\nUsing <code>OP_TEMPLATEHASH</code> instead reduces interactivity, making such protocols simpler, safer, and sometimes significantly\nmore efficient.</p>\n<p><code>OP_CHECKSIGFROMSTACK</code> introduces <a href=\"/bip/340\">BIP 340</a> signature verification for arbitrary messages, which enables\ndelegation and oracle attestations.</p>\n<p>Together, these features enable rebindable transaction signatures, making possible a new type of payment channel:\n<a href=\"https://bitcoinops.org/en/topics/eltoo\">LN-Symmetry (&quot;Eltoo&quot;)</a>. Its simplicity makes advanced constructs like multiparty channels practical,\nenables simplifications for 2-party channels such as <a href=\"https://eprint.iacr.org/2022/1295\">Daric</a>, and can substantially improve\n<a href=\"https://bitcoinops.org/en/topics/statechains/\">statechains</a>. Rebindable signatures also enable further interactivity reduction in second layer\nprotocols, as illustrated by the Ark variant &quot;<a href=\"https://delvingbitcoin.org/t/evolving-the-ark-protocol-using-ctv-and-csfs/1602\">Erk</a>&quot; or the <a href=\"https://gist.github.com/instagibbs/1d02d0251640c250ceea1c66665ec163\">dramatic simplification</a>\nthey bring to upgrading today&#39;s Lightning to <a href=\"https://bitcoinops.org/en/topics/ptlc\">Point Time Locked Contracts</a>.</p>\n<p><code>OP_INTERNALKEY</code> allows to push the <a href=\"/bip/341\">Taproot</a> internal key on the stack. This is a natural and extremely\nsimple optimisation for rebindable signatures.</p>\n<h2 id=\"specification\">Specification</h2>\n<p>In <a href=\"/bip/342\">BIP 342 Tapscript</a>, the following operations are updated. <code>OP_TEMPLATEHASH</code> redefines <code>OP_SUCCESS206</code> (0xce) as per\nthe specification of <a href=\"/bip/446\">BIP 446</a>. <code>OP_CHECKSIGFROMSTACK</code> redefines <code>OP_SUCCESS204</code> (0xcc) as per the\nspecification of <a href=\"/bip/348\">BIP 348</a>. <code>OP_INTERNALKEY</code> redefines <code>OP_SUCCESS203</code> (0xcb) as per the specification of <a href=\"/bip/349\">BIP\n349</a>.</p>\n<h3 id=\"deployment\">Deployment</h3>\n<p>The specific activation is left to be determined at a later date.</p>\n<h2 id=\"rationale\">Rationale</h2>\n<p>This proposal seeks to extend Bitcoin&#39;s scripting capabilities in areas that are useful to proven approaches to scaling\nBitcoin payments. The operations proposed to achieve\nthese capabilities are contained within the more modern and well-studied Tapscript context. They are simple, composable\nand unlikely to be made obsolete by future extensions to Bitcoin Script. They build upon existing operations and\ntherefore present a minimal cost to validation and implementation complexity.</p>\n<p>More modular operations (such as <a href=\"/bip/346\">BIP 346</a>) also enable these capabilities, and more. However they come with\nan increased risk surface, notably in terms of implementation complexity. As the additional capabilities have not been\ndemonstrated to enable new important use cases or substantially improve existing ones beyond this proposal, we favour\nthe minimal approach.</p>\n<p>An alternative to <a href=\"/bip/446\">BIP 446 <code>OP_TEMPLATEHASH</code></a> is <a href=\"/bip/119\">BIP 119 <code>OP_CHECKTEMPLATEVERIFY</code></a>. This\nproposal favours the minimal approach of <a href=\"/bip/446\">BIP 446 <code>OP_TEMPLATEHASH</code></a> that does not modify legacy\nscripting contexts and reuses the existing Taproot signature hashes. See <a href=\"/bip/446#rationale\">the rationale section of BIP\n446</a> for more details.</p>\n<h2 id=\"backward-compatibility\">Backward compatibility</h2>\n<p>This document proposes to give meaning to three Tapscript <code>OP_SUCCESS</code> operations. The presence of an <code>OP_SUCCESS</code> in a\nTapscript would previously make it unconditionally succeed. This proposal therefore only tightens the block validation\nrules: there is no block that is valid under the rules proposed in this BIP but not under the existing Bitcoin consensus\nrules. As a consequence these changes are backward-compatible with non-upgraded node software. That said, the authors\nstrongly encourage node operators to upgrade in order to fully validate all consensus rules.</p>\n<h2 id=\"acknowledgements\">Acknowledgements</h2>\n<p>This proposal is similar to the combination of opcodes Brandon Black previously\n<a href=\"https://delvingbitcoin.org/t/lnhance-bips-and-implementation/376\">proposed</a> for activation under the name &quot;LNHANCE&quot;.</p>\n<h2 id=\"copyright\">Copyright</h2>\n<p>This document is licensed under the Creative Commons CC0 1.0 Universal license.</p>\n","toc":[{"id":"abstract","title":"Abstract","level":2},{"id":"motivation","title":"Motivation","level":2},{"id":"specification","title":"Specification","level":2},{"id":"deployment","title":"Deployment","level":3},{"id":"rationale","title":"Rationale","level":2},{"id":"backward-compatibility","title":"Backward compatibility","level":2},{"id":"acknowledgements","title":"Acknowledgements","level":2},{"id":"copyright","title":"Copyright","level":2}],"history":{"totalCommits":1,"firstCommit":"2026-03-17T16:01:23-04:00","lastUpdated":"2026-03-17T16:01:23-04:00","events":[{"sha":"2778442c21cef2290ae3e0c843d9f3179aa1cdd0","date":"2026-03-17T16:01:23-04:00","author":"Gregory Sanders","message":"Add BIP446: OP_TEMPLATEHASH, BIP448: Taproot-native (Re)bindable Transactions (#1974)","url":"https://github.com/bitcoin/bips/commit/2778442c21cef2290ae3e0c843d9f3179aa1cdd0","kind":"edit"}]}}