mirror of
https://github.com/bitcoin/bips.git
synced 2026-03-30 16:06:44 +00:00
107 lines
5.6 KiB
Markdown
107 lines
5.6 KiB
Markdown
```
|
|
BIP: 448
|
|
Layer: Consensus (soft fork)
|
|
Title: Taproot-native (Re)bindable Transactions
|
|
Authors: Gregory Sanders <gsanders87@gmail.com>
|
|
Antoine Poinsot <mail@antoinep.com>
|
|
Steven Roose <steven@stevenroose.org>
|
|
Status: Draft
|
|
Type: Specification
|
|
Assigned: 2026-03-11
|
|
License: CC0-1.0
|
|
```
|
|
|
|
## Abstract
|
|
|
|
This document proposes deploying three new operations for [Tapscript][tapscript-bip]:
|
|
[BIP 446 `OP_TEMPLATEHASH`][templatehash-bip], [BIP 348 `OP_CHECKSIGFROMSTACK`][csfs-bip], and [BIP 349 `OP_INTERNALKEY`][internalkey-bip].
|
|
|
|
These minimal operations introduce modular functionalities which improve existing second layer protocols and make new
|
|
ones possible through plausible interactivity requirements.
|
|
|
|
## Motivation
|
|
|
|
The three proposed operations are simple, well-understood, and enable powerful new capabilities while minimizing the
|
|
risk of surprising behavior or unintended applications. They improve existing, well-studied protocols and make promising
|
|
new ones possible.
|
|
|
|
`OP_TEMPLATEHASH` allows a Tapscript to commit to the exact transaction that must spend it. This capability is a common
|
|
building block for second-layer protocols that is emulated today by requiring a signature from all involved parties.
|
|
Using `OP_TEMPLATEHASH` instead reduces interactivity, making such protocols simpler, safer, and sometimes significantly
|
|
more efficient.
|
|
|
|
`OP_CHECKSIGFROMSTACK` introduces [BIP 340][schnorr-bip] signature verification for arbitrary messages, which enables
|
|
delegation and oracle attestations.
|
|
|
|
Together, these features enable rebindable transaction signatures, making possible a new type of payment channel:
|
|
[LN-Symmetry ("Eltoo")][optech-eltoo]. Its simplicity makes advanced constructs like multiparty channels practical,
|
|
enables simplifications for 2-party channels such as [Daric][daric-channels], and can substantially improve
|
|
[statechains][statechains-optech]. Rebindable signatures also enable further interactivity reduction in second layer
|
|
protocols, as illustrated by the Ark variant "[Erk][ark-erk]" or the [dramatic simplification][greg-rebindable-ptlcs]
|
|
they bring to upgrading today's Lightning to [Point Time Locked Contracts][optech-ptlcs].
|
|
|
|
`OP_INTERNALKEY` allows to push the [Taproot][taproot-bip] internal key on the stack. This is a natural and extremely
|
|
simple optimisation for rebindable signatures.
|
|
|
|
## Specification
|
|
|
|
In [BIP 342 Tapscript](bip-0342.mediawiki), the following operations are updated. `OP_TEMPLATEHASH` redefines `OP_SUCCESS206` (0xce) as per
|
|
the specification of [BIP 446][templatehash-bip]. `OP_CHECKSIGFROMSTACK` redefines `OP_SUCCESS204` (0xcc) as per the
|
|
specification of [BIP 348][csfs-bip]. `OP_INTERNALKEY` redefines `OP_SUCCESS203` (0xcb) as per the specification of [BIP
|
|
349][internalkey-bip].
|
|
|
|
### Deployment
|
|
|
|
The specific activation is left to be determined at a later date.
|
|
|
|
## Rationale
|
|
|
|
This proposal seeks to extend Bitcoin's scripting capabilities in areas that are useful to proven approaches to scaling
|
|
Bitcoin payments. The operations proposed to achieve
|
|
these capabilities are contained within the more modern and well-studied Tapscript context. They are simple, composable
|
|
and unlikely to be made obsolete by future extensions to Bitcoin Script. They build upon existing operations and
|
|
therefore present a minimal cost to validation and implementation complexity.
|
|
|
|
More modular operations (such as [BIP 346][txhash-bip]) also enable these capabilities, and more. However they come with
|
|
an increased risk surface, notably in terms of implementation complexity. As the additional capabilities have not been
|
|
demonstrated to enable new important use cases or substantially improve existing ones beyond this proposal, we favour
|
|
the minimal approach.
|
|
|
|
An alternative to [BIP 446 `OP_TEMPLATEHASH`][templatehash-bip] is [BIP 119 `OP_CHECKTEMPLATEVERIFY`][ctv-bip]. This
|
|
proposal favours the minimal approach of [BIP 446 `OP_TEMPLATEHASH`][templatehash-bip] that does not modify legacy
|
|
scripting contexts and reuses the existing Taproot signature hashes. See [the rationale section of BIP
|
|
446][templatehash-rationale] for more details.
|
|
|
|
## Backward compatibility
|
|
|
|
This document proposes to give meaning to three Tapscript `OP_SUCCESS` operations. The presence of an `OP_SUCCESS` in a
|
|
Tapscript would previously make it unconditionally succeed. This proposal therefore only tightens the block validation
|
|
rules: there is no block that is valid under the rules proposed in this BIP but not under the existing Bitcoin consensus
|
|
rules. As a consequence these changes are backward-compatible with non-upgraded node software. That said, the authors
|
|
strongly encourage node operators to upgrade in order to fully validate all consensus rules.
|
|
|
|
## Acknowledgements
|
|
|
|
This proposal is similar to the combination of opcodes Brandon Black previously
|
|
[proposed](https://delvingbitcoin.org/t/lnhance-bips-and-implementation/376) for activation under the name "LNHANCE".
|
|
|
|
## Copyright
|
|
|
|
This document is licensed under the Creative Commons CC0 1.0 Universal license.
|
|
|
|
[templatehash-bip]: bip-0446.md
|
|
[templatehash-rationale]: bip-0446.md#rationale
|
|
[ctv-bip]: bip-0119.mediawiki
|
|
[csfs-bip]: bip-0348.md
|
|
[internalkey-bip]: bip-0349.md
|
|
[schnorr-bip]: bip-0340.mediawiki
|
|
[taproot-bip]: bip-0341.mediawiki
|
|
[tapscript-bip]: bip-0342.mediawiki
|
|
[optech-eltoo]: https://bitcoinops.org/en/topics/eltoo
|
|
[optech-ptlcs]: https://bitcoinops.org/en/topics/ptlc
|
|
[txhash-bip]: bip-0346.md
|
|
[ark-erk]: https://delvingbitcoin.org/t/evolving-the-ark-protocol-using-ctv-and-csfs/1602
|
|
[greg-rebindable-ptlcs]: https://gist.github.com/instagibbs/1d02d0251640c250ceea1c66665ec163
|
|
[daric-channels]: https://eprint.iacr.org/2022/1295
|
|
[statechains-optech]: https://bitcoinops.org/en/topics/statechains/
|