1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

[BIP-119] No double space after period, no trailing whitespaces

This commit is contained in:
Jeremy Rubin 2022-05-23 09:28:01 -07:00
parent de0ff362fc
commit b29a3d27bf

View File

@ -41,8 +41,8 @@ The recommended standardness rules additionally:
Covenants are restrictions on how a coin may be spent beyond key ownership. Covenants are restrictions on how a coin may be spent beyond key ownership.
This is a general definition based on the legal definition which even simple This is a general definition based on the legal definition which even simple
scripts using CSV would satisfy. Covenants in Bitcoin transactions usually scripts using CSV would satisfy. Covenants in Bitcoin transactions usually
refer to restrictions on where coins can be transferred. Covenants can be refer to restrictions on where coins can be transferred. Covenants can be
useful to construct smart contracts. As covenants are complex to implement and useful to construct smart contracts. As covenants are complex to implement and
risk of introducing fungibility discriminants they have not been seriously risk of introducing fungibility discriminants they have not been seriously
considered for inclusion in Bitcoin. considered for inclusion in Bitcoin.
@ -51,7 +51,7 @@ This BIP introduces a simple covenant called a *template* which enables a
limited set of highly valuable use cases without significant risk. BIP-119 limited set of highly valuable use cases without significant risk. BIP-119
templates allow for non-recursive fully-enumerated covenants with no dynamic templates allow for non-recursive fully-enumerated covenants with no dynamic
state. CTV serves as a replacement for a pre-signed transaction oracle, which state. CTV serves as a replacement for a pre-signed transaction oracle, which
eliminates the trust and interactivity requirements. Examples of uses include eliminates the trust and interactivity requirements. Examples of uses include
wallet vaults, non-interactive payment channel creation, congestion controlled wallet vaults, non-interactive payment channel creation, congestion controlled
batching, efficient to construct discreet log contracts, and payment pools, batching, efficient to construct discreet log contracts, and payment pools,
among many others. For more details on these applications, please see the among many others. For more details on these applications, please see the
@ -195,7 +195,7 @@ Below we'll discuss the rules one-by-one:
The set of data committed to is a superset of data which can impact the TXID of the transaction, The set of data committed to is a superset of data which can impact the TXID of the transaction,
other than the inputs. This ensures that for a given known input, the TXIDs can also be known ahead other than the inputs. This ensures that for a given known input, the TXIDs can also be known ahead
of time. Otherwise, CHECKTEMPLATEVERIFY would not be usable for Batched Channel Creation constructions of time. Otherwise, CHECKTEMPLATEVERIFY would not be usable for Batched Channel Creation constructions
as the redemption TXID could be malleated and pre-signed transactions invalidated, unless the channels as the redemption TXID could be malleated and pre-signed transactions invalidated, unless the channels
are built using an Eltoo-like protocol. Note that there may be other types of pre-signed contracts that are built using an Eltoo-like protocol. Note that there may be other types of pre-signed contracts that
may or may not be able to use Eltoo-like constructs, therefore making TXIDs predictable makes CTV more may or may not be able to use Eltoo-like constructs, therefore making TXIDs predictable makes CTV more
@ -523,11 +523,11 @@ CHECKTEMPLATEVERIFY has benefits in terms of script size (depending on choice of
PK, SIGHASH_ANYPREVOUTANYSCRIPT may use about 2x-3x the bytes) and verification PK, SIGHASH_ANYPREVOUTANYSCRIPT may use about 2x-3x the bytes) and verification
speed, as OP_CHECKTEMPLATEVERIFY requires only hash computation rather than speed, as OP_CHECKTEMPLATEVERIFY requires only hash computation rather than
signature operations. This can be significant when constructing large payment signature operations. This can be significant when constructing large payment
trees or programmatic compilations. CHECKTEMPLATEVERIFY also has a feature-wise trees or programmatic compilations. CHECKTEMPLATEVERIFY also has a feature-wise
benefit in that it provides a robust pathway for future template upgrades. benefit in that it provides a robust pathway for future template upgrades.
OP_CHECKSIGFROMSTACKVERIFY along with OP_CAT may also be used to emulate OP_CHECKSIGFROMSTACKVERIFY along with OP_CAT may also be used to emulate
CHECKTEMPLATEVERIFY. However such constructions are more complicated to use CHECKTEMPLATEVERIFY. However such constructions are more complicated to use
than CHECKTEMPLATEVERIFY, and encumbers additional verification overhead absent than CHECKTEMPLATEVERIFY, and encumbers additional verification overhead absent
from CHECKTEMPLATEVERIFY. These types of covenants also bear similar potential from CHECKTEMPLATEVERIFY. These types of covenants also bear similar potential
recursion issues to OP_COV which make it unlikely for inclusion in Bitcoin. recursion issues to OP_COV which make it unlikely for inclusion in Bitcoin.
@ -545,7 +545,7 @@ the future as well as synergies with other possible upgrades.
=====CHECKTEMPLATEVERIFY Versions===== =====CHECKTEMPLATEVERIFY Versions=====
OP_CHECKTEMPLATEVERIFY currently only verifies properties of 32 byte arguments. OP_CHECKTEMPLATEVERIFY currently only verifies properties of 32 byte arguments.
In the future, meaning could be ascribed to other length arguments. For In the future, meaning could be ascribed to other length arguments. For
example, a 33-byte argument could just the last byte as a control program. In example, a 33-byte argument could just the last byte as a control program. In
that case, DefaultCheckTemplateVerifyHash could be computed when the flag byte that case, DefaultCheckTemplateVerifyHash could be computed when the flag byte
is set to CTVHASH_ALL. Other programs could be added similar to SIGHASH_TYPEs. is set to CTVHASH_ALL. Other programs could be added similar to SIGHASH_TYPEs.