Skip to content

Commit f05e162

Browse files
authored
Merge branch 'master' into cat
2 parents 31f5192 + 24a15a6 commit f05e162

File tree

92 files changed

+6095
-1099
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+6095
-1099
lines changed

.github/workflows/github-action-checks.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ jobs:
55
Link-Format-Checks:
66
runs-on: ubuntu-latest
77
steps:
8-
- uses: actions/checkout@v3
8+
- uses: actions/checkout@v4
99
- run: scripts/link-format-chk.sh
1010
Build-Table-Checks:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v4
1414
- run: scripts/buildtable.pl >/tmp/table.mediawiki || exit 1
1515
Diff-Checks:
16+
name: "Diff Checks (fails until number assignment)"
1617
runs-on: ubuntu-latest
1718
steps:
18-
- uses: actions/checkout@v3
19+
- uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 2
1922
- run: scripts/diffcheck.sh

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
bip-0174/coinjoin-workflow.aux
2+
bip-0174/coinjoin-workflow.log
3+
bip-0174/coinjoin-workflow.pdf
4+
bip-0174/multisig-workflow.aux
5+
bip-0174/multisig-workflow.log
6+
bip-0174/multisig-workflow.pdf

README.mediawiki

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
People wishing to submit BIPs, first should propose their idea or document to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [email protected]] mailing list (do <em>not</em> assign a number - read <a href="bip-0002.mediawiki">BIP 2</a> for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here.
1+
People wishing to submit BIPs, first should propose their idea or document to the [https://groups.google.com/g/bitcoindev [email protected]] mailing list (do <em>not</em> assign a number - read <a href="bip-0002.mediawiki">BIP 2</a> for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here.
22

33
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.
44

@@ -235,29 +235,29 @@ Those proposing changes should consider that ultimately consent may rest with th
235235
| Applications
236236
| Purpose Field for Deterministic Wallets
237237
| Marek Palatinus, Pavol Rusnak
238-
| Informational
238+
| Standard
239239
| Final
240-
|- style="background-color: #ffffcf"
240+
|- style="background-color: #cfffcf"
241241
| [[bip-0044.mediawiki|44]]
242242
| Applications
243243
| Multi-Account Hierarchy for Deterministic Wallets
244244
| Marek Palatinus, Pavol Rusnak
245245
| Standard
246-
| Proposed
246+
| Final
247247
|- style="background-color: #ffffcf"
248248
| [[bip-0045.mediawiki|45]]
249249
| Applications
250250
| Structure for Deterministic P2SH Multisignature Wallets
251251
| Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia
252252
| Standard
253253
| Proposed
254-
|-
254+
|- style="background-color: #cfffcf"
255255
| [[bip-0047.mediawiki|47]]
256256
| Applications
257257
| Reusable Payment Codes for Hierarchical Deterministic Wallets
258258
| Justus Ranvier
259259
| Informational
260-
| Draft
260+
| Final
261261
|- style="background-color: #ffffcf"
262262
| [[bip-0048.mediawiki|48]]
263263
| Applications
@@ -270,7 +270,7 @@ Those proposing changes should consider that ultimately consent may rest with th
270270
| Applications
271271
| Derivation scheme for P2WPKH-nested-in-P2SH based accounts
272272
| Daniel Weigl
273-
| Informational
273+
| Standard
274274
| Final
275275
|- style="background-color: #cfffcf"
276276
| [[bip-0050.mediawiki|50]]
@@ -434,12 +434,12 @@ Those proposing changes should consider that ultimately consent may rest with th
434434
| Eric Lombrozo
435435
| Standard
436436
| Rejected
437-
|-
437+
|- style="background-color: #cfffcf"
438438
| [[bip-0084.mediawiki|84]]
439439
| Applications
440440
| Derivation scheme for P2WPKH based accounts
441441
| Pavol Rusnak
442-
| Informational
442+
| Standard
443443
| Final
444444
|-
445445
| [[bip-0085.mediawiki|85]]
@@ -452,7 +452,7 @@ Those proposing changes should consider that ultimately consent may rest with th
452452
| [[bip-0086.mediawiki|86]]
453453
| Applications
454454
| Key Derivation for Single Key P2TR Outputs
455-
| Andrew Chow
455+
| Ava Chow
456456
| Standard
457457
| Draft
458458
|- style="background-color: #ffffcf"
@@ -487,7 +487,7 @@ Those proposing changes should consider that ultimately consent may rest with th
487487
| [[bip-0093.mediawiki|93]]
488488
| Applications
489489
| codex32: Checksummed SSSS-aware BIP32 seeds
490-
| Leon Olsson Curr, Pearlwort Sneed
490+
| Leon Olsson Curr, Pearlwort Sneed, Andrew Poelstra
491491
| Informational
492492
| Draft
493493
|-
@@ -627,7 +627,7 @@ Those proposing changes should consider that ultimately consent may rest with th
627627
| [[bip-0119.mediawiki|119]]
628628
| Consensus (soft fork)
629629
| CHECKTEMPLATEVERIFY
630-
| Jeremy Rubin
630+
| Jeremy Rubin, James O'Beirne
631631
| Standard
632632
| Draft
633633
|- style="background-color: #ffcfcf"
@@ -714,13 +714,13 @@ Those proposing changes should consider that ultimately consent may rest with th
714714
| Andy Chase
715715
| Process
716716
| Withdrawn
717-
|-
717+
|- style="background-color: #cfffcf"
718718
| [[bip-0133.mediawiki|133]]
719719
| Peer Services
720720
| feefilter message
721721
| Alex Morcos
722722
| Standard
723-
| Draft
723+
| Final
724724
|- style="background-color: #ffcfcf"
725725
| [[bip-0134.mediawiki|134]]
726726
| Consensus (hard fork)
@@ -900,7 +900,7 @@ Those proposing changes should consider that ultimately consent may rest with th
900900
| [[bip-0174.mediawiki|174]]
901901
| Applications
902902
| Partially Signed Bitcoin Transaction Format
903-
| Andrew Chow
903+
| Ava Chow
904904
| Standard
905905
| Final
906906
|- style="background-color: #ffcfcf"
@@ -1030,6 +1030,13 @@ Those proposing changes should consider that ultimately consent may rest with th
10301030
| Standard
10311031
| Draft
10321032
|-
1033+
| [[bip-0331.mediawiki|331]]
1034+
| Peer Services
1035+
| Ancestor Package Relay
1036+
| Gloria Zhao
1037+
| Standard
1038+
| Draft
1039+
|-
10331040
| [[bip-0338.mediawiki|338]]
10341041
| Peer Services
10351042
| Disable transaction relay message
@@ -1072,13 +1079,20 @@ Those proposing changes should consider that ultimately consent may rest with th
10721079
| Standard
10731080
| Final
10741081
|-
1082+
| [[bip-0345.mediawiki|345]]
1083+
| Consensus (soft fork)
1084+
| OP_VAULT
1085+
| James O'Beirne, Greg Sanders, Anthony Towns
1086+
| Standard
1087+
| Draft
1088+
|-
10751089
| [[bip-0347.mediawiki|347]]
10761090
| Consensus (soft fork)
10771091
| OP_CAT in Tapscript
10781092
| Ethan Heilman, Armin Sabouri
10791093
| Standard
10801094
| Draft
1081-
|-
1095+
|- style="background-color: #cfffcf"
10821096
| [[bip-0350.mediawiki|350]]
10831097
| Applications
10841098
| Bech32m format for v1+ witness addresses
@@ -1096,14 +1110,14 @@ Those proposing changes should consider that ultimately consent may rest with th
10961110
| [[bip-0370.mediawiki|370]]
10971111
| Applications
10981112
| PSBT Version 2
1099-
| Andrew Chow
1113+
| Ava Chow
11001114
| Standard
11011115
| Draft
11021116
|-
11031117
| [[bip-0371.mediawiki|371]]
11041118
| Applications
11051119
| Taproot Fields for PSBT
1106-
| Andrew Chow
1120+
| Ava Chow
11071121
| Standard
11081122
| Draft
11091123
|-
@@ -1117,56 +1131,56 @@ Those proposing changes should consider that ultimately consent may rest with th
11171131
| [[bip-0380.mediawiki|380]]
11181132
| Applications
11191133
| Output Script Descriptors General Operation
1120-
| Pieter Wuille, Andrew Chow
1134+
| Pieter Wuille, Ava Chow
11211135
| Informational
11221136
| Draft
11231137
|-
11241138
| [[bip-0381.mediawiki|381]]
11251139
| Applications
11261140
| Non-Segwit Output Script Descriptors
1127-
| Pieter Wuille, Andrew Chow
1141+
| Pieter Wuille, Ava Chow
11281142
| Informational
11291143
| Draft
11301144
|-
11311145
| [[bip-0382.mediawiki|382]]
11321146
| Applications
11331147
| Segwit Output Script Descriptors
1134-
| Pieter Wuille, Andrew Chow
1148+
| Pieter Wuille, Ava Chow
11351149
| Informational
11361150
| Draft
11371151
|-
11381152
| [[bip-0383.mediawiki|383]]
11391153
| Applications
11401154
| Multisig Output Script Descriptors
1141-
| Pieter Wuille, Andrew Chow
1155+
| Pieter Wuille, Ava Chow
11421156
| Informational
11431157
| Draft
11441158
|-
11451159
| [[bip-0384.mediawiki|384]]
11461160
| Applications
11471161
| combo() Output Script Descriptors
1148-
| Pieter Wuille, Andrew Chow
1162+
| Pieter Wuille, Ava Chow
11491163
| Informational
11501164
| Draft
11511165
|-
11521166
| [[bip-0385.mediawiki|385]]
11531167
| Applications
11541168
| raw() and addr() Output Script Descriptors
1155-
| Pieter Wuille, Andrew Chow
1169+
| Pieter Wuille, Ava Chow
11561170
| Informational
11571171
| Draft
11581172
|-
11591173
| [[bip-0386.mediawiki|386]]
11601174
| Applications
11611175
| tr() Output Script Descriptors
1162-
| Pieter Wuille, Andrew Chow
1176+
| Pieter Wuille, Ava Chow
11631177
| Informational
11641178
| Draft
11651179
|-
11661180
| [[bip-0389.mediawiki|389]]
11671181
| Applications
11681182
| Multipath Descriptor Key Expressions
1169-
| Andrew Chow
1183+
| Ava Chow
11701184
| Informational
11711185
| Draft
11721186
|}

bip-0002.mediawiki

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ The BIP process begins with a new idea for Bitcoin. Each potential BIP must have
3232
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.
3333
Additionally, many ideas have been brought forward for changing Bitcoin that have been rejected for various reasons.
3434
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.
35-
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].
35+
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].
3636

3737
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.
3838
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).
3939
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.
4040

41-
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].
41+
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].
4242
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.
4343
Following a discussion, the proposal should be submitted to the [https://github.com/bitcoin/bips BIPs git repository] as a pull request.
4444
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).
@@ -67,8 +67,12 @@ If you are interested in assuming ownership of a BIP, send a message asking to t
6767

6868
The current BIP editors are:
6969

70+
* Bryan Bishop ([[mailto:[email protected]|[email protected]]])
71+
* Jon Atack ([[mailto:[email protected]|[email protected]]])
7072
* Luke Dashjr ([[mailto:[email protected]|[email protected]]])
71-
* Kalle Alm ([[mailto:[email protected]|[email protected]]])
73+
* Mark "Murch" Erhardt ([[mailto:[email protected]|[email protected]]])
74+
* Olaoluwa Osuntokun ([[mailto:[email protected]|[email protected]]])
75+
* Ruben Somsen ([[mailto:[email protected]|[email protected]]])
7276
7377
===BIP Editor Responsibilities & Workflow===
7478

@@ -98,11 +102,13 @@ The BIP editor will:
98102
99103
The BIP editors are intended to fulfill administrative and editorial responsibilities. The BIP editors monitor BIP changes, and update BIP headers as appropriate.
100104

105+
BIP editors may also, at their option, unilaterally make and merge strictly-editorial changes to BIPs, such as correcting misspellings, fixing broken links, etc.
106+
101107
==BIP format and structure==
102108

103109
===Specification===
104110

105-
BIPs should be written in mediawiki format.
111+
BIPs should be written in mediawiki or markdown format.
106112

107113
Each BIP should have the following parts:
108114

@@ -409,7 +415,6 @@ Why is Public Domain no longer acceptable for new BIPs?
409415
* Non-image auxiliary files are permitted in the bip-XXXX subdirectory.
410416
* Email addresses are now required for authors.
411417
* The Post-History header may be provided as a link instead of a simple date.
412-
* Markdown format is no longer permitted for BIPs.
413418
* The Resolution header has been dropped, as it is not applicable to a decentralised system where no authority exists to make final decisions.
414419
415420
==See Also==

bip-0009/states.gv

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* There are many ways to compile this, but one of them is:
2+
*
3+
* $ dot -Tpng states.gv -o states.png
4+
*/
5+
digraph {
6+
/* States. */
7+
DEFINED; FAILED; STARTED; LOCKED_IN; ACTIVE;
8+
9+
/* Relationships between states, labeled where applicable. */
10+
DEFINED -> DEFINED;
11+
DEFINED -> FAILED [label = "timeout ≤ MTP"];
12+
DEFINED -> STARTED [label = "starttime ≤ MTP < timeout"];
13+
FAILED -> FAILED;
14+
STARTED -> STARTED;
15+
STARTED -> FAILED [label = "timeout ≤ MTP"];
16+
STARTED -> LOCKED_IN [label = "(MTP < timeout) AND (threshold reached)"];
17+
LOCKED_IN -> ACTIVE [label = "Always"];
18+
ACTIVE -> ACTIVE;
19+
20+
/* Visualization hack to unclutter output. */
21+
nodesep = 1.2;
22+
}

bip-0009/states.png

19.1 KB
Loading

bip-0010.mediawiki

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ The following is an example TxDP from Armory, produced while running on the test
9393

9494
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.
9595

96-
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.
96+
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.
9797

9898
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.
9999

100100
== Reference Implementation ==
101101

102-
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.
102+
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.

bip-0012.mediawiki

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ OP_EVAL allows the receiver of bitcoins to specify how they can be spent when th
4343

4444
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.
4545

46-
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.
46+
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.
4747

4848
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.
4949

50-
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:
50+
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:
5151

5252
# Attacker creates an OP_EVAL transaction that is valid as seen by old clients, but invalid for new clients.
5353
# Attacker also creates a standard transaction that spends the OP_EVAL transaction, and pays the victim.

bip-0014.mediawiki

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Version bumping can also introduce incompatibilities and fracture the network. I
2828

2929
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.
3030

31-
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).
31+
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).
3232

3333
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.
3434

0 commit comments

Comments
 (0)