From d84186c01caa6728aff157b596908e8c5fdd2ad0 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Tue, 3 Jan 2017 17:07:37 -0600 Subject: [PATCH 001/101] Specify which 1 byte push op codes are valid This adds documentation to BIP141 about which 1 byte push op codes are valid for segwit. This is needed because `OP_1NEGATE` is a 1 byte push op code, but is NOT a valid 1 byte push op code for segwit. See the implementation here for why `OP_1NEGATE` is not valid: https://github.com/bitcoin/bitcoin/blob/14d01309bed59afb08651f2b701ff90371b15b20/src/script/script.cpp#L228 --- bip-0141.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index 7cc587a2..cbdf5ced 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -83,7 +83,7 @@ If all transactions in a block do not have witness data, the commitment is optio === Witness program === -A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a 1-byte push opcode (for 0 to 16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". +A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a valid 1-byte push opcode (OP_0,OP_1,OP_2...,OP_16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". There are two cases in which witness validation logic are triggered. Each case determines the location of the witness version byte and program, as well as the form of the scriptSig: # Triggered by a scriptPubKey that is exactly a push of a version byte, plus a push of a witness program. The scriptSig must be exactly empty or validation fails. (''"native witness program"'') From 608d5dc95f2ddcee32758fe73de6d68b99021e39 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Tue, 3 Jan 2017 17:46:14 -0600 Subject: [PATCH 002/101] Update bip-0141.mediawiki Clarifying rewording, `OP_0` is not a 1 byte push op code since it pushes the empty byte vector onto the stack. --- bip-0141.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index cbdf5ced..eeb6eb93 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -83,7 +83,7 @@ If all transactions in a block do not have witness data, the commitment is optio === Witness program === -A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a valid 1-byte push opcode (OP_0,OP_1,OP_2...,OP_16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". +A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a select subset of opcodes (OP_0,OP_1,OP_2,...,OP_16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". There are two cases in which witness validation logic are triggered. Each case determines the location of the witness version byte and program, as well as the form of the scriptSig: # Triggered by a scriptPubKey that is exactly a push of a version byte, plus a push of a witness program. The scriptSig must be exactly empty or validation fails. (''"native witness program"'') From b2b24b53935544f45188fbe1ae8701074b8cc9f6 Mon Sep 17 00:00:00 2001 From: azuchi Date: Sun, 19 Feb 2017 16:19:17 +0900 Subject: [PATCH 003/101] BIP 143: Unify coin unit --- bip-0143.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0143.mediawiki b/bip-0143.mediawiki index 476b84da..77d75c9a 100644 --- a/bip-0143.mediawiki +++ b/bip-0143.mediawiki @@ -551,7 +551,7 @@ These examples show that FindAndDelete for the signature is not app nLockTime: 00000000 The input comes from a P2WSH witness program: - scriptPubKey : 00209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19, value: 200000 + scriptPubKey : 00209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19, value: 0.00200000 redeemScript : OP_CHECKSIGVERIFY <0x30450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e01> ad4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e01 From ce5d831516bfdb34904a765b3f742e38621ec036 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 27 Sep 2017 18:50:05 +0000 Subject: [PATCH 004/101] BIP 2: Allow editors to fix typos --- bip-0002.mediawiki | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki index ea60d1d7..05f13e54 100644 --- a/bip-0002.mediawiki +++ b/bip-0002.mediawiki @@ -95,6 +95,8 @@ The BIP editor will: The BIP editors are intended to fulfill administrative and editorial responsibilities. The BIP editors monitor BIP changes, and update BIP headers as appropriate. +BIP editors may also, at their option, unilaterally make and merge strictly-editorial changes to BIPs, such as correcting misspellings, fixing broken links, etc. + ==BIP format and structure== ===Specification=== From b84deb2adf23695a0f21b5f056257be65294c064 Mon Sep 17 00:00:00 2001 From: philsmd <921533+philsmd@users.noreply.github.com> Date: Tue, 7 Nov 2017 22:19:47 +0100 Subject: [PATCH 005/101] bip38 typo: specifid -> specified There was a small typo in the bip38 specification. If I'm not totally mistaken the word should be "specified" (not specifid) Thx --- bip-0038.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0038.mediawiki b/bip-0038.mediawiki index bfe1f4ab..9e4d3ef1 100644 --- a/bip-0038.mediawiki +++ b/bip-0038.mediawiki @@ -170,7 +170,7 @@ To recalculate the address: # Derive ''passfactor'' using scrypt with ''ownerentropy'' and the user's passphrase and use it to recompute ''passpoint'' # Derive decryption key for ''pointb'' using scrypt with ''passpoint'', ''addresshash'', and ''ownerentropy'' # Decrypt ''encryptedpointb'' to yield ''pointb'' -# ECMultiply ''pointb'' by ''passfactor''. Use the resulting EC point as a public key and hash it into ''address'' using either compressed or uncompressed public key methodology as specifid in ''flagbyte''. +# ECMultiply ''pointb'' by ''passfactor''. Use the resulting EC point as a public key and hash it into ''address'' using either compressed or uncompressed public key methodology as specified in ''flagbyte''. =====Decryption===== # Collect encrypted private key and passphrase from user. From 9d879aaf5ce36c270d6874ef72aa723732f3bc12 Mon Sep 17 00:00:00 2001 From: nopara73 Date: Sat, 12 May 2018 21:51:18 +0700 Subject: [PATCH 006/101] Fix typos --- bip-0126.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0126.mediawiki b/bip-0126.mediawiki index f498b1cb..4cfa2929 100644 --- a/bip-0126.mediawiki +++ b/bip-0126.mediawiki @@ -50,7 +50,7 @@ Applications which wish to comply both with this procedure and BIP69 should appl A HIT is Standard form if it adheres to all of the following rules: -# The number of unique output scripts must be equal to the number of unique inputs scripts (irrespective of the number of inputs and outputs). +# The number of unique output scripts must be equal to the number of unique input scripts (irrespective of the number of inputs and outputs). # All output scripts must be unique. # At least one pair of outputs must be of equal value. # The largest output in the transaction is a member of a set containing at least two identically-sized outputs. @@ -88,7 +88,7 @@ Clients which create intentional HITs must have the capability to form alternate An HIT formed via the preceding procedure will adhere to the following conditions: -# The number of unique inputs scripts must exceed the number of output scripts. +# The number of unique input scripts must exceed the number of output scripts. # All output scripts must be unique. # At least one pair of outputs must be of equal value. ## "Standard outputs" refers to the set of outputs with equal value From 1dcb4eef3083323f17a3446e240e07a1115c3b3f Mon Sep 17 00:00:00 2001 From: tadhg Date: Fri, 30 Nov 2018 18:37:42 +0100 Subject: [PATCH 007/101] Fix typo in BIP47 --- bip-0047.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0047.mediawiki b/bip-0047.mediawiki index af801f96..4b1763fb 100644 --- a/bip-0047.mediawiki +++ b/bip-0047.mediawiki @@ -150,7 +150,7 @@ It is assumed that Alice can easily obtain Bob's payment code via a suitable met Prior to the first time Alice initiates a transaction to Bob, Alice MUST inform Bob of her payment code via the following procedure: -Note: this procedure is used if Bob uses a version 1 payment code (regardless of the the version of Alice's payment code). If Bob's payment code is not version 1, see the appropriate section in this specification. +Note: this procedure is used if Bob uses a version 1 payment code (regardless of the version of Alice's payment code). If Bob's payment code is not version 1, see the appropriate section in this specification. # Alice constructs a transaction which sends a small quantity of bitcoins to Bob's notification address (notification transaction) ## The inputs selected for this transaction MUST NOT be easily associated with Alice's notification address From a66d1852a27007e14d1d233afbeb3ce362f1c13c Mon Sep 17 00:00:00 2001 From: tadhg Date: Fri, 7 Dec 2018 01:25:19 +0100 Subject: [PATCH 008/101] Missing word --- bip-0047.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0047.mediawiki b/bip-0047.mediawiki index af801f96..ce4af498 100644 --- a/bip-0047.mediawiki +++ b/bip-0047.mediawiki @@ -229,7 +229,7 @@ The following actions are recommended to reduce this risk: # Bob is watching for incoming payments on B' ever since he received the notification transaction from Alice. -## Bob calculates n shared secrets with Alice, using the 0th public key derived Alice's payment code, and private keys 0 - n derived from Bob's payment code, where n is his desired lookahead window. +## Bob calculates n shared secrets with Alice, using the 0th public key derived from Alice's payment code, and private keys 0 - n derived from Bob's payment code, where n is his desired lookahead window. ## Bob calculates the ephemeral deposit addresses using the same procedure as Alice:
B' = B + sG
## Bob calculate the private key for each ephemeral address as:
b' = b + s
From e5c708b3e74f8ab0e855c215f94ed8aadbca3e7d Mon Sep 17 00:00:00 2001 From: Chm Date: Sat, 22 Dec 2018 23:50:26 +0800 Subject: [PATCH 009/101] Typo of test data in bip 143 Transaction signature got sigHashType byte missing in decomposed block. --- bip-0143.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0143.mediawiki b/bip-0143.mediawiki index ed07c828..9619da1c 100644 --- a/bip-0143.mediawiki +++ b/bip-0143.mediawiki @@ -187,7 +187,7 @@ To ensure consistency in consensus-critical behaviour, developers should test th nHashType: 01000000 sigHash: c37af31116d1b27caf68aae9e3ac82f1477929014d5b917657d0eb49478cb670 - signature: 304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee + signature: 304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee01 The serialized signed transaction is: 01000000000102fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f00000000494830450221008b9d1dc26ba6a9cb62127b02742fa9d754cd3bebf337f7a55d114c8e5cdd30be022040529b194ba3f9281a99f2b1c0a19c0489bc22ede944ccf4ecbab4cc618ef3ed01eeffffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac000247304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee0121025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee635711000000 From 9b03604c5bae35510c420b7a8a42dd00eed41dd3 Mon Sep 17 00:00:00 2001 From: Javed Khan Date: Thu, 25 Oct 2018 21:00:52 +0530 Subject: [PATCH 010/101] bip158: update test vectors --- bip-0158.mediawiki | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bip-0158.mediawiki b/bip-0158.mediawiki index 535ffd9a..5ebfaed3 100644 --- a/bip-0158.mediawiki +++ b/bip-0158.mediawiki @@ -315,6 +315,8 @@ complete serialization of a filter is: * N, encoded as a CompactSize * The bytes of the compressed filter itself +A zero element filter MUST be written as one byte containing zeroes. + ==== Signaling ==== This BIP allocates a new service bit: From c7cc17f14ec44fa2c0463a6ed2fd9bfcaac7535c Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Fri, 7 Jun 2019 14:26:45 +0700 Subject: [PATCH 011/101] [bip38] Consistent hyphenation usage --- bip-0038.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0038.mediawiki b/bip-0038.mediawiki index bfe1f4ab..9642f42f 100644 --- a/bip-0038.mediawiki +++ b/bip-0038.mediawiki @@ -39,7 +39,7 @@ This proposal is hereby placed in the public domain. :'''''User story:''' As a Bitcoin user who uses paper wallets, I would like the ability to add encryption, so that my Bitcoin paper storage can be two factor: something I have plus something I know.'' :'''''User story:''' As a Bitcoin user who would like to pay a person or a company with a private key, I do not want to worry that any part of the communication path may result in the interception of the key and theft of my funds. I would prefer to offer an encrypted private key, and then follow it up with the password using a different communication channel (e.g. a phone call or SMS).'' :'''''User story:''' (EC-multiplied keys) As a user of physical bitcoins, I would like a third party to be able to create password-protected Bitcoin private keys for me, without them knowing the password, so I can benefit from the physical bitcoin without the issuer having access to the private key. I would like to be able to choose a password whose minimum length and required format does not preclude me from memorizing it or engraving it on my physical bitcoin, without exposing me to an undue risk of password cracking and/or theft by the manufacturer of the item.'' -:'''''User story:''' (EC multiplied keys) As a user of paper wallets, I would like the ability to generate a large number of Bitcoin addresses protected by the same password, while enjoying a high degree of security (highly expensive scrypt parameters), but without having to incur the scrypt delay for each address I generate. +:'''''User story:''' (EC-multiplied keys) As a user of paper wallets, I would like the ability to generate a large number of Bitcoin addresses protected by the same password, while enjoying a high degree of security (highly expensive scrypt parameters), but without having to incur the scrypt delay for each address I generate. ==Specification== This proposal makes use of the following functions and definitions: From 62c759eae68c380c1a494540331254039cbbd1ee Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sat, 3 Aug 2019 13:55:29 -0500 Subject: [PATCH 012/101] bip112: fix trivial typo --- bip-0112.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0112.mediawiki b/bip-0112.mediawiki index f3d370a3..b1597865 100644 --- a/bip-0112.mediawiki +++ b/bip-0112.mediawiki @@ -36,7 +36,7 @@ When executed, if any of the following conditions are true, the script interpret Otherwise, script execution will continue as if a NOP had been executed. -BIP 68 prevents a non-final transaction from being selected for inclusion in a block until the corresponding input has reached the specified age, as measured in block-height or block-time. By comparing the argument to CHECKSEQUENCEVERIFY against the nSequence field, we indirectly verify a desired minimum age of the +BIP 68 prevents a non-final transaction from being selected for inclusion in a block until the corresponding input has reached the specified age, as measured in block-height or block-time. By comparing the argument to CHECKSEQUENCEVERIFY against the nSequence field, we indirectly verify a desired minimum age of the output being spent; until that relative age has been reached any script execution pathway including the CHECKSEQUENCEVERIFY will fail to validate, causing the transaction not to be selected for inclusion in a block. From a0481edf92c91ca785d3b6da577aba5a0929213d Mon Sep 17 00:00:00 2001 From: Enegnei Date: Sun, 30 Aug 2020 22:01:46 +0200 Subject: [PATCH 013/101] Minor grammar fix --- bip-0032.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0032.mediawiki b/bip-0032.mediawiki index f2f1e48b..5a1d7784 100644 --- a/bip-0032.mediawiki +++ b/bip-0032.mediawiki @@ -118,7 +118,7 @@ To shorten notation, we will write CKDpriv(CKDpriv(CKDpriv(m,3H),2),5 * N(m/aH/b/c) = N(m/aH/b)/c = N(m/aH)/b/c. However, N(m/aH) cannot be rewritten as N(m)/aH, as the latter is not possible. -Each leaf node in the tree corresponds to an actual key, while the internal nodes correspond to the collections of keys that descend from them. The chain codes of the leaf nodes are ignored, and only their embedded private or public key is relevant. Because of this construction, knowing an extended private key allows reconstruction of all descendant private keys and public keys, and knowing an extended public keys allows reconstruction of all descendant non-hardened public keys. +Each leaf node in the tree corresponds to an actual key, while the internal nodes correspond to the collections of keys that descend from them. The chain codes of the leaf nodes are ignored, and only their embedded private or public key is relevant. Because of this construction, knowing an extended private key allows reconstruction of all descendant private keys and public keys, and knowing an extended public key allows reconstruction of all descendant non-hardened public keys. ===Key identifiers=== From 688b0dabab2fcdadffe69bf1bdf5d4773b5be391 Mon Sep 17 00:00:00 2001 From: Enegnei Date: Sun, 30 Aug 2020 22:41:52 +0200 Subject: [PATCH 014/101] A few more minor grammar fixes / improvements --- bip-0032.mediawiki | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bip-0032.mediawiki b/bip-0032.mediawiki index 5a1d7784..341dc089 100644 --- a/bip-0032.mediawiki +++ b/bip-0032.mediawiki @@ -24,7 +24,7 @@ This document describes hierarchical deterministic wallets (or "HD Wallets"): wa The specification is intended to set a standard for deterministic wallets that can be interchanged between different clients. Although the wallets described here have many features, not all are required by supporting clients. -The specification consists of two parts. In a first part, a system for deriving a tree of keypairs from a single seed is presented. The second part demonstrates how to build a wallet structure on top of such a tree. +The specification consists of two parts. In the first part, a system for deriving a tree of keypairs from a single seed is presented. The second part demonstrates how to build a wallet structure on top of such a tree. ==Copyright== @@ -36,7 +36,7 @@ The Bitcoin reference client uses randomly generated keys. In order to avoid the Deterministic wallets do not require such frequent backups, and elliptic curve mathematics permit schemes where one can calculate the public keys without revealing the private keys. This permits for example a webshop business to let its webserver generate fresh addresses (public key hashes) for each order or for each customer, without giving the webserver access to the corresponding private keys (which are required for spending the received funds). -However, deterministic wallets typically consist of a single "chain" of keypairs. The fact that there is only one chain means that sharing a wallet happens on an all-or-nothing basis. However, in some cases one only wants some (public) keys to be shared and recoverable. In the example of a webshop, the webserver does not need access to all public keys of the merchant's wallet; only to those addresses which are used to receive customer's payments, and not for example the change addresses that are generated when the merchant spends money. Hierarchical deterministic wallets allow such selective sharing by supporting multiple keypair chains, derived from a single root. +However, deterministic wallets typically consist of a single "chain" of keypairs. The fact that there is only one chain means that sharing a wallet happens on an all-or-nothing basis. However, in some cases one only wants some (public) keys to be shared and recoverable. In the example of a webshop, the webserver does not need access to all public keys of the merchant's wallet; only to those addresses which are used to receive customers' payments, and not for example the change addresses that are generated when the merchant spends money. Hierarchical deterministic wallets allow such selective sharing by supporting multiple keypair chains, derived from a single root. ==Specification: Key derivation== @@ -103,7 +103,7 @@ The function N((k, c)) → (K, c) computes the extended public key correspond To compute the public child key of a parent private key: * N(CKDpriv((kpar, cpar), i)) (works always). * CKDpub(N(kpar, cpar), i) (works only for non-hardened child keys). -The fact that they are equivalent is what makes non-hardened keys useful (one can derive child public keys of a given parent key without knowing any private key), and also what distinguishes them from hardened keys. The reason for not always using non-hardened keys (which are more useful) is security; see further for more information. +The fact that they are equivalent is what makes non-hardened keys useful (one can derive child public keys of a given parent key without knowing any private key), and also what distinguishes them from hardened keys. The reason for not always using non-hardened keys (which are more useful) is security; see further below for more information. ====Public parent key → private child key==== @@ -183,7 +183,7 @@ When a business has several independent offices, they can all use wallets derive ====Recurrent business-to-business transactions: N(m/iH/0)==== In case two business partners often transfer money, one can use the extended public key for the external chain of a specific account (M/i h/0) as a sort of "super address", allowing frequent transactions that cannot (easily) be associated, but without needing to request a new address for each payment. -Such a mechanism could also be used by mining pool operators as variable payout address. +Such a mechanism could also be used by mining pool operators as a variable payout address. ====Unsecure money receiver: N(m/iH/0)==== @@ -211,7 +211,7 @@ Private and public keys must be kept safe as usual. Leaking a private key means Somewhat more care must be taken regarding extended keys, as these correspond to an entire (sub)tree of keys. One weakness that may not be immediately obvious, is that knowledge of a parent extended public key plus any non-hardened private key descending from it is equivalent to knowing the parent extended private key (and thus every private and public key descending from it). This means that extended public keys must be treated more carefully than regular public keys. -It is also the reason for the existence of hardened keys, and why they are used for the account level in the tree. This way, a leak of account-specific (or below) private key never risks compromising the master or other accounts. +It is also the reason for the existence of hardened keys, and why they are used for the account level in the tree. This way, a leak of account-specific (or below) private keys never risks compromising the master or other accounts. ==Test Vectors== From 5ec9df085ebc2adfef5ab667662a8aba967f06cd Mon Sep 17 00:00:00 2001 From: Justus Ranvier Date: Thu, 28 Sep 2017 08:47:50 -0500 Subject: [PATCH 015/101] BIP-0047: Adjust text to match test vectors The original implementation of BIP-47 in Samourai Wallet reversed the parameters in the calculation of the HMAC-SHA512 step of notification transaction blinding. This change adjusts the text to match the as-implementend behavior in deployed BIP-47 wallets and the test vectors. --- bip-0047.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0047.mediawiki b/bip-0047.mediawiki index af801f96..ada9deb5 100644 --- a/bip-0047.mediawiki +++ b/bip-0047.mediawiki @@ -1,7 +1,7 @@ RECENT CHANGES: +* (28 Sep 2017) Adjust text to match test vectors * (19 Apr 2016) Define version 2 payment codes * (17 Apr 2016) Clarify usage of outpoints in notification transactions -* (18 Dec 2015) Update explanations to resolve FAQs
   BIP: 47
@@ -158,7 +158,7 @@ Note: this procedure is used if Bob uses a version 1 payment code (regardless of
 ## Alice selects the private key corresponding to the designated pubkey: 
a
## Alice selects the public key associated with Bob's notification address:
B, where B = bG
## Alice calculates a secret point:
S = aB
-## Alice calculates a 64 byte blinding factor:
s = HMAC-SHA512(x, o)
+## Alice calculates a 64 byte blinding factor:
s = HMAC-SHA512(o, x)
### "x" is the x value of the secret point ### "o" is the outpoint being spent by the designated input # Alice serializes her payment code in binary form. From bc069fa050fb9816746c9e13b34d9d13a7d89562 Mon Sep 17 00:00:00 2001 From: Justus Ranvier Date: Mon, 15 Feb 2021 06:22:42 -0900 Subject: [PATCH 016/101] Finalize BIP-47 --- bip-0047.mediawiki | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bip-0047.mediawiki b/bip-0047.mediawiki index ada9deb5..4806b0b6 100644 --- a/bip-0047.mediawiki +++ b/bip-0047.mediawiki @@ -1,7 +1,7 @@ RECENT CHANGES: +* (15 Feb 2021) Finalize specification * (28 Sep 2017) Adjust text to match test vectors * (19 Apr 2016) Define version 2 payment codes -* (17 Apr 2016) Clarify usage of outpoints in notification transactions
   BIP: 47
@@ -10,11 +10,17 @@ RECENT CHANGES:
   Author: Justus Ranvier 
   Comments-Summary: Unanimously Discourage for implementation
   Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0047
-  Status: Draft
+  Status: Final
   Type: Informational
   Created: 2015-04-24
 
+==Status== + +This BIP can be be considered final in terms of enabling compatibility with wallets that implement version 1 and version 2 reusable payment codes, however future developments of the reusable payment codes specification will not be distributed via the BIP process. + +The Open Bitcoin Privacy Project RFC repo should be consulted for specifications related to version 3 or higher payment codes: https://github.com/OpenBitcoinPrivacyProject/rfc + ==Abstract== This BIP defines a technique for creating a payment code which can be publicly advertised and associated with a real-life identity without creating the loss of security or privacy inherent to P2PKH address reuse. From 497ad1c81a8d7e882c86ffe780db5b01db66d686 Mon Sep 17 00:00:00 2001 From: katesalazar Date: Fri, 17 Sep 2021 21:08:05 +0200 Subject: [PATCH 017/101] Remove transparent background from figure. Before this change, the figure presented black text on transparent background, which might be unconvenient when using a browser able to pass a dark theme preference to some environments where this document is published, currently notably GitHub. A white background could help a better visualization compromise. White background on the figure is the single purpose of this revision. This PNG was compiled using: dot -Tpng states.gv -o states.png --- bip-0009/states.gv | 22 ++++++++++++++++++++++ bip-0009/states.png | Bin 30632 -> 50153 bytes 2 files changed, 22 insertions(+) create mode 100644 bip-0009/states.gv diff --git a/bip-0009/states.gv b/bip-0009/states.gv new file mode 100644 index 00000000..9dc95c56 --- /dev/null +++ b/bip-0009/states.gv @@ -0,0 +1,22 @@ +/* There are many ways to compile this, but one of them is: + * + * $ dot -Tpng states.gv -o states.png + */ +digraph { + /* States. */ + DEFINED; FAILED; STARTED; LOCKED_IN; ACTIVE; + + /* Relationships between states, labeled where applicable. */ + DEFINED -> DEFINED; + DEFINED -> FAILED [label = "timeout ≤ MTP"]; + DEFINED -> STARTED [label = "starttime ≤ MTP < timeout"]; + FAILED -> FAILED; + STARTED -> STARTED; + STARTED -> FAILED [label = "timeout ≤ MTP"]; + STARTED -> LOCKED_IN [label = "(MTP < timeout) AND (threshold reached)"]; + LOCKED_IN -> ACTIVE [label = "Always"]; + ACTIVE -> ACTIVE; + + /* Visualization hack to unclutter output. */ + nodesep = 1.2; +} diff --git a/bip-0009/states.png b/bip-0009/states.png index 09312a1c0381845d10afe2ffbbec912ee1b1b1e0..2048ed870df296d86bef1145b1f10aa980801c8f 100644 GIT binary patch literal 50153 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 literal 30632 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 Date: Thu, 18 Nov 2021 23:55:55 +0100 Subject: [PATCH 018/101] BIP 155: add Yggdrasil --- bip-0155.mediawiki | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bip-0155.mediawiki b/bip-0155.mediawiki index 3e7b0d82..0ec68019 100644 --- a/bip-0155.mediawiki +++ b/bip-0155.mediawiki @@ -117,6 +117,11 @@ The list of reserved network IDs is as follows: | CJDNS | 16 | Cjdns overlay network address +|- +| 0x07 +| YGGDRASIL +| 16 +| Yggdrasil overlay network address |} Clients are RECOMMENDED to gossip addresses from all known networks even if they are currently not connected to some of them. That could help multi-homed nodes and make it more difficult for an observer to tell which networks a node is connected to. @@ -184,6 +189,10 @@ I2P addresses MUST be sent with the I2P network ID, with the decode Cjdns addresses are simply IPv6 addresses in the fc00::/8 range[https://github.com/cjdelisle/cjdns/blob/6e46fa41f5647d6b414612d9d63626b0b952746b/doc/Whitepaper.md#pulling-it-all-together Cjdns whitepaper: Pulling It All Together]. They MUST be sent with the CJDNS network ID. +==Appendix E: Yggdrasil address encoding== + +Yggdrasil addresses are simply IPv6 addresses in the 0200::/7 range[https://yggdrasil-network.github.io/faq.html#will-yggdrasil-conflict-with-my-network-routing Yggdrasil FAQ]. They MUST be sent with the YGGDRASIL network ID. + ==References== From 3248581928b5299525b32979c8a569ce9107fdfc Mon Sep 17 00:00:00 2001 From: katesalazar Date: Fri, 13 May 2022 20:20:49 +0000 Subject: [PATCH 019/101] Bring back transparent background to figures Black arrows are visible only in light theme (unless white background for dark theme). Two-color arrows are visible in light theme and in dark theme. --- .gitignore | 6 + bip-0174/build.sh | 9 + bip-0174/coinjoin-workflow.svg | 1372 ++++++++++++--- bip-0174/coinjoin-workflow.tex | 12 +- bip-0174/multisig-workflow.svg | 2957 ++++++++++++++++++++++++++------ bip-0174/multisig-workflow.tex | 19 +- 6 files changed, 3568 insertions(+), 807 deletions(-) create mode 100644 .gitignore create mode 100755 bip-0174/build.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..d939d2a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +bip-0174/coinjoin-workflow.aux +bip-0174/coinjoin-workflow.log +bip-0174/coinjoin-workflow.pdf +bip-0174/multisig-workflow.aux +bip-0174/multisig-workflow.log +bip-0174/multisig-workflow.pdf diff --git a/bip-0174/build.sh b/bip-0174/build.sh new file mode 100755 index 00000000..2de1e562 --- /dev/null +++ b/bip-0174/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +pdflatex -output-format=pdf coinjoin-workflow.tex && \ +inkscape --with-gui --export-text-to-path \ + --export-plain-svg=coinjoin-workflow.svg coinjoin-workflow.pdf && \ +pdflatex -output-format=pdf multisig-workflow.tex && \ +inkscape --with-gui --export-text-to-path \ + --export-plain-svg=multisig-workflow.svg multisig-workflow.pdf && \ +echo '"success"' diff --git a/bip-0174/coinjoin-workflow.svg b/bip-0174/coinjoin-workflow.svg index 4c2a041d..3b6b952e 100644 --- a/bip-0174/coinjoin-workflow.svg +++ b/bip-0174/coinjoin-workflow.svg @@ -1,8 +1,54 @@ - - - - + + + + + + image/svg+xml + + + + + + + + @@ -107,7 +153,7 @@ - + @@ -376,281 +422,1133 @@ - + - + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - + - + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/bip-0174/coinjoin-workflow.tex b/bip-0174/coinjoin-workflow.tex index e0516ffe..a325321a 100644 --- a/bip-0174/coinjoin-workflow.tex +++ b/bip-0174/coinjoin-workflow.tex @@ -7,7 +7,7 @@ \usepackage{lmodern} \renewcommand*\familydefault{\sfdefault} \usepackage{tikz} -\usetikzlibrary{shapes,arrows} +\usetikzlibrary{shapes,arrows.meta} \tikzset{>=latex} \begin{document} % \sffamily{} @@ -22,7 +22,7 @@ rounded corners] \begin{tikzpicture}[auto] % outlining the flowchart on a grid - \matrix[column sep=3ex,row sep=2ex]{ + \matrix[column sep=3ex,row sep=3ex]{ \node [block_center] (0alice1) {Alice creates a PSBT with only her inputs with UTXOs filled in.\\Sends it to Bob.}; @@ -49,7 +49,13 @@ \\ };% end matrix % connecting nodes with paths - \draw[line width = 1pt, ->] + \draw [ultra thick, draw=black, -{Stealth[length=8pt]}] + (0alice1) edge (1bob1) + (1bob1) edge (2carol1) + (2carol1) edge (3bob2) + (3bob2) edge (4alice1) + (4alice1) edge (5alice2); + \draw [thin, white, -{Stealth[color=black, fill=white, length=8pt]}] (0alice1) edge (1bob1) (1bob1) edge (2carol1) (2carol1) edge (3bob2) diff --git a/bip-0174/multisig-workflow.svg b/bip-0174/multisig-workflow.svg index 8abe4c51..2d873b05 100644 --- a/bip-0174/multisig-workflow.svg +++ b/bip-0174/multisig-workflow.svg @@ -1,6 +1,47 @@ - + + viewBox="0 0 375.988 411.906" version="1.2" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg1424" + sodipodi:docname="multisig-workflow.svg" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> + + + + image/svg+xml + + + + + + @@ -192,277 +233,931 @@ - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + @@ -471,397 +1166,1381 @@ - - - - - + - - - - - + + + + + - - - - - - - - - + + + + + + + + + - + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -873,23 +2552,173 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bip-0174/multisig-workflow.tex b/bip-0174/multisig-workflow.tex index 2b8744d3..d2250cfa 100644 --- a/bip-0174/multisig-workflow.tex +++ b/bip-0174/multisig-workflow.tex @@ -7,7 +7,7 @@ \usepackage{lmodern} \renewcommand*\familydefault{\sfdefault} \usepackage{tikz} -\usetikzlibrary{shapes,arrows} +\usetikzlibrary{shapes,arrows.meta} \tikzset{>=latex} %\pgfdeclarelayer{bg} % declare background layer %\pgfsetlayers{bg,main} % set order of layers @@ -83,7 +83,15 @@ };% end matrix % connecting nodes with paths % \begin{pgfonlayer}{bg} - \draw[line width = 1pt, ->] + \draw [ultra thick, draw=black, -{Stealth[length=8pt]}] + (R1) edge (R2) + (R2) edge (R3) + (R3) -| (R4C1) + (R3) edge (R4C2) + (R5) edge (R6) + (R6) edge (R7) + (R7) edge (stop); + \draw [thin, white, -{Stealth[color=black, fill=white, length=8pt]}] (R1) edge (R2) (R2) edge (R3) (R3) -| (R4C1) @@ -92,7 +100,12 @@ (R6) edge (R7) (R7) edge (stop); % circumvent missing arrow - \draw[line width = 1pt, ->] + \draw [ultra thick, draw=black, -{Stealth[length=8pt]}] + (R4C1) |-+(0,-2.2em)-| (R5) + (R4C2) edge (R5) + (R4C3) |-+(0,-2.2em)-| (R5) + (R3) -| (R4C3); + \draw [thin, white, -{Stealth[color=black, fill=white, length=8pt]}] (R4C1) |-+(0,-2.2em)-| (R5) (R4C2) edge (R5) (R4C3) |-+(0,-2.2em)-| (R5) From 9df0b19c243362e798186d82e4484a677dc6f854 Mon Sep 17 00:00:00 2001 From: scgbckbone Date: Tue, 22 Nov 2022 01:45:26 +0100 Subject: [PATCH 020/101] update bip-0129.mediawiki --- bip-0129.mediawiki | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bip-0129.mediawiki b/bip-0129.mediawiki index 8719fe42..d2c29d94 100644 --- a/bip-0129.mediawiki +++ b/bip-0129.mediawiki @@ -47,11 +47,14 @@ Concerns #4 and #5 should be handled by Signers and are out of scope of this pro ==Specification== ===Prerequisites=== -This proposal assumes the parties in the multisig support [https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki BIP-0032], [https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki BIP-0322], [https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md the descriptor language] and [https://tools.ietf.org/html/rfc3686 AES encryption]. +This proposal assumes the parties in the multisig support [https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki BIP-0032], [https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki BIP-0322], [https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki BIP-0380 Output Script Descriptors] ([https://github.com/bitcoin/bips/blob/master/bip-0381.mediawiki BIP-0381],[https://github.com/bitcoin/bips/blob/master/bip-0382.mediawiki BIP-0382],[https://github.com/bitcoin/bips/blob/master/bip-0383.mediawiki BIP-0383]) and [https://tools.ietf.org/html/rfc3686 AES encryption]. ===File Extensions=== All descriptor and key records should have a .bsms file extension. Encrypted data should have a .dat extension. +===Newline=== +This specification uses line feed (LF) control character \n. + ===Roles=== ====Coordinator==== @@ -141,7 +144,7 @@ Whereas: * Password = "No SPOF" * Salt = TOKEN * c = 2048 -* dkLen = 256 +* dkLen = 256 bits (32 bytes) * DKey = Derived ENCRYPTION_KEY ====Encryption Scheme==== From 3e10085c09f1322691cb6a22355f30ae54c1eab5 Mon Sep 17 00:00:00 2001 From: D++ <82842780+dplusplus1024@users.noreply.github.com> Date: Sun, 18 Dec 2022 21:49:26 -0600 Subject: [PATCH 021/101] Update Anchor Link Fixed the link to the #simpler-syntax portion of the BIP. --- bip-0021.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0021.mediawiki b/bip-0021.mediawiki index 0fba9bcf..cdc37baa 100644 --- a/bip-0021.mediawiki +++ b/bip-0021.mediawiki @@ -37,7 +37,7 @@ Elements of the query component may contain characters outside the valid range. === ABNF grammar === -(See also [[#Simpler syntax|a simpler representation of syntax]]) +(See also [[#simpler-syntax|a simpler representation of syntax]]) bitcoinurn = "bitcoin:" bitcoinaddress [ "?" bitcoinparams ] bitcoinaddress = *base58 From b30e37c8a26d6b18415406a5664aaef9929a8ac5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 8 Feb 2023 16:11:18 -0500 Subject: [PATCH 022/101] Add OP_VAULT BIP --- bip-VAULT/batch-sweep.drawio.png | Bin 0 -> 62296 bytes bip-VAULT/opvault-flow.drawio.png | Bin 0 -> 47748 bytes bip-VAULT/vaults-Basic.png | Bin 0 -> 31544 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 0 -> 19737 bytes bip-vaults.mediawiki | 750 +++++++++++++++++++++ 5 files changed, 750 insertions(+) create mode 100644 bip-VAULT/batch-sweep.drawio.png create mode 100644 bip-VAULT/opvault-flow.drawio.png create mode 100644 bip-VAULT/vaults-Basic.png create mode 100644 bip-VAULT/withdrawal-comparison.drawio.png create mode 100644 bip-vaults.mediawiki diff --git a/bip-VAULT/batch-sweep.drawio.png b/bip-VAULT/batch-sweep.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8f142545793e10484148d50abffc7066a4510c2c GIT binary patch literal 62296 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%0Df84U&UeU(b*=co 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
}q2Cf7sc+g>-iR9ziC6tq28_xtBz|^ttE5Zs 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%0AB4oj> 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 qJrHo>(FHFMQ32LCVh*k0ZM literal 0 HcmV?d00001 diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki new file mode 100644 index 00000000..f675737a --- /dev/null +++ b/bip-vaults.mediawiki @@ -0,0 +1,750 @@ +
+  BIP: xxxx
+  Layer: Consensus (soft fork)
+  Title: OP_VAULT
+  Author: James O'Beirne 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx
+  Status: Draft
+  Type: Standards Track
+  Created: 2020-02-03
+  License: BSD-3-Clause
+  Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment
+
+ + +== Introduction == + +This BIP proposes new tapscript opcodes, OP_VAULT and +OP_UNVAULT, that add consensus support for a specialized covenant. +These opcodes allow users to enforce a delay period before designated coins may +be spent to an arbitrary destination, with the exception of a prespecified +"recovery" path. At any time prior to final withdrawal, the coins can be spent to +the prespecified path. + + +=== Motivation === + +The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to +significant effort to secure their private keys, and hope that once provisioned +their custody system does not yield to any number of evolving and +persistent threats. Users have little means to intervene once compromise is +detected. This proposal introduces a mechanism that significantly +mitigates the worst-case outcome of key compromise: coin loss. + +Introducing a way to intervene during unexpected spends allows users to +incorporate highly secure key storage methods or unusual fallback strategies +that are only exercised in the worst case, and which may otherwise be +operationally prohibitive. The goal of this proposal is to make this strategy +usable for custodians of any size with minimal complication. + +==== Example uses ==== + +An individual custodying Bitcoin uses the common "single signature and +passphrase" configuration with a hardware wallet. They are concerned about the +risk associated with relying on a single manufacturer for key management as +well as physical access to the hardware, so they generate a new key that is +highly secure, but would be impractical for daily use. For example the key +could be generated in some analog fashion, or on an old computer (with added +entropy) that is then destroyed, with the private key replicated only in paper +form. Or the key could be a 2-of-3 multisig using devices from different +manufacturers. Perhaps the key is geographically distributed. + +This individual can use OP_VAULT to make use of the highly secure +key as the unlikely recovery path, while using their existing signing procedure +as the withdrawal trigger key, with a configured spend delay of 1 day. They can +run software on their mobile device that monitors the blockchain for spends of +the vault outpoints. + +If the vaulted coins move in an unexpected way, the user can immediately sweep +them to the highly secure recovery path, but spending the coins on a daily +basis works in the same way it did prior to vaulting - aside from the spend +delay. + +The recovery key could be any number of things: a 2-of-3 multisig with keys +that live on different devices, a 3-of-5 with socially distributed keys, a +Taproot construction that incorporates one of these methods along with a +time-delayed fallback to an "easier" recovery method, in case the highly secure +key winds up being ''too'' highly secure. + +Institutional custodians of Bitcoin would likely use vaults in similar fashion. + +===== Avoiding the hostage situation ===== + +This proposal uniquely provides a solution to the "hostage situation;" by +setting the spend delay to, say, a week, and using as the recovery path a +script that enforces a longer relative timelock, the owner of the vault can +prove that he is unable to access its value immediately. To the author's +knowledge, this is the only way to configure this defense without rolling +timelocked coins for perpetuity or relying on a trusted third party. + +== Goals == + +[[File:bip-VAULT/vaults-Basic.png|frame|center]] + +Vaults in Bitcoin have been discussed formally since 2016 +([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) or earlier. The value of +having a configurable delay period with recovery capability in light of an +unexpected spend has been widely recognized. + +The only way to implement vaults given the existing consensus rules, aside from +[https://github.com/revault emulating vaults with large multisig +configurations], is to use presigned transactions created with a one-time-use +key. This approach was first demonstrated +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html +in 2020]. + +Unfortunately, this approach has a number of practical shortcomings: +* generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, +* amounts and withdrawal patterns must be precommitted to, +* there is a necessity to precommit to an address that the funds must pass through on their way to the final withdrawal target, which is likely only known at unvault time, +* the particular fee management technique or wallet must be decided upon vault creation, +* coin loss follows if a vault address is reused, +* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity else value is lost, and +* the vault creation ceremony must be performed each time a new balance is to be deposited. + +The deployment of a "precomputed" covenant mechanism like +[https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki OP_CHECKTEMPLATEVERIFY] or +[https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki SIGHASH_ANYPREVOUT] +would both remove the necessity to use an ephemeral key, since the +covenant is enforced on-chain, and lessen the burden of sensitive data storage, +since the necessary transactions can be generated from a set of compact +parameters. This approach was demonstrated [https://github.com/jamesob/simple-ctv-vault in +2022]. + +However, the limitations of precomputation still apply: amounts, +destinations, and fee management are all fixed. Funds must flow through a fixed +intermediary to their final destination. Batch operations, which may be vital +for successful recovery during fee spikes or short spend delay, are not possible. + +[[File:bip-VAULT/withdrawal-comparison.drawio.png|frame|center]] + +Having a "general" covenant mechanism that can encode arbitrary transactional +state machines would allow us to solve these issues, but at the cost of complex +and large scripts that would probably be duplicated many times over in the +blockchain. The particular design and deployment timeline of such a general +framework is also uncertain. There are no sample vault implementations using +these means known to the author. + +This proposal intends to address the problems outlined above by +providing a delay period/recovery path use with minimal transactional and +operational overhead using a specialized covenant. + +The design goals of the proposal are: + +* '''efficient reuse of an existing vault configuration.''''''Why does this support address reuse?''' The proposal doesn't rely on or encourage address reuse, but certain uses are unsafe if address reuse cannot be handled - for example, if a custodian gives its users a vault address to deposit to, it cannot enforce that those users make a single deposit for each address. A single vault configuration, whether the same literal scriptPubKey or not, should be able to “receive” multiple deposits. + +* '''batched operations''' for recovery and withdrawal to allow managing multiple vault coins efficiently. + +* '''unbounded partial withdrawals''', which allows users to withdrawal partial vault balances without having to perform the setup ceremony for a new vault. + +* '''dynamic unvault targets''', which allow the proposed withdrawal target for a vault to be specified at withdrawal time rather than when the vault is first created. This would remove the need for a prespecified, intermediate wallet that only exists to route unvaulted funds to their desired destination. + +* '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time. + +These goals are accompanied by basic safety considerations (e.g. not being +vulnerable to pinning) and a desire for concision, both in terms of the number +of outputs created as well as script sizes. + +This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) or fee management strategies (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html transaction sponsors]) that may be introduced. Use of these opcodes will benefit from, but do not strictly rely on, future transaction versions (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3]) and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawik ephemeral anchors]. + +== Design == + +=== State machine === + +[[File:bip-VAULT/opvault-flow.drawio.png|frame|center]] + +The vault has a number of stages, some of them optional: + +* '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. + +* '''trigger transaction''': spends one or more OP_VAULT outputs into one compatible OP_UNVAULT output, which broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). + +* '''withdrawal transaction''': spends OP_UNVAULT inputs into a compatible set of final withdrawal outputs per the target hash. The only authorization for this spend is the content hash of the withdrawal outputs. + +* '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. + + +=== Parameters === + + + +The recovery parameters dictate both where funds can be swept to during a +recovery, and what kind of authorization (if any) is needed to initiate a +recovery. It is specified in the form + + +[] + + +The first component commits to the destination that vault funds can be swept to +at any point prior to the finalization of a withdrawal. + +The recovery scriptPubKey would usually correspond to a spending script that is +inconvenient to exercise but highly secure. + +The second component, the recovery authorization scriptPubKey, is optional. It +is a raw scriptPubKey that, if specified, must be satisfied to allow the input +to be recovered. The benefit of using this parameter will be discussed later. +If this component is not given, the de facto "authorization" is the reveal of +the preimage. + +Vaults which share the same recovery path can always be swept in batch operations, +which is an important practical aspect of managing large numbers of vaults. + + + +The spend delay dictates the duration of blocks or time which must +elapse for the trigger OP_UNVAULT output to be claimable into the +withdrawal target outputs. Encoded as the least significant 23 bits of a +[https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] style +relative locktime. + +'''Trigger key''' + +The trigger key, committed to with , is used to +authorize the ''trigger transaction'' - an on-chain declaration to attempt a +withdrawal to a certain set of target outputs. + +This functions as the "normal" spending key, but if an attacker obtains access +to this key, the outcome is not catastrophic: any withdrawal attempt can be +interrupted (within the spend delay) and swept to the recovery path. + +The trigger key can be an arbitrary scriptPubKey so long as it represents a +valid witness program. OP_VAULT outputs which have the same +recovery params and spend delay can be spent into the same +OP_UNVAULT output for a batched withdrawal process. + + + +An arbitrary set of target withdrawal outputs that is specified as a parameter to OP_UNVAULT as a 32 byte tagged hash. The preimage is a list of destination output scriptPubKeys and amounts. If the trigger remains uncontested -- if it isn't swept to recovery before the spend delay elapses -- the vaulted funds may be spent into a compatible set of target outputs. + + +=== Fee management === + +A primary consideration of this proposal is how fee management is handled. +Providing dynamic fee management is critical to the operation of a vault, since + +* precalculated fees are prone to making transactions unconfirmable by high fee environments, and +* a fee wallet that is prespecified might be compromised or lost before use. + +But dynamic fee management can introduce +[https://bitcoinops.org/en/topics/transaction-pinning/ pinning vectors]. Care +has been taken to avoid unnecessarily introducing these vectors when using the new +content-based spending policies that this proposal introduces. + +Originally, this proposal had a hard dependency on reformed transaction +nVersion=3 policies, including ephemeral anchors, but it has since been revised +to simply benefit from these changes in policy as well as other potential fee +management mechanisms. + + +== Specification == + +The tapscript opcodes OP_SUCCESS187 (0xbb) and +OP_SUCCESS188 (0xbc) are claimed to implement the +OP_VAULT and OP_UNVAULT rules, respectively. + +=== OP_VAULT evaluation === + +==== Witness program ==== + +When evaluating OP_VAULT (OP_SUCCESS187, +0xbb), the witness program is pushed onto the stack for the +following result (stack shown top to bottom): + + +OP_VAULT (*) being evaluated + + + + + +where + +* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output +** tagged_hash("VaultTriggerSPK", spk), per BIP-0340. +** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. +** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. + +* is a CScriptNum-encoded number (up to 4 bytes) +** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. + +* is a variable length data push, consisting of two components: +*# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to +*#* tagged_hash("VaultRecoverySPK", spk) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. +*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction. +*#* This optional parameter changes the allowable structure of recovery transactions. +** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. +** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. + +==== Check for recovery ==== + +After the witness program is parsed, it must be determined whether this input +is being spent towards a recovery. If an output in the spending transaction is +found whose scriptPubKey hashes to the recovery sPK hash (the +first component of ), the interpreter will +evaluate for recovery. Otherwise, the interpreter will evaluate assuming a withdrawal +is being triggered. + +In pseudocode: + + +is_recovery = False +recovery_out: Optional[CTxOut] = None + +for out in spending_tx.vout: + if tagged_hash("VaultRecoverySPK", out.scriptPubKey) == recovery_sPK_hash: + is_recovery = True + recovery_out = out + +if is_recovery: + eval_for_recovery() +else: + eval_for_withdrawal_trigger() + + +==== OP_VAULT evaluation for recovery spend ==== + +* If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. +* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail. +** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. +* The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor +*# the version of the recovery transaction has an nVersion equal to 3. + +The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. + +* If the ''recovery authorization sPK'' is not null: +** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. +** (This validates that the recovery has been authorized.) +* else (if the recovery is allowed to be unauthorized): +** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. +** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. + + +(Note: the above rules imply that if all inputs have a recovery authorization sPK specified, the structure of the recovery transaction is "free form," and the only requirement is that for each OP_VAULT/OP_UNVAULT input, there exists a compatible ''recovery output'' which preserves its full nValue.) + +If none of the conditions fail, a single true value (0x01) is left on the stack. + +==== OP_VAULT evaluation for withdrawal trigger ==== + +Else, if it has been determined that the spend is not within a recovery +transaction, it must be evaluated for eligibility as a withdrawal trigger +spend. + +===== Witness stack ===== + +There must be at least 4 items on the stack (shown top to bottom): + + + + + + [...] + + +If the witness stack consists of fewer than four items the script MUST fail and +terminate immediately. + +(Note: in practice, the witness stack will have included the other items necessary to reveal +a witness v1 (or greater) script-path spend, per [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Constructing_and_spending_Taproot_outputs BIP-0341]. This is demonstrated in detail in [[#Transaction examples|the transaction examples section]].) + +The items on the stack must be validated as follows: + +* is a CScriptNum of up to 4 bytes. +** It indicates the vout index of this input's corresponding OP_UNVAULT output. +*** Validation rules for this output are described below. +** If this value does not decode as a valid CScriptNum value, the script MUST fail and terminate immediately. +** If this value does not correspond to a valid output in the spending transaction, the script MUST fail and terminate immediately. + +* is a 32 byte data push. +** It is the hash of the proposed withdrawal target output set, defined by target_outputs_hash(outputs) below. Note that this value is duplicated here.'''Why, when spending an OP_VAULT output into a trigger, does the target hash need to be duplicated on the witness stack?''' The target hash exists in the OP_UNVAULT output script, likely behind a taproot pubkey. Its presence is required on the witness stack also so that the expected taproot pubkey for the OP_UNVAULT output can be constructed for comparison. +** If this value is not 32 bytes, the script MUST fail and terminate immediately. + +* is a variable length data push. +** It must be the scriptPubKey that is the preimage to the specified in the spent OP_VAULT input. +** If this value does not tagged-hash to supplied by the OP_VAULT parameter, the script MUST fail and terminate immediately. +*** Verify tagged_hash("VaultTriggerSPK", ) == +** If this value does not correspond to a valid witness program, the script MUST fail and terminate immediately. + +* the remaining elements serve as the witness stack to satisfy the witness program. +** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. +** (This validates that the withdrawal trigger has been authorized.) + +===== Transaction outputs validation ===== + +Once the contents of the witness stack have been parsed and validated, the transaction outputs must be checked. + +First, we must check for a ''revault output'': an output in the trigger transaction whose +scriptPubKey exactly matches that of the OP_VAULT input being +spent. Its presence is optional. + +For each vault input citing a particular , the output +located at vout[] (the "trigger output") must: + +* have as its scriptPubKey a witness program version 1 with a single OP_UNVAULT tapscript, having the internal key lift_x(0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0), per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Design BIP-0341].'''Why must the OP_UNVAULT taproot use a NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. +** If the witness program has a version less than 1, the script MUST fail and terminate immediately. +** If the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. +** Witness versions greater than 1 are allowed for upgradeability. + +* If there does not exist a revault output in the transaction for this input: +** (deferred) the nValue of the trigger output must equal the sum of all vault inputs which cite it as their corresponding trigger output. +*** If these values are not equal, the script MUST fail and terminate immediately. +* else (if there does exist a revault output for this input): +** (deferred) the nValues of the trigger output and the revault output must sum to the sum of all vault inputs which both +*** cite this trigger output as the trigger-vout-idx and +*** have a scriptPubKey identical to the revault output's. +** If these values are not equal, the script MUST fail and terminate immediately. + +If none of the conditions above results in a failure of the script interpreter, the +stack will consist of a single true value (0x01). + +The above amount check can be expressed in Python as: + + + +spending_tx: CTransaction +vault_inputs: [CTxIn] = [inp for inp in spending_tx.vin if inp.is_OP_VAULT] + +"Where we'll accumulate the expected totals for each vault input." +vault_totals_for_outputs: dict[(int, int), int] = defaultdict(0) + +"Build the expected totals." +for vault_in in vault_inputs: + maybe_revault_idx = find_revault_for_vault(vault_in) + vault_total_for_outputs[(vault_in.trigger_vout_idx, maybe_revault_idx)] += vault_in.nValue + + +"Check the expected totals against outputs." +for (out_idx, maybe_revault_idx), expected_amount in vault_totals_for_outputs.items(): + total = spending_tx.vout[out_idx].nValue + + if maybe_revault_idx: + total += spending_tx.vout[maybe_revault_idx] + + if total != expected_amount: + FAIL_AND_TERMINATE_SCRIPT() + + +def find_revault_for_vault(vault_in) -> int: + """Find the index of a revault output for a particular vault input, if one exists.""" + for i, out in enumerate(spending_tx.vout): + if out.scriptPubKey == vault_in.scriptPubKey: + return i + return None + + +=== OP_UNVAULT evaulation === + +==== Witness program ==== + +When evaluating OP_UNVAULT (OP_SUCCESS188, +0xbc), the witness program is pushed onto the stack for the +following result (stack shown top to bottom): + + +OP_UNVAULT (*) being evaluated + + + + + +where + +* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. +* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. +* is a 32 byte data push. +** If it is not equal to 32 bytes, the script MUST fail and terminate immediately. + + +==== Check for recovery ==== + +A check is performed to determine if this input is being spent within the context of +a recovery transaction, exactly as in [[#check-for-recovery|the OP_VAULT evaluation described above]]. + + +==== OP_UNVAULT evaluation for recovery spend ==== + +This is identical to the [[#op_vault-evaluation-for-recovery-spend|OP_VAULT case described above]]. + + +==== OP_UNVAULT evaluation for withdrawal ==== + +When spending an OP_UNVAULT input into a withdrawal target, no witness stack is required. + +* is used to check whether the withdrawal of the input has matured. +** If the input's relative timelock check, as described in [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112] (using this value as "the top item on the stack") fails, the script MUST fail and terminate immediately. +*** The same CheckSequence() code path is used as for [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]. + +* The transaction outputs are then checked to verify that the withdrawal outputs are as expected. +** If target_outputs_hash(spending_tx.vout) != per the algorithm defined below, the script MUST fail and terminate immediately. + + +def target_outputs_hash(vout: [CTxOut]) -> bytes: + return hash256(b"".join(serialize_txout(out) for out in vout)) + +def serialize_txout(txo: CTxOut) -> bytes: + spk: bytes = txo.scriptPubKey + return struct.pack(" + +If the above conditions do not fail, a single true value (0x01) is pushed to the stack. + + +== Implementation == + +A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. + + +== End use == + +=== Creating an OP_VAULT output === + +In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey +that contains a Tapscript spending condition of the form + + + OP_VAULT + + +Typically, the internal key for the vault taproot output will be specified so +that it is controlled by the same descriptor as the recovery path, which +facilitates another (though probably unused) means of recovering the vault +output to the recovery path. This has the potential advantage of recovering the +coin without ever revealing it was a vault. + +Otherwise, the internal key can be chosen to be an unspendable NUMS point to +force tapscript execution of the OP_VAULT specification. + + +=== Recovery authorization === + +When configuring a vault, the user must decide if they want to have the recovery process gated by the optional recovery authorization scriptPubKey. The choice is left to the user because it entails trade-offs. + +==== Unauthorized recovery ==== + +Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path. + +But because this reveal is the only authorization necessary to spend the vault coins to recovery, the user must expect to recover all such vaults at once, since an observer can replay this recovery (provided they know the outpoints). + +Additionally, unauthorized recovery across multiple distinct recovery paths cannot be batched, and fee control is more constrained: because the output structure is limited for unauthorized recovery, fee management relies either on inputs which are completely spent to fees or the use of the optional ephemeral anchor and package relay. + +==== Authorized recovery ==== + +With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization scriptPubKey when recovery is required. If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). + +However, authorized recovery configurations have significant benefits. Batched recoveries are possible for vaults with otherwise incompatible recovery parameters. Fee management is much more flexible, since authorized recovery transactions are "free form" and unrelated inputs and outputs can be added, potentially to handle fees. + +==== Recommendation: use a simple, offline recovery authorization key seed ==== + +The benefits of batching and fee management that authorized recovery provides are significant. If the recovery authorization key falls into the hands of an attacker, the outcome is not catastrophic, whereas if the user loses their recovery authorization key as well as their trigger key, the result is likely coin loss. Consequently, the author's recommendation is to use a simple seed for the recovery authorization key that can be written down offline and replicated. + +Note that the recovery authorization key '''is not''' the recovery path key, and +this is '''much different''' than any recommendation on how to generate the +recovery path key itself. + +=== Address reuse and recovery === + +When creating a vault, four factors affect the resulting P2TR address: +# The internal key (likely belonging to the recovery wallet) +# The recovery parameters +# The spend delay +# The trigger scriptPubKey + +Aside from the spend delay, the end user has the option of varying the other three parameters along descriptors in order to avoid reusing vault addresses without affecting key management. + +Worth noting is that when using unauthorized recovery, the reveal of the recovery scriptPubKey will allow any observer to initiate the recovery process for any vault with matching recovery params, provided they are able to locate the vault outpoints. As a result, it is recommended to expect that '''all outputs sharing an identical unauthorized should be recovered together'''. + +This situation can be avoided with a comparable key management model by varying the generation of each vault's recovery scriptPubKey along a single descriptor, but note that (when configured for unauthorized recovery), this will prevent batched recovery. + +==== Recommendation: vary the internal key ==== + +The recommended mode of use is to keep recovery parameters identical across vaults which should be recovered in batch, but vary the internal key for each vault output along a single descriptor so that no address reuse is necessary. + +==== Recommendation: generate new recovery addresses for new trigger keys ==== + +If using unauthorized recovery, it is recommended that you do not share literal recovery paths +across separate trigger keys. If one trigger key is compromised, that will necessitate the (unauthorized) +recovery of all vaults with that trigger key, which will reveal the recovery path preimage. This +means that an observer might be able to initiate recovery for vaults controlled by an uncompromised +trigger key. + +==== Fee management ==== + +Fees can be managed in a variety of ways, but it's worth noting that both trigger and recovery transactions must preserve the total value of vault inputs, so vaulted values cannot be repurposed to pay for fees. This does not apply to the withdrawal transaction, which can allocate value arbitrarily. + +In the case of vaults that use recovery authorization, all transactions can "bring their own fees" in the form of unrelated inputs and outputs. These transactions are also free to specify ephemeral anchors, once the related relay policies are deployed. This means that vaults using recovery authorization have no dependence on the deploy of v3 relay policy. + +In the case of vaults that do not use recovery authorization, the recovery transaction relies on the use of either fully-spent fee inputs or an ephemeral anchor output. This means that vaults which do not use recovery authorization are essentially dependent on v3 transaction relay policy being deployed. + +==== Mixing input types ==== + +OP_VAULT/OP_UNVAULT outputs can be spent +into a recovery transaction together. Script execution works identically for +both types of outputs. + +[[File:bip-VAULT/batch-sweep.drawio.png|frame|center]] + + +=== Batching === + +==== During trigger ==== + +OP_VAULT outputs with the same recovery-params and spend-delay can +be triggered into the same OP_UNVAULT output, creating a batched +withdrawal trigger. This is allowed regardless of the + values of each input, allowing the trigger keys +to differ. + +Trigger transactions can act on multiple incompatible OP_VAULT +input sets, provided each set has a suitable associated OP_UNVAULT +output. + +Since SIGHASH_DEFAULT can be used to sign the trigger +authorization, unrelated inputs and outputs can be included, possibly to +facilitate fee management or the batch withdrawal of incompatible vaults. + +==== During withdrawal ==== + +During final withdrawal, multiple unrelated OP_UNVAULT outputs can +be used towards the same withdrawal transaction provided that they share +identical parameters. This facilitates +batched withdrawals. + +==== During recovery ==== + +OP_VAULT/OP_UNVAULT outputs with the same recovery +scriptPubKey hash can be recovered into the same output. + +Recovery-incompatible vaults which have authorized recovery can be recovered in +the same transaction, so long as each set (grouped by recovery scriptPubKey +hash) has a suitable associated recovery output. This means that unrelated +recoveries controlled by the same owner can benefit from sharing common fee +management. + +=== Watchtowers === + +The value of vaults is contingent upon having monitoring in place that will alert the owner when unexpected spends are taking place. This can be done in a variety of ways, with varying degrees of automation and trust in the watchtower. + +In the maximum-trust case, the watchtower can be fully aware of all vaulted coins and has the means to initiate the recovery process if spends are not pre-reported to the watchtower. + +In the minimum-trust case, the user can supply a probabilistic filter of which coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. + +=== Script descriptors === + +Script descriptors for vault-related outputs will be covered in a subsequent BIP. + + +== Deployment == + +It is anticipated that deployment would happen in the same way [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Deployment that BIP-0341 was deployed]. Parameters to be determined. + + +== Rationale == + + + +== Transaction examples == + + +=== Basic creation and withdrawal === + + + +Recovery Taproot: tr( + sPK = 5120cafd90c7026f0b6ab98df89490d02732881f2f4b5900856358dddff4679c2ffb, + internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5) + +Trigger Taproot: tr( + sPK = 5120418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa, + internal_pubkey = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9) + +Spend delay: 10 + +Vault Taproot: tr( + sPK = 5120062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a, + internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, + merkle_root = 11765541441f95f7af87fc19fcc1c09a1f5b05514d130320e4dfe6d729690230, + leaves = + - opvault: [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) + OP_VAULT + ] (version=192), +) + + +"Initial vaulting" + +CTransaction 83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=b4ba2b24be456aacaf743be5fe5de25eb3ebebb52f3faf75aecf45921a810101 n=0) scriptSig= nSequence=0) + vout: + - [0] Coin(4999990000, sPK=[1 push(062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a)]) + witnesses: + nLockTime: 0 + + +"Trigger" + +CTransaction e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126 n=0) scriptSig= nSequence=0) + vout: + - [0] Coin(4999990000, sPK=[1 push(9a15dca153a8651b610a02f3a92df3ada3cd45fd7f6183c7b2c1bc333bed1e63)]) + witnesses: + - [0] + - [0.0] [push(bdb4b3f6af17c93308af5ea689b33425497e388a0075f4311540e50d4d3d76f068ab645603333929e5ac62ecc125fc98a053aff53f65b0cffaaeef31efd415ff)] + - [0.1] [1 push(418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa)] + - [0.2] [push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a)] + - [0.3] [push()] + - [0.4] [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) + OP_VAULT + ] + - [0.5] [push(c0c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)] + nLockTime: 0 + + +"Withdrawal" + +CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33 n=0) scriptSig= nSequence=10) + vout: + - [0] Coin(1666663333, sPK=[push() push(c42e7ef92fdb603af844d064faad95db9bcdfd3d)]) + - [1] Coin(1666663333, sPK=[push() push(4747e8746cddb33b0f7f95a90f89f89fb387cbb6)]) + - [2] Coin(1666663334, sPK=[push() push(7fda9cf020c16cacf529c87d8de89bfc70b8c9cb)]) + witnesses: + - [0] + - [0.0] [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a) + OP_UNVAULT + ] + - [0.1] [push(c150929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)] + nLockTime: 0 + + +== References == + +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html Bitcoin Vaults (2016)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html On-chain vaults prototype (2020)] +* [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] +* [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] + +== Acknowledgements == + +The author would like to thank + +* AJ Towns and Greg Sanders for discussion, numerous suggestions that improved the proposal, and advice. +* Jeremy Rubin for inspiration, advice, and mentorship. +* BL for discussion and insight. +* John Moffett for early feedback and a test case demonstrating a recursive script evaluation attack. +* Johan Halseth for providing conceptual review and pointing out a pinning attack. +* Pieter Wuille for implementation advice. From 476aea3107b6459ad4e9cf5d0643b1e956f3c5cb Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 14 Feb 2023 12:50:05 -0500 Subject: [PATCH 023/101] fixup! typos and clarification from feedback by Gleb and Joost. --- bip-vaults.mediawiki | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index f675737a..66bf7cb6 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -68,9 +68,10 @@ key winds up being ''too'' highly secure. Institutional custodians of Bitcoin would likely use vaults in similar fashion. -===== Avoiding the hostage situation ===== +===== Avoiding the $5 wrench attack ===== -This proposal uniquely provides a solution to the "hostage situation;" by +This proposal uniquely provides a solution to the +[https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can prove that he is unable to access its value immediately. To the author's @@ -90,8 +91,7 @@ The only way to implement vaults given the existing consensus rules, aside from [https://github.com/revault emulating vaults with large multisig configurations], is to use presigned transactions created with a one-time-use key. This approach was first demonstrated -[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html -in 2020]. +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html in 2020]. Unfortunately, this approach has a number of practical shortcomings: * generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, @@ -157,9 +157,9 @@ The vault has a number of stages, some of them optional: * '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. -* '''trigger transaction''': spends one or more OP_VAULT outputs into one compatible OP_UNVAULT output, which broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). -* '''withdrawal transaction''': spends OP_UNVAULT inputs into a compatible set of final withdrawal outputs per the target hash. The only authorization for this spend is the content hash of the withdrawal outputs. +* '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. * '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. @@ -186,7 +186,7 @@ The second component, the recovery authorization scriptPubKey, is optional. It is a raw scriptPubKey that, if specified, must be satisfied to allow the input to be recovered. The benefit of using this parameter will be discussed later. If this component is not given, the de facto "authorization" is the reveal of -the preimage. +the preimage, i.e. the recovery path. Vaults which share the same recovery path can always be swept in batch operations, which is an important practical aspect of managing large numbers of vaults. @@ -269,6 +269,7 @@ where * is a CScriptNum-encoded number (up to 4 bytes) ** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. * is a variable length data push, consisting of two components: *# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to @@ -299,7 +300,7 @@ for out in spending_tx.vout: recovery_out = out if is_recovery: - eval_for_recovery() + eval_for_recovery(recovery_out) else: eval_for_withdrawal_trigger() @@ -307,7 +308,7 @@ else: ==== OP_VAULT evaluation for recovery spend ==== * If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail. +* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. ** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. * The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor From 9124f2940e6315deaaee4aca92a8250aeaa3aca7 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 14 Feb 2023 13:07:22 -0500 Subject: [PATCH 024/101] fixup! image clarifications --- bip-VAULT/opvault-flow.drawio.png | Bin 47748 -> 51069 bytes bip-VAULT/vaults-Basic.png | Bin 31544 -> 18595 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 19737 -> 20724 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/bip-VAULT/opvault-flow.drawio.png b/bip-VAULT/opvault-flow.drawio.png index 092a683b0e14f3d86e6791b60ce9ae085f67c0fd..b1a0b18bb21610920f07e056b513bb3e0b9355b3 100644 GIT binary patch literal 51069 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 literal 47748 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 CfQxqk literal 31544 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%0AB4oj> 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 AtpET3 literal 19737 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 qJrHo>(FHFMQ32LCVh*k0ZM From c589490f98ba1b0c606d0e2030463f1fde54b786 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 15 Feb 2023 13:56:22 -0500 Subject: [PATCH 025/101] vaults: make recovery transaction explicit Instead of implicitly detecting whether or not an OP_VAULT/OP_UNVAULT spend is a recovery spend by scanning outputs for matching scriptPubKeys, explicitly indicate recoveries by requiring a witness stack element that is either -1 in the case of no recovery OR corresponds to an output index that is the recovery output. --- bip-vaults.mediawiki | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 66bf7cb6..c5738a06 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -279,32 +279,26 @@ where ** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. ** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. -==== Check for recovery ==== +==== Witness stack ==== After the witness program is parsed, it must be determined whether this input -is being spent towards a recovery. If an output in the spending transaction is -found whose scriptPubKey hashes to the recovery sPK hash (the -first component of ), the interpreter will -evaluate for recovery. Otherwise, the interpreter will evaluate assuming a withdrawal -is being triggered. +is being spent towards a recovery. -In pseudocode: +Witness stack shown top to bottom: - -is_recovery = False -recovery_out: Optional[CTxOut] = None - -for out in spending_tx.vout: - if tagged_hash("VaultRecoverySPK", out.scriptPubKey) == recovery_sPK_hash: - is_recovery = True - recovery_out = out - -if is_recovery: - eval_for_recovery(recovery_out) -else: - eval_for_withdrawal_trigger() + + +[other potential witness stack items ...] +where + +* is an integer indicating which output, if any, is a recovery output. +** If this value cannot be decoded as a CScriptNum and cast to an integer, script execution MUST fail and terminate immediately. +** If this value is less than -1, script execution MUST fail and terminate immediately. +** If this value is greater than or equal to 0, this spend is a recovery transaction and this value denotes the recovery output that corresponds to this vault input. +* The parse of the other stack items depends on whether or not this is a recovery spend. + ==== OP_VAULT evaluation for recovery spend ==== * If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. From 58cbc4e9b1c73995b9972b06b46693a313b26dfa Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 11:40:31 -0500 Subject: [PATCH 026/101] vaults: various feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Vojtěch Strnad for most of this. --- bip-vaults.mediawiki | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index c5738a06..fcd16c87 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -68,9 +68,9 @@ key winds up being ''too'' highly secure. Institutional custodians of Bitcoin would likely use vaults in similar fashion. -===== Avoiding the $5 wrench attack ===== +===== Provable timelocks ===== -This proposal uniquely provides a solution to the +This proposal provides a solution to the [https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can @@ -122,8 +122,8 @@ Having a "general" covenant mechanism that can encode arbitrary transactional state machines would allow us to solve these issues, but at the cost of complex and large scripts that would probably be duplicated many times over in the blockchain. The particular design and deployment timeline of such a general -framework is also uncertain. There are no sample vault implementations using -these means known to the author. +framework is also uncertain. This approach was demonstrated +[https://blog.blockstream.com/en-covenants-in-elements-alpha/ in 2016]. This proposal intends to address the problems outlined above by providing a delay period/recovery path use with minimal transactional and @@ -135,7 +135,7 @@ The design goals of the proposal are: * '''batched operations''' for recovery and withdrawal to allow managing multiple vault coins efficiently. -* '''unbounded partial withdrawals''', which allows users to withdrawal partial vault balances without having to perform the setup ceremony for a new vault. +* '''unbounded partial withdrawals''', which allows users to withdraw partial vault balances without having to perform the setup ceremony for a new vault. * '''dynamic unvault targets''', which allow the proposed withdrawal target for a vault to be specified at withdrawal time rather than when the vault is first created. This would remove the need for a prespecified, intermediate wallet that only exists to route unvaulted funds to their desired destination. @@ -145,7 +145,7 @@ These goals are accompanied by basic safety considerations (e.g. not being vulnerable to pinning) and a desire for concision, both in terms of the number of outputs created as well as script sizes. -This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) or fee management strategies (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html transaction sponsors]) that may be introduced. Use of these opcodes will benefit from, but do not strictly rely on, future transaction versions (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3]) and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawik ephemeral anchors]. +This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) or fee management strategies (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html transaction sponsors]) that may be introduced. Use of these opcodes will benefit from, but do not strictly rely on, [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3 transaction relay] and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchors]. == Design == @@ -249,11 +249,9 @@ The tapscript opcodes OP_SUCCESS187 (0xbb) and ==== Witness program ==== When evaluating OP_VAULT (OP_SUCCESS187, -0xbb), the witness program is pushed onto the stack for the -following result (stack shown top to bottom): +0xbb), the expected format of the stack, shown top to bottom, is: -OP_VAULT (*) being evaluated @@ -262,7 +260,7 @@ OP_VAULT (*) being evaluated where * is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output -** tagged_hash("VaultTriggerSPK", spk), per BIP-0340. +** tagged_hash("VaultTriggerSPK", ), per BIP-0340. ** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. ** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. @@ -301,12 +299,8 @@ where ==== OP_VAULT evaluation for recovery spend ==== -* If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. -* The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. -*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor -*# the version of the recovery transaction has an nVersion equal to 3. +* If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. +* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. @@ -378,9 +372,10 @@ spent. Its presence is optional. For each vault input citing a particular , the output located at vout[] (the "trigger output") must: -* have as its scriptPubKey a witness program version 1 with a single OP_UNVAULT tapscript, having the internal key lift_x(0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0), per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Design BIP-0341].'''Why must the OP_UNVAULT taproot use a NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. +* have as its scriptPubKey a witness program with a single OP_UNVAULT tapscript, having the internal x-only key 0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0, per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs BIP-0341].'''Why must the OP_UNVAULT taproot use a predefined NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. ** If the witness program has a version less than 1, the script MUST fail and terminate immediately. -** If the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. +** If the witness program has a version greater than 1, the script MUST succeed to enable upgradeability. +** If the witness program has a version of 1 and the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. ** Witness versions greater than 1 are allowed for upgradeability. * If there does not exist a revault output in the transaction for this input: @@ -486,6 +481,13 @@ def serialize_txout(txo: CTxOut) -> bytes: If the above conditions do not fail, a single true value (0x01) is pushed to the stack. +== Policy changes == + +In order to prevent possible pinning attacks, recovery transactions must be replaceable. + +* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor +*# the version of the recovery transaction has an nVersion equal to 3. == Implementation == From 0204c9a1f9a9075f2483450f1bab034d453270b7 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 11:58:11 -0500 Subject: [PATCH 027/101] vaults: make recovery output structure a matter of policy Since constraints on unauthorized recovery transaction structure exist only to avoid pinning, make them a matter of policy and not consensus. --- bip-vaults.mediawiki | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index fcd16c87..c9af7654 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -259,10 +259,9 @@ When evaluating OP_VAULT (OP_SUCCESS187, where -* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output +* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger outputBecause the trigger scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. ** tagged_hash("VaultTriggerSPK", ), per BIP-0340. ** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. -** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. * is a CScriptNum-encoded number (up to 4 bytes) ** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. @@ -270,12 +269,10 @@ where ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. * is a variable length data push, consisting of two components: -*# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to -*#* tagged_hash("VaultRecoverySPK", spk) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. -*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction. -*#* This optional parameter changes the allowable structure of recovery transactions. +*# a 32 byte tagged hash, the ''recovery sPK hash''Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved., committing to the scriptPubKey which coins may be recovered to +*#* tagged_hash("VaultRecoverySPK", ) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. +*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction, referred to as . ** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. -** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. ==== Witness stack ==== @@ -302,17 +299,11 @@ where * If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. * (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. +The stack may now have 0 or more elements. Any items on the stack will be used to verify the witness program, if any. -* If the ''recovery authorization sPK'' is not null: +* If is not null: ** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. ** (This validates that the recovery has been authorized.) -* else (if the recovery is allowed to be unauthorized): -** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. -** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. - - -(Note: the above rules imply that if all inputs have a recovery authorization sPK specified, the structure of the recovery transaction is "free form," and the only requirement is that for each OP_VAULT/OP_UNVAULT input, there exists a compatible ''recovery output'' which preserves its full nValue.) If none of the conditions fail, a single true value (0x01) is left on the stack. @@ -489,6 +480,13 @@ In order to prevent possible pinning attacks, recovery transactions must be repl *# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor *# the version of the recovery transaction has an nVersion equal to 3. +In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery +transaction is limited. + +* If (as determined from ) is null, the recovery transaction MUST (by policy) abide by the following constraints: +** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. +** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. + == Implementation == A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. From 6ff8efd3d195cf46b9353af3ad49886a50eda734 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 16:08:23 -0500 Subject: [PATCH 028/101] vaults: blank deployment --- bip-vaults.mediawiki | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index c9af7654..63aadfd4 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -633,8 +633,7 @@ Script descriptors for vault-related outputs will be covered in a subsequent BIP == Deployment == -It is anticipated that deployment would happen in the same way [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Deployment that BIP-0341 was deployed]. Parameters to be determined. - +TBD == Rationale == From 24241ee26bc59a3d3f094190030865d921f553f4 Mon Sep 17 00:00:00 2001 From: Jameson Lopp Date: Wed, 22 Feb 2023 07:27:03 -0600 Subject: [PATCH 029/101] typos / gramma cleanup --- bip-vaults.mediawiki | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 63aadfd4..5a91447f 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -27,7 +27,7 @@ the prespecified path. The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to significant effort to secure their private keys, and hope that once provisioned their custody system does not yield to any number of evolving and -persistent threats. Users have little means to intervene once compromise is +persistent threats. Users have little means to intervene once a compromise is detected. This proposal introduces a mechanism that significantly mitigates the worst-case outcome of key compromise: coin loss. @@ -94,12 +94,12 @@ key. This approach was first demonstrated [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html in 2020]. Unfortunately, this approach has a number of practical shortcomings: -* generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, +* generating and securely deleting ephemeral keys, which are used to emulate the vault covenant, is required, * amounts and withdrawal patterns must be precommitted to, * there is a necessity to precommit to an address that the funds must pass through on their way to the final withdrawal target, which is likely only known at unvault time, * the particular fee management technique or wallet must be decided upon vault creation, * coin loss follows if a vault address is reused, -* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity else value is lost, and +* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity, otherwise value is lost, and * the vault creation ceremony must be performed each time a new balance is to be deposited. The deployment of a "precomputed" covenant mechanism like @@ -157,7 +157,7 @@ The vault has a number of stages, some of them optional: * '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. -* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdraw to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). * '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. @@ -224,7 +224,7 @@ An arbitrary set of target withdrawal outputs that is specified as a parameter t A primary consideration of this proposal is how fee management is handled. Providing dynamic fee management is critical to the operation of a vault, since -* precalculated fees are prone to making transactions unconfirmable by high fee environments, and +* precalculated fees are prone to making transactions unconfirmable in high fee environments, and * a fee wallet that is prespecified might be compromised or lost before use. But dynamic fee management can introduce @@ -416,7 +416,7 @@ def find_revault_for_vault(vault_in) -> int: return None -=== OP_UNVAULT evaulation === +=== OP_UNVAULT evaluation === ==== Witness program ==== From 4f03aaea2c1a830e0676830713c45577f6f45989 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Feb 2023 08:57:45 -0500 Subject: [PATCH 030/101] vaults: add backwards compatibility --- bip-vaults.mediawiki | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 5a91447f..570b95b8 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -635,6 +635,18 @@ Script descriptors for vault-related outputs will be covered in a subsequent BIP TBD +== Backwards compatibility == + +OP_VAULT and OP_UNVAULT replace, respectively, the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with +stricter verification semantics. Consequently, scripts using those opcodes which previously were valid will cease to be valid with this change. + +Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so existing software will be fully functional without upgrade except for mining and block validation. + +Backwards compatibility considerations are very comparable to previous +deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] +and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). + + == Rationale == From 6dc766d937a20ce3bb0f56979c203562508112a3 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Feb 2023 09:14:15 -0500 Subject: [PATCH 031/101] vaults: add Corey Haddad reference --- bip-vaults.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 570b95b8..5acedbaf 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -83,7 +83,7 @@ timelocked coins for perpetuity or relying on a trusted third party. [[File:bip-VAULT/vaults-Basic.png|frame|center]] Vaults in Bitcoin have been discussed formally since 2016 -([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) or earlier. The value of +([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) and informally since [https://web.archive.org/web/20160220215151/https://bitcointalk.org/index.php?topic=511881.0 2014]. The value of having a configurable delay period with recovery capability in light of an unexpected spend has been widely recognized. From f30fb52bbb165982823f8af131c8ff6ffb56eba6 Mon Sep 17 00:00:00 2001 From: Jameson Lopp Date: Tue, 28 Feb 2023 15:59:11 -0500 Subject: [PATCH 032/101] date fix copypasta FTW --- bip-vaults.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 5acedbaf..1ac8de9f 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -6,7 +6,7 @@ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx Status: Draft Type: Standards Track - Created: 2020-02-03 + Created: 2023-02-03 License: BSD-3-Clause Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment

From 997e4f4f0e92ccbc5f5cdf34c265c7e5e41fa4bc Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 2 Mar 2023 09:35:01 -0500 Subject: [PATCH 033/101] Update bip-vaults.mediawiki Co-authored-by: kallewoof --- bip-vaults.mediawiki | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 1ac8de9f..3f56d01a 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -476,9 +476,9 @@ If the above conditions do not fail, a single true value (0x01) is In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. -*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor -*# the version of the recovery transaction has an nVersion equal to 3. +* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and +*# the version of the recovery transaction has an nVersion other than 3. In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery transaction is limited. From 915ede327af11e7fe41041d98c88e1511763fde5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 2 Mar 2023 09:41:15 -0500 Subject: [PATCH 034/101] fixup! add Kalle reference --- bip-vaults.mediawiki | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 3f56d01a..d6da2bbf 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -739,8 +739,9 @@ CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: ( == References == -* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html Bitcoin Vaults (2016)] -* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html On-chain vaults prototype (2020)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015793.html [bitcoin-dev] Simple lock/unlock mechanism (2018)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html [bitcoin-dev] On-chain vaults prototype (2020)] * [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] * [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] From 47a25d15403bc50ba0c5b99382e0ebd9029fcc8d Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 22 Mar 2023 14:32:01 -0400 Subject: [PATCH 035/101] fixup! FLUification Adds AJ and Greg as co-authors --- .../batch-sweep.drawio.png | Bin bip-0345/opvault.drawio.png | Bin 0 -> 92563 bytes {bip-VAULT => bip-0345}/vaults-Basic.png | Bin bip-0345/vaults.drawio | 1113 +++++++++++++++++ bip-0345/withdrawal-comparison.drawio.png | Bin 0 -> 20720 bytes bip-VAULT/opvault-flow.drawio.png | Bin 51069 -> 0 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 20724 -> 0 bytes bip-vaults.mediawiki | 692 ++++------ 8 files changed, 1387 insertions(+), 418 deletions(-) rename {bip-VAULT => bip-0345}/batch-sweep.drawio.png (100%) create mode 100644 bip-0345/opvault.drawio.png rename {bip-VAULT => bip-0345}/vaults-Basic.png (100%) create mode 100644 bip-0345/vaults.drawio create mode 100644 bip-0345/withdrawal-comparison.drawio.png delete mode 100644 bip-VAULT/opvault-flow.drawio.png delete mode 100644 bip-VAULT/withdrawal-comparison.drawio.png diff --git a/bip-VAULT/batch-sweep.drawio.png b/bip-0345/batch-sweep.drawio.png similarity index 100% rename from bip-VAULT/batch-sweep.drawio.png rename to bip-0345/batch-sweep.drawio.png diff --git a/bip-0345/opvault.drawio.png b/bip-0345/opvault.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..702189d156d0082416fcb1f8d33ca464558d766f GIT binary patch literal 92563 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 CzF+(R literal 0 HcmV?d00001 diff --git a/bip-VAULT/vaults-Basic.png b/bip-0345/vaults-Basic.png similarity index 100% rename from bip-VAULT/vaults-Basic.png rename to bip-0345/vaults-Basic.png diff --git a/bip-0345/vaults.drawio b/bip-0345/vaults.drawio new file mode 100644 index 00000000..6f7fd4eb --- /dev/null +++ b/bip-0345/vaults.drawio @@ -0,0 +1,1113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bip-0345/withdrawal-comparison.drawio.png b/bip-0345/withdrawal-comparison.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8a76d20722d614c75ff804b5bdc487488bb79f66 GIT binary patch literal 20720 zcmeIaXIN9));5d?Dj+sQ6clWTsB}Uo(gUG|4uR05lLV5GkN}|xRz$EMBGN=@Ql&Qo zq5_JA-a}D(w*Zm;&Zv7I&wkHyuJ6zH{Cc<7*05M}u35&IW8C++SHg`A;oO}3oGdIX z+`2k2Qx+Ch1`Ep;jvd>;l|8$67=eGbkWAqkEO{RfPl6xVNE*84JHUT|J6x`_uyB<5 zXj%Dq`MIGzU0H->G=F^(mX`FulYE3_V8YVUjs$|Z3)<10=;%cf$GQ4|OW^ljco(!A z+STRPJ<^iWGGdZ4V$#y)(vre5>JSC+m$ZVo98@0l>wZUfSKRLoA>xvtgVR=0Qo=GC z;FAFwNA?5%`pL^V$jOR=PwE7Mrz_IcNgoZKrVWvSip$6`o9OG9BMgM4HNj_3G}aaT z19x@C;+ah}J&1TOa79~6QbAmj`3GDyb98egqW|cEIdY0Ck%Y$M{u;Qryf_&0&pEmJ zIJ*D3jDuUC;Z6=xZmxb7a93Y9tQ3Ou>mDC}g6pq)TwEz=XYfR6VHqv3a=(`dJOJki z2J&<1jKQqMq<%F-|6VGRw6lgf!CfAy=j^Pj3DeZHHnsfK3DnZh$wdw!tz|4Lo7z%|`aP?C|fmy9vm#n1?+L$bhoX+q$Z2(%2CmmAX31g7imZ%THw)>e0<$eZG^ zx+aqH@=|yMg1RYL8%lBWx9~-RTczP95Ho~~4qR487Vd;~CCTY{ps6~NvJg!K9_yv& zXn{tUdEm8?TEfy`SG3)Aw6G?A2t%Tlt~1_A#|#J8w3epo;oy3bekMMS)(E(!GaQN{ zy5MjyGdC}imae0JLu4BQjq;{tKR%bHTn!ISkpb&TBzeugp_Uw03EM-)ke=;;nOc1A1U zQ5rs$<|cl4Gm^8csfm}5pQV&JMcoT#3U{+c_&HjlozIS#u;Bg3y%H z(lb?udx6z(B1s}Vu(HzDmT(s*ECwd&?B+zW#As_P z_+d#tL_G}L2j*;y@TY1K42loKL}KZsAr@rtLsLUGdGo|8euej{H*2f|Re3kt9kQiu3f+CXkI>{M?NYBtJB;H4ZKAg0`rFIc)ROcll{Eq zJ<-+#b!|Bu>y7r+)kLc!4Uv9+X4Xh+BwE^99Z$ko$~&7- z{m=?#(k7NLNf|I|D^D$OplJAe>0@-=Wc8&rVG0;+1)?_7Vf`K51oRhVuxrYzg2oHnc zWISEHsoF%cx3_|=-dslHeQ^B^>Jrs`Q)TA5q<8B60WyiH8q zpoX#*-u@IQRomHD-w>ezlXW(v8iHFTp?DJ6(o)08%Ma`0NtMyjBtYa0G&SKSZWwvA zkCcxEnWA7ME#;w(G56Ia5MW4Y4=fttLh{8>3C#0CN88H66$Q~GBD5)Jl9d(AN5%>d z^VYY-Nx3^)Ahl861_p3~DN;t>l;T1{YZJY630_W`t{!HF-e!1Dk_YHRicBJz5upe} z2nuQCjM8?dB1w8!M`vT4yDY?!pl4yAEly~e-medg{2$B1Vp^V;~DYYnWRwpQS}sa7IwfwV^}|^P-Ncq#Ty)sfBgLT06pY zr7T_1P$Q;KtK%hcS}+nx9R^Ml4IOtAZ39=Vx{L-K^lB`P!cYzTq;OV#-Y8Fup@jj$ z+(Z(K1vk3mh-iHz916#SAFO;m95LE3th1+rwvnNMBWOzYb7oG{$l8)*AZ28zj)fZ= zYLkej2n`d6q%KU`9j8uovO-&$Q^+KFlD;V#YfdqDgy={*DQMul%|KH(Uw@J$&QuPB zO${eUM^_yqq`!}zF$V3SA?vMUVGi{Kk0C;QVa7xY@X5;6Q_|9mgtw#^L@ksoLBZ1i#8hoLZ8M^#g}a8grUHZ)Vvkwog^e9g7tjuv>VFGLsW>f&bQA*1JoQHPlt>uDPjWIg>+y5Nx2 zmi9H&Hz!KE8_7E(ouQ^+&@gXjDnSzBMs-q`_wqrRYZ0~FuyQ&`lBuZ<1!4r+xT+g@ zL;Q&@8m>mZk_4o=tQN^h(hG;j`7xK+Sjr59J~G+NSWgf9XyM~4>jg0-5y58^#NCA? zPw|yBB_Ms=F+L;>XBj`3DFO#N)xg0FT_CdHE{LUwb?HEu9obj^8C^wK+fN}hlS^P{hz|X&P zG#RZ@59?qSmZL1XFm-c3``Lc3Ze9yo!`GVhix0;XK8vQ=e?##fy?vDROc|>f4rAr5 zd+grUQ@7cV-$OmB)eYST<3@mOG{_Z}@b($ymJ|Iv02y=~hbHI^-Gzy8t*XQ>U+J9D?~UzgM_4kgL` z>sc4o^w@UHnVH^6*!D-)Y>eW+x?r|6J+4MbzI$Ut_K&WQmS=GPG3ML*wuG(TGe4OT z`u8+0veYVj{XG;lme6}U_Rup@k1KHh9v!pm9dqcde~dpBc5z5WnD;IEkFM1SMgo6~ z|EMr48$T4`b0aj(5tW18i9xmTJ0Mw)fcaLT^Q1|OXbG}rMdFq87_w(VTd^Cx?Rc(&0!h- z^@rTMmuCBNOG`WXWj%&k$&;;h;HeHh4x1}TrEhOe%w}ch6$)*9xz?GYx!tD7EmFUT zx`>&kR}{JCb?C>6mwazh9o(3%*?3p|H4<;t5Ou^Zjxs-BH{QK<+sb4Rs6a~h>V8&hSN>6H{<*oXEuofuZfvyE z1}`@G{PWJa_4^g6JSU}qvl(w;m8e-OOe8jnQr=57lpAIyuZ@V5;`$YBN-!}&UoHvx zBwDN}n;CDuIdQAoC}hPf{=9!-|v-prA=Ud91 z)TJ5p?(<(R&i0ix^~2UCjY0}9?NWS0ne83L9bVhUI5V#=K^wstoEPNJ zbm`OXknXG80&aR$-hY%=X?>w>cDw42&}oE| zrW)&tAw6Vsed#riQThCMJidC8D!91b&KUn3A(2jNHa}x|q5kHfxia;xR

rN&aJp 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 diff --git a/bip-VAULT/withdrawal-comparison.drawio.png b/bip-VAULT/withdrawal-comparison.drawio.png deleted file mode 100644 index 320a57b044f9f3415e84d65d304541e055187744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20724 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 AtpET3 diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index d6da2bbf..72f3f4fe 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -1,25 +1,31 @@

-  BIP: xxxx
+  BIP: 345
   Layer: Consensus (soft fork)
   Title: OP_VAULT
   Author: James O'Beirne 
-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx
+          Greg Sanders 
+          Anthony Towns 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0345
   Status: Draft
   Type: Standards Track
   Created: 2023-02-03
   License: BSD-3-Clause
   Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment
+                2023-03-01: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-March/021510.html [bitcoin-dev] BIP for OP_VAULT
 
== Introduction == This BIP proposes new tapscript opcodes, OP_VAULT and -OP_UNVAULT, that add consensus support for a specialized covenant. -These opcodes allow users to enforce a delay period before designated coins may -be spent to an arbitrary destination, with the exception of a prespecified -"recovery" path. At any time prior to final withdrawal, the coins can be spent to -the prespecified path. +OP_VAULT_RECOVER, that add consensus support for a specialized +covenant. These opcodes, in conjunction with +OP_CHECKTEMPLATEVERIFY +([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]), +allow users to enforce a delay period before designated coins may be spent to +an arbitrary destination, with the exception of a prespecified "recovery" path. +At any time prior to final withdrawal, the coins can be spent to the +prespecified path. === Motivation === @@ -80,7 +86,7 @@ timelocked coins for perpetuity or relying on a trusted third party. == Goals == -[[File:bip-VAULT/vaults-Basic.png|frame|center]] +[[File:bip-0345/vaults-Basic.png|frame|center]] Vaults in Bitcoin have been discussed formally since 2016 ([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) and informally since [https://web.archive.org/web/20160220215151/https://bitcointalk.org/index.php?topic=511881.0 2014]. The value of @@ -116,7 +122,7 @@ destinations, and fee management are all fixed. Funds must flow through a fixed intermediary to their final destination. Batch operations, which may be vital for successful recovery during fee spikes or short spend delay, are not possible. -[[File:bip-VAULT/withdrawal-comparison.drawio.png|frame|center]] +[[File:bip-0345/withdrawal-comparison.drawio.png|frame|center]] Having a "general" covenant mechanism that can encode arbitrary transactional state machines would allow us to solve these issues, but at the cost of complex @@ -149,74 +155,45 @@ This proposal is designed to be compatible with any future sighash modes (e.g. < == Design == -=== State machine === +In typical usage, a vault is created by encumbering coins under a +taptree [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki (BIP-341)] +containing at least two leaves: one with an OP_VAULT-containing script that +facilitates the expected withdrawal process, and leaf another with +OP_VAULT_RECOVER which ensures the coins can be recovered +at any time prior to withdrawal finalization. -[[File:bip-VAULT/opvault-flow.drawio.png|frame|center]] +The rules of OP_VAULT ensure the timelocked, interruptible +withdrawal by allowing a spending transaction to replace the +OP_VAULT tapleaf with a prespecified script template, allowing for +some parameters to be set at spend (trigger) time. All other leaves in the +taptree must be unchanged, which preserves the recovery path as well as any +other spending conditions originally included in the vault. + +These tapleaf replacement rules, described more precisely below, ensure a +timelocked withdrawal, where the timelock is fixed by the original +OP_VAULT parameters, to a fixed set of outputs (via +OP_CHECKTEMPLATEVERIFY'''Why is OP_CHECKTEMPLATEVERIFY (BIP-119) relied upon for this proposal?''' During the withdrawal process, the proposed final destination for value being withdrawn must be committed to. OP_CTV is the simplest, safest way to commit the spend of some coins to a particular set of outputs. An earlier version of this proposal attempted to use a simpler, but similar method, of locking the spend of coins to a set of outputs, but this method introduced txid malleability.
Note that if some other method of locking spends to a particular set of outputs should be deployed, that method can be used in the OP_VAULT with no changes.
) which is chosen when the withdrawal +process is triggered. + +While OP_CHECKTEMPLATEVERIFY is used in this proposal as the +preferred method to bind the proposed withdrawal to a particular set of final +outputs, OP_VAULT is composable with other (and future) opcodes to +facilitate other kinds of withdrawal processes. + +[[File:bip-0345/opvault.drawio.png|frame|center]] + + +=== Transaction types === The vault has a number of stages, some of them optional: -* '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. +* '''vault transaction''': encumbers some coins into a Taproot structure that includes at least one OP_VAULT leaf and one OP_VAULT_RECOVER leaf. -* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdraw to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT-tapleaf inputs into an output which is encumbered by a timelocked withdrawal to a fixed set of outputs, chosen at trigger time. This publicly broadcasts the intent to withdraw to some specific set of outputs.

The trigger transaction may have an additional output which allocates some of the vault balance into a partial "revault," which simply encumbers the revaulted portion of the value into the same scriptPubKey as the OP_VAULT-containing input(s) being spent. -* '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. +* '''withdrawal transaction''': spends the timelocked OP_CHECKTEMPLATEVERIFY trigger inputs into a compatible set of final withdrawal outputs per the CTV hash, after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. -* '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. - - -=== Parameters === - - - -The recovery parameters dictate both where funds can be swept to during a -recovery, and what kind of authorization (if any) is needed to initiate a -recovery. It is specified in the form - - -[] - - -The first component commits to the destination that vault funds can be swept to -at any point prior to the finalization of a withdrawal. - -The recovery scriptPubKey would usually correspond to a spending script that is -inconvenient to exercise but highly secure. - -The second component, the recovery authorization scriptPubKey, is optional. It -is a raw scriptPubKey that, if specified, must be satisfied to allow the input -to be recovered. The benefit of using this parameter will be discussed later. -If this component is not given, the de facto "authorization" is the reveal of -the preimage, i.e. the recovery path. - -Vaults which share the same recovery path can always be swept in batch operations, -which is an important practical aspect of managing large numbers of vaults. - - - -The spend delay dictates the duration of blocks or time which must -elapse for the trigger OP_UNVAULT output to be claimable into the -withdrawal target outputs. Encoded as the least significant 23 bits of a -[https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] style -relative locktime. - -'''Trigger key''' - -The trigger key, committed to with , is used to -authorize the ''trigger transaction'' - an on-chain declaration to attempt a -withdrawal to a certain set of target outputs. - -This functions as the "normal" spending key, but if an attacker obtains access -to this key, the outcome is not catastrophic: any withdrawal attempt can be -interrupted (within the spend delay) and swept to the recovery path. - -The trigger key can be an arbitrary scriptPubKey so long as it represents a -valid witness program. OP_VAULT outputs which have the same -recovery params and spend delay can be spent into the same -OP_UNVAULT output for a batched withdrawal process. - - - -An arbitrary set of target withdrawal outputs that is specified as a parameter to OP_UNVAULT as a 32 byte tagged hash. The preimage is a list of destination output scriptPubKeys and amounts. If the trigger remains uncontested -- if it isn't swept to recovery before the spend delay elapses -- the vaulted funds may be spent into a compatible set of target outputs. +* '''recovery transaction''': spends one or more OP_VAULT_RECOVER-tapleaf inputs to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. === Fee management === @@ -241,267 +218,144 @@ management mechanisms. == Specification == The tapscript opcodes OP_SUCCESS187 (0xbb) and -OP_SUCCESS188 (0xbc) are claimed to implement the -OP_VAULT and OP_UNVAULT rules, respectively. +OP_SUCCESS188 (0xbc) are constrained with new rules +to implement OP_VAULT and OP_VAULT_RECOVER, +respectively. === OP_VAULT evaluation === -==== Witness program ==== - When evaluating OP_VAULT (OP_SUCCESS187, 0xbb), the expected format of the stack, shown top to bottom, is: - - - + + +[ n leaf-update script data items ... ] + + where -* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger outputBecause the trigger scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. -** tagged_hash("VaultTriggerSPK", ), per BIP-0340. -** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. +* is a data push of 0 or more bytes containing a script fragment. +** In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. -* is a CScriptNum-encoded number (up to 4 bytes) -** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. +* is a CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. +** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. -* is a variable length data push, consisting of two components: -*# a 32 byte tagged hash, the ''recovery sPK hash''Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved., committing to the scriptPubKey which coins may be recovered to -*#* tagged_hash("VaultRecoverySPK", ) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. -*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction, referred to as . -** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. +* The following stack items are popped off the stack and prefixed as push-data arguments to the to construct the expected tapleaf replacement script. +** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. -==== Witness stack ==== +* is a CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -After the witness program is parsed, it must be determined whether this input -is being spent towards a recovery. +* is a CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -Witness stack shown top to bottom: +After the stack is parsed, the following validation checks are performed: - - -[other potential witness stack items ...] - - -where - -* is an integer indicating which output, if any, is a recovery output. -** If this value cannot be decoded as a CScriptNum and cast to an integer, script execution MUST fail and terminate immediately. -** If this value is less than -1, script execution MUST fail and terminate immediately. -** If this value is greater than or equal to 0, this spend is a recovery transaction and this value denotes the recovery output that corresponds to this vault input. -* The parse of the other stack items depends on whether or not this is a recovery spend. - -==== OP_VAULT evaluation for recovery spend ==== - -* If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. -* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. - -The stack may now have 0 or more elements. Any items on the stack will be used to verify the witness program, if any. - -* If is not null: -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the recovery has been authorized.) +* Let the output designated by be called ''triggerOut''. +* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. +* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. +** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. +* If the scriptPubKey of ''triggerOut'' is not a taptree that is identical to that of the current input, but with the current leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +** Note: the parity bit of the resulting taproot is allowed to vary. +* Let the output designated by (if the index value is non-negative) be called ''revaultOut''. +* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. +* If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. +* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) the nValue of ''triggerOut'', plus the nValue of ''revaultOut'' if one exists, must equal the sum of all vault inputs which cite it as their corresponding trigger output. If these values are not equal, the script MUST fail and terminate immediately. If none of the conditions fail, a single true value (0x01) is left on the stack. -==== OP_VAULT evaluation for withdrawal trigger ==== +=== OP_VAULT_RECOVER evaluation === -Else, if it has been determined that the spend is not within a recovery -transaction, it must be evaluated for eligibility as a withdrawal trigger -spend. - -===== Witness stack ===== - -There must be at least 4 items on the stack (shown top to bottom): +When evaluating OP_VAULT_RECOVER (OP_SUCCESS188, +0xbb), the expected format of the stack, shown top to bottom, is: - - - - [...] - - -If the witness stack consists of fewer than four items the script MUST fail and -terminate immediately. - -(Note: in practice, the witness stack will have included the other items necessary to reveal -a witness v1 (or greater) script-path spend, per [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Constructing_and_spending_Taproot_outputs BIP-0341]. This is demonstrated in detail in [[#Transaction examples|the transaction examples section]].) - -The items on the stack must be validated as follows: - -* is a CScriptNum of up to 4 bytes. -** It indicates the vout index of this input's corresponding OP_UNVAULT output. -*** Validation rules for this output are described below. -** If this value does not decode as a valid CScriptNum value, the script MUST fail and terminate immediately. -** If this value does not correspond to a valid output in the spending transaction, the script MUST fail and terminate immediately. - -* is a 32 byte data push. -** It is the hash of the proposed withdrawal target output set, defined by target_outputs_hash(outputs) below. Note that this value is duplicated here.'''Why, when spending an OP_VAULT output into a trigger, does the target hash need to be duplicated on the witness stack?''' The target hash exists in the OP_UNVAULT output script, likely behind a taproot pubkey. Its presence is required on the witness stack also so that the expected taproot pubkey for the OP_UNVAULT output can be constructed for comparison. -** If this value is not 32 bytes, the script MUST fail and terminate immediately. - -* is a variable length data push. -** It must be the scriptPubKey that is the preimage to the specified in the spent OP_VAULT input. -** If this value does not tagged-hash to supplied by the OP_VAULT parameter, the script MUST fail and terminate immediately. -*** Verify tagged_hash("VaultTriggerSPK", ) == -** If this value does not correspond to a valid witness program, the script MUST fail and terminate immediately. - -* the remaining elements serve as the witness stack to satisfy the witness program. -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the withdrawal trigger has been authorized.) - -===== Transaction outputs validation ===== - -Once the contents of the witness stack have been parsed and validated, the transaction outputs must be checked. - -First, we must check for a ''revault output'': an output in the trigger transaction whose -scriptPubKey exactly matches that of the OP_VAULT input being -spent. Its presence is optional. - -For each vault input citing a particular , the output -located at vout[] (the "trigger output") must: - -* have as its scriptPubKey a witness program with a single OP_UNVAULT tapscript, having the internal x-only key 0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0, per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs BIP-0341].'''Why must the OP_UNVAULT taproot use a predefined NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. -** If the witness program has a version less than 1, the script MUST fail and terminate immediately. -** If the witness program has a version greater than 1, the script MUST succeed to enable upgradeability. -** If the witness program has a version of 1 and the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. -** Witness versions greater than 1 are allowed for upgradeability. - -* If there does not exist a revault output in the transaction for this input: -** (deferred) the nValue of the trigger output must equal the sum of all vault inputs which cite it as their corresponding trigger output. -*** If these values are not equal, the script MUST fail and terminate immediately. -* else (if there does exist a revault output for this input): -** (deferred) the nValues of the trigger output and the revault output must sum to the sum of all vault inputs which both -*** cite this trigger output as the trigger-vout-idx and -*** have a scriptPubKey identical to the revault output's. -** If these values are not equal, the script MUST fail and terminate immediately. - -If none of the conditions above results in a failure of the script interpreter, the -stack will consist of a single true value (0x01). - -The above amount check can be expressed in Python as: - - - -spending_tx: CTransaction -vault_inputs: [CTxIn] = [inp for inp in spending_tx.vin if inp.is_OP_VAULT] - -"Where we'll accumulate the expected totals for each vault input." -vault_totals_for_outputs: dict[(int, int), int] = defaultdict(0) - -"Build the expected totals." -for vault_in in vault_inputs: - maybe_revault_idx = find_revault_for_vault(vault_in) - vault_total_for_outputs[(vault_in.trigger_vout_idx, maybe_revault_idx)] += vault_in.nValue - - -"Check the expected totals against outputs." -for (out_idx, maybe_revault_idx), expected_amount in vault_totals_for_outputs.items(): - total = spending_tx.vout[out_idx].nValue - - if maybe_revault_idx: - total += spending_tx.vout[maybe_revault_idx] - - if total != expected_amount: - FAIL_AND_TERMINATE_SCRIPT() - - -def find_revault_for_vault(vault_in) -> int: - """Find the index of a revault output for a particular vault input, if one exists.""" - for i, out in enumerate(spending_tx.vout): - if out.scriptPubKey == vault_in.scriptPubKey: - return i - return None - - -=== OP_UNVAULT evaluation === - -==== Witness program ==== - -When evaluating OP_UNVAULT (OP_SUCCESS188, -0xbc), the witness program is pushed onto the stack for the -following result (stack shown top to bottom): - - -OP_UNVAULT (*) being evaluated - - - + + where -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is a 32 byte data push. -** If it is not equal to 32 bytes, the script MUST fail and terminate immediately. +* is a 32-byte data push. +** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. +* is a CScriptNum-encoded number indicating the index of the recovery output. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +After the stack is parsed, the following validation checks are performed: -==== Check for recovery ==== +* Let the output at index be called ''recoveryOut''. +* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. +* If ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. +* (Deferred) if ''recoveryOut'' does not have an nValue equal to the sum of all OP_VAULT_RECOVER-spent inputs with a corresponding recovery-sPK-hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -A check is performed to determine if this input is being spent within the context of -a recovery transaction, exactly as in [[#check-for-recovery|the OP_VAULT evaluation described above]]. - - -==== OP_UNVAULT evaluation for recovery spend ==== - -This is identical to the [[#op_vault-evaluation-for-recovery-spend|OP_VAULT case described above]]. - - -==== OP_UNVAULT evaluation for withdrawal ==== - -When spending an OP_UNVAULT input into a withdrawal target, no witness stack is required. - -* is used to check whether the withdrawal of the input has matured. -** If the input's relative timelock check, as described in [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112] (using this value as "the top item on the stack") fails, the script MUST fail and terminate immediately. -*** The same CheckSequence() code path is used as for [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]. - -* The transaction outputs are then checked to verify that the withdrawal outputs are as expected. -** If target_outputs_hash(spending_tx.vout) != per the algorithm defined below, the script MUST fail and terminate immediately. - - -def target_outputs_hash(vout: [CTxOut]) -> bytes: - return hash256(b"".join(serialize_txout(out) for out in vout)) - -def serialize_txout(txo: CTxOut) -> bytes: - spk: bytes = txo.scriptPubKey - return struct.pack(" - -If the above conditions do not fail, a single true value (0x01) is pushed to the stack. +If none of the conditions fail, a single true value (0x01) is left on the stack. == Policy changes == In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +* When validating an OP_VAULT_RECOVER input being spent, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and *# the version of the recovery transaction has an nVersion other than 3. -In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery -transaction is limited. +If the script containing OP_VAULT_RECOVER is 34 bytes or less34 bytes is the length of a recovery script that consists solely of OP_VAULT_RECOVER., let +it be called "unauthorized," because there is no script guarding the recovery +process. In order to prevent pinning attacks in the case of unauthorized +recovery - since the spend of the input (and the structure of the +transaction) is not authorized by a signed signature message - the output structure of +unauthorized recovery transaction is limited. -* If (as determined from ) is null, the recovery transaction MUST (by policy) abide by the following constraints: +* If the recovery is unauthorized, the recovery transaction MUST (by policy) abide by the following constraints: ** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. -** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. +** If the spending transaction has two outputs, and the output which is not ''recoveryOut'' is not an [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchor], the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. == Implementation == -A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. +A sample implementation is available on bitcoin-inquisition [https://github.com/jamesob/bitcoin/tree/2023-01-opvault-inq here], with an associated [https://github.com/bitcoin-inquisition/bitcoin/pull/21 pull request]. -== End use == +== Applications == -=== Creating an OP_VAULT output === +The specification above, perhaps surprisingly, does not cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: + +* a way to enforce relative timelocks, like OP_CHECKSEQUENCEVERIFY, and +* a way to enforce that proposed withdrawals are ultimately being spent to a precise set of outputs, like OP_CHECKTEMPLATEVERIFY. + +These two pieces are combined with the tapleaf update capabilities of +OP_VAULT to create a vault, described below. + +=== Creating a vault === In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey -that contains a Tapscript spending condition of the form +that contains a taptree of the form - OP_VAULT +tr(, + leaves = { + recover: + OP_VAULT_RECOVER, + + trigger: + OP_CHECKSIGVERIFY (i) + 2 $leaf-update-script-body OP_VAULT, (ii) + + ... [ possibly other leaves ] + } +) +where +* $leaf-update-script-body is, for example, OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY. +** This is one example of a trigger script, but ''any'' script fragment can be used, allowing the creation of different types of vaults. For example, you could use OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKSIG to do a time-delayed transfer of the coins to another key. This also future-proofs OP_VAULT for future scripting capabilities. +* The script fragment in (i) is called the "trigger authorization," because it gates triggering the withdrawal. This can be done in whatever manner the wallet designer would like. +* The script fragment in (ii) is the incomplete OP_VAULT invocation - it will be completed once the rest of the parameters (the CTV target hash, trigger vout index, and revault vout index) are provided by the trigger transaction witness. Typically, the internal key for the vault taproot output will be specified so that it is controlled by the same descriptor as the recovery path, which @@ -510,24 +364,84 @@ output to the recovery path. This has the potential advantage of recovering the coin without ever revealing it was a vault. Otherwise, the internal key can be chosen to be an unspendable NUMS point to -force tapscript execution of the OP_VAULT specification. +force execution of the taptree contents. + +=== Triggering a withdrawal === + +To make use of the vault, and spend it towards some output, we construct a spend +of the above tr() output that simply replaces the "trigger" leaf with the +full leaf-update script (in this case, a timelocked CTV script): + + +Witness stack: + +- (-1 if none) +- +- +- +- [ "trigger" leaf script contents ] +- [ taproot control block prompting a script-path spend to "trigger" leaf ] + +Output scripts: + +[ + tr(, + leaves = { + recover: + OP_VAULT_RECOVER, <-- unchanged + + trigger: + + OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY <-- changed per the + leaf-update + rules of OP_VAULT + ... [ possibly other leaves ] + } + ), + + [ optional revault output with the + same sPK as the original vault output ], +] + + +OP_VAULT has allowed the taptree to be transformed so that the trigger leaf +becomes a timelocked CTV script, which is what actually facilitates the announced +withdrawal. The withdrawal is interruptible by the recovery path because the +"recover" leaf is preserved exactly from the original taptree. + +Note that the CTV hash is specified at spend time using the witness stack, and +"locked in" via the OP_VAULT spend rules which assert its existence in the output. + +The vault funds can be recovered at any time prior to the spend of the +timelocked CTV script by way of a script-path spend using the "recover" leaf. === Recovery authorization === -When configuring a vault, the user must decide if they want to have the recovery process gated by the optional recovery authorization scriptPubKey. The choice is left to the user because it entails trade-offs. +When configuring a vault, the user must decide if they want to have the +recovery process gated by a script fragment prefixing the +OP_VAULT_RECOVER instruction in the "recover" leaf. Its use +entails trade-offs. ==== Unauthorized recovery ==== -Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path. +Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path, i.e. the preimage of . But because this reveal is the only authorization necessary to spend the vault coins to recovery, the user must expect to recover all such vaults at once, since an observer can replay this recovery (provided they know the outpoints). -Additionally, unauthorized recovery across multiple distinct recovery paths cannot be batched, and fee control is more constrained: because the output structure is limited for unauthorized recovery, fee management relies either on inputs which are completely spent to fees or the use of the optional ephemeral anchor and package relay. +Additionally, unauthorized recovery across multiple distinct recovery paths +cannot be done in the same transaction, and fee control is more constrained: +because the output structure is limited for unauthorized recovery, fee +management relies either on inputs which are completely spent to fees or the +use of the optional ephemeral anchor and package relay. + +These limitations are to avoid pinning attacks. ==== Authorized recovery ==== -With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization scriptPubKey when recovery is required. If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). +With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization script fragment when recovery is required. + +If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). However, authorized recovery configurations have significant benefits. Batched recoveries are possible for vaults with otherwise incompatible recovery parameters. Fee management is much more flexible, since authorized recovery transactions are "free form" and unrelated inputs and outputs can be added, potentially to handle fees. @@ -542,24 +456,36 @@ recovery path key itself. === Address reuse and recovery === When creating a vault, four factors affect the resulting P2TR address: -# The internal key (likely belonging to the recovery wallet) -# The recovery parameters -# The spend delay -# The trigger scriptPubKey +# The internal pubkey (likely belonging to the recovery wallet) +# The recovery leaf +# The trigger leaf +# Any other leaves that exist in the taptree -Aside from the spend delay, the end user has the option of varying the other three parameters along descriptors in order to avoid reusing vault addresses without affecting key management. +The end user has the option of varying certain contents along descriptors in +order to avoid reusing vault addresses without affecting key management, e.g. +the trigger authorization pubkeys. -Worth noting is that when using unauthorized recovery, the reveal of the recovery scriptPubKey will allow any observer to initiate the recovery process for any vault with matching recovery params, provided they are able to locate the vault outpoints. As a result, it is recommended to expect that '''all outputs sharing an identical unauthorized should be recovered together'''. +Note that when using unauthorized recovery, the reveal of the +recovery scriptPubKey will allow any observer to initiate the recovery process +for any vault with matching recovery params, provided they are able to locate +the vault outpoints. As a result, it is recommended to expect that +'''all outputs sharing an identical unauthorized should be recovered together'''. -This situation can be avoided with a comparable key management model by varying the generation of each vault's recovery scriptPubKey along a single descriptor, but note that (when configured for unauthorized recovery), this will prevent batched recovery. +This situation can be avoided with a comparable key management model by varying +the generation of each vault's recovery scriptPubKey along a single descriptor, +but note that this will prevent recovering multiple separate vaults into a single +recovery output. -==== Recommendation: vary the internal key ==== - -The recommended mode of use is to keep recovery parameters identical across vaults which should be recovered in batch, but vary the internal key for each vault output along a single descriptor so that no address reuse is necessary. +Varying the internal pubkey will prevent batching the trigger of multiple vault +inputs into a single trigger output; consequently it is recommended that users +instead vary some component of the trigger leaf script if address reuse is +undesirable. Users could vary the trigger pubkey along a descriptor, keeping +the recovery path and internal-pubkey the same, which both avoids reusing +addresses and allows batched trigger and recovery operations. ==== Recommendation: generate new recovery addresses for new trigger keys ==== -If using unauthorized recovery, it is recommended that you do not share literal recovery paths +If using unauthorized recovery, it is recommended that you do not share recovery scriptPubKeys across separate trigger keys. If one trigger key is compromised, that will necessitate the (unauthorized) recovery of all vaults with that trigger key, which will reveal the recovery path preimage. This means that an observer might be able to initiate recovery for vaults controlled by an uncompromised @@ -567,33 +493,36 @@ trigger key. ==== Fee management ==== -Fees can be managed in a variety of ways, but it's worth noting that both trigger and recovery transactions must preserve the total value of vault inputs, so vaulted values cannot be repurposed to pay for fees. This does not apply to the withdrawal transaction, which can allocate value arbitrarily. +Fees can be managed in a variety of ways, but it's worth noting that both +trigger and recovery transactions must preserve the total value of vault +inputs, so vaulted values cannot be repurposed to pay for fees. This does not +apply to the withdrawal transaction, which can allocate value arbitrarily. -In the case of vaults that use recovery authorization, all transactions can "bring their own fees" in the form of unrelated inputs and outputs. These transactions are also free to specify ephemeral anchors, once the related relay policies are deployed. This means that vaults using recovery authorization have no dependence on the deploy of v3 relay policy. - -In the case of vaults that do not use recovery authorization, the recovery transaction relies on the use of either fully-spent fee inputs or an ephemeral anchor output. This means that vaults which do not use recovery authorization are essentially dependent on v3 transaction relay policy being deployed. - -==== Mixing input types ==== - -OP_VAULT/OP_UNVAULT outputs can be spent -into a recovery transaction together. Script execution works identically for -both types of outputs. - -[[File:bip-VAULT/batch-sweep.drawio.png|frame|center]] +In the case of vaults that use recovery authorization, all transactions can +"bring their own fees" in the form of unrelated inputs and outputs. These +transactions are also free to specify ephemeral anchors, once the related relay +policies are deployed. This means that vaults using recovery authorization have +no dependence on the deploy of v3 relay policy. +For vaults using unauthorized recovery, the recovery +transaction relies on the use of either fully-spent fee inputs or an ephemeral +anchor output. This means that vaults which do not use recovery authorization +are essentially dependent on v3 transaction relay policy being deployed. === Batching === ==== During trigger ==== -OP_VAULT outputs with the same recovery-params and spend-delay can -be triggered into the same OP_UNVAULT output, creating a batched -withdrawal trigger. This is allowed regardless of the - values of each input, allowing the trigger keys -to differ. +OP_VAULT outputs with the same taptree, aside from slightly +different trigger leaves, can be batched together in the same withdrawal +process. Two "trigger" leaves are compatible if they have the same +OP_VAULT arguments. + +Note that this allows the trigger authorization -- the script prefixing the +OP_VAULT invocation -- to differ while still allowing batching. Trigger transactions can act on multiple incompatible OP_VAULT -input sets, provided each set has a suitable associated OP_UNVAULT +input sets, provided each set has a suitable associated ''triggerOut'' output. Since SIGHASH_DEFAULT can be used to sign the trigger @@ -602,141 +531,68 @@ facilitate fee management or the batch withdrawal of incompatible vaults. ==== During withdrawal ==== -During final withdrawal, multiple unrelated OP_UNVAULT outputs can -be used towards the same withdrawal transaction provided that they share -identical parameters. This facilitates -batched withdrawals. +During final withdrawal, multiple trigger outputs can be used towards the same +withdrawal transaction provided that they share identical + parameters. This facilitates batched +withdrawals. ==== During recovery ==== -OP_VAULT/OP_UNVAULT outputs with the same recovery -scriptPubKey hash can be recovered into the same output. +OP_VAULT_RECOVER outputs with the same +can be recovered into the same output. Recovery-incompatible vaults which have authorized recovery can be recovered in -the same transaction, so long as each set (grouped by recovery scriptPubKey -hash) has a suitable associated recovery output. This means that unrelated -recoveries controlled by the same owner can benefit from sharing common fee -management. +the same transaction, so long as each set (grouped by +) has an associated ''recoveryOut''. This allows +unrelated recoveries to share common fee management. === Watchtowers === -The value of vaults is contingent upon having monitoring in place that will alert the owner when unexpected spends are taking place. This can be done in a variety of ways, with varying degrees of automation and trust in the watchtower. +The value of vaults is contingent upon having monitoring in place that will +alert the owner when unexpected spends are taking place. This can be done in a +variety of ways, with varying degrees of automation and trust in the +watchtower. -In the maximum-trust case, the watchtower can be fully aware of all vaulted coins and has the means to initiate the recovery process if spends are not pre-reported to the watchtower. +In the maximum-trust case, the watchtower can be fully aware of all vaulted +coins and has the means to initiate the recovery process if spends are not +pre-reported to the watchtower. -In the minimum-trust case, the user can supply a probabilistic filter of which coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. +In the minimum-trust case, the user can supply a probabilistic filter of which +coins they wish to monitor; the watchtower would then alert the user if any +coins matching the filter move, and the user would be responsible for ignoring +false positives and handling recovery initiation. === Script descriptors === Script descriptors for vault-related outputs will be covered in a subsequent BIP. - == Deployment == -TBD +Activation mechanism is to be determined. + +This BIP should be deployed concurrently with BIP-0119 to enable full use of vaults. == Backwards compatibility == -OP_VAULT and OP_UNVAULT replace, respectively, the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with -stricter verification semantics. Consequently, scripts using those opcodes which previously were valid will cease to be valid with this change. +OP_VAULT and OP_VAULT_RECOVER replace, respectively, +the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with stricter +verification semantics. Consequently, scripts using those opcodes which +previously were valid will cease to be valid with this change. -Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so existing software will be fully functional without upgrade except for mining and block validation. +Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so +existing software will be fully functional without upgrade except for mining +and block validation. Backwards compatibility considerations are very comparable to previous -deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] -and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). +deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see +[https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] and +[https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). == Rationale == -== Transaction examples == - - -=== Basic creation and withdrawal === - - - -Recovery Taproot: tr( - sPK = 5120cafd90c7026f0b6ab98df89490d02732881f2f4b5900856358dddff4679c2ffb, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5) - -Trigger Taproot: tr( - sPK = 5120418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa, - internal_pubkey = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9) - -Spend delay: 10 - -Vault Taproot: tr( - sPK = 5120062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, - merkle_root = 11765541441f95f7af87fc19fcc1c09a1f5b05514d130320e4dfe6d729690230, - leaves = - - opvault: [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] (version=192), -) - - -"Initial vaulting" - -CTransaction 83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=b4ba2b24be456aacaf743be5fe5de25eb3ebebb52f3faf75aecf45921a810101 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a)]) - witnesses: - nLockTime: 0 - - -"Trigger" - -CTransaction e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(9a15dca153a8651b610a02f3a92df3ada3cd45fd7f6183c7b2c1bc333bed1e63)]) - witnesses: - - [0] - - [0.0] [push(bdb4b3f6af17c93308af5ea689b33425497e388a0075f4311540e50d4d3d76f068ab645603333929e5ac62ecc125fc98a053aff53f65b0cffaaeef31efd415ff)] - - [0.1] [1 push(418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa)] - - [0.2] [push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a)] - - [0.3] [push()] - - [0.4] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] - - [0.5] [push(c0c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)] - nLockTime: 0 - - -"Withdrawal" - -CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33 n=0) scriptSig= nSequence=10) - vout: - - [0] Coin(1666663333, sPK=[push() push(c42e7ef92fdb603af844d064faad95db9bcdfd3d)]) - - [1] Coin(1666663333, sPK=[push() push(4747e8746cddb33b0f7f95a90f89f89fb387cbb6)]) - - [2] Coin(1666663334, sPK=[push() push(7fda9cf020c16cacf529c87d8de89bfc70b8c9cb)]) - witnesses: - - [0] - - [0.0] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a) - OP_UNVAULT - ] - - [0.1] [push(c150929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)] - nLockTime: 0 - - == References == * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] From a0b433471dfa4adfb39844274bf52159e4574cf6 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Mar 2023 13:23:08 -0400 Subject: [PATCH 036/101] fixup! rename vaults BIP --- bip-vaults.mediawiki => bip-0345.mediawiki | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bip-vaults.mediawiki => bip-0345.mediawiki (100%) diff --git a/bip-vaults.mediawiki b/bip-0345.mediawiki similarity index 100% rename from bip-vaults.mediawiki rename to bip-0345.mediawiki From a6452eaf1a7fca69746f73931852b038c708123e Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Mar 2023 13:31:22 -0400 Subject: [PATCH 037/101] fixup! add TLUV references --- bip-0345.mediawiki | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 72f3f4fe..a5ffa08f 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -167,7 +167,9 @@ withdrawal by allowing a spending transaction to replace the OP_VAULT tapleaf with a prespecified script template, allowing for some parameters to be set at spend (trigger) time. All other leaves in the taptree must be unchanged, which preserves the recovery path as well as any -other spending conditions originally included in the vault. +other spending conditions originally included in the vault. This is similar to +the TAPLEAF_UPDATE_VERIFY design that was proposed +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html in 2021]. These tapleaf replacement rules, described more precisely below, ensure a timelocked withdrawal, where the timelock is fixed by the original @@ -598,6 +600,7 @@ deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015793.html [bitcoin-dev] Simple lock/unlock mechanism (2018)] * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html [bitcoin-dev] On-chain vaults prototype (2020)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html [bitcoin-dev] TAPLEAF_UPDATE_VERIFY covenant opcode (2021)] * [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] * [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] From e08f6ad4dfed1ca67de9983d375a93d1481d1644 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 11:51:21 -0400 Subject: [PATCH 038/101] few word changes --- bip-0345.mediawiki | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index a5ffa08f..2cac3de4 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -239,22 +239,22 @@ When evaluating OP_VAULT (OP_SUCCESS187, where -* is a data push of 0 or more bytes containing a script fragment. -** In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. +* is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. +** Otherwise, script execution MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. ** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. -* The following stack items are popped off the stack and prefixed as push-data arguments to the to construct the expected tapleaf replacement script. +* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. ** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +* is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +* is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. @@ -264,8 +264,8 @@ After the stack is parsed, the following validation checks are performed: * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. -* If the scriptPubKey of ''triggerOut'' is not a taptree that is identical to that of the current input, but with the current leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. -** Note: the parity bit of the resulting taproot is allowed to vary. +* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. * If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. * If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. @@ -287,7 +287,7 @@ where * is a 32-byte data push. ** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating the index of the recovery output. +* is an up to 4-byte CScriptNum-encoded number indicating the index of the recovery output. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. From 8bad703ed8391a735e9d1adba2ba92d89a0b06e7 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:30:36 -0400 Subject: [PATCH 039/101] why n-pushes --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2cac3de4..d6d00c36 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -242,7 +242,7 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. ** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. From 8bf5b869e5840fc5564e01f62bdbabc8b8ffcab2 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:39:03 -0400 Subject: [PATCH 040/101] remove vestigial reference in applications section --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d6d00c36..d23571d9 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -336,7 +336,7 @@ These two pieces are combined with the tapleaf update capabilities of === Creating a vault === -In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey +In order to vault coins, they must be spent into a witness v1 scriptPubKey that contains a taptree of the form From 29345a10f0e991e8f223beb9a92984e767911ac2 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:42:48 -0400 Subject: [PATCH 041/101] Be explicit about tapleaf version forwarding --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d23571d9..c0baeb21 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -261,7 +261,7 @@ where After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. -* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. From 0b0674c546eba07583da87d029f42a5da551af42 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 15:08:03 -0400 Subject: [PATCH 042/101] few fixups --- bip-0345.mediawiki | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index c0baeb21..2276bd15 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -17,20 +17,19 @@ == Introduction == -This BIP proposes new tapscript opcodes, OP_VAULT and -OP_VAULT_RECOVER, that add consensus support for a specialized -covenant. These opcodes, in conjunction with +This BIP proposes two new tapscript opcodes that add consensus support for a specialized +covenant: OP_VAULT and OP_VAULT_RECOVER. These opcodes, in conjunction with OP_CHECKTEMPLATEVERIFY ([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]), allow users to enforce a delay period before designated coins may be spent to an arbitrary destination, with the exception of a prespecified "recovery" path. At any time prior to final withdrawal, the coins can be spent to the -prespecified path. +recovery path. === Motivation === -The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to +The hazard of custodying Bitcoin is well-known. Users of Bitcoin must go to significant effort to secure their private keys, and hope that once provisioned their custody system does not yield to any number of evolving and persistent threats. Users have little means to intervene once a compromise is @@ -45,8 +44,8 @@ usable for custodians of any size with minimal complication. ==== Example uses ==== -An individual custodying Bitcoin uses the common "single signature and -passphrase" configuration with a hardware wallet. They are concerned about the +A common configuration for an individual custodying Bitcoin is a "single signature and +passphrase" with a hardware wallet. They are concerned about the risk associated with relying on a single manufacturer for key management as well as physical access to the hardware, so they generate a new key that is highly secure, but would be impractical for daily use. For example the key @@ -66,7 +65,7 @@ them to the highly secure recovery path, but spending the coins on a daily basis works in the same way it did prior to vaulting - aside from the spend delay. -The recovery key could be any number of things: a 2-of-3 multisig with keys +The recovery key could be any Bitcoin script policy: a 2-of-3 multisig with keys that live on different devices, a 3-of-5 with socially distributed keys, a Taproot construction that incorporates one of these methods along with a time-delayed fallback to an "easier" recovery method, in case the highly secure @@ -76,7 +75,7 @@ Institutional custodians of Bitcoin would likely use vaults in similar fashion. ===== Provable timelocks ===== -This proposal provides a solution to the +This proposal provides a mitigation to the [https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can @@ -148,7 +147,7 @@ The design goals of the proposal are: * '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time. These goals are accompanied by basic safety considerations (e.g. not being -vulnerable to pinning) and a desire for concision, both in terms of the number +vulnerable to mempool pinning) and a desire for concision, both in terms of the number of outputs created as well as script sizes. This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) or fee management strategies (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html transaction sponsors]) that may be introduced. Use of these opcodes will benefit from, but do not strictly rely on, [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3 transaction relay] and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchors]. @@ -166,7 +165,7 @@ The rules of OP_VAULT ensure the timelocked, interruptible withdrawal by allowing a spending transaction to replace the OP_VAULT tapleaf with a prespecified script template, allowing for some parameters to be set at spend (trigger) time. All other leaves in the -taptree must be unchanged, which preserves the recovery path as well as any +taptree must be unchanged in the destination output, which preserves the recovery path as well as any other spending conditions originally included in the vault. This is similar to the TAPLEAF_UPDATE_VERIFY design that was proposed [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html in 2021]. @@ -564,9 +563,9 @@ coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. -=== Script descriptors === +=== Output descriptors === -Script descriptors for vault-related outputs will be covered in a subsequent BIP. +Output descriptors for vault-related outputs will be covered in a subsequent BIP. == Deployment == From 7112f308b356cdf0c51d917dbdc1b98e30621f80 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Mon, 17 Apr 2023 09:40:57 -0400 Subject: [PATCH 043/101] minor wording updates --- bip-0345.mediawiki | 63 +++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2276bd15..4005d11a 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -44,34 +44,35 @@ usable for custodians of any size with minimal complication. ==== Example uses ==== -A common configuration for an individual custodying Bitcoin is a "single signature and -passphrase" with a hardware wallet. They are concerned about the -risk associated with relying on a single manufacturer for key management as -well as physical access to the hardware, so they generate a new key that is -highly secure, but would be impractical for daily use. For example the key -could be generated in some analog fashion, or on an old computer (with added -entropy) that is then destroyed, with the private key replicated only in paper -form. Or the key could be a 2-of-3 multisig using devices from different -manufacturers. Perhaps the key is geographically distributed. +A common configuration for an individual custodying Bitcoin is "single +signature and passphrase" using a hardware wallet. A user with such a +configuration might concerned about the risk associated with relying on a +single manufacturer for key management, as well as physical access to the +hardware. -This individual can use OP_VAULT to make use of the highly secure +This individual can use OP_VAULT to make use of a highly secure key as the unlikely recovery path, while using their existing signing procedure -as the withdrawal trigger key, with a configured spend delay of 1 day. They can -run software on their mobile device that monitors the blockchain for spends of -the vault outpoints. +as the withdrawal trigger key with a configured spend delay of e.g. 1 day. -If the vaulted coins move in an unexpected way, the user can immediately sweep -them to the highly secure recovery path, but spending the coins on a daily -basis works in the same way it did prior to vaulting - aside from the spend -delay. +The recovery path key can be of a highly secure nature that might otherwise +make it impractical for daily use. For example, the key could be generated in +some analog fashion, or on an old computer that is then destroyed, with the +private key replicated only in paper form. Or the key could be a 2-of-3 +multisig using devices from different manufacturers. Perhaps the key is +geographically or socially distributed. -The recovery key could be any Bitcoin script policy: a 2-of-3 multisig with keys -that live on different devices, a 3-of-5 with socially distributed keys, a -Taproot construction that incorporates one of these methods along with a -time-delayed fallback to an "easier" recovery method, in case the highly secure -key winds up being ''too'' highly secure. +Since it can be any Bitcoin script policy, the recovery key can include a +number of spending conditions, e.g. a time-delayed fallback to an "easier" +recovery method, in case the highly secure key winds up being ''too'' highly +secure. -Institutional custodians of Bitcoin would likely use vaults in similar fashion. +The user can run software on their mobile device that monitors the blockchain +for spends of the vault outpoints. If the vaulted coins move in an unexpected +way, the user can immediately sweep them to the recovery path, but spending the +coins on a daily basis works in the same way it did prior to vaulting (aside +from the spend delay). + +Institutional custodians of Bitcoin may use vaults in similar fashion. ===== Provable timelocks ===== @@ -157,7 +158,7 @@ This proposal is designed to be compatible with any future sighash modes (e.g. < In typical usage, a vault is created by encumbering coins under a taptree [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki (BIP-341)] containing at least two leaves: one with an OP_VAULT-containing script that -facilitates the expected withdrawal process, and leaf another with +facilitates the expected withdrawal process, and another leaf with OP_VAULT_RECOVER which ensures the coins can be recovered at any time prior to withdrawal finalization. @@ -192,9 +193,9 @@ The vault has a number of stages, some of them optional: * '''trigger transaction''': spends one or more OP_VAULT-tapleaf inputs into an output which is encumbered by a timelocked withdrawal to a fixed set of outputs, chosen at trigger time. This publicly broadcasts the intent to withdraw to some specific set of outputs.

The trigger transaction may have an additional output which allocates some of the vault balance into a partial "revault," which simply encumbers the revaulted portion of the value into the same scriptPubKey as the OP_VAULT-containing input(s) being spent. -* '''withdrawal transaction''': spends the timelocked OP_CHECKTEMPLATEVERIFY trigger inputs into a compatible set of final withdrawal outputs per the CTV hash, after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. +* '''withdrawal transaction''': spends the timelocked, destination-locked trigger inputs into a compatible set of final withdrawal outputs (per, e.g., a CHECKTEMPLATEVERIFY hash), after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. -* '''recovery transaction''': spends one or more OP_VAULT_RECOVER-tapleaf inputs to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. +* '''recovery transaction''': spends one or more vault inputs via OP_VAULT_RECOVER tapleaf to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. === Fee management === @@ -208,7 +209,7 @@ Providing dynamic fee management is critical to the operation of a vault, since But dynamic fee management can introduce [https://bitcoinops.org/en/topics/transaction-pinning/ pinning vectors]. Care has been taken to avoid unnecessarily introducing these vectors when using the new -content-based spending policies that this proposal introduces. +destination-based spending policies that this proposal introduces. Originally, this proposal had a hard dependency on reformed transaction nVersion=3 policies, including ephemeral anchors, but it has since been revised @@ -262,7 +263,7 @@ After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. -** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. +** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. @@ -303,7 +304,7 @@ If none of the conditions fail, a single true value (0x01) is left In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT_RECOVER input being spent, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +* When validating an OP_VAULT_RECOVER input being spent, the script MUST fail (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and *# the version of the recovery transaction has an nVersion other than 3. @@ -325,7 +326,7 @@ A sample implementation is available on bitcoin-inquisition [https://github.com/ == Applications == -The specification above, perhaps surprisingly, does not cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: +The specification above, perhaps surprisingly, does not specifically cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: * a way to enforce relative timelocks, like OP_CHECKSEQUENCEVERIFY, and * a way to enforce that proposed withdrawals are ultimately being spent to a precise set of outputs, like OP_CHECKTEMPLATEVERIFY. @@ -335,7 +336,7 @@ These two pieces are combined with the tapleaf update capabilities of === Creating a vault === -In order to vault coins, they must be spent into a witness v1 scriptPubKey +In order to vault coins, they can be spent into a witness v1 scriptPubKey that contains a taptree of the form From cb50446a65cb8504499e1ebded22539188612bb3 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 14 Jun 2023 16:36:43 -0400 Subject: [PATCH 044/101] fixup! add and clarify deferred checks This change makes the amount being revaulted (if any) explicit to avoid issues surfaced by AJ Towns (e.g. multiple compatible vault inputs duplicating triggers and revaults to confuse the old deferred check logic). Pseudocode is also provided for the deferred checks, and their inline validation description has been changed to be more faithful to the implementation - we make mention of queueing deferred checks, and then later describe the algorithm used to aggregate and perform them. --- bip-0345.mediawiki | 73 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 4005d11a..b7692ebe 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -235,6 +235,7 @@ When evaluating OP_VAULT (OP_SUCCESS187, [ n leaf-update script data items ... ] + where @@ -258,6 +259,11 @@ where ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +* is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is not greater than or equal to 0, script execution when spending this output MUST fail and terminate immediately. +** If this value is non-zero but is negative, script execution when spending this output MUST fail and terminate immediately. + After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. @@ -268,8 +274,11 @@ After the stack is parsed, the following validation checks are performed: ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. * If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. -* If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. -* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) the nValue of ''triggerOut'', plus the nValue of ''revaultOut'' if one exists, must equal the sum of all vault inputs which cite it as their corresponding trigger output. If these values are not equal, the script MUST fail and terminate immediately. +* Implemetation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output SHOULD fail and terminate immediately. +** Amount checks are ultimately done with deferred checks, but this check can help short-circuit obviously invalid spends. +* Queue a deferred check'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
that ensures the satoshis for this input's nValue minus are included within the output nValue found at . +* Queue a deferred check that ensures satoshis, if non-zero, are included within the output's nValue found at . +** These deferred checks could be characterized in terms of the pseudocode below (in ''Deferred checks'') as
TriggerCheck(input_amount, , , ). If none of the conditions fail, a single true value (0x01) is left on the stack. @@ -295,11 +304,66 @@ After the stack is parsed, the following validation checks are performed: * Let the output at index be called ''recoveryOut''. * If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. -* If ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if ''recoveryOut'' does not have an nValue equal to the sum of all OP_VAULT_RECOVER-spent inputs with a corresponding recovery-sPK-hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. +** Implementation recommendation: if ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script SHOULD fail and terminate immediately. +* Queue a deferred check that ensures the nValue of ''recoveryOut'' contains the entire nValue of this input.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. +** This deferred check could be characterized in terms of the pseudocode below as RecoveryCheck(, input_amount). If none of the conditions fail, a single true value (0x01) is left on the stack. +=== Deferred check evaluation === + +Once all inputs for a transaction are validated per the rules above, any +deferred checks queued MUST be evaluated. + +The Python pseudocode for this is as follows: + + +class TriggerCheck: + """Queued by evaluation of OP_VAULT (withdrawal trigger).""" + input_amount: int + revault_amount: int + trigger_vout_idx: int + revault_vout_idx: int + + +class RecoveryCheck: + """Queued by evaluation of OP_VAULT_RECOVER.""" + input_amount: int + vout_idx: int + + +def validate_deferred_checks(checks: [DeferredCheck], tx: Transaction) -> bool: + """ + Ensure that all value from vault inputs being triggered or recovered is preserved + in suitable output nValues. + """ + # Map to hold expected output values. + out_map: Dict[int, int] = defaultdict(lambda: 0) + + for c in checks: + if isinstance(c, TriggerCheck): + out_map[c.trigger_vout_idx] += (c.input_amount - c.revault_amount) + + if c.revault_amount > 0: + out_map[c.revault_vout_idx] += c.revault_amount + + elif isinstance(c, RecoveryCheck): + out_map[c.vout_idx] += c.input_amount + + for (vout_idx, amount_sats) in out_map.items(): + if tx.vout[vout_idx].nValue != amount_sats: + return False + + return True + + +If the above procedure, or an equivalent, returns false, script execution MUST fail and terminate +immediately. + +This ensures that all compatible vault inputs can be batched into shared +corresponding trigger or recovery outputs while preserving their entire input value. + + == Policy changes == In order to prevent possible pinning attacks, recovery transactions must be replaceable. @@ -377,6 +441,7 @@ full leaf-update script (in this case, a timelocked CTV script): Witness stack: +- - (-1 if none) - - From e2ff23b3f07215450e75779f7f944d24660a9d47 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 28 Jun 2023 12:06:35 -0400 Subject: [PATCH 045/101] fiuxp! allow larger trigger/recovery output amounts Allow trigger/recovery output nValues to exceed the amounts supplied by constituent vault inputs. This allows future compatibility for e.g. trigger collateral. --- bip-0345.mediawiki | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index b7692ebe..1447346b 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -351,7 +351,9 @@ def validate_deferred_checks(checks: [DeferredCheck], tx: Transaction) -> bool: out_map[c.vout_idx] += c.input_amount for (vout_idx, amount_sats) in out_map.items(): - if tx.vout[vout_idx].nValue != amount_sats: + # Trigger/recovery value can be greater than the constituent vault input + # amounts. + if tx.vout[vout_idx].nValue < amount_sats: return False return True From 9f25645be58f4db49cc2ae5a0a8ceca241517767 Mon Sep 17 00:00:00 2001 From: Sebastian Falbesoner Date: Thu, 6 Jul 2023 16:36:29 +0200 Subject: [PATCH 046/101] bip-0324: fix git instruction order in test_sage_decoding.py Tiny fix correcting the order of commands, for `git checkout` one has to change into the repository directory first. --- bip-0324/test_sage_decoding.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0324/test_sage_decoding.py b/bip-0324/test_sage_decoding.py index c26c3347..1ec5fdf4 100644 --- a/bip-0324/test_sage_decoding.py +++ b/bip-0324/test_sage_decoding.py @@ -5,8 +5,8 @@ Instructions: * Clone the SwiftEC repository, and enter the directory: git clone https://github.com/Jchavezsaab/SwiftEC - git checkout 5320a25035d91addde29d14164cce684b56a12ed cd SwiftEC + git checkout 5320a25035d91addde29d14164cce684b56a12ed * Generate parameters for the secp256k1 curve: From 2f1e2bc4d8ea0da70b7e840875292b0a5df8228e Mon Sep 17 00:00:00 2001 From: sgmoore Date: Tue, 15 Aug 2023 12:54:34 -0700 Subject: [PATCH 047/101] added colon at end of if statement - bip-0119.mediawiki Python requires a colon at the end of an if statement to denote the beginning of the block of code that will be executed if the condition is True. If the colon is omitted, a syntax error will occur, and the code will not run. Since the syntax error will prevent the code from running, it won't introduce any vulnerabilities by itself. However, it will cause the application to fail at the point where the code is parsed, which might expose other issues if error handling is not implemented properly. --- bip-0119.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0119.mediawiki b/bip-0119.mediawiki index 86defa7c..99554009 100644 --- a/bip-0119.mediawiki +++ b/bip-0119.mediawiki @@ -88,7 +88,7 @@ def execute_bip_119(self): self.context.precomputed_ctv_data = self.context.tx.get_default_check_template_precomputed_data() # If the hashes do not match, return error - if stack[-1] != self.context.tx.get_default_check_template_hash(self.context.nIn, self.context.precomputed_ctv_data) + if stack[-1] != self.context.tx.get_default_check_template_hash(self.context.nIn, self.context.precomputed_ctv_data): return self.errors_with(errors.script_err_template_mismatch) return self.return_as_nop() From 91bbe3307c622a420d328407d29739a41a3f8b82 Mon Sep 17 00:00:00 2001 From: Chun Date: Sun, 20 Aug 2023 08:59:19 +0100 Subject: [PATCH 048/101] Update bip-0087.mediawiki typo fix --- bip-0087.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0087.mediawiki b/bip-0087.mediawiki index d270027e..308e8521 100644 --- a/bip-0087.mediawiki +++ b/bip-0087.mediawiki @@ -40,7 +40,7 @@ A modern standardization is needed for multisig derivation paths. There are som m / purpose' / cosigner_index / change / address_index -BIP45 unecessarily demands a single script type (here, P2SH). In addition, BIP45 sets cosigner_index in order to sort the purpose' public keys of each cosigner. This too is redundant, as descriptors can set the order of the public keys with multi or have them sorted lexicographically (as described in [https://github.com/bitcoin/bips/blob/master/bip-0067.mediawiki BIP67]) with sortedmulti. Sorting public keys between cosigners in order to create the full derivation path, prior to sending the key record to the coordinator to create the descriptor, merely adds additional unnecessary communication rounds. +BIP45 unnecessarily demands a single script type (here, P2SH). In addition, BIP45 sets cosigner_index in order to sort the purpose' public keys of each cosigner. This too is redundant, as descriptors can set the order of the public keys with multi or have them sorted lexicographically (as described in [https://github.com/bitcoin/bips/blob/master/bip-0067.mediawiki BIP67]) with sortedmulti. Sorting public keys between cosigners in order to create the full derivation path, prior to sending the key record to the coordinator to create the descriptor, merely adds additional unnecessary communication rounds. The second multisignature "standard" in use is m/48', which specifies: From 496b6c9ecc61ef7c80ce00c8925cad627bf034f6 Mon Sep 17 00:00:00 2001 From: Sebastian Falbesoner Date: Tue, 29 Aug 2023 23:39:04 +0200 Subject: [PATCH 049/101] bip-0158: remove unused and unrelated "data pushes" definition This BIP is not in any way connected to the rules of Bitcoin script, i.e. the "data pushes" term is also not used anywhere and its definition can hence be removed. --- bip-0158.mediawiki | 3 --- 1 file changed, 3 deletions(-) diff --git a/bip-0158.mediawiki b/bip-0158.mediawiki index 8887d32f..a3e02694 100644 --- a/bip-0158.mediawiki +++ b/bip-0158.mediawiki @@ -39,9 +39,6 @@ that is designed to reduce the filter size for regular wallets. ''CompactSize'' is a compact encoding of unsigned integers used in the Bitcoin P2P protocol. -''Data pushes'' are byte vectors pushed to the stack according to the rules of -Bitcoin script. - ''Bit streams'' are readable and writable streams of individual bits. The following functions are used in the pseudocode in this document: * new_bit_stream instantiates a new writable bit stream From 4aae726be9610a675b362e66f539ce0d5f903a5f Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 1 Sep 2023 10:12:38 -0400 Subject: [PATCH 050/101] fixup! fix off-by-one and revault-idx malleability Co-authored-by: sanket1729 --- bip-0345.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 1447346b..87e084cc 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -246,10 +246,9 @@ where * is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. +** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. * The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. -** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. * is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. @@ -258,6 +257,7 @@ where * is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +** If this value is negative and not equal to -1, script execution when spending this output MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. * is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. From 014b832e07d3be3c6aff1230d560fcf7032f0495 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 29 Sep 2023 09:17:32 -0400 Subject: [PATCH 051/101] BIP-345: add sigops cost of 60 --- bip-0345.mediawiki | 1 + 1 file changed, 1 insertion(+) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 87e084cc..e63e0a28 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -266,6 +266,7 @@ where After the stack is parsed, the following validation checks are performed: +* Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. From eb3fb727c31dd348a63992d22a35558e031174f9 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Mon, 9 Oct 2023 14:07:19 -0400 Subject: [PATCH 052/101] BIP-0345: restrict trigger output to v1 witness Co-authored-by: Antoine Poinsot --- bip-0345.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index e63e0a28..73b265e5 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -46,7 +46,7 @@ usable for custodians of any size with minimal complication. A common configuration for an individual custodying Bitcoin is "single signature and passphrase" using a hardware wallet. A user with such a -configuration might concerned about the risk associated with relying on a +configuration might be concerned about the risk associated with relying on a single manufacturer for key management, as well as physical access to the hardware. @@ -268,7 +268,7 @@ After the stack is parsed, the following validation checks are performed: * Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. -* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. From 1a629a496149bf1728238a55464907769ed635ae Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 10 Oct 2023 21:59:08 -0400 Subject: [PATCH 053/101] bip 2: allow markdown --- bip-0002.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki index c6eb950f..af8bb309 100644 --- a/bip-0002.mediawiki +++ b/bip-0002.mediawiki @@ -102,7 +102,7 @@ The BIP editors are intended to fulfill administrative and editorial responsibil ===Specification=== -BIPs should be written in mediawiki format. +BIPs should be written in mediawiki or markdown format. Each BIP should have the following parts: From 6fd7de46b79898cff9dd1ada44fb65bd22b41f6c Mon Sep 17 00:00:00 2001 From: GoodDaisy <90915921+GoodDaisy@users.noreply.github.com> Date: Fri, 13 Oct 2023 09:05:19 +0800 Subject: [PATCH 054/101] Fix typos --- bip-0088.mediawiki | 6 +++--- bip-0152.mediawiki | 2 +- bip-0176.mediawiki | 2 +- bip-0300.mediawiki | 4 ++-- bip-0330.mediawiki | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bip-0088.mediawiki b/bip-0088.mediawiki index 936f2ca9..49be7dba 100644 --- a/bip-0088.mediawiki +++ b/bip-0088.mediawiki @@ -89,7 +89,7 @@ installation of malicious or incorrect profiles, though. ==Specification== -The format for the template was choosen to make it easy to read, convenient and visually unambigous. +The format for the template was chosen to make it easy to read, convenient and visually unambigous. Template starts with optional prefix m/, and then one or more sections delimited by the slash character (/). @@ -127,13 +127,13 @@ Constraints: # To avoid ambiguity, an index range that matches a single value MUST be specified as Unit range. # To avoid ambiguity, an index range 0-2147483647 is not allowed, and MUST be specified as Wildcard index template instead # For Non-unit range, range_end MUST be larger than range_start. -# If there is more than one index range within the Ranged index template, range_start of the second and any subsequent range MUST be larger than the range_end of the preceeding range. +# If there is more than one index range within the Ranged index template, range_start of the second and any subsequent range MUST be larger than the range_end of the preceding range. # To avoid ambiguity, all representations of integer values larger than 0 MUST NOT start with character 0 (no leading zeroes allowed). # If hardened marker appears within any section in the path template, all preceding sections MUST also specify hardened matching. # To avoid ambiguity, if a hardened marker appears within any section in the path template, all preceding sections MUST also use the same hardened marker (either h or '). # To avoid ambiguity, trailing slashes (for example, 1/2/) and duplicate slashes (for example, 0//1) MUST NOT appear in the template. -It may be desireable to have fully unambiguous encoding, where for each valid path template string, there is no other valid template string that matches the exact same set of paths. This would enable someone to compare templates for equality through a simple string equality check, without any parsing. +It may be desirable to have fully unambiguous encoding, where for each valid path template string, there is no other valid template string that matches the exact same set of paths. This would enable someone to compare templates for equality through a simple string equality check, without any parsing. To achieve this, two extra rules are needed: diff --git a/bip-0152.mediawiki b/bip-0152.mediawiki index 8200714b..fad17460 100644 --- a/bip-0152.mediawiki +++ b/bip-0152.mediawiki @@ -211,7 +211,7 @@ There are several design goals for the Short ID calculation: SipHash is a secure, fast, and simple 64-bit MAC designed for network traffic authentication and collision-resistant hash tables. We truncate the output from SipHash-2-4 to 48 bits (see next section) in order to minimize space. The resulting 48-bit hash is certainly not large enough to avoid intentionally created individual collisons, but by using the block hash as a key to SipHash, an attacker cannot predict what keys will be used once their transactions are actually included in a relayed block. We mix in a per-connection 64-bit nonce to obtain independent short IDs on every connection, so that even block creators cannot control where collisions occur, and random collisions only ever affect a small number of connections at any given time. The mixing is done using SHA256(block_header || nonce), which is slow compared to SipHash, but only done once per block. It also adds the ability for nodes to choose the nonce in a better than random way to minimize collisions, though that is not necessary for correct behaviour. Conversely, nodes can also abuse this ability to increase their ability to introduce collisions in the blocks they relay themselves. However, they can already cause more problems by simply refusing to relay blocks. That is inevitable, and this design only seeks to prevent network-wide misbehavior. -====Random collision probabilty==== +====Random collision probability==== Thanks to the block-header-based SipHash keys, we can assume that the only collisions on links between honest nodes are random ones. diff --git a/bip-0176.mediawiki b/bip-0176.mediawiki index 60311c4c..2f5ee9f9 100644 --- a/bip-0176.mediawiki +++ b/bip-0176.mediawiki @@ -16,7 +16,7 @@ Bits is presented here as the standard term for 100 (one hundred) satoshis or 1/ == Motivation == The bitcoin price has grown over the years and once the price is past $10,000 USD or so, bitcoin amounts under $10 USD start having enough decimal places that it's difficult to tell whether the user is off by a factor of 10 or not. Switching the denomination to "bits" makes comprehension easier. For example, when BTC is $15,000 USD, $10.05 is a somewhat confusing 0.00067 BTC, versus 670 bits, which is a lot clearer. -Additonally, reverse comparisons are easier as 59 bits being $1 is easier to comprehend for most people than 0.000059 BTC being $1. Similar comparisons can be made to other currencies: 1 yen being 0.8 bits, 1 won being 0.07 bits and so on. +Additionally, reverse comparisons are easier as 59 bits being $1 is easier to comprehend for most people than 0.000059 BTC being $1. Similar comparisons can be made to other currencies: 1 yen being 0.8 bits, 1 won being 0.07 bits and so on. Potential benefits of utilizing "bits" include: diff --git a/bip-0300.mediawiki b/bip-0300.mediawiki index ab81c322..e5048e75 100644 --- a/bip-0300.mediawiki +++ b/bip-0300.mediawiki @@ -290,7 +290,7 @@ For example: if there are two sidechains, and we wish to upvote the 7th bundle o The version number allows us to shrink the upvote vector in many cases. Version 0x00 omits the upvote vector entirely (ie, 6 bytes for the whole M4) and sets this block's M4 equal to the previous block's M4. Version 0x01 uses one byte per sidechain, and can be used while all ACKed withdrawals have an index under 256 (ie, 99.99%+ of the time). -Version 0x02 uses a full two bytes per sidechain (each encoded in little endian), but it always works no matter how many withdrawl proposals exist. +Version 0x02 uses a full two bytes per sidechain (each encoded in little endian), but it always works no matter how many withdrawal proposals exist. Version 0x03 omits the upvote vector, and instead upvotes only those withdrawals that are leading their rivals by at least 50 votes. If a sidechain has no pending bundles, then it is skipped over when M4 is created and parsed. @@ -465,7 +465,7 @@ M2: 1 get, 1 delete, 1 create M3: 3 get, 1 delete, 2 create, 2 hash for each coinbase output: search for prior M3 for this sidechain lookup if M3 was ever rejected or paid in the past - for each prior proposed withdrawl: (included in 1 get+delete+create) + for each prior proposed withdrawal: (included in 1 get+delete+create) M4: 1 get + for every proposed withdraw, 1 get, 1 delete, 1 create, 1 add v0 needs to read and parse previous block diff --git a/bip-0330.mediawiki b/bip-0330.mediawiki index c24ea427..996f74e1 100644 --- a/bip-0330.mediawiki +++ b/bip-0330.mediawiki @@ -210,7 +210,7 @@ The reconcildiff message is used by reconciliation initiator to announce transac | uint32[] || ask_shortids || The short IDs that the sender did not have. |} -Upon receipt a "reconcildiff" message with ''success=1'' (reconciliation success), a node sends an "inv" message for the transactions requested by 32-bit IDs (first vector) containing their wtxids (with parent transactions occuring before their dependencies). +Upon receipt a "reconcildiff" message with ''success=1'' (reconciliation success), a node sends an "inv" message for the transactions requested by 32-bit IDs (first vector) containing their wtxids (with parent transactions occurring before their dependencies). If ''success=0'' (reconciliation failure), receiver should announce all transactions from the reconciliation set via an "inv" message. In both cases, transactions the sender of the message thinks the receiver is missing are announced via an "inv" message. The regular "inv" deduplication should apply. From 44794188ec9c0f202f8d7263392860b89a24948d Mon Sep 17 00:00:00 2001 From: Coco_Ardo <105318683+RealCocoArdo@users.noreply.github.com> Date: Fri, 20 Oct 2023 20:51:06 +0200 Subject: [PATCH 055/101] Update bip-0042.mediawiki spelling Bitcoin the network is written with a capital B. The unit is writting with small b. --- bip-0042.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0042.mediawiki b/bip-0042.mediawiki index 223076f5..2c5de6df 100644 --- a/bip-0042.mediawiki +++ b/bip-0042.mediawiki @@ -15,7 +15,7 @@ Although it is widely believed that Satoshi was an inflation-hating goldbug he never said this, and in fact programmed Bitcoin's money supply to grow indefinitely, forever. He modeled the monetary supply as 4 gold mines being discovered per mibillenium (1024 years), with equal intervals between them, each one being depleted over the course of 140 years. -This poses obvious problems, however. Prominent among them is the discussion on what to call 1 billion Bitcoin, which symbol color to use for it, and when wallet clients should switch to it by default. +This poses obvious problems, however. Prominent among them is the discussion on what to call 1 billion bitcoin, which symbol color to use for it, and when wallet clients should switch to it by default. To combat this, this document proposes a controversial change: making Bitcoin's monetary supply finite. From 3732ac478b0ea2decb678cfc5552c92538bd23ca Mon Sep 17 00:00:00 2001 From: Vehorny <153144728+vehorny@users.noreply.github.com> Date: Thu, 7 Dec 2023 02:12:27 +0100 Subject: [PATCH 056/101] Update bip-0010.mediawiki --- bip-0010.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0010.mediawiki b/bip-0010.mediawiki index 42071f3a..289e3b04 100644 --- a/bip-0010.mediawiki +++ b/bip-0010.mediawiki @@ -93,10 +93,10 @@ The following is an example TxDP from Armory, produced while running on the test In this transaction, there are two inputs, one of 150 BTC and the other of 12 BTC. This transaction combines 162 BTC to create two outputs, one of 160 BTC, one 1.9995 BTC, and a tx fee of 0.0005. In this TxDP, both inputs have been signed, and thus could broadcast immediately. -The style of communication is taken directly from PGP/GPG, which uses blocks of ASCII like this to communicate encrypted messages and signatures. This serialization is compact, and will be interpretted the same in all character encodings. It can be copied inline into an email, or saved in a text file. The advantage over the analogous PGP encoding is that there are some human readable elements to it, for users that wish to examine the TxDP packet manually, instead of requiring a program to parse the core elements of the TxDP. +The style of communication is taken directly from PGP/GPG, which uses blocks of ASCII like this to communicate encrypted messages and signatures. This serialization is compact, and will be interpreted the same in all character encodings. It can be copied inline into an email, or saved in a text file. The advantage over the analogous PGP encoding is that there are some human readable elements to it, for users that wish to examine the TxDP packet manually, instead of requiring a program to parse the core elements of the TxDP. A party receiving this TxDP can simply add their signature to the appropriate _TXINPUT_ line. If that is the last signature required, they can broadcast it themselves. Any software that implements this standard should be able to combine multiple TxDPs into a single TxDP. However, even without the programmatic support, a user could manually combine them by copying the appropriate _TXSIGS_ lines between serializations, though it is not the recommended method for combining TxDPs. == Reference Implementation == -This proposal was implemented and tested in the older versions of ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction). Implementation can be found in https://github.com/etotheipi/BitcoinArmory/blob/v0.91-beta/armoryengine/Transaction.py under the class PyTxDistProposal. However, as of verion 0.92 released in July 2014, Armory no longer uses this proposal for offline wallet transaction signing and has moved on to a new format. +This proposal was implemented and tested in the older versions of ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction). Implementation can be found in https://github.com/etotheipi/BitcoinArmory/blob/v0.91-beta/armoryengine/Transaction.py under the class PyTxDistProposal. However, as of version 0.92 released in July 2014, Armory no longer uses this proposal for offline wallet transaction signing and has moved on to a new format. From 682fd8bc588df7d71476420f7bc9ed1cbacabd05 Mon Sep 17 00:00:00 2001 From: Vehorny <153144728+vehorny@users.noreply.github.com> Date: Thu, 7 Dec 2023 02:13:58 +0100 Subject: [PATCH 057/101] Update bip-0060.mediawiki --- bip-0060.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0060.mediawiki b/bip-0060.mediawiki index 8e9f289f..626a0397 100644 --- a/bip-0060.mediawiki +++ b/bip-0060.mediawiki @@ -23,14 +23,14 @@ The implementation is problematic because the RelayTransactions flag is an optio One property of Bitcoin messages is their fixed number of fields. This keeps the format simple and easily understood. Adding optional fields to messages will cause deserialisation issues when other fields come after the optional one. -As an example, the length of version messages might be checked to ensure the byte stream is consistent. With optional fields, this checking is no longer possible. This is desirable to check for consistency inside internal deserialization code, and proper formatting of version messages originating from other nodes. In the future with diversification of the Bitcoin network, it will become desirable to enforce this kind of strict adherance to standard messages with field length compliance with every protocol version. +As an example, the length of version messages might be checked to ensure the byte stream is consistent. With optional fields, this checking is no longer possible. This is desirable to check for consistency inside internal deserialization code, and proper formatting of version messages originating from other nodes. In the future with diversification of the Bitcoin network, it will become desirable to enforce this kind of strict adherence to standard messages with field length compliance with every protocol version. Another property of fixed-length field messages is the ability to pass stream operators around for deserialization. This property is also lost, as now the deserialisation code must know the remaining length of bytes to parse. The parser now requires an additional piece of information (remaining size of the stream) for parsing instead of being a dumb reader. ==Specification== === version === -When a node creates an outgoing connection, it will immediately advertise its version. The remote node will respond with its version. No futher communication is possible until both peers have exchanged their version. +When a node creates an outgoing connection, it will immediately advertise its version. The remote node will respond with its version. No further communication is possible until both peers have exchanged their version. Payload: From 6f288f0f685000a9fd8669b4dfae4788619ea97e Mon Sep 17 00:00:00 2001 From: Vehorny <153144728+vehorny@users.noreply.github.com> Date: Thu, 7 Dec 2023 02:17:00 +0100 Subject: [PATCH 058/101] Update bip-0012.mediawiki --- bip-0012.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0012.mediawiki b/bip-0012.mediawiki index 70069d62..bd3d88c9 100644 --- a/bip-0012.mediawiki +++ b/bip-0012.mediawiki @@ -43,11 +43,11 @@ OP_EVAL allows the receiver of bitcoins to specify how they can be spent when th If ''serialized script'' is a large or complicated multi-signature script, then the burden of paying for it (in increased transaction fees due to more signature operations or transaction size) is shifted from the sender to the receiver. -The main objection to OP_EVAL is that it adds complexity, and complexity is the enemy of security. Also, evaluating data as code has a long record of being a source of security vulnerabilties. +The main objection to OP_EVAL is that it adds complexity, and complexity is the enemy of security. Also, evaluating data as code has a long record of being a source of security vulnerabilities. That same argument can be applied to the existing Bitcoin 'scripting' system; scriptPubKeys are transmit as data across the network and are then interpreted by every bitcoin implementation. OP_EVAL just moves the data that will be interpreted. It is debatable whether or not the entire idea of putting a little interpreted expression evaluation language at the core of Bitcoin was brilliant or stupid, but the existence of OP_EVAL does not make the expression language less secure. -There is a 1-confirmation attack on old clients that interepret OP_EVAL as a no-op, but it is expensive and difficult in practice. The attack is: +There is a 1-confirmation attack on old clients that interpret OP_EVAL as a no-op, but it is expensive and difficult in practice. The attack is: # Attacker creates an OP_EVAL transaction that is valid as seen by old clients, but invalid for new clients. # Attacker also creates a standard transaction that spends the OP_EVAL transaction, and pays the victim. From c595d7c517c29138ac2ece3a5e147d5036f9276a Mon Sep 17 00:00:00 2001 From: Yannick Seurin Date: Fri, 8 Dec 2023 15:34:36 +0100 Subject: [PATCH 059/101] correct fingerprint for invalid hardened indicators --- bip-0380.mediawiki | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bip-0380.mediawiki b/bip-0380.mediawiki index 48dd93f9..94f0d666 100644 --- a/bip-0380.mediawiki +++ b/bip-0380.mediawiki @@ -244,9 +244,9 @@ Invalid expressiosn: * Trailing slash in key origin: [deadbeef/0h/0h/0h/]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 * Too short fingerprint: [deadbef/0h/0h/0h]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 * Too long fingerprint: [deadbeeef/0h/0h/0h]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 -* Invalid hardened indicators: [deadbeeef/0f/0f/0f]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 -* Invalid hardened indicators: [deadbeeef/0H/0H/0H]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 -* Invalid hardened indicators: [deadbeeef/-0/-0/-0]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 +* Invalid hardened indicators: [deadbeef/0f/0f/0f]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 +* Invalid hardened indicators: [deadbeef/0H/0H/0H]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 +* Invalid hardened indicators: [deadbeef/-0/-0/-0]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 * Private key with derivation: L4rK1yDtCWekvXuE6oXD9jCYfFNV2cWRpVuPLBcCU2z8TrisoyY1/0 * Private key with derivation children: L4rK1yDtCWekvXuE6oXD9jCYfFNV2cWRpVuPLBcCU2z8TrisoyY1/* * Derivation index out of range: xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483648)", "pkh(xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/2147483648 From a28b021b9933cb6b035cbb94fc1a15c30da3f6fd Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 13 Dec 2023 11:12:08 -0500 Subject: [PATCH 060/101] Update contact info for achow101 --- README.mediawiki | 24 ++++++++++++------------ bip-0086.mediawiki | 2 +- bip-0129.mediawiki | 2 +- bip-0174.mediawiki | 2 +- bip-0370.mediawiki | 2 +- bip-0371.mediawiki | 2 +- bip-0380.mediawiki | 2 +- bip-0381.mediawiki | 2 +- bip-0382.mediawiki | 2 +- bip-0383.mediawiki | 2 +- bip-0384.mediawiki | 2 +- bip-0385.mediawiki | 2 +- bip-0386.mediawiki | 2 +- bip-0389.mediawiki | 2 +- 14 files changed, 25 insertions(+), 25 deletions(-) diff --git a/README.mediawiki b/README.mediawiki index 96b8df33..6dbd7984 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -452,7 +452,7 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0086.mediawiki|86]] | Applications | Key Derivation for Single Key P2TR Outputs -| Andrew Chow +| Ava Chow | Standard | Draft |- style="background-color: #ffffcf" @@ -900,7 +900,7 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0174.mediawiki|174]] | Applications | Partially Signed Bitcoin Transaction Format -| Andrew Chow +| Ava Chow | Standard | Final |- style="background-color: #ffcfcf" @@ -1089,14 +1089,14 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0370.mediawiki|370]] | Applications | PSBT Version 2 -| Andrew Chow +| Ava Chow | Standard | Draft |- | [[bip-0371.mediawiki|371]] | Applications | Taproot Fields for PSBT -| Andrew Chow +| Ava Chow | Standard | Draft |- @@ -1110,56 +1110,56 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0380.mediawiki|380]] | Applications | Output Script Descriptors General Operation -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0381.mediawiki|381]] | Applications | Non-Segwit Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0382.mediawiki|382]] | Applications | Segwit Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0383.mediawiki|383]] | Applications | Multisig Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0384.mediawiki|384]] | Applications | combo() Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0385.mediawiki|385]] | Applications | raw() and addr() Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0386.mediawiki|386]] | Applications | tr() Output Script Descriptors -| Pieter Wuille, Andrew Chow +| Pieter Wuille, Ava Chow | Informational | Draft |- | [[bip-0389.mediawiki|389]] | Applications | Multipath Descriptor Key Expressions -| Andrew Chow +| Ava Chow | Informational | Draft |} diff --git a/bip-0086.mediawiki b/bip-0086.mediawiki index f724884e..529f0946 100644 --- a/bip-0086.mediawiki +++ b/bip-0086.mediawiki @@ -2,7 +2,7 @@ BIP: 86 Layer: Applications Title: Key Derivation for Single Key P2TR Outputs - Author: Andrew Chow + Author: Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0086 Status: Draft diff --git a/bip-0129.mediawiki b/bip-0129.mediawiki index 8719fe42..608c724e 100644 --- a/bip-0129.mediawiki +++ b/bip-0129.mediawiki @@ -452,7 +452,7 @@ sh(wsh(multi(2,[793cc70b/48'/0'/0'/1']xpub6ErVmcYYHmavsMgxEcTZyzN5sqth1ZyRpFNJC2 ==Acknowledgement== -Special thanks to Pavol Rusnak, Dmitry Petukhov, Christopher Allen, Craig Raw, Robert Spigler, Gregory Sanders, Ta Tat Tai, Michael Flaxman, Pieter Wuille, Salvatore Ingala, Andrew Chow and others for their feedback on the specification. +Special thanks to Pavol Rusnak, Dmitry Petukhov, Christopher Allen, Craig Raw, Robert Spigler, Gregory Sanders, Ta Tat Tai, Michael Flaxman, Pieter Wuille, Salvatore Ingala, Ava Chow and others for their feedback on the specification. ==References== diff --git a/bip-0174.mediawiki b/bip-0174.mediawiki index f4c0807c..5e70a110 100644 --- a/bip-0174.mediawiki +++ b/bip-0174.mediawiki @@ -2,7 +2,7 @@ BIP: 174 Layer: Applications Title: Partially Signed Bitcoin Transaction Format - Author: Andrew Chow + Author: Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0174 Status: Final diff --git a/bip-0370.mediawiki b/bip-0370.mediawiki index cb598014..cd448cc0 100644 --- a/bip-0370.mediawiki +++ b/bip-0370.mediawiki @@ -2,7 +2,7 @@ BIP: 370 Layer: Applications Title: PSBT Version 2 - Author: Andrew Chow + Author: Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0370 Status: Draft diff --git a/bip-0371.mediawiki b/bip-0371.mediawiki index 599aa546..45b69f8a 100644 --- a/bip-0371.mediawiki +++ b/bip-0371.mediawiki @@ -2,7 +2,7 @@ BIP: 371 Layer: Applications Title: Taproot Fields for PSBT - Author: Andrew Chow + Author: Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0371 Status: Draft diff --git a/bip-0380.mediawiki b/bip-0380.mediawiki index 48dd93f9..4e73b5fc 100644 --- a/bip-0380.mediawiki +++ b/bip-0380.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: Output Script Descriptors General Operation Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0380 Status: Draft diff --git a/bip-0381.mediawiki b/bip-0381.mediawiki index 769b42d2..4b942784 100644 --- a/bip-0381.mediawiki +++ b/bip-0381.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: Non-Segwit Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0381 Status: Draft diff --git a/bip-0382.mediawiki b/bip-0382.mediawiki index 1b7c1562..942f62c1 100644 --- a/bip-0382.mediawiki +++ b/bip-0382.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: Segwit Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0382 Status: Draft diff --git a/bip-0383.mediawiki b/bip-0383.mediawiki index 27fb74b5..66e2f160 100644 --- a/bip-0383.mediawiki +++ b/bip-0383.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: Multisig Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0383 Status: Draft diff --git a/bip-0384.mediawiki b/bip-0384.mediawiki index 98dca778..02d6f765 100644 --- a/bip-0384.mediawiki +++ b/bip-0384.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: combo() Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0384 Status: Draft diff --git a/bip-0385.mediawiki b/bip-0385.mediawiki index f97a3316..3e922b3b 100644 --- a/bip-0385.mediawiki +++ b/bip-0385.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: raw() and addr() Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0385 Status: Draft diff --git a/bip-0386.mediawiki b/bip-0386.mediawiki index 782a6f8f..759887d4 100644 --- a/bip-0386.mediawiki +++ b/bip-0386.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: tr() Output Script Descriptors Author: Pieter Wuille - Andrew Chow + Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0386 Status: Draft diff --git a/bip-0389.mediawiki b/bip-0389.mediawiki index fe14b629..500d7e3c 100644 --- a/bip-0389.mediawiki +++ b/bip-0389.mediawiki @@ -2,7 +2,7 @@ BIP: 389 Layer: Applications Title: Multipath Descriptor Key Expressions - Author: Andrew Chow + Author: Ava Chow Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0389 Status: Draft From b434f1813ca2d4c270b51e53a4b7acd52f69bf60 Mon Sep 17 00:00:00 2001 From: Alexander Nemish Date: Fri, 15 Dec 2023 11:00:10 +0100 Subject: [PATCH 061/101] Update bip-0085.mediawiki Fix doublicated word --- bip-0085.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0085.mediawiki b/bip-0085.mediawiki index 06277555..d5557fbf 100644 --- a/bip-0085.mediawiki +++ b/bip-0085.mediawiki @@ -364,7 +364,7 @@ The resulting RSA key can be used to create a GPG key where the creation date MU Note on GPG key capabilities on smartcard/hardware devices: -GPG capable smart-cards SHOULD be be loaded as follows: The encryption slot SHOULD be loaded with the ENCRYPTION capable key; the authentication slot SHOULD be loaded with the AUTHENTICATION capable key. The signature capable slot SHOULD be loaded with the SIGNATURE capable key. +GPG capable smart-cards SHOULD be loaded as follows: The encryption slot SHOULD be loaded with the ENCRYPTION capable key; the authentication slot SHOULD be loaded with the AUTHENTICATION capable key. The signature capable slot SHOULD be loaded with the SIGNATURE capable key. However, depending on available slots on the smart-card, and preferred policy, the CERTIFY capable key MAY be flagged with CERTIFY and SIGNATURE capabilities and loaded into the SIGNATURE capable slot (for example where the smart-card has only three slots and the CERTIFY capability is required on the same card). In this case, the SIGNATURE capable sub-key would be disregarded because the CERTIFY capable key serves a dual purpose. From 3671465ce62f91c6e115ec870b2b66e91b0cac43 Mon Sep 17 00:00:00 2001 From: momodaka <463435681@qq.com> Date: Thu, 9 Nov 2023 21:06:22 +0800 Subject: [PATCH 062/101] Update BIP-380: fix typo revert: fix --- bip-0380.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0380.mediawiki b/bip-0380.mediawiki index 48dd93f9..3f177558 100644 --- a/bip-0380.mediawiki +++ b/bip-0380.mediawiki @@ -26,7 +26,7 @@ This BIP is licensed under the BSD 2-clause license. Bitcoin wallets traditionally have stored a set of keys which are later serialized and mutated to produce the output scripts that the wallet watches and the addresses it provides to users. Typically backups have consisted of solely the private keys, nowadays primarily in the form of BIP 39 mnemonics. -However this backup solution is insuffient, especially since the introduction of Segregated Witness which added new output types. +However this backup solution is insufficient, especially since the introduction of Segregated Witness which added new output types. Given just the private keys, it is not possible for restored wallets to know which kinds of output scripts and addresses to produce. This has lead to incompatibilities between wallets when restoring a backup or exporting data for a watch only wallet. @@ -238,7 +238,7 @@ Valid expressions: * Extended private key with hardened derivation and children: xprvA1RpRA33e1JQ7ifknakTFpgNXPmW2YvmhqLQYMmrj4xJXXWYpDPS3xz7iAxn8L39njGVyuoseXzU6rcxFLJ8HFsTjSyQbLYnMpCqE2VbFWc/3h/4h/5h/*h * Extended private key with key origin, hardened derivation and children: [deadbeef/0h/1h/2]xprvA1RpRA33e1JQ7ifknakTFpgNXPmW2YvmhqLQYMmrj4xJXXWYpDPS3xz7iAxn8L39njGVyuoseXzU6rcxFLJ8HFsTjSyQbLYnMpCqE2VbFWc/3h/4h/5h/*h -Invalid expressiosn: +Invalid expression: * Children indicator in key origin: [deadbeef/0h/0h/0h/*]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 * Trailing slash in key origin: [deadbeef/0h/0h/0h/]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 From c2cec65937881131bcaa45b52de6e1fbce5433d5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 15:33:50 -0500 Subject: [PATCH 063/101] fixup! rename `n-pushes` -> `push-count` --- bip-0345.mediawiki | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 73b265e5..2bcf7bd4 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -231,8 +231,8 @@ When evaluating OP_VAULT (OP_SUCCESS187, - -[ n leaf-update script data items ... ] + +[ leaf-update script data items ... ] @@ -243,12 +243,12 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. +** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. -* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. +* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. * is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. @@ -269,7 +269,7 @@ After the stack is parsed, the following validation checks are performed: * Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. -* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. +* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. From 327025b369ea5c1623e7695e4b7b79d4a79e733e Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 16:11:50 -0500 Subject: [PATCH 064/101] fixup! misc. feedback from AJ and twhit223 --- bip-0345.mediawiki | 48 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2bcf7bd4..d57610b7 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -243,26 +243,27 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. +* is an up to 4-byte minimally encoded CScriptNum indicating how many leaf-update script items should be popped off the stack. '''Why only prefix with data pushes?''' Prefixing the leaf-update-script-body with opcodes opens up the door to prefix OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0, script execution MUST fail and terminate immediately. +** If there are fewer than 3 items following the items on the stack, script execution MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. * The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. -* is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +* is an up to 4-byte minimally encoded CScriptNum indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -** If this value is negative and not equal to -1, script execution when spending this output MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. +* is an up to 4-byte minimally encoded CScriptNum optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. +** If this value is negative and not equal to -1, script execution MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. -* is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is not greater than or equal to 0, script execution when spending this output MUST fail and terminate immediately. -** If this value is non-zero but is negative, script execution when spending this output MUST fail and terminate immediately. +* is an up to 7-byte minimally encoded CScriptNum indicating the number of satoshis being revaulted. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is not greater than or equal to 0, script execution MUST fail and terminate immediately. +** If this value is non-zero but is negative, script execution MUST fail and terminate immediately. +** If this value is zero but is not -1, script execution MUST fail and terminate immediately. After the stack is parsed, the following validation checks are performed: @@ -270,12 +271,11 @@ After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. -** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. -* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. -* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. -* Implemetation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output SHOULD fail and terminate immediately. +* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution MUST fail and terminate immediately. +* Implementation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution SHOULD fail and terminate immediately. This ensures that (at a minimum) the vaulted value for this input is carried through. ** Amount checks are ultimately done with deferred checks, but this check can help short-circuit obviously invalid spends. * Queue a deferred check'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
that ensures the satoshis for this input's nValue minus are included within the output nValue found at . * Queue a deferred check that ensures satoshis, if non-zero, are included within the output's nValue found at . @@ -296,15 +296,15 @@ When evaluating OP_VAULT_RECOVER (OP_SUCCESS188, where * is a 32-byte data push. -** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating the index of the recovery output. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +** If this is not 32 bytes in length, script execution MUST fail and terminate immediately. +* is an up to 4-byte minimally encoded CScriptNum indicating the index of the recovery output. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. After the stack is parsed, the following validation checks are performed: * Let the output at index be called ''recoveryOut''. -* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. +* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution MUST fail and terminate immediately. ** Implementation recommendation: if ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script SHOULD fail and terminate immediately. * Queue a deferred check that ensures the nValue of ''recoveryOut'' contains the entire nValue of this input.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. ** This deferred check could be characterized in terms of the pseudocode below as RecoveryCheck(, input_amount). From de9ef59307f5d94883eefd2c6691c67d358d915a Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 16:12:17 -0500 Subject: [PATCH 065/101] fixup! remove unused diagram --- bip-0345/batch-sweep.drawio.png | Bin 62296 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bip-0345/batch-sweep.drawio.png diff --git a/bip-0345/batch-sweep.drawio.png b/bip-0345/batch-sweep.drawio.png deleted file mode 100644 index 8f142545793e10484148d50abffc7066a4510c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62296 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%0Df84U&UeU(b*=co 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
}q2Cf7sc+g>-iR9ziC6tq28_xtBz|^ttE5Zs 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 Date: Mon, 29 Jan 2024 23:45:16 +0200 Subject: [PATCH 066/101] Update bip-0039-wordlists.md typos, grammar, clarity --- bip-0039/bip-0039-wordlists.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bip-0039/bip-0039-wordlists.md b/bip-0039/bip-0039-wordlists.md index f2c173c5..5acf87d1 100644 --- a/bip-0039/bip-0039-wordlists.md +++ b/bip-0039/bip-0039-wordlists.md @@ -53,7 +53,7 @@ Credits: @Kirvx @NicolasDorier @ecdsa @EricLarch 7. No words in the plural (except invariable words like "univers", or same spelling than singular like "heureux"). 8. No female adjectives (except words with same spelling for male and female adjectives like "magique"). 9. No words with several senses AND different spelling in speaking like "verre-vert", unless a word has a meaning much more popular than another like "perle" and "pairle". -10. No very similar words with 1 letter of difference. +10. No very similar words with only 1 letter of difference. 11. No essentially reflexive verbs (unless a verb is also a noun like "souvenir"). 12. No words with "ô;â;ç;ê;œ;æ;î;ï;û;ù;à;ë;ÿ". 13. No words ending by "é;ée;è;et;ai;ait". @@ -93,12 +93,12 @@ Words chosen using the following rules: 1. Words are 4-8 letters long. 2. Words can be uniquely determined typing the first 4 letters. -3. Only words containing all letters without diacritical marks. (It was the hardest task, because in one third of all Czech letters has diacritical marks.) +3. Only words containing all letters without diacritical marks. (It was the hardest task, because one third of all Czech letters has diacritical marks.) 4. Only nouns, verbs and adverbs, no other word types. All words are in basic form. 5. No personal names or geographical names. 6. No very similar words with 1 letter of difference. -7. Words are sorting according English alphabet (Czech sorting has difference in "ch"). -8. No words already used in other language mnemonic sets (english, italian, french, spanish). Letters with diacritical marks from these sets are counted as analogous letters without diacritical marks. +7. Words are sorted according to English alphabet (Czech sorting has difference in "ch"). +8. No words already used in other language mnemonic sets (english, italian, french, spanish). Letters with diacritical marks from these sets are counted as analogous letters without diacritical marks. ### Portuguese @@ -109,9 +109,9 @@ Credits: @alegotardo @bitmover-studio @brenorb @kuthullu @ninjastic @sabotag3x @ 3. No complex verb forms. 4. No plural words, unless there's no singular form. 5. No words with double spelling. -6. No words with the exact sound of another word with different spelling. +6. No words with the exact sound as another word with different spelling. 7. No offensive words. 8. No words already used in other language mnemonic sets. 9. The words which have not the same spelling in Brazil and in Portugal are excluded. -10. No words that remind negative/sad/bad things. -11. No very similar words with 1 letter of difference. +10. No words that remind one of negative/sad/bad things. +11. No very similar words with only 1 letter of difference. From eccf3db13963f1df625c1dd69fb73c6d29680c83 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 23 Feb 2024 15:15:32 -0500 Subject: [PATCH 067/101] BIP-0345: add copyright --- bip-0345.mediawiki | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d57610b7..a6ead315 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -26,6 +26,10 @@ an arbitrary destination, with the exception of a prespecified "recovery" path. At any time prior to final withdrawal, the coins can be spent to the recovery path. +=== Copyright === + +This document is licensed under the 3-clause BSD license. + === Motivation === From b3701faef2bdb98a0d7ace4eedbeefa2da4c89ed Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 23 Feb 2024 20:21:08 +0000 Subject: [PATCH 068/101] README: Update table --- README.mediawiki | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.mediawiki b/README.mediawiki index 6dbd7984..43e60a40 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -434,7 +434,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Eric Lombrozo | Standard | Rejected -|- +|- style="background-color: #cfffcf" | [[bip-0084.mediawiki|84]] | Applications | Derivation scheme for P2WPKH based accounts @@ -487,7 +487,7 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0093.mediawiki|93]] | Applications | codex32: Checksummed SSSS-aware BIP32 seeds -| Leon Olsson Curr, Pearlwort Sneed +| Leon Olsson Curr, Pearlwort Sneed, Andrew Poelstra | Informational | Draft |- @@ -627,7 +627,7 @@ Those proposing changes should consider that ultimately consent may rest with th | [[bip-0119.mediawiki|119]] | Consensus (soft fork) | CHECKTEMPLATEVERIFY -| Jeremy Rubin +| Jeremy Rubin, James O'Beirne | Standard | Draft |- style="background-color: #ffcfcf" @@ -1072,6 +1072,13 @@ Those proposing changes should consider that ultimately consent may rest with th | Standard | Final |- +| [[bip-0345.mediawiki|345]] +| Consensus (soft fork) +| OP_VAULT +| James O'Beirne, Greg Sanders, Anthony Towns +| Standard +| Draft +|- style="background-color: #cfffcf" | [[bip-0350.mediawiki|350]] | Applications | Bech32m format for v1+ witness addresses From 55ec890fca8cc892f49be8d11898890cc8485f6d Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 23 Feb 2024 23:03:27 +0000 Subject: [PATCH 069/101] Update for Google Groups ML --- bip-0002.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki index af8bb309..d4cb7e1f 100644 --- a/bip-0002.mediawiki +++ b/bip-0002.mediawiki @@ -32,13 +32,13 @@ The BIP process begins with a new idea for Bitcoin. Each potential BIP must have Small enhancements or patches to a particular piece of software often don't require standardisation between multiple projects; these don't need a BIP and should be injected into the relevant project-specific development workflow with a patch submission to the applicable issue tracker. Additionally, many ideas have been brought forward for changing Bitcoin that have been rejected for various reasons. The first step should be to search past discussions to see if an idea has been considered before, and if so, what issues arose in its progression. -After investigating past work, the best way to proceed is by posting about the new idea to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Bitcoin development mailing list]. +After investigating past work, the best way to proceed is by posting about the new idea to the [https://groups.google.com/g/bitcoindev Bitcoin development mailing list]. Vetting an idea publicly before going as far as writing a BIP is meant to save both the potential author and the wider community time. Asking the Bitcoin community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Bitcoin is used. -Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Bitcoin development mailing list]. +Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to the [https://groups.google.com/g/bitcoindev Bitcoin development mailing list]. This gives the author a chance to flesh out the draft BIP to make it properly formatted, of high quality, and to address additional concerns about the proposal. Following a discussion, the proposal should be submitted to the [https://github.com/bitcoin/bips BIPs git repository] as a pull request. This draft must be written in BIP style as described below, and named with an alias such as "bip-johndoe-infinitebitcoins" until an editor has assigned it a BIP number (authors MUST NOT self-assign BIP numbers). From 79c1ec02a78aeaa9cf53da623e41363f92cff7bb Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 23 Feb 2024 23:04:31 +0000 Subject: [PATCH 070/101] README: Update for Google Groups ML --- README.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.mediawiki b/README.mediawiki index 43e60a40..4ecc207b 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -1,4 +1,4 @@ -People wishing to submit BIPs, first should propose their idea or document to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev bitcoin-dev@lists.linuxfoundation.org] mailing list (do not assign a number - read BIP 2 for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here. +People wishing to submit BIPs, first should propose their idea or document to the [https://groups.google.com/g/bitcoindev bitcoindev@googlegroups.com] mailing list (do not assign a number - read BIP 2 for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here. We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred. From ddf5b25fc7f8009fa46ccb94f9ea73e85feffbf5 Mon Sep 17 00:00:00 2001 From: siv2r Date: Thu, 1 Feb 2024 11:14:27 +0530 Subject: [PATCH 071/101] bip327: fix broken links --- bip-0327.mediawiki | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bip-0327.mediawiki b/bip-0327.mediawiki index 07b40f53..b5600ab3 100644 --- a/bip-0327.mediawiki +++ b/bip-0327.mediawiki @@ -123,7 +123,7 @@ This is by design: All algorithms in this proposal handle multiple signers who ( and applications are not required to check for duplicate individual public keys. In fact, applications are recommended to omit checks for duplicate individual public keys in order to simplify error handling. Moreover, it is often impossible to tell at key aggregation which signer is to blame for the duplicate, i.e., which signer came up with an individual public key honestly and which disruptive signer copied it. -In contrast, MuSig2 is designed to identify disruptive signers at signing time (see [[#identifiying-disruptive-signers|Identifiying Disruptive Signers]]). +In contrast, MuSig2 is designed to identify disruptive signers at signing time (see [[#identifying-disruptive-signers|Identifying Disruptive Signers]]). While the algorithms in this proposal are able to handle duplicate individual public keys, there are scenarios where applications may choose to abort when encountering duplicates. For example, we can imagine a scenario where a single entity creates a MuSig2 setup with multiple signing devices. @@ -211,7 +211,7 @@ The bit can be obtained with ''GetPlainPubkey(keyagg_ctx)[0] & 1''. The following specification of the algorithms has been written with a focus on clarity. As a result, the specified algorithms are not always optimal in terms of computation and space. -In particular, some values are recomputed but can be cached in actual implementations (see [[#signing-flow|Signing Flow]]). +In particular, some values are recomputed but can be cached in actual implementations (see [[#general-signing-flow|General Signing Flow]]). === Notation === @@ -367,7 +367,7 @@ Algorithm ''ApplyTweak(keyagg_ctx, tweak, is_xonly_t)'': Algorithm ''NonceGen(sk, pk, aggpk, m, extra_in)'': * Inputs: ** The secret signing key ''sk'': a 32-byte array (optional argument) -** The individual public key ''pk'': a 33-byte array (see [[#modifications-to-nonce-generation|Modifications to Nonce Generation]] for the reason that this argument is mandatory) +** The individual public key ''pk'': a 33-byte array (see [[#signing-with-tweaked-individual-keys|Signing with Tweaked Individual Keys]] for the reason that this argument is mandatory) ** The x-only aggregate public key ''aggpk'': a 32-byte array (optional argument) ** The message ''m'': a byte array (optional argument)In theory, the allowed message size is restricted because SHA256 accepts byte strings only up to size of 2^61-1 bytes (and because of the 8-byte length encoding). ** The auxiliary input ''extra_in'': a byte array with ''0 ≤ len(extra_in) ≤ 232-1'' (optional argument) @@ -465,7 +465,7 @@ Algorithm ''Sign(secnonce, sk, session_ctx)'': * Fail if ''pk ≠ secnonce[64:97]'' * Let ''a = GetSessionKeyAggCoeff(session_ctx, P)''; fail if that failsFailing ''Sign'' when ''GetSessionKeyAggCoeff(session_ctx, P)'' fails is not necessary for unforgeability. It merely indicates to the caller that the scheme is not being used correctly. * Let ''g = 1'' if ''has_even_y(Q)'', otherwise let ''g = -1 mod n'' -*
Let ''d = g⋅gacc⋅d' mod n'' (See [[negation-of-the-secret-key-when-signing|Negation Of The Secret Key When Signing]]) +*
Let ''d = g⋅gacc⋅d' mod n'' (See [[#negation-of-the-secret-key-when-signing|Negation Of The Secret Key When Signing]]) * Let ''s = (k1 + b⋅k2 + e⋅a⋅d) mod n'' * Let ''psig = bytes(32, s)'' * Let ''pubnonce = cbytes(k1'⋅G) || cbytes(k2'⋅G)'' From 5658236e6c9d9b39e99022674817925b18ea29d9 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 18 Mar 2024 23:48:22 +0100 Subject: [PATCH 072/101] BIP-00{43,49,84}: move to Standards Track --- README.mediawiki | 6 +++--- bip-0043.mediawiki | 2 +- bip-0049.mediawiki | 2 +- bip-0084.mediawiki | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.mediawiki b/README.mediawiki index 43e60a40..5379bbe0 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -235,7 +235,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Applications | Purpose Field for Deterministic Wallets | Marek Palatinus, Pavol Rusnak -| Informational +| Standard | Final |- style="background-color: #ffffcf" | [[bip-0044.mediawiki|44]] @@ -270,7 +270,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Applications | Derivation scheme for P2WPKH-nested-in-P2SH based accounts | Daniel Weigl -| Informational +| Standard | Final |- style="background-color: #cfffcf" | [[bip-0050.mediawiki|50]] @@ -439,7 +439,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Applications | Derivation scheme for P2WPKH based accounts | Pavol Rusnak -| Informational +| Standard | Final |- | [[bip-0085.mediawiki|85]] diff --git a/bip-0043.mediawiki b/bip-0043.mediawiki index 32e02b1e..f07c94aa 100644 --- a/bip-0043.mediawiki +++ b/bip-0043.mediawiki @@ -7,7 +7,7 @@ Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0043 Status: Final - Type: Informational + Type: Standards Track Created: 2014-04-24 diff --git a/bip-0049.mediawiki b/bip-0049.mediawiki index 7d8d2c74..a13b437b 100644 --- a/bip-0049.mediawiki +++ b/bip-0049.mediawiki @@ -6,7 +6,7 @@ Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0049 Status: Final - Type: Informational + Type: Standards Track Created: 2016-05-19 License: PD diff --git a/bip-0084.mediawiki b/bip-0084.mediawiki index 7f20217d..e1e458c8 100644 --- a/bip-0084.mediawiki +++ b/bip-0084.mediawiki @@ -6,7 +6,7 @@ Comments-Summary: No comments yet. Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0084 Status: Final - Type: Informational + Type: Standards Track Created: 2017-12-28 License: CC0-1.0 From 0278bf3d7111bab8f0ef8dd08f16fd7b5ac6cbd6 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 18 Mar 2024 23:48:44 +0100 Subject: [PATCH 073/101] BIP-0044: mark as Final --- README.mediawiki | 2 +- bip-0044.mediawiki | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.mediawiki b/README.mediawiki index 5379bbe0..ef51adb5 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -243,7 +243,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Multi-Account Hierarchy for Deterministic Wallets | Marek Palatinus, Pavol Rusnak | Standard -| Proposed +| Final |- style="background-color: #ffffcf" | [[bip-0045.mediawiki|45]] | Applications diff --git a/bip-0044.mediawiki b/bip-0044.mediawiki index 4ddd56b2..5db540c7 100644 --- a/bip-0044.mediawiki +++ b/bip-0044.mediawiki @@ -6,7 +6,7 @@ Pavol Rusnak Comments-Summary: Mixed review (one person) Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0044 - Status: Proposed + Status: Final Type: Standards Track Created: 2014-04-24 From 109811e4b95168159155a98afb6229c8065a65ea Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Mon, 1 Apr 2024 13:33:48 -0500 Subject: [PATCH 074/101] Fix BIP380 typos --- bip-0380.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0380.mediawiki b/bip-0380.mediawiki index c457a34d..a5743d58 100644 --- a/bip-0380.mediawiki +++ b/bip-0380.mediawiki @@ -249,8 +249,8 @@ Invalid expressiosn: * Invalid hardened indicators: [deadbeef/-0/-0/-0]0260b2003c386519fc9eadf2b5cf124dd8eea4c4e68d5e154050a9346ea98ce600 * Private key with derivation: L4rK1yDtCWekvXuE6oXD9jCYfFNV2cWRpVuPLBcCU2z8TrisoyY1/0 * Private key with derivation children: L4rK1yDtCWekvXuE6oXD9jCYfFNV2cWRpVuPLBcCU2z8TrisoyY1/* -* Derivation index out of range: xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483648)", "pkh(xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/2147483648 -* Invalid derivation index: xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/1aa)", "pkh(xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/1aa +* Derivation index out of range: xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483648 +* Invalid derivation index: xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/1aa * Multiple key origins: [aaaaaaaa][aaaaaaaa]xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483647'/0 * Missing key origin start: aaaaaaaa]xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483647'/0 * Non hex fingerprint: [gaaaaaaa]xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483647'/0 From 8795003831279c9af60f4a32bbc4af8b4b19cbc0 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Wed, 3 Apr 2024 10:02:10 -0500 Subject: [PATCH 075/101] Fix unsatisfiable test vector in BIP382 --- bip-0382.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0382.mediawiki b/bip-0382.mediawiki index 942f62c1..bb1951d6 100644 --- a/bip-0382.mediawiki +++ b/bip-0382.mediawiki @@ -73,7 +73,7 @@ Valid descriptors followed by the scripts they produce. Descriptors involving de ** a9149a4d9901d6af519b2a23d4a2f51650fcba87ce7b87 ** a914bed59fc0024fae941d6e20a3b44a109ae740129287 ** a9148483aa1116eb9c05c482a72bada4b1db24af654387 -* sh(wpkh(xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8/10/20/30/40/*h)) +* sh(wpkh(xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi/10/20/30/40/*h)) ** a9149a4d9901d6af519b2a23d4a2f51650fcba87ce7b87 ** a914bed59fc0024fae941d6e20a3b44a109ae740129287 ** a9148483aa1116eb9c05c482a72bada4b1db24af654387 From 8a9e5744140222a4be238bbaa78f2512cf0102b5 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Wed, 3 Apr 2024 15:00:42 -0500 Subject: [PATCH 076/101] Fix unsatisfiable test vector in BIP381 --- bip-0381.mediawiki | 2 -- 1 file changed, 2 deletions(-) diff --git a/bip-0381.mediawiki b/bip-0381.mediawiki index 4b942784..bfda2c8e 100644 --- a/bip-0381.mediawiki +++ b/bip-0381.mediawiki @@ -100,8 +100,6 @@ Valid descriptors followed by the scripts they produce. Descriptors involving de ** a9141a31ad23bf49c247dd531a623c2ef57da3c400c587 * pkh(xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U/2147483647'/0) ** 76a914ebdc90806a9c4356c1c88e42216611e1cb4c1c1788ac -* pkh(xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/2147483647'/0) -** 76a914ebdc90806a9c4356c1c88e42216611e1cb4c1c1788ac * pkh([bd16bee5/2147483647h]xpub69H7F5dQzmVd3vPuLKtcXJziMEQByuDidnX3YdwgtNsecY5HRGtAAQC5mXTt4dsv9RzyjgDjAQs9VGVV6ydYCHnprc9vvaA5YtqWyL6hyds/0) ** 76a914ebdc90806a9c4356c1c88e42216611e1cb4c1c1788ac * pk(xprv9uPDJpEQgRQfDcW7BkF7eTya6RPxXeJCqCJGHuCJ4GiRVLzkTXBAJMu2qaMWPrS7AANYqdq6vcBcBUdJCVVFceUvJFjaPdGZ2y9WACViL4L/0) From 0092a4318f2201793f46cd71d3e465d143a5ae19 Mon Sep 17 00:00:00 2001 From: Murch Date: Thu, 4 Apr 2024 16:27:56 -0400 Subject: [PATCH 077/101] Clarify permitted status of markdown Originally BIP-2 disallowed markdown, but markdown formatting was permitted via #1504. --- bip-0002.mediawiki | 1 - 1 file changed, 1 deletion(-) diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki index af8bb309..7de51754 100644 --- a/bip-0002.mediawiki +++ b/bip-0002.mediawiki @@ -409,7 +409,6 @@ Why is Public Domain no longer acceptable for new BIPs? * Non-image auxiliary files are permitted in the bip-XXXX subdirectory. * Email addresses are now required for authors. * The Post-History header may be provided as a link instead of a simple date. -* Markdown format is no longer permitted for BIPs. * The Resolution header has been dropped, as it is not applicable to a decentralised system where no authority exists to make final decisions. ==See Also== From 4a937e1887891b58eb5a1c5bebc3eda00d3ba5c9 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Sat, 6 Apr 2024 09:26:59 -0500 Subject: [PATCH 078/101] Fix typo in BIP384 expected descriptors --- bip-0384.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0384.mediawiki b/bip-0384.mediawiki index 02d6f765..ba12b55d 100644 --- a/bip-0384.mediawiki +++ b/bip-0384.mediawiki @@ -55,7 +55,7 @@ Valid descriptors followed by the scripts they produce. Descriptors involving de *** 2102df12b7035bdac8e3bab862a3a83d06ea6b17b6753d52edecba9be46f5d09e076ac *** 76a914f90e3178ca25f2c808dc76624032d352fdbdfaf288ac *** 0014f90e3178ca25f2c808dc76624032d352fdbdfaf2 -*** a91473e39884cb71ae4e5ac9739e9225026c99763e6687 +*** a91408f3ea8c68d4a7585bf9e8bda226723f70e445f087 ** Child 1 *** 21032869a233c9adff9a994e4966e5b821fd5bac066da6c3112488dc52383b4a98ecac *** 76a914a8409d1b6dfb1ed2a3e8aa5e0ef2ff26b15b75b788ac From ee0a17ef08924f4cbab5faf30202b03203722a04 Mon Sep 17 00:00:00 2001 From: Jason Dreyzehner Date: Mon, 15 Apr 2024 17:12:02 -0400 Subject: [PATCH 079/101] feat: add TypeScript BIP39 implementation --- bip-0039.mediawiki | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki index 5170edd9..1c4845e5 100644 --- a/bip-0039.mediawiki +++ b/bip-0039.mediawiki @@ -171,6 +171,9 @@ JavaScript: * https://github.com/dashhive/DashPhrase.js * https://github.com/hujiulong/web-bip39 +TypeScript: +* https://github.com/bitauth/libauth + Java: * https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/crypto/MnemonicCode.java From fa95e343886ee28e2c10b5bcbd93e15441bf55a4 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Mon, 22 Apr 2024 16:38:46 -0600 Subject: [PATCH 080/101] BIP2: update BIP editors --- bip-0002.mediawiki | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki index 71d3812c..0462a006 100644 --- a/bip-0002.mediawiki +++ b/bip-0002.mediawiki @@ -67,8 +67,12 @@ If you are interested in assuming ownership of a BIP, send a message asking to t The current BIP editors are: +* Bryan Bishop ([[mailto:kanzure@gmail.com|kanzure@gmail.com]]) +* Jon Atack ([[mailto:jon@atack.com|jon@atack.com]]) * Luke Dashjr ([[mailto:luke_bipeditor@dashjr.org|luke_bipeditor@dashjr.org]]) -* Kalle Alm ([[mailto:karljohan-alm@garage.co.jp|karljohan-alm@garage.co.jp]]) +* Mark "Murch" Erhardt ([[mailto:murch@murch.one|murch@murch.one]]) +* Olaoluwa Osuntokun ([[mailto:laolu32@gmail.com|laolu32@gmail.com]]) +* Ruben Somsen ([[mailto:rsomsen@gmail.com|rsomsen@gmail.com]]) ===BIP Editor Responsibilities & Workflow=== From 6ced7dbb5a79cc60ad342e788d998c73eb1ff978 Mon Sep 17 00:00:00 2001 From: Murch Date: Tue, 23 Apr 2024 15:31:27 -0400 Subject: [PATCH 081/101] Fix typos in BIP141 Co-authored-by: Greg Laun --- bip-0141.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index 2247ef65..694c86e3 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -276,7 +276,7 @@ These commitments could be included in the extensible commitment structure throu Since a version byte is pushed before a witness program, and programs with unknown versions are always considered as anyone-can-spend script, it is possible to introduce any new script system with a soft fork. The witness as a structure is not restricted by any existing script semantics and constraints, the 520-byte push limit in particular, and therefore allows arbitrarily large scripts and signatures. -Examples of new script system include Schnorr signatures which reduce the size of multisig transactions dramatically, Lamport signature which is quantum computing resistance, and Merklized abstract syntax trees which allow very compact witness for conditional scripts with extreme complexity. +Examples of new script systems include Schnorr signatures, which reduce the size of multisig transactions dramatically; Lamport signatures, which are quantum computing resistant; and Merklized abstract syntax trees, which allow very compact witnesses for conditional scripts with extreme complexity. === Per-input lock-time and relative-lock-time === From 979ee894b8a4a2e9bd7c07093273588f0cd241d6 Mon Sep 17 00:00:00 2001 From: Lucas Cullen Date: Sun, 29 Apr 2018 19:52:59 +1000 Subject: [PATCH 082/101] Fix grammar --- bip-0141.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index 694c86e3..eb2fc74a 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -303,7 +303,7 @@ As a soft fork, older software will continue to operate without modification. N This BIP will be deployed by "version bits" BIP9 with the name "segwit" and using bit 1. -For Bitcoin mainnet, the BIP9 starttime will be midnight 15 november 2016 UTC (Epoch timestamp 1479168000) and BIP9 timeout will be midnight 15 november 2017 UTC (Epoch timestamp 1510704000). +For Bitcoin mainnet, the BIP9 starttime will be midnight 15 November 2016 UTC (Epoch timestamp 1479168000) and BIP9 timeout will be midnight 15 November 2017 UTC (Epoch timestamp 1510704000). For Bitcoin testnet, the BIP9 starttime will be midnight 1 May 2016 UTC (Epoch timestamp 1462060800) and BIP9 timeout will be midnight 1 May 2017 UTC (Epoch timestamp 1493596800). From 632f143fadaed8c91bba12d096e62feb2a308054 Mon Sep 17 00:00:00 2001 From: glozow Date: Wed, 11 May 2022 15:53:37 -0400 Subject: [PATCH 083/101] specify BIP331 Ancestor Package Relay --- README.mediawiki | 7 + bip-0331.mediawiki | 430 ++++++++++++++++++++++++ bip-0331/no_package_info.png | Bin 0 -> 34994 bytes bip-0331/orphan_handling_flow.png | Bin 0 -> 65204 bytes bip-0331/package_cpfp_flow.png | Bin 0 -> 57377 bytes bip-0331/package_erlay.png | Bin 0 -> 45106 bytes bip-0331/package_info_only.png | Bin 0 -> 45150 bytes bip-0331/sender_init_future_version.png | Bin 0 -> 99293 bytes bip-0331/version_negotiation.png | Bin 0 -> 50918 bytes 9 files changed, 437 insertions(+) create mode 100644 bip-0331.mediawiki create mode 100644 bip-0331/no_package_info.png create mode 100644 bip-0331/orphan_handling_flow.png create mode 100644 bip-0331/package_cpfp_flow.png create mode 100644 bip-0331/package_erlay.png create mode 100644 bip-0331/package_info_only.png create mode 100644 bip-0331/sender_init_future_version.png create mode 100644 bip-0331/version_negotiation.png diff --git a/README.mediawiki b/README.mediawiki index 815e8c3c..bc174cf3 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -1030,6 +1030,13 @@ Those proposing changes should consider that ultimately consent may rest with th | Standard | Draft |- +| [[bip-0331.mediawiki|331]] +| Peer Services +| Ancestor Package Relay +| Gloria Zhao +| Standard +| Draft +|- | [[bip-0338.mediawiki|338]] | Peer Services | Disable transaction relay message diff --git a/bip-0331.mediawiki b/bip-0331.mediawiki new file mode 100644 index 00000000..08927a23 --- /dev/null +++ b/bip-0331.mediawiki @@ -0,0 +1,430 @@ +
+  BIP: 331
+  Layer: Peer Services
+  Title: Ancestor Package Relay
+  Author: Gloria Zhao 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0331
+  Status: Draft
+  Type: Standards Track
+  Created: 2022-08-08
+  License: BSD-3-Clause
+  Post-History: 2022-05-17 https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020493.html [bitcoin-dev] post
+
+ +==Abstract== + +Peer-to-peer protocol messages enabling nodes to request and relay the unconfirmed ancestor package +of a given transaction, and to request and relay transactions in batches. + +==Motivation== + +===Propagate High Feerate Transactions=== + +Since v0.13, Bitcoin Core has used ancestor packages instead of individual transactions to evaluate +the incentive compatibility of transactions in the mempool +[https://github.com/bitcoin/bitcoin/pull/7594 Add tracking of ancestor packages] and +selecting them for inclusion in blocks +[https://github.com/bitcoin/bitcoin/pull/7600 Select transactions using feerate-with-ancestors]. +Incentive-compatible mempool and miner policies help create a fair, fee-based market for block +space. While miners maximize transaction fees in order to earn higher block rewards, non-mining +users participating in transaction relay reap many benefits from employing policies that result in a +mempool with similar contents, including faster compact block relay and more accurate fee +estimation. Additionally, users may take advantage of mempool and miner policy to bump the priority +of their transactions by attaching high-fee descendants (Child Pays for Parent or CPFP). + +Only individually considering transactions for submission to the mempool creates a limitation in +the node's ability to determine which transactions to include in the mempool, since it cannot take +into account descendants until all the transactions are in the mempool. Similarly, it cannot use a +transaction's descendants when considering which of two conflicting transactions to keep (Replace by +Fee or RBF). + +When a user's transaction does not meet a mempool's minimum feerate and they cannot create a +replacement transaction directly, their transaction will simply be rejected by this mempool or +evicted if already included. They also cannot attach a descendant to pay for replacing a conflicting +transaction; it would be rejected for spending inputs that do not exist. + +This limitation harms users' ability to fee-bump their transactions. Further, it presents security and complexity +issues in contracting protocols which rely on presigned, time-sensitive transactions'''Examples of time-sensitive pre-signed transactions in L2 protocols.''' +* [https://github.com/lightning/bolts/blob/master/03-transactions.md#htlc-timeout-and-htlc-success-transactions HTCL-Timeout in LN Penalty] +* [https://github.com/revault/practical-revault/blob/master/transactions.md#cancel_tx Unvault Cancel in Revault] +* [https://github.com/discreetlogcontracts/dlcspecs/blob/master/Transactions.md#refund-transaction Refund Transaction in Discreet Log Contracts] +* [https://gist.github.com/instagibbs/60264606e181451e977e439a49f69fe1 Updates in Eltoo] +* [https://github.com/ElementsProject/peerswap/blob/master/docs/peer-protocol.md#claim-transaction Claim Transactions in PeerSwap] + to prevent cheating. +In other words, a key security assumption of many contracting protocols is that all parties can +propagate and confirm transactions in a timely manner. Increasing attention has been brought to +"pinning attacks," a type of censorship in which the attacker uses mempool policy restrictions to +prevent a transaction from being relayed or getting mined. +'''Concerns for pinning attacks in L2 protocols''' +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020458.html Greg Sanders, "Bringing a nuke to a knife fight: Transaction introspection to stop RBF pinning"] +* [https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002639.html Matt Corallo, "RBF Pinning with Counterparties and Competing Interest"] +* [https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-June/002758.html Antoine Riard, "Pinning : The Good, The Bad, The Ugly"] +* [https://github.com/t-bast/lightning-docs/blob/master/pinning-attacks.md Bastien Teinturier, "Pinning Attacks"] +* [https://gist.github.com/instagibbs/60264606e181451e977e439a49f69fe1 Greg Sanders, "Eltoo Pinning"] + + +These transactions must meet a certain confirmation target to be effective, but their feerates +are negotiated well ahead of broadcast time. If the forecast feerate was too low and no +fee-bumping options are available, attackers can steal money from their counterparties. Always +overestimating fees may sidestep this issue (but only while mempool traffic is low and +predictable), but this solution is not guaranteed to work and wastes users' money. For some attacks, +the available defenses require nodes to have a bird's-eye view of Bitcoin nodes' mempools, which is +an unreasonable security requirement. + +Part of the solution is to enable nodes to consider packages of transactions as a unit, e.g. one or +more low-fee ancestor transactions with a high-fee descendant, instead of separately. A package-aware +mempool policy can help determine if it would actually be economically rational to accept a +transaction to the mempool if it doesn't meet fee requirements individually. Network-wide adoption +of these policies would create a more purely-feerate-based market for block space and allow +contracting protocols to adjust fees (and therefore mining priority) at broadcast time. + +Theoretically, developing a safe and incentive-compatible package mempool acceptance policy is +sufficient to solve this issue. Nodes could opportunistically accept packages (e.g. by trying +combinations of transactions rejected from their mempools), but this practice would likely be +inefficient at best and open new Denial of Service attacks at worst. As such, this proposal +suggests adding new p2p messages enabling nodes to request and share package-validation-related +information with one another, resulting in a more efficient and reliable way to propagate packages. + +===Handle Orphans Better=== + +Txid-based transaction relay is problematic since a transaction's witness may be malleated without +changing its txid; a node cannot use txid to deduplicate transactions it has already downloaded +or validated. Ideally, two nodes that both support BIP339 wtxid-based transaction relay shouldn't +ever need to use txid-based transaction relay. + +A single use case of txid-based relay remains: handling "orphan" transactions that spend output(s) +from an unconfirmed transaction the receiving node is unaware of. Orphan transactions are very +common for new nodes that have just completed Initial Block Download and do not have an up-to-date +mempool. Nodes also download transactions from multiple peers. If the peer from which a child +transaction was requested responds faster than the peer from which its parent was requested, that +child is seen as an orphan transaction. + +Nodes may handle orphans by storing them in a cache and requesting any missing parent(s) by txid +(prevouts specify txid, not wtxid). These parents may end up being orphans as well, if they also +spend unconfirmed inputs that the node is unaware of. This method of handling orphans is problematic +for two reasons: it requires nodes to allocate memory for unvalidated data received on the p2p +network and it relies on txid-based relay between two wtxid-relay peers. + +This proposal makes orphan resolution more efficient and no longer require txid-based relay. + +==Definitions== + +Given any two transactions Tx0 and Tx1 where Tx1 spends an output of Tx0, Tx0 is a '''parent''' of +Tx1 and Tx1 is a '''child''' of Tx0. + +A transaction's '''ancestors''' include, recursively, its parents, the parents of its parents, etc. +A transaction's '''descendants''' include, recursively, its children, the children of its children, +etc. A transaction's parent is its ancestor, but an ancestor is not necessarily a parent. + +A '''package''' is a list of transactions, representable by a connected Directed Acyclic +Graph (a directed edge exists between a transaction that spends the output of another transaction). +In this proposal, a package is limited to unconfirmed transactions. + +An '''ancestor package''' consists of an unconfirmed transaction with all of its unconfirmed +ancestors. + +In a '''topologically sorted''' package, each parent appears somewhere in the list before its child. + +==Specification== + +Ancestor Package Relay includes two parts: a package information round and a transaction data +download round. +The package information round is used to help a receiver learn what transactions are in a package and +decide whether they want to download them. The transaction data round is used to help a node download +multiple transactions in one message instead of as separate messages. +'''Why are package information and transaction data rounds both necessary?''' + +Several alternative designs were considered. One should measure alternative solutions based on the +resources used to communicate (not necessarily trustworthy) information: We would like to minimize +network bandwidth, avoid downloading a transaction more than once, avoid downloading transactions +that are eventually rejected, and minimize storage allocated for not-yet-validated transactions. + +
+ +'''No Package Information Round:''' One proposal is to just use the child's wtxid to refer to the +package and always send the entire package together, skipping the package information round. +However, this protocol would make it very likely for honest nodes to redownload duplicate +transactions. See the following example, where the high-feerate ancestors were already downloaded +and accepted individually. + +[[File:./bip-0331/no_package_info.png|600px]] +
+ +'''Package Information Only:''' Just having package information gives enough information for the +receiver to accept the packages. That is, rather than using "getpkgtxns" and "pkgtxns" messages, +send "getdata" and download the transactions individually. While this option is a potential fallback +if batched transaction download fails for some reason, it shouldn't be used as the default because +it always requires storage of unvalidated transactions. +[[File:./bip-0331/package_info_only.png|1000px]] +
+ +Package relay is negotiated between two peers during the version handshake using a "sendpackages" +message. The versions field within "sendpackages" is interpreted as a bitfield; peers may relay +multiple versions of packages. Package relay requires both peers to support wtxid-based relay +because package transactions are referenced by their wtxids. +'''Why do we need multiple versions? Why can't we just support arbitrary packages?''' +Attempting to support arbitrary packages in mempool validation may result in very complex logic, new +Denial of Service attack vectors, and policy limitations that could be leveraged to censor +transactions (aka "pinning attacks"). This protocol is extensible to support other types of +packages based on future desired use cases. Future package information messages may describe +different types of packages and/or contain more information than a list of wtxids, e.g. feerate or +relationships between transactions. +'''Why use a bitfield instead of a numbering system?''' +It should be possible to support some subset of the existing package types. + +[[File:./bip-0331/version_negotiation.png|400px]] + +Nodes indicate support for batched transaction data round ("getpkgtxns", "pkgtxns", and +"MSG_PKGTXNS") using the PKG_RELAY_PKGTXNS = (1 << 0) bit in their "sendpackages" +messages during version handshake. They indicate support for the ancestor package information +round ("ancpkginfo", "MSG_ANCPKGINFO") using the PKG_RELAY_ANC = (1 << 1) bit in their +"sendpackages" messages during version handshake. + +===Protocol Flow Examples=== + +This package relay protocol satisfies both use cases (orphan transaction handling and high-feerate +transaction paying for low-feerate ancestors). + +====Orphan Transaction Handling==== + +Upon receiving an orphan transaction, a node may request ancestor package information delineating +the wtxids of the transaction's unconfirmed ancestors. This is done without using txid-based relay. +The package information can be used to request transaction data. As these transactions are dependent +upon one another to be valid, the transactions can be requested and sent as a batch. + +Contrast this protocol with legacy orphan handling, which requires requesting the missing +transactions by their txids and may require new round trips for each generation of missing parents. +[[File:./bip-0331/orphan_handling_flow.png|1000px]] + +====Fee-Bumped Transactions==== + +Too-low-feerate transactions (i.e. below the node's minimum mempool feerate) with high-feerate +descendants can also be relayed this way. If the peers are using BIP133 fee filters and a +low-feerate transaction is below the node's fee filter, the sender will not announce it. The +high-feerate transaction will be sent by the sender, and received and handled as an orphan by the +receiver, the transactions are validated as a package, and so the protocol naturally works for this +use case. + +This does not mean BIP133 is required for package relay to work, provided that nodes do not +immediately reject transactions previously found to be too low feerate. If the low-feerate +transaction was sent and rejected, the receiver should later re-request and accept it after learning +that it is the ancestor of another transaction, and that they meet the receiver's mempool policy +requirements when validated together. + +[[File:./bip-0331/package_cpfp_flow.png|600px]] + +This protocol is receiver-initiated only; nodes do not proactively announce packages to their peers. +'''Why no sender-initiated protocol?''' Sender-initiated package +relay can, theoretically, save a round trip by notifying the receiver ahead of time that they will +probably need to request and validate a group of transactions together in order for them to be +accepted. As with any proactive communication, there is a chance that the receiver already knows +this information, so this network bandwidth may be wasted. Shortened latency is less significant +than wasted bandwidth. + +The logic used to decide when to announce a package proactively determines whether it is a net +increase or decrease for overall bandwidth usage. However, it is difficult to design anything to +save bandwidth without any idea of what its bandwidth usage actually looks like in practice. No +historical data is available, as one of the primary goals of this protocol is to enable +currently-rejected transactions to propagate. After deploying receiver-initiated package relay, we +can observe its usage and then introduce a sender-initiated package relay protocol informed by data +collected from the p2p network. + +===Combined Hash=== + +A "combined hash" serves as a unique "package id" for some list of transactions and helps provide a +meaningful but short "notfound" response to "getpkgtxns." + +The combined hash of a package of transactions is equal to the sha256 hash of each transaction's +wtxid concatenated in lexicographical order. + +===New Messages=== + +Four new protocol messages and two inv types are added. + +====sendpackages==== + +{| +| Field Name || Type || Size || Purpose +|- +|versions || uint64_t || 4 || Bit field that is 64 bits wide, denoting the package versions supported by the sender. +|- +|} + +# The "sendpackages" message has the structure defined above, with pchCommand == "sendpackages". + +# During version handshake, nodes should send one "sendpackages" message indicating they support package relay, with the versions field indicating which versions they support. + +# The "sendpackages" message MUST be sent before sending a "verack" message. If a "sendpackages" message is received after "verack", the sender may be disconnected. + +# Upon successful connection ("verack" sent by both peers), a node may relay packages with the peer if they did not set "fRelay" to false in the "version" message, both peers sent "wtxidrelay", and both peers sent "sendpackages" for matching version bit(s). Unknown bits (including versions==0) should be ignored. Peers should relay packages corresponding to versions that both sent "sendpackages" for.'''Is it ok to send "sendpackages" to a peer that specified fRelay=false in their "version" message?''' +Yes, this is allowed in order to reduce the number of negotiation steps. This means nodes can +announce features without first checking what the other peer has sent, and then apply negotiation +logic at the end based on what was sent and received. See [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020510.html this discussion]. + + +====ancpkginfo==== +{| +| Field Name || Type || Size || Purpose +|- +|txns_length||CompactSize||1 or 3 bytes|| The number of transactions provided. +|- +|txns||List of wtxids||txns_length * 32|| The wtxids of each transaction in the package. +|} + +# The "ancpkginfo" message has the structure defined above, with pchCommand == "ancpkginfo". + +# The "txns" field should contain a list of wtxids which constitute the ancestor package of the last wtxid. For the receiver's convenience, the sender should - but is not required to - sort the wtxids in topological order. The topological sort can be achieved by sorting the transactions by mempool acceptance order (if parents are always accepted before children). Apart from the last wtxid which is used to learn which transaction the message corresponds to, there is no enforced ordering. Nodes should not disconnect or punish a peer who provides a list not sorted in topological order.'''Why not include feerate information to help the receiver decide whether these transactions are worth downloading?''' +A simple feerate is typically insufficient; the receiver must also know the dependency +relationships between transactions and their respective sizes. +'''Should a peer be punished if they provide incorrect package info, e.g. a list of unrelated transactions?''' +Ideally, there should be a way to enforce that peers are providing correct information to each +other. However, two peers may have different views of what a transaction's unconfirmed ancestors +are based on their chainstate. For example, during a reorg or when two blocks are found at the same +time, one peer may see a transaction as confirmed while the other peer does not. +As such, it is impossible to accurately enforce this without also knowing the peer's chainstate. +It was [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020493.html originally proposed] +to include a block hash in "ancpkginfo" to avoid unwarranted disconnections. However, it does not +make much sense to stop or delay transaction data requests due to mismatched chainstates, and the +chainstate may change again between package information and transaction data rounds. Instead, +differences in chainstate should be handled at the validation level. The node has already spent +network bandwidth downloading these transactions; it should make a best effort to validate them. +See [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020558.html discussion]. +'''Why not require topological order?''' +It is not possible to determine whether a list of transactions is topologically sorted without first +establishing that the list contains a full ancestor package. It is not possible to determine whether +a list of transactions contains a full ancestor package without knowing what the chainstate is. + + +# Upon receipt of a "ancpkginfo" message, the node may use it to request the transactions it does not already have (e.g. using "getpkgtxns" or "tx"). + +# Upon receipt of a malformed "ancpkginfo" message, the sender may be disconnected. An "ancpkginfo" message is malformed if it contains duplicate wtxids or conflicting transactions (spending the same inputs). The receiver may learn that a package info was malformed after downloading the transactions. + +# A node MUST NOT send a "ancpkginfo" message that has not been requested by the recipient. Upon receipt of an unsolicited "ancpkginfo", a node may disconnect the sender. + +# This message must only be used if both peers set PKG_RELAY_ANC in their "sendpackages" message. If an "ancpkginfo" message is received from a peer with which this type of package relay was not negotiated, no response should be sent and the sender may be disconnected. + +====MSG_ANCPKGINFO==== + +# A new inv type (MSG_ANCPKGINFO == 0x7) is added, for use only in getdata requests pertaining to ancestor packages. + +# As a getdata request type, it indicates that the sender wants an "ancpkginfo" containing all of the unconfirmed ancestors of a transaction, referenced by wtxid. + +# Upon receipt of a "getdata(MSG_ANCPKGINFO)" request, the node should respond with an "ancpkginfo" message corresponding to the transaction's unconfirmed ancestor package, or with "notfound". The wtxid of the requested transaction must be the last item in the "ancpkginfo" response list, as the last item is used to determine which transaction the "ancpkginfo" pertains to. + +# The inv type must only be used in a "getdata" message. An "inv(MSG_ANCPKGINFO)" must never be sent. If an "inv(MSG_ANCPKGINFO)" is received, the sender may be disconnected. + +# This inv type must only be used if both peers set PKG_RELAY_ANC in their "sendpackages" message. If a "getdata" message with type MSG_ANCPKGINFO is received from a peer with which this type of package relay was not negotiated, no response should be sent and the sender may be disconnected. + +====getpkgtxns==== + +{| +| Field Name || Type || Size || Purpose +|- +|txns_length||CompactSize||1 or 3 bytes|| The number of transactions requested. +|- +|txns||List of wtxids||txns_length * 32|| The wtxids of each transaction in the package. +|} + +# The "getpkgtxns" message has the structure defined above, with pchCommand == "getpkgtxns". + +# A "getpkgtxns" message should be used to request some list of transactions specified by witness transaction id. It indicates that the node wants to receive either all the specified transactions or none of them. This message is intended to allow nodes to avoid downloading and storing transactions that cannot be validated without each other. The list of transactions does not need to correspond to a previously-received ancpkginfo message. + +# Upon receipt of a "getpkgtxns" message, a node should respond with either a "pkgtxns" containing all of the requested transactions in the same order specified in the "getpkgtxns" request or one "notfound" message of type MSG_PKGTXNS and combined hash of all of the wtxids in the "getpkgtxns" request (only one "notfound" message and nothing else), indicating one or more of the transactions is unavailable. + +# A "getpkgtxns" message must contain at most 100 wtxids. Upon receipt of a "getpkgtxns" message with more than 100 wtxids, a node may ignore the message (to avoid calculating the combined hash) and disconnect the sender. + +# This message must only be used if both peers set PKG_RELAY_PKGTXNS in their "sendpackages" message. If a "getpkgtxns" message is received from a peer with which this type of package relay was not negotiated, no response should be sent and the sender may be disconnected. + +====pkgtxns==== + +{| +| Field Name || Type || Size || Purpose +|- +|txns_length||CompactSize||1 or 3 bytes|| The number of transactions provided. +|- +|txns||List of transactions||variable|| The transactions in the package. +|} + +# The "pkgtxns" message has the structure defined above, with pchCommand == "pkgtxns". + +# A "pkgtxns" message should contain the transaction data requested using "getpkgtxns". + +# A "pkgtxns" message should only be sent to a peer that requested the package using "getpkgtxns". If a node receives an unsolicited package, it may choose to validate the transactions or not, and the sender may be disconnected. + +# This message must only be used if both peers set PKG_RELAY_PKGTXNS in their "sendpackages" message. If a "pkgtxns" message is received from a peer with which this type of package relay was not negotiated, no response should be sent and the sender may be disconnected. + +====MSG_PKGTXNS==== + +# A new inv type (MSG_PKGTXNS == 0x6) is added, for use only in "notfound" messages pertaining to package transactions. + +# As a "notfound" type, it indicates that the sender is unable to send all the transactions requested in a prior "getpkgtxns" message. The hash used is equal to the combined hash of the wtxids in the getpkgtxns request. + +# This inv type should only be used in "notfound" messages, i.e. "inv(MSG_PKGTXNS)" and "getdata(MSG_PKGTXNS)" must never be sent. Upon receipt of an "inv" or "getdata" message of this type, the sender may be disconnected. + +# This inv type must only be used if both peers set PKG_RELAY_PKGTXNS in their "sendpackages" message. + +==Compatibility== + +Older clients remain fully compatible and interoperable after this change. Clients implementing this +protocol will only attempt to send and request packages if agreed upon during the version handshake. +'''Will package relay cause non-package relay nodes to waste bandwidth on low-feerate transactions?''' +If a node supports package relay, it may accept low-feerate transactions (e.g. paying zero fees) +into its mempool, but non-package relay nodes would most likely reject them. To mitigate bandwidth +waste, a package relay node should not announce descendants of below-fee-filter transactions to +non-package relay peers. + +'''Is Package Erlay possible?''' +A client using BIP330 reconciliation-based transaction relay (Erlay) is able to use package relay +without interference. After reconciliation, any transaction with unconfirmed ancestors may have +those ancestors resolved using ancestor package relay. +[[File:./bip-0331/package_erlay.png|700px]] + + +==Extensibility== + +This protocol can be extended to include more types of package information in the future, while +continuing to use the same messages for transaction data download. One would define a new package +information message (named "*pkginfo" in the diagram below), allocate its corresponding inv +type (named "*PKGINFO" in the diagram below), and specify how to signal support using the +versions field of "sendpackages" (an additional bit named "PKG_RELAY_*" in the diagram below). A +future version of package relay may allow a sender-initiated dialogue by specifying that the package +info type inv type can be used in an "inv" message. +
+[[File:./bip-0331/sender_init_future_version.png|700px]] + +==Implementation== + +Sample implementation for Bitcoin Core: https://github.com/bitcoin/bitcoin/pull/27742 + +A prerequisite for implementing a safe +package relay protocol is a mempool acceptance policy that safely validates packages of +transactions. +'''Package Mempool Acceptance Policy''' +Accepting packages from peers should not significantly increase a node's DoS attack surface; +processing packages should not permit waste or exhaustion of the node and network's resources. +Additionally, a sensible mempool acceptance policy should result in the most incentive-compatible +subset of the package in the mempool in order to avoid adding more pinning attacks or censorship +vectors. For example, It should not be assumed that packages are CPFPs. An ancestor package may +include a high-feerate parent and low-feerate child; the policy may choose to accept the parent but +not the child. If one or more transactions are policy-invalid, other transactions that are not +dependent upon them should still be considered. + + +==Acknowledgements== + +Thank you to Suhas Daftuar, John Newbery, Anthony Towns, Martin Zumsande, and others for input on the design. + +Thank you to Will Clark, Sergi Delgado, Fabian Jahr, John Newbery, Greg Sanders, Stéphan Vuylsteke, Pieter Wuille, and others for input on this document. + +Much of this work is inspired by ideas and code by Suhas Daftuar and Antoine Riard. +'''Prior Work on Package Relay''' +* [https://gist.github.com/sdaftuar/8756699bfcad4d3806ba9f3396d4e66a Strawman Proposal] +* [https://github.com/bitcoin/bitcoin/issues/14895 Package relay design questions] +* [https://github.com/bitcoin/bitcoin/pull/16401 Add package acceptance logic to mempool] +* [https://github.com/bitcoin/bitcoin/pull/19621 [RFC] Package-relay: sender-initiated] + + +==References and Rationale== + + + diff --git a/bip-0331/no_package_info.png b/bip-0331/no_package_info.png new file mode 100644 index 0000000000000000000000000000000000000000..54b20f97dde2883b82e2361a888d4e8facb45e42 GIT binary patch literal 34994 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 literal 0 HcmV?d00001 diff --git a/bip-0331/orphan_handling_flow.png b/bip-0331/orphan_handling_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..4588de84b1ffd05d90dda042f7c08201718003d7 GIT binary patch literal 65204 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 RMo9Rzc!8G2y?I*>{4a=Wa`FHG literal 0 HcmV?d00001 diff --git a/bip-0331/package_cpfp_flow.png b/bip-0331/package_cpfp_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..6b48c5da65be1ba4fd465b801b1a31b8e614b083 GIT binary patch literal 57377 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�TfQUtYf4_^!B^xH$1s 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 A*#H0l literal 0 HcmV?d00001 diff --git a/bip-0331/package_info_only.png b/bip-0331/package_info_only.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd02726064c9481ee53723039319124ff49fdd6 GIT binary patch literal 45150 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%0A(3NVW~}ceMaXZ5HN5@0 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 XA~c2Aa4IO92>fZN>Z%mqv=040N2XRQ literal 0 HcmV?d00001 diff --git a/bip-0331/sender_init_future_version.png b/bip-0331/sender_init_future_version.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a21050ecb880e4291de1807b722a84f7f8f98e GIT binary patch literal 99293 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

U&L2sxXDrPb;>LQOo|3pBokjH#WH2 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 z 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 literal 0 HcmV?d00001 diff --git a/bip-0331/version_negotiation.png b/bip-0331/version_negotiation.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2f48cb60fc52a93671762eb1e243d8cc9abdde GIT binary patch literal 50918 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 literal 0 HcmV?d00001 From 7be25f9fb20631c8c62d268c7f25ebe564a7a8e6 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 19:06:23 -0400 Subject: [PATCH 084/101] ci: Fetch depth 2 for diffchecks --- .github/workflows/github-action-checks.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/github-action-checks.yml b/.github/workflows/github-action-checks.yml index bfc014ba..0b723e1b 100644 --- a/.github/workflows/github-action-checks.yml +++ b/.github/workflows/github-action-checks.yml @@ -16,4 +16,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + with: + fetch-depth: 2 - run: scripts/diffcheck.sh From eb9007c8690436ea4a60189ab32e36686007e32c Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 19:13:48 -0400 Subject: [PATCH 085/101] diffchecks.sh: Build table first --- scripts/diffcheck.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index 4e4c4592..3d8a9e55 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -1,5 +1,6 @@ #!/bin/bash +scripts/buildtable.pl >/tmp/table.mediawiki 2> /dev/null diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/after.diff || true if git checkout HEAD^ && scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null; then diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/before.diff || true From dd88f24eebe7a42c285fd4d71ad32f6bf763f754 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 24 Apr 2024 23:20:48 +0000 Subject: [PATCH 086/101] Fix README --- README.mediawiki | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.mediawiki b/README.mediawiki index b5ae7bba..41a93476 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -237,7 +237,7 @@ Those proposing changes should consider that ultimately consent may rest with th | Marek Palatinus, Pavol Rusnak | Standard | Final -|- style="background-color: #ffffcf" +|- style="background-color: #cfffcf" | [[bip-0044.mediawiki|44]] | Applications | Multi-Account Hierarchy for Deterministic Wallets @@ -251,13 +251,13 @@ Those proposing changes should consider that ultimately consent may rest with th | Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia | Standard | Proposed -|- +|- style="background-color: #cfffcf" | [[bip-0047.mediawiki|47]] | Applications | Reusable Payment Codes for Hierarchical Deterministic Wallets | Justus Ranvier | Informational -| Draft +| Final |- style="background-color: #ffffcf" | [[bip-0048.mediawiki|48]] | Applications From fd5d424f551bf740f6f651b0158667d1fd052193 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 16:27:24 -0400 Subject: [PATCH 087/101] 39: Remove other implementation sections --- bip-0039.mediawiki | 69 ---------------------------------------------- 1 file changed, 69 deletions(-) diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki index 1c4845e5..51fe33d8 100644 --- a/bip-0039.mediawiki +++ b/bip-0039.mediawiki @@ -138,72 +138,3 @@ Also see https://github.com/bip32JP/bip32JP.github.io/blob/master/test_JP_BIP39. Reference implementation including wordlists is available from http://github.com/trezor/python-mnemonic - -==Other Implementations== - -Go: -* https://github.com/tyler-smith/go-bip39 - -Python: -* https://github.com/meherett/python-hdwallet - -Elixir: -* https://github.com/aerosol/mnemo - -Objective-C: -* https://github.com/nybex/NYMnemonic - -Haskell: -* https://github.com/haskoin/haskoin - -.NET (Standard): -* https://www.nuget.org/packages/dotnetstandard-bip39/ - -.NET C# (PCL): -* https://github.com/Thashiznets/BIP39.NET - -.NET C# (PCL): -* https://github.com/NicolasDorier/NBitcoin - -JavaScript: -* https://github.com/bitpay/bitcore/tree/master/packages/bitcore-mnemonic -* https://github.com/bitcoinjs/bip39 (used by [[https://github.com/blockchain/My-Wallet-V3/blob/v3.8.0/src/hd-wallet.js#L121-L146|blockchain.info]]) -* https://github.com/dashhive/DashPhrase.js -* https://github.com/hujiulong/web-bip39 - -TypeScript: -* https://github.com/bitauth/libauth - -Java: -* https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/crypto/MnemonicCode.java - -Ruby: -* https://github.com/sreekanthgs/bip_mnemonic - -Rust: -* https://github.com/maciejhirsz/tiny-bip39/ -* https://github.com/koushiro/bip0039-rs - -Smalltalk: -* https://github.com/eMaringolo/pharo-bip39mnemonic - -Swift: -* https://github.com/CikeQiu/CKMnemonic -* https://github.com/yuzushioh/WalletKit -* https://github.com/pengpengliu/BIP39 -* https://github.com/matter-labs/web3swift/blob/develop/Sources/web3swift/KeystoreManager/BIP39.swift -* https://github.com/zcash-hackworks/MnemonicSwift -* https://github.com/ShenghaiWang/BIP39 -* https://github.com/anquii/BIP39 - -C++: -* https://github.com/libbitcoin/libbitcoin-system/blob/master/include/bitcoin/system/wallet/mnemonic.hpp - -C (with Python/Java/Javascript bindings): -* https://github.com/ElementsProject/libwally-core - -Python: -* https://github.com/scgbckbone/btc-hd-wallet - -Dart: -* https://github.com/dart-bitcoin/bip39 From 448de3cafd1c52f2e4b72c608f518e7cd261ca9c Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Thu, 25 Apr 2024 10:23:28 -0400 Subject: [PATCH 088/101] 21: Remove other libraries from reference implementations --- bip-0021.mediawiki | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/bip-0021.mediawiki b/bip-0021.mediawiki index cdc37baa..9fa48232 100644 --- a/bip-0021.mediawiki +++ b/bip-0021.mediawiki @@ -120,11 +120,6 @@ Some future version that has variables which are (currently) not understood but Characters must be URI encoded properly. -== Reference Implementations == -=== Bitcoin clients === -* Bitcoin-Qt supports the old version of Bitcoin URIs (ie without the req- prefix), with Windows and KDE integration as of commit 70f55355e29c8e45b607e782c5d76609d23cc858. +== Reference Implementation == -=== Libraries === -* Javascript - https://github.com/bitcoinjs/bip21 -* Java - https://github.com/SandroMachado/BitcoinPaymentURI -* Swift - https://github.com/SandroMachado/BitcoinPaymentURISwift +Bitcoin-Qt supports the old version of Bitcoin URIs (ie without the req- prefix), with Windows and KDE integration as of commit 70f55355e29c8e45b607e782c5d76609d23cc858. From 7a104491862379e88662a39d1a2b613c907e503e Mon Sep 17 00:00:00 2001 From: Murch Date: Thu, 25 Apr 2024 14:10:10 -0400 Subject: [PATCH 089/101] Mention that BIP350 reduces scope of bech32 to v0 --- bip-0173.mediawiki | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bip-0173.mediawiki b/bip-0173.mediawiki index 1fdd8bed..7087fffa 100644 --- a/bip-0173.mediawiki +++ b/bip-0173.mediawiki @@ -11,6 +11,7 @@ Created: 2017-03-20 License: BSD-2-Clause Replaces: 142 + Superseded-By: 350 ==Introduction== @@ -403,3 +404,12 @@ separator). This document is inspired by the [https://rusty.ozlabs.org/?p=578 address proposal] by Rusty Russell, the [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-February/004402.html base32] proposal by Mark Friedenbach, and had input from Luke Dashjr, Johnson Lau, Eric Lombrozo, Peter Todd, and various other reviewers. + +==Disclosures (added 2024)== + +Due to an oversight in the design of bech32, this checksum scheme is not always +robust against +[[https://gist.github.com/sipa/a9845b37c1b298a7301c33a04090b2eb|the insertion +and deletion of fewer than 5 consecutive characters]]. Due to this weakness, +[[bip-0350.mediawiki|BIP-350]] proposes using the scheme described in this BIP +only for Native Segwit v0 outputs. From 50e750a882f525cc9a297b75ca35682f3deb1f95 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 8 Jan 2024 13:08:46 -0500 Subject: [PATCH 090/101] Clarify exactly which scripts are witness outputs --- bip-0141.mediawiki | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index eb2fc74a..117ca59d 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -83,19 +83,23 @@ If all transactions in a block do not have witness data, the commitment is optio === Witness program === -A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a select subset of opcodes (OP_0,OP_1,OP_2,...,OP_16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". +A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a 1-byte push opcode (one of OP_0,OP_1,OP_2,...,OP_16) followed by a direct data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program". +In more detail, this means a scriptPubKey or redeemScript which consists of (in order): +* First, byte 0x00 (OP_0) or any byte between 0x51 (OP_1) and 0x60 (OP_16) inclusive (the version byte). +* Then, a byte ''L'' between 0x02 (push of 2 bytes) and 0x28 (push of 40 bytes) inclusive. +* Finally, ''L'' arbitrary bytes (the witness program). There are two cases in which witness validation logic are triggered. Each case determines the location of the witness version byte and program, as well as the form of the scriptSig: # Triggered by a scriptPubKey that is exactly a push of a version byte, plus a push of a witness program. The scriptSig must be exactly empty or validation fails. (''"native witness program"'') # Triggered when a scriptPubKey is a P2SH script, and the BIP16 redeemScript pushed in the scriptSig is exactly a push of a version byte plus a push of a witness program. The scriptSig must be exactly a push of the BIP16 redeemScript or validation fails. (''"P2SH witness program"'') -If the version byte is 0, and the witness program is 20 bytes: +If the version byte is 0, and the witness program is 20 bytes (''L = 20''): * It is interpreted as a pay-to-witness-public-key-hash (P2WPKH) program. * The witness must consist of exactly 2 items (≤ 520 bytes each). The first one a signature, and the second one a public key. * The HASH160 of the public key must match the 20-byte witness program. * After normal script evaluation, the signature is verified against the public key with CHECKSIG operation. The verification must result in a single TRUE on the stack. -If the version byte is 0, and the witness program is 32 bytes: +If the version byte is 0, and the witness program is 32 bytes (''L = 32''): * It is interpreted as a pay-to-witness-script-hash (P2WSH) program. * The witness must consist of an input stack to feed to the script, followed by a serialized script (witnessScript). * The witnessScript (≤ 10,000 bytes) is popped off the initial witness stack. SHA256 of the witnessScript must match the 32-byte witness program. From 2d9e431fbe654640b55bca3bf8c4b17462890109 Mon Sep 17 00:00:00 2001 From: Varunram Ganesh Date: Tue, 30 Apr 2024 14:51:39 -0400 Subject: [PATCH 091/101] [trivial]: Correct spellings across bips (#675) Co-authored-by: Mark "Murch" Erhardt --- bip-0035.mediawiki | 2 +- bip-0080.mediawiki | 2 +- bip-0081.mediawiki | 2 +- bip-0174.mediawiki | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bip-0035.mediawiki b/bip-0035.mediawiki index 64edaf5d..eccd3815 100644 --- a/bip-0035.mediawiki +++ b/bip-0035.mediawiki @@ -16,7 +16,7 @@ Make a network node's transaction memory pool accessible via a new "mempool" mes ==Motivation== -Several use cases make it desireable to expose a network node's transaction memory pool: +Several use cases make it desirable to expose a network node's transaction memory pool: # SPV clients, wishing to obtain zero-confirmation transactions sent or received. # Miners, to avoid missing lucrative fees, downloading existing network transactions after a restart. # Remote network diagnostics. diff --git a/bip-0080.mediawiki b/bip-0080.mediawiki index 0cade199..f367c71a 100644 --- a/bip-0080.mediawiki +++ b/bip-0080.mediawiki @@ -35,7 +35,7 @@ Each level has a special meaning, described in the chapters below. ===Purpose=== -Purpose is a constant set following the BIP43 recommendation to: the ASCII value of "80" with the most signifigant bit set to indicate hardened derivation (0x80000050). It indicates that the subtree of this node is used according to this specification. +Purpose is a constant set following the BIP43 recommendation to: the ASCII value of "80" with the most significant bit set to indicate hardened derivation (0x80000050). It indicates that the subtree of this node is used according to this specification. Hardened derivation is used at this level. diff --git a/bip-0081.mediawiki b/bip-0081.mediawiki index 96ac8d1b..923917c5 100644 --- a/bip-0081.mediawiki +++ b/bip-0081.mediawiki @@ -35,7 +35,7 @@ Each level has a special meaning, described in the chapters below. ===Purpose=== -Purpose is a constant set following the BIP43 recommendation to: the ASCII value of "81" with the most signifigant bit set to indicate hardened derivation (0x80000051). It indicates that the subtree of this node is used according to this specification. +Purpose is a constant set following the BIP43 recommendation to: the ASCII value of "81" with the most significant bit set to indicate hardened derivation (0x80000051). It indicates that the subtree of this node is used according to this specification. Hardened derivation is used at this level. diff --git a/bip-0174.mediawiki b/bip-0174.mediawiki index 5e70a110..c192f19e 100644 --- a/bip-0174.mediawiki +++ b/bip-0174.mediawiki @@ -800,7 +800,7 @@ A MIME type name will be added to this document once one has been registered. ==Extensibility== The Partially Signed Transaction format can be extended in the future by adding -new types for key-value pairs. Backwards compatibilty will still be maintained as those new +new types for key-value pairs. Backwards compatibility will still be maintained as those new types will be ignored and passed-through by signers which do not know about them. ===Version Numbers=== From f61885edcf5e63ac205b1ca5f08173f1336bff74 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Wed, 1 May 2024 06:54:05 +1000 Subject: [PATCH 092/101] docs: fix spelling (#1117) Co-authored-by: Mark "Murch" Erhardt --- bip-0014.mediawiki | 2 +- bip-0015.mediawiki | 4 ++-- bip-0061.mediawiki | 2 +- bip-0067.mediawiki | 6 +++--- bip-0078.mediawiki | 14 +++++++------- bip-0083.mediawiki | 2 +- bip-0099.mediawiki | 2 +- bip-0109.mediawiki | 2 +- bip-0126.mediawiki | 16 ++++++++-------- bip-0127.mediawiki | 2 +- bip-0132.mediawiki | 2 +- bip-0137.mediawiki | 2 +- bip-0143.mediawiki | 4 ++-- bip-0151.mediawiki | 2 +- bip-0158/gentestvectors.go | 2 +- bip-0174.mediawiki | 2 +- bip-0310.mediawiki | 2 +- bip-0330/minisketch.py | 2 +- bip-0370.mediawiki | 2 +- 19 files changed, 36 insertions(+), 36 deletions(-) diff --git a/bip-0014.mediawiki b/bip-0014.mediawiki index abd575ce..fded4203 100644 --- a/bip-0014.mediawiki +++ b/bip-0014.mediawiki @@ -28,7 +28,7 @@ Version bumping can also introduce incompatibilities and fracture the network. I By using a protocol version, we set all implementations on the network to a common standard. Everybody is able to agree within their confines what is protocol and what is implementation-dependent. A user agent string is offered as a 'vanity-plate' for clients to distinguish themselves in the network. -Separation of the network protocol from the implemention, and forming development of said protocol by means of a mutual consensus among participants, has the democratic disadvantage when agreement is hard to reach on contentious issues. To mitigate this issue, strong communication channels and fast release schedules are needed, and are outside the scope of this document (concerning a process-BIP type). +Separation of the network protocol from the implementation, and forming development of said protocol by means of a mutual consensus among participants, has the democratic disadvantage when agreement is hard to reach on contentious issues. To mitigate this issue, strong communication channels and fast release schedules are needed, and are outside the scope of this document (concerning a process-BIP type). User agents provide extra tracking information that is useful for keeping tabs on network data such as client implementations used or common architectures/operating-systems. In the rare case they may even provide an emergency method of shunning faulty clients that threaten network health- although this is strongly unrecommended and extremely bad form. The user agent does not provide a method for clients to work around and behave differently to different implementations, as this will lead to protocol fracturing. diff --git a/bip-0015.mediawiki b/bip-0015.mediawiki index a6e4426a..52a698f2 100644 --- a/bip-0015.mediawiki +++ b/bip-0015.mediawiki @@ -348,7 +348,7 @@ By using DNS lookups, the MITM problem with IP transactions could be mitigated b === Namecoin ID === -This proposal uses the Namecoin blockchain to associate an alias with a bitcoin address. Bitcoin queries a namecoin node. This retreives the structured data containing the bitcoin address(es) associated with this alias. +This proposal uses the Namecoin blockchain to associate an alias with a bitcoin address. Bitcoin queries a namecoin node. This retrieves the structured data containing the bitcoin address(es) associated with this alias. Using a decentralised domain name system like Namecoin, means no external server or entity needs to be trusted unlike the other proposals listed here. This indicates a system with the advantage of having a high availability and ease of entry (no restrictions for users to create aliases). @@ -401,4 +401,4 @@ Any text can be put into the brackets, allowing merchants to adapt it to all the New features can be added later to support uncovered cases. -See the specification of [http://dot-bit.org/Namespace:Identity Namecoin ID] for more informations. +See the specification of [http://dot-bit.org/Namespace:Identity Namecoin ID] for more information. diff --git a/bip-0061.mediawiki b/bip-0061.mediawiki index b08739dd..384c0ff7 100644 --- a/bip-0061.mediawiki +++ b/bip-0061.mediawiki @@ -57,7 +57,7 @@ Every reject message begins with the following fields. Some messages append extr |} The human-readable string is intended only for debugging purposes; in particular, different implementations may -use different strings. The string should not be shown to users or used for anthing besides diagnosing +use different strings. The string should not be shown to users or used for anything besides diagnosing interoperability problems. The following reject code categories are used; in the descriptions below, "server" is the peer generating diff --git a/bip-0067.mediawiki b/bip-0067.mediawiki index 793039d2..a31cc3d0 100644 --- a/bip-0067.mediawiki +++ b/bip-0067.mediawiki @@ -53,10 +53,10 @@ Hash the redeem script according to BIP-0016 to get the P2SH address. 3Q4sF6tv9wsdqu2NtARzNCpQgwifm2rAba ==Compatibility== -* Uncompressed keys are incompatible with this specificiation. A compatible implementation should not automatically compress keys. Receiving an uncompressed key from a multisig participant should be interpreted as a sign that the user has an incompatible implementation. -* P2SH addressses do not reveal information about the script that is receiving the funds. For this reason it is not technically possible to enforce this BIP as a rule on the network. Also, it would cause a hard fork. +* Uncompressed keys are incompatible with this specification. A compatible implementation should not automatically compress keys. Receiving an uncompressed key from a multisig participant should be interpreted as a sign that the user has an incompatible implementation. +* P2SH addresses do not reveal information about the script that is receiving the funds. For this reason it is not technically possible to enforce this BIP as a rule on the network. Also, it would cause a hard fork. * Implementations that do not conform with this BIP will have compatibility issues with strictly-compliant wallets. -* Implementations which do adopt this standard will be cross-compatible when choosing multisig addressses. +* Implementations which do adopt this standard will be cross-compatible when choosing multisig addresses. * If a group of users were not entirely compliant, there is the possibility that a participant will derive an address that the others will not recognize as part of the common multisig account. ==Test vectors== diff --git a/bip-0078.mediawiki b/bip-0078.mediawiki index 1893f0e7..35287256 100644 --- a/bip-0078.mediawiki +++ b/bip-0078.mediawiki @@ -143,7 +143,7 @@ If the receiver does not support the version of the sender, they should send an } -* additionalfeeoutputindex=, if the sender is willing to pay for increased fee, this indicate output can have its value substracted to pay for it. +* additionalfeeoutputindex=, if the sender is willing to pay for increased fee, this indicate output can have its value subtracted to pay for it. If the additionalfeeoutputindex is out of bounds or pointing to the payment output meant for the receiver, the receiver should ignore the parameter. See [[#fee-output|fee output]] for more information. @@ -198,7 +198,7 @@ It is advised to hard code the description of the well known error codes into th ===Fee output=== In some situation, the sender might want to pay some additional fee in the payjoin proposal. -If such is the case, the sender must use both [[#optional-params|optional parameters]] additionalfeeoutputindex= and maxadditionalfeecontribution= to indicate which output and how much the receiver can substract fee. +If such is the case, the sender must use both [[#optional-params|optional parameters]] additionalfeeoutputindex= and maxadditionalfeecontribution= to indicate which output and how much the receiver can subtract fee. There is several cases where a fee output is useful: @@ -273,7 +273,7 @@ The sender should check the payjoin proposal before signing it to prevent a mali * For each outputs in the proposal: ** Verify that no keypaths is in the PSBT output ** If the output is the [[#fee-output|fee output]]: -*** The amount that was substracted from the output's value is less than or equal to maxadditionalfeecontribution. Let's call this amount actual contribution. +*** The amount that was subtracted from the output's value is less than or equal to maxadditionalfeecontribution. Let's call this amount actual contribution. *** Make sure the actual contribution is only paying fee: The actual contribution is less than or equals to the difference of absolute fee between the payjoin proposal and the original PSBT. *** Make sure the actual contribution is only paying for fee incurred by additional inputs: actual contribution is less than or equals to originalPSBTFeeRate * vsize(sender_input_type) * (count(payjoin_proposal_inputs) - count(original_psbt_inputs)). (see [[#fee-output|Fee output]] section) ** If the output is the payment output and payment output substitution is allowed. @@ -344,7 +344,7 @@ On top of this the receiver can poison analysis by randomly faking a round amoun ===Payment output substitution=== -Unless disallowed by sender explicitely via `disableoutputsubstitution=true` or by the BIP21 url via query parameter the `pjos=0`, the receiver is free to decrease the amount, remove, or change the scriptPubKey output paying to himself. +Unless disallowed by sender explicitly via `disableoutputsubstitution=true` or by the BIP21 url via query parameter the `pjos=0`, the receiver is free to decrease the amount, remove, or change the scriptPubKey output paying to himself. Note that if payment output substitution is disallowed, the reveiver can still increase the amount of the output. (See [[#reference-impl|the reference implementation]]) For example, if the sender's scriptPubKey type is P2WPKH while the receiver's payment output in the original PSBT is P2SH, then the receiver can substitute the payment output to be P2WPKH to match the sender's scriptPubKey type. @@ -413,7 +413,7 @@ Here is pseudo code of a sender implementation. The signedPSBT represents a PSBT which has been fully signed, but not yet finalized. We then prepare originalPSBT from the signedPSBT via the CreateOriginalPSBT function and get back the proposal. -While we verify the proposal, we also import into it informations about our own inputs and outputs from the signedPSBT. +While we verify the proposal, we also import into it information about our own inputs and outputs from the signedPSBT. At the end of this RequestPayjoin, the proposal is verified and ready to be signed. We logged the different PSBT involved, and show the result in our [[#test-vectors|test vectors]]. @@ -557,7 +557,7 @@ public async Task RequestPayjoin( if (output.OriginalTxOut == feeOutput) { var actualContribution = feeOutput.Value - proposedPSBTOutput.Value; - // The amount that was substracted from the output's value is less than or equal to maxadditionalfeecontribution + // The amount that was subtracted from the output's value is less than or equal to maxadditionalfeecontribution if (actualContribution > optionalParameters.MaxAdditionalFeeContribution) throw new PayjoinSenderException("The actual contribution is more than maxadditionalfeecontribution"); // Make sure the actual contribution is only paying fee @@ -642,7 +642,7 @@ A successful exchange with: {| class="wikitable" !InputScriptType -!Orginal PSBT Fee rate +!Original PSBT Fee rate !maxadditionalfeecontribution !additionalfeeoutputindex |- diff --git a/bip-0083.mediawiki b/bip-0083.mediawiki index d7bbe8ea..c6690015 100644 --- a/bip-0083.mediawiki +++ b/bip-0083.mediawiki @@ -53,7 +53,7 @@ p //' n instead of p / 0' / n Rather than specifying upfront which path is to be used for a specific purpose (i.e. external invoicing vs. internal change), different applications can specify arbitrary parent nodes and derivation paths. This allows for nesting of sublevels to arbitrary depth with application-specified semantics. Rather than trying to specify use cases upfront, we leave the design completely open-ended. Different applications can exchange these mappings for interoperability. Eventually, if certain mappings become popular, application user interfaces can provide convenient shortcuts or use them as defaults. -Note that BIP32 suggests reserving child 0 for the derivation of signing keys rather than sublevels. It is not really necessary to reserve signing key parents, however, as each key's parent's path can be explicitly stated. But unless we reserve a child for sublevel derivation, we lose the ability to nest deeper levels into the hierarchy. While we could reserve any arbitrary index for nesting sublevels, reserving child 0 seems simplest to implement, leaving all indices > 0 for contiguously indexed signing keys. We could also use MAX_INDEX (231 - 1) for this purpose. However, we believe doing so introduces more ideosyncracies into the semantics and will present a problem if we ever decide to extend the scheme to use indices larger than 31 bits. +Note that BIP32 suggests reserving child 0 for the derivation of signing keys rather than sublevels. It is not really necessary to reserve signing key parents, however, as each key's parent's path can be explicitly stated. But unless we reserve a child for sublevel derivation, we lose the ability to nest deeper levels into the hierarchy. While we could reserve any arbitrary index for nesting sublevels, reserving child 0 seems simplest to implement, leaving all indices > 0 for contiguously indexed signing keys. We could also use MAX_INDEX (231 - 1) for this purpose. However, we believe doing so introduces more idiosyncrasies into the semantics and will present a problem if we ever decide to extend the scheme to use indices larger than 31 bits. ==Use Cases== diff --git a/bip-0099.mediawiki b/bip-0099.mediawiki index 8882e003..156eec02 100644 --- a/bip-0099.mediawiki +++ b/bip-0099.mediawiki @@ -56,7 +56,7 @@ development, diversity, etc) to fork the Bitcoin Core software and it's good that there's many alternative implementations of the protocol (forks of Bitcoin Core or written from scratch). -But sometimes a bug in the reimplementaion of the consensus +But sometimes a bug in the reimplementation of the consensus validation rules can prevent users of alternative implementation from following the longest (most work) valid chain. This can result in those users losing coins or being defrauded, making reimplementations diff --git a/bip-0109.mediawiki b/bip-0109.mediawiki index 69b265b1..4822d4a2 100644 --- a/bip-0109.mediawiki +++ b/bip-0109.mediawiki @@ -37,7 +37,7 @@ In particular: * The coinbase scriptSig is not counted * Signature operations in un-executed branches of a Script are not counted -* OP_CHECKMULTISIG evaluations are counted accurately; if the signature for a 1-of-20 OP_CHECKMULTISIG is satisified by the public key nearest the top of the execution stack, it is counted as one signature operation. If it is satisfied by the public key nearest the bottom of the execution stack, it is counted as twenty signature operations. +* OP_CHECKMULTISIG evaluations are counted accurately; if the signature for a 1-of-20 OP_CHECKMULTISIG is satisfied by the public key nearest the top of the execution stack, it is counted as one signature operation. If it is satisfied by the public key nearest the bottom of the execution stack, it is counted as twenty signature operations. * Signature operations involving invalidly encoded signatures or public keys are not counted towards the limit === Add a new limit of 1,300,000,000 bytes hashed to compute transaction signatures per block === diff --git a/bip-0126.mediawiki b/bip-0126.mediawiki index 4cfa2929..2c04eb45 100644 --- a/bip-0126.mediawiki +++ b/bip-0126.mediawiki @@ -14,7 +14,7 @@ When a Bitcoin transaction contains inputs that reference previous transaction outputs sent to different Bitcoin addresses, personally identifiable information of the user will leak into the blockchain in an uncontrolled manner. While undesirable, these transactions are frequently unavoidable due to the natural fragmentation of wallet balances over time. -This document proposes a set of best practice guidelines which minimize the uncontrolled disclosure of personally identifiable information by defining standard forms for transactions containing heterogenous input scripts. +This document proposes a set of best practice guidelines which minimize the uncontrolled disclosure of personally identifiable information by defining standard forms for transactions containing heterogeneous input scripts. ==Copyright== @@ -23,8 +23,8 @@ This BIP is in the public domain. ==Definitions== * '''Heterogenous input script transaction (HIT)''': A transaction containing multiple inputs where the scripts of the previous transaction outputs being consumed are not identical (e.g. a transaction spending outputs which were sent to more than one Bitcoin address) -* '''Unavoidable heterogenous input script transaction''': A HIT created as a result of a user’s desire to create a new output with a value larger than the value of his wallet's largest existing unspent output -* '''Intentional heterogenous input script transaction''': A HIT created as part of a user protection protocol for reducing uncontrolled disclosure of personally-identifying information (PII) +* '''Unavoidable heterogeneous input script transaction''': A HIT created as a result of a user’s desire to create a new output with a value larger than the value of his wallet's largest existing unspent output +* '''Intentional heterogeneous input script transaction''': A HIT created as part of a user protection protocol for reducing uncontrolled disclosure of personally-identifying information (PII) Throughout this procedure, when input scripts are evaluated for uniqueness, "input script" should be interpreted to mean, "the script of the previous output referenced by an input to a transaction". @@ -33,10 +33,10 @@ Throughout this procedure, when input scripts are evaluated for uniqueness, "inp The recommendations in this document are designed to accomplish three goals: # Maximise the effectiveness of user-protecting protocols: Users may find that protection protocols are counterproductive if such transactions have a distinctive fingerprint which renders them ineffective. -# Minimise the adverse consequences of unavoidable heterogenous input transactions: If unavoidable HITs are indistinguishable from intentional HITs, a user creating an unavoidable HIT benefits from ambiguity with respect to graph analysis. +# Minimise the adverse consequences of unavoidable heterogeneous input transactions: If unavoidable HITs are indistinguishable from intentional HITs, a user creating an unavoidable HIT benefits from ambiguity with respect to graph analysis. # Limiting the effect on UTXO set growth: To date, non-standardized intentional HITs tend to increase the network's UTXO set with each transaction; this standard attempts to minimize this effect by standardizing unavoidable and intentional HITs to limit UTXO set growth. -In order to achieve these goals, this specification proposes a set of best practices for heterogenous input script transaction creation. These practices accommodate all applicable requirements of both intentional and unavoidable HITs while maximising the effectiveness of both in terms of preventing uncontrolled disclosure of PII. +In order to achieve these goals, this specification proposes a set of best practices for heterogeneous input script transaction creation. These practices accommodate all applicable requirements of both intentional and unavoidable HITs while maximising the effectiveness of both in terms of preventing uncontrolled disclosure of PII. In order to achieve this, two forms of HIT are proposed: Standard form and alternate form. @@ -44,7 +44,7 @@ In order to achieve this, two forms of HIT are proposed: Standard form and alter Applications which wish to comply both with this procedure and BIP69 should apply this procedure prior to applying BIP69. -==Standard form heterogenous input script transaction== +==Standard form heterogeneous input script transaction== ===Rules=== @@ -63,7 +63,7 @@ The requirement that all output scripts are unique prevents address reuse. Restr The requirement for at least one pair of outputs in an intentional HIT to be of equal value results in optimal behavior, and causes intentional HITs to resemble unavoidable HITs. -==Alternate form heterogenous input script transactions== +==Alternate form heterogeneous input script transactions== The formation of a standard form HIT is not possible in the following cases: @@ -100,7 +100,7 @@ An HIT formed via the preceding procedure will adhere to the following condition ## The sum of the inputs in the set minus the value of the change output is equal to the standard value with a tolerance equal to the transaction fee. ## Change outputs with a value of zero (virtual change outputs) are permitted. The are defined for the purpose of testing whether or not a HIT adheres to this specification but are not present in the version of the transaction which is broadcast to the network. -==Non-compliant heterogenous input script transactions== +==Non-compliant heterogeneous input script transactions== If a user wishes to create an output that is larger than half the total size of their spendable outputs, or if their inputs are not distributed in a manner in which the alternate form procedure can be completed, then the user can not create a transaction which is compliant with this procedure. diff --git a/bip-0127.mediawiki b/bip-0127.mediawiki index 44a90d79..87071d8e 100644 --- a/bip-0127.mediawiki +++ b/bip-0127.mediawiki @@ -124,7 +124,7 @@ message FinalProof { // Bitcoin transaction. bytes proof_tx = 1; - // The metadata of the ouputs used in the proof transaction. + // The metadata of the outputs used in the proof transaction. repeated OutputMeta output_metadata = 2; } diff --git a/bip-0132.mediawiki b/bip-0132.mediawiki index e7aed292..173c9198 100644 --- a/bip-0132.mediawiki +++ b/bip-0132.mediawiki @@ -48,7 +48,7 @@ The author doesn't believe this is a problem because a BIP cannot be forced on c == Process == -* '''Submit for Comments.''' The first BIP champion named in the proposal can call a "submit for comments" at any time by posting to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Dev Mailing List] mailling with the BIP number and a statement that the champion intends to immediately submit the BIP for comments. +* '''Submit for Comments.''' The first BIP champion named in the proposal can call a "submit for comments" at any time by posting to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Dev Mailing List] mailing with the BIP number and a statement that the champion intends to immediately submit the BIP for comments. ** The BIP must have been assigned BIP-number (i.e. been approved by the BIP editor) to be submitted for comments. * '''Comments.''' ** After a BIP has been submitted for comments, a two-week waiting period begins in which the community should transition from making suggestions about a proposal to publishing their opinions or concerns on the proposal. diff --git a/bip-0137.mediawiki b/bip-0137.mediawiki index 43addbab..575440b1 100644 --- a/bip-0137.mediawiki +++ b/bip-0137.mediawiki @@ -116,7 +116,7 @@ Since this format includes P2PKH keys, it is backwards compatible, but keep in m ==Implications== -Message signing is an important use case and potentially underused due to the fact that, up until now, there has not been a formal specification for how wallets can sign messages using Bitcoin private keys. Bitcoin wallets should be interoperable and use the same conventions for determing a signature's validity. This BIP can also be updated as new signature formats emerge. +Message signing is an important use case and potentially underused due to the fact that, up until now, there has not been a formal specification for how wallets can sign messages using Bitcoin private keys. Bitcoin wallets should be interoperable and use the same conventions for determining a signature's validity. This BIP can also be updated as new signature formats emerge. ==Acknowledgements== diff --git a/bip-0143.mediawiki b/bip-0143.mediawiki index ebf0d7c6..9935eaa2 100644 --- a/bip-0143.mediawiki +++ b/bip-0143.mediawiki @@ -39,12 +39,12 @@ A new transaction digest algorithm is defined, but only applicable to sigops in 9. nLocktime of the transaction (4-byte little endian) 10. sighash type of the signature (4-byte little endian) -Semantics of the original sighash types remain unchanged, except the followings: +Semantics of the original sighash types remain unchanged, except the following: # The way of serialization is changed; # All sighash types commit to the amount being spent by the signed input; # FindAndDelete of the signature is not applied to the scriptCode; # OP_CODESEPARATOR(s) after the last executed OP_CODESEPARATOR are not removed from the scriptCode (the last executed OP_CODESEPARATOR and any script before it are always removed); -# SINGLE does not commit to the input index. When ANYONECANPAY is not set, the semantics are unchanged since hashPrevouts and outpoint together implictly commit to the input index. When SINGLE is used with ANYONECANPAY, omission of the index commitment allows permutation of the input-output pairs, as long as each pair is located at an equivalent index. +# SINGLE does not commit to the input index. When ANYONECANPAY is not set, the semantics are unchanged since hashPrevouts and outpoint together implicitly commit to the input index. When SINGLE is used with ANYONECANPAY, omission of the index commitment allows permutation of the input-output pairs, as long as each pair is located at an equivalent index. The items 1, 4, 7, 9, 10 have the same meaning as the original algorithm. diff --git a/bip-0151.mediawiki b/bip-0151.mediawiki index 793c2441..8bc11978 100644 --- a/bip-0151.mediawiki +++ b/bip-0151.mediawiki @@ -85,7 +85,7 @@ a 64 bit nonce and a 64 bit counter into 64 bytes of output. This output is used Poly1305, also by Daniel Bernstein [4], is a one-time Carter-Wegman MAC that computes a 128 bit integrity tag given a message and a single-use 256 bit secret key. -The chacha20-poly1305@openssh.com specified and defined by openssh [5] combines these two primitives into an authenticated encryption mode. The construction used is based on that proposed for TLS by Adam Langley [6], but differs in the layout of data passed to the MAC and in the addition of encyption of the packet lengths. +The chacha20-poly1305@openssh.com specified and defined by openssh [5] combines these two primitives into an authenticated encryption mode. The construction used is based on that proposed for TLS by Adam Langley [6], but differs in the layout of data passed to the MAC and in the addition of encryption of the packet lengths. K_1 must be used to only encrypt the payload size of the encrypted message to avoid leaking information by revealing the message size. diff --git a/bip-0158/gentestvectors.go b/bip-0158/gentestvectors.go index 3435eb3c..e51b9842 100644 --- a/bip-0158/gentestvectors.go +++ b/bip-0158/gentestvectors.go @@ -207,7 +207,7 @@ func main() { prevOutputScripts, err := fetchPrevOutputScripts(client, block) if err != nil { - fmt.Println("Couldn't fetch prev output scipts: ", err) + fmt.Println("Couldn't fetch prev output scripts: ", err) return } diff --git a/bip-0174.mediawiki b/bip-0174.mediawiki index c192f19e..95a5573b 100644 --- a/bip-0174.mediawiki +++ b/bip-0174.mediawiki @@ -633,7 +633,7 @@ values are valid, then it does not matter which is chosen as either way the tran ===Proprietary Use Type=== For all global, per-input, and per-output maps, the type 0xFC is reserved for proprietary use. -The proprietary use type requires keys that follow the type with a compact size unsigned integer representing the length of the string identifer, followed by the string identifier, then a subtype, and finally any key data. +The proprietary use type requires keys that follow the type with a compact size unsigned integer representing the length of the string identifier, followed by the string identifier, then a subtype, and finally any key data. The identifier can be any variable length string that software can use to identify whether the particular data in the proprietary type can be used by it. It can also be the empty string although this is not recommended. diff --git a/bip-0310.mediawiki b/bip-0310.mediawiki index 257e92ad..6104015f 100644 --- a/bip-0310.mediawiki +++ b/bip-0310.mediawiki @@ -276,7 +276,7 @@ Miner provides additional text-based information. Currently, there is a similar protocol feature '''mining.capabilities''' that was intended for various protocol extensions. However, '''mining.configure''' is incompatible with this feature as it requires a server response confirming -all accepted/negotatied extensions. The reason why we made it incompatible is +all accepted/negotiated extensions. The reason why we made it incompatible is that '''mining.capabilities''' request has no associated response. diff --git a/bip-0330/minisketch.py b/bip-0330/minisketch.py index f64286fd..5e397793 100755 --- a/bip-0330/minisketch.py +++ b/bip-0330/minisketch.py @@ -120,7 +120,7 @@ def find_roots_inner(p, a): return [] elif len(p) == 2: return [p[0]] - # Otherwise, split p in left*right using paramater a_vals[0]. + # Otherwise, split p in left*right using parameter a_vals[0]. t = poly_monic(poly_trace(p, a)) left = poly_gcd(list(p), t) right = poly_divmod(list(left), p) diff --git a/bip-0370.mediawiki b/bip-0370.mediawiki index cd448cc0..98f18002 100644 --- a/bip-0370.mediawiki +++ b/bip-0370.mediawiki @@ -248,7 +248,7 @@ Before any input or output may be added, the constructor must check the PSBT_GLO Inputs may only be added if the Inputs Modifiable flag is True. Outputs may only be added if the Outputs Modifiable flag is True. -When an input or output is added, the corresponding PSBT_GLOBAL_INPUT_COUNT or PSBT_GLOBAL_OUTPUT_COUNT must be incremeted to reflect the number of inputs and outputs in the PSBT. +When an input or output is added, the corresponding PSBT_GLOBAL_INPUT_COUNT or PSBT_GLOBAL_OUTPUT_COUNT must be incremented to reflect the number of inputs and outputs in the PSBT. When an input is added, it must have PSBT_IN_PREVIOUS_TXID and PSBT_IN_OUTPUT_INDEX set. When an output is added, it must have PSBT_OUT_VALUE and PSBT_OUT_OUTPUT_SCRIPT set. If the input has a required timelock, Constructors must set the requisite timelock field. From 6fc75b1b2153df40f1ff8312d7086b69bfb091de Mon Sep 17 00:00:00 2001 From: Ali Sherief Date: Wed, 1 May 2024 13:44:03 +0000 Subject: [PATCH 093/101] [BIP322] remove empty message requirement for full (proof-of-funds) proofs (#1352) * add bip-notatether-signedmessage * minor heading correction * minor formatting correction * minor formatting correction * minor formatting correction * minor formatting correction * minor formatting correction * minor formatting correction * fix some consistency errors * Remove empty message for UTXO proofs * Delete bip-notatether-signedmessage.mediawiki --- bip-0322.mediawiki | 2 -- 1 file changed, 2 deletions(-) diff --git a/bip-0322.mediawiki b/bip-0322.mediawiki index 55a751f1..911d3c80 100644 --- a/bip-0322.mediawiki +++ b/bip-0322.mediawiki @@ -80,8 +80,6 @@ A full signature consists of the base64-encoding of the to_sign tra A signer may construct a proof of funds, demonstrating control of a set of UTXOs, by constructing a full signature as above, with the following modifications. -* message_challenge is unused and shall be set to OP_TRUE -* Similarly, message_signature is then empty. * All outputs that the signer wishes to demonstrate control of are included as additional inputs of to_sign, and their witness and scriptSig data should be set as though these outputs were actually being spent. Unlike an ordinary signature, validators of a proof of funds need access to the current UTXO set, to learn that the claimed inputs exist on the blockchain, and to learn their scriptPubKeys. From 98f000a6fb330ec8afa87bcb6ba0cad20c7552f2 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 19:11:06 -0400 Subject: [PATCH 094/101] diffchecks.sh: Make success clear and exit with failure on error --- scripts/diffcheck.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index 3d8a9e55..aa9f557c 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -9,6 +9,8 @@ if git checkout HEAD^ && scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null echo "$newdiff" exit 1 fi + echo "README table matches expected table from BIP files" else echo 'Cannot build previous commit table for comparison' + exit 1 fi From 94ca14f34eaa776411365eb87c1f5e32b453b8c2 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 19:14:34 -0400 Subject: [PATCH 095/101] ci: Use actions/checkout@v4 v3 is deprecated --- .github/workflows/github-action-checks.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/github-action-checks.yml b/.github/workflows/github-action-checks.yml index 0b723e1b..b18267e3 100644 --- a/.github/workflows/github-action-checks.yml +++ b/.github/workflows/github-action-checks.yml @@ -5,17 +5,17 @@ jobs: Link-Format-Checks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: scripts/link-format-chk.sh Build-Table-Checks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: scripts/buildtable.pl >/tmp/table.mediawiki || exit 1 Diff-Checks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 - run: scripts/diffcheck.sh From 09439bb6626305c0bf146069cf8ea467d05b87c5 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 24 Apr 2024 19:16:30 -0400 Subject: [PATCH 096/101] ci: Clarify that diffchecks fails until a number is assigned --- .github/workflows/github-action-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/github-action-checks.yml b/.github/workflows/github-action-checks.yml index b18267e3..8a7d2ac8 100644 --- a/.github/workflows/github-action-checks.yml +++ b/.github/workflows/github-action-checks.yml @@ -13,6 +13,7 @@ jobs: - uses: actions/checkout@v4 - run: scripts/buildtable.pl >/tmp/table.mediawiki || exit 1 Diff-Checks: + name: "Diff Checks (fails until number assignment)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 602cd676cd4ec95d1143aa6f2c39d661e95a2897 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 1 May 2024 17:02:36 -0400 Subject: [PATCH 097/101] buildtable.pl: Also check .md files (#1577) --- scripts/buildtable.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/buildtable.pl b/scripts/buildtable.pl index 292f1ee5..4923a9ed 100755 --- a/scripts/buildtable.pl +++ b/scripts/buildtable.pl @@ -96,6 +96,9 @@ my %emails; my $bipnum = 0; while (++$bipnum <= $topbip) { my $fn = sprintf "bip-%04d.mediawiki", $bipnum; + if (!-e $fn) { + $fn = sprintf "bip-%04d.md", $bipnum; + } -e $fn || next; open my $F, "<$fn"; while (<$F> !~ m[^(?:\xef\xbb\xbf)?

$]) {

From e155b58f1370dd90f0b2020862dff7dd43d891f2 Mon Sep 17 00:00:00 2001
From: Ava Chow 
Date: Wed, 1 May 2024 17:59:53 -0400
Subject: [PATCH 098/101] 197: Fix incorrectly formatted links

---
 bip-0197.mediawiki | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bip-0197.mediawiki b/bip-0197.mediawiki
index 427ff220..2cac042c 100644
--- a/bip-0197.mediawiki
+++ b/bip-0197.mediawiki
@@ -79,7 +79,7 @@ The Seizable Collateral script takes the following form:
 
 ==Compatibility==
 
-BIP 197 is compatible with [ERC 1850](https://github.com/ethereum/EIPs/pull/1850) for [atomic loans](https://arxiv.org/pdf/1901.05117.pdf) with Ethereum. Can be extended in the future to be compatible with other HTLC and smart contract compatible chains.
+BIP 197 is compatible with [https://github.com/ethereum/EIPs/pull/1850 ERC 1850] for [https://arxiv.org/pdf/1901.05117.pdf atomic loans] with Ethereum. Can be extended in the future to be compatible with other HTLC and smart contract compatible chains.
 
 ==Motivation==
 

From 3bd457c595a9a24ce9fedb38f0df2df659eb9974 Mon Sep 17 00:00:00 2001
From: Ava Chow 
Date: Wed, 1 May 2024 18:00:38 -0400
Subject: [PATCH 099/101] 310: Fix incorrectly formatted link

---
 bip-0310.mediawiki | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bip-0310.mediawiki b/bip-0310.mediawiki
index 6104015f..34522bea 100644
--- a/bip-0310.mediawiki
+++ b/bip-0310.mediawiki
@@ -190,7 +190,7 @@ send the mask, in this case a default full mask is used.
 
 * '''"version-rolling.mask"''' (REQUIRED, ''TMask'')
 ::- Bits set to 1 are allowed to be changed by the miner. If a miner changes bits with mask value 0, the server will reject the submit.
-::- The server SHOULD return the largest mask possible (as many bits set to 1 as possible). This can be useful in a mining proxy setup when a proxy needs to negotiate the best mask for its future clients. There is a [Draft BIP](https://github.com/bitcoin/bips/pull/661/files) describing available nVersion bits. The server SHOULD pick a mask that preferably covers all bits specified in the BIP.
+::- The server SHOULD return the largest mask possible (as many bits set to 1 as possible). This can be useful in a mining proxy setup when a proxy needs to negotiate the best mask for its future clients. There is a [https://github.com/bitcoin/bips/pull/661/files Draft BIP] describing available nVersion bits. The server SHOULD pick a mask that preferably covers all bits specified in the BIP.
 
 * '''"version-rolling.min-bit-count"''' (REQUIRED, ''TMask'')
 ::- The miner also provides a minimum number of bits that it needs for efficient version rolling in hardware. Note that this parameter provides important diagnostic information to the pool server. If the requested bit count exceeds the limit of the pool server, the miner always has the chance to operate in a degraded mode without using full hashing power. The pool server SHOULD NOT terminate miner connection if this rare mismatch case occurs.

From 3a2031380d55217eb19871f9e954131837ec205c Mon Sep 17 00:00:00 2001
From: Ava Chow 
Date: Wed, 1 May 2024 18:00:54 -0400
Subject: [PATCH 100/101] ci: Run link format check on all mediawiki documents

---
 scripts/link-format-chk.sh | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/scripts/link-format-chk.sh b/scripts/link-format-chk.sh
index e3f0f6d7..9493765d 100755
--- a/scripts/link-format-chk.sh
+++ b/scripts/link-format-chk.sh
@@ -8,16 +8,14 @@
 
 ECODE=0
 FILES=""
-for fname in $(git diff --name-only HEAD $(git merge-base HEAD master)); do
-    if [[ $fname == *.mediawiki ]]; then
-        GRES=$(grep -n '](http' $fname)
-        if [ "$GRES" != "" ]; then
-            if [ $ECODE -eq 0 ]; then
-                >&2 echo "Github Mediawiki format writes link as [URL text], not as [text](url):"
-            fi
-            ECODE=1
-            echo "- $fname:$GRES"
+for fname in *.mediawiki; do
+    GRES=$(grep -n '](http' $fname)
+    if [ "$GRES" != "" ]; then
+        if [ $ECODE -eq 0 ]; then
+            >&2 echo "Github Mediawiki format writes link as [URL text], not as [text](url):"
         fi
+        ECODE=1
+        echo "- $fname:$GRES"
     fi
 done
 exit $ECODE

From e2547df1cd2317e7db86b9d519df8dc02a16d102 Mon Sep 17 00:00:00 2001
From: Janus 
Date: Sun, 11 Oct 2020 16:59:38 -0500
Subject: [PATCH 101/101] Final BIP-0133

---
 README.mediawiki   | 4 ++--
 bip-0133.mediawiki | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.mediawiki b/README.mediawiki
index 41a93476..94ecb8bc 100644
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -714,13 +714,13 @@ Those proposing changes should consider that ultimately consent may rest with th
 | Andy Chase
 | Process
 | Withdrawn
-|-
+|- style="background-color: #cfffcf"
 | [[bip-0133.mediawiki|133]]
 | Peer Services
 | feefilter message
 | Alex Morcos
 | Standard
-| Draft
+| Final
 |- style="background-color: #ffcfcf"
 | [[bip-0134.mediawiki|134]]
 | Consensus (hard fork)
diff --git a/bip-0133.mediawiki b/bip-0133.mediawiki
index c109f12f..b37370d9 100644
--- a/bip-0133.mediawiki
+++ b/bip-0133.mediawiki
@@ -5,7 +5,7 @@
   Author: Alex Morcos 
   Comments-Summary: No comments yet.
   Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0133
-  Status: Draft
+  Status: Final
   Type: Standards Track
   Created: 2016-02-13
   License: PD