Fixes and clarifications to address PR comments

This commit is contained in:
moonsettler 2024-11-12 23:46:22 +01:00 committed by Murch
parent 75351f2587
commit b35383b68f
No known key found for this signature in database
GPG Key ID: 7BA035CA5B901713

View File

@ -13,13 +13,14 @@ License: BSD-3-Clause
## Abstract ## Abstract
This BIP describes a new tapscript opcode (`OP_INTERNALKEY`) which This BIP describes a new tapscript opcode (`OP_INTERNALKEY`) which
pushes the taproot internal key to the stack. pushes the _taproot internal key_ to the stack.
## Specification ## Specification
When verifying taproot script spends having leaf version `0xc0` (as defined in When verifying taproot script path spends having leaf version `0xc0` (as
[BIP 342]), `OP_INTERNALKEY` replaces `OP_SUCCESS203` (0xcb). `OP_INTERNALKEY` defined in [BIP 342]), `OP_INTERNALKEY` replaces `OP_SUCCESS203` (0xcb).
pushes the taproot internal key, as defined in [BIP 341], to the stack. `OP_INTERNALKEY` pushes the _taproot internal key_, denoted as _P_ in
[BIP 341], to the stack.
## Motivation ## Motivation
@ -27,14 +28,14 @@ pushes the taproot internal key, as defined in [BIP 341], to the stack.
When building taproot outputs, especially those secured by an aggregate key When building taproot outputs, especially those secured by an aggregate key
representing more than one signer, the parties may wish to collaborate on representing more than one signer, the parties may wish to collaborate on
signing with the taproot internal key, but only with additional script signing with the _taproot internal key_, but only with additional script
restrictions. In this case, `OP_INTERNALKEY` saves 8 vBytes. restrictions. In this case, `OP_INTERNALKEY` saves 8 vBytes.
### Mitigated control block overhead for scripts using hash locks ### Mitigated control block overhead for scripts using hash locks
In cases where script path spending is not desired, the internal key may be set In cases where key path spending is not desired, the internal key may be set to
to a NUMS point whose bytes would otherwise be required in a tapscript. This a NUMS point whose bytes would otherwise be required in a tapscript. This could
could be used with any hash locked transaction, for example, to save 8 vBytes. be used with any hash locked transaction, for example, to save 8 vBytes.
Note: The internal key must be the X coordinate of a point on the SECP256K1 Note: The internal key must be the X coordinate of a point on the SECP256K1
curve, so any such hash must be checked and modified until it is such an X curve, so any such hash must be checked and modified until it is such an X