1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-10-19 19:29:18 +00:00
Commit Graph

42 Commits

Author SHA1 Message Date
Sjors Provoost
bde776ecb8 bip138: collect and deduplicate recipient keys across the backup 2026-09-24 20:11:28 -07:00
Sjors Provoost
11a3be7458 bip138: clarify MuSig participant eligibility
MuSig aggregation hides participant keys, so account xpubs do not need
individual trailing derivation.

Specify that encryption uses participant roots rather than the aggregate key.

Add MuSig2 test vectors: one for a bare aggregate and one for aggregate
derivation.
2026-09-24 20:11:20 -07:00
Sjors Provoost
5fc05e2b17 bip138: generalize key-selection test vectors
Rename keys_types.json to recipient_keys.json and generalize the format
to support multiple descriptors and multiple recipient keys:

- "key": a single key-expression string becomes "descriptors": an array
  of complete descriptor strings.
- "expected": an x-only key string becomes "expected_keys": an array
  containing that key; null remains null.

Convert the nine existing cases by wrapping each key expression in tr(),
except the uncompressed literal uses pk(), since tr() does not accept it.
Each case has one descriptor.
2026-09-24 20:09:33 -07:00
Sjors Provoost
62dc1c4e8f bip138: record encoding clarifications in changelog 2026-09-24 14:48:22 -07:00
Sjors Provoost
bf64a12098 bip138: clarify rejection of empty payloads
Clarify that an empty payload contains zero content items. Add a
vector that rejects a payload consisting only of the 0x00 terminator.
2026-09-24 14:47:16 -07:00
Sjors Provoost
aa098559bf bip138: clarify that 0x00 ends payload parsing
Specify that parsing stops immediately. Add a vector with an item followed
by a terminator and ignored bytes.

Clarify that TYPE 0x00 also doesn't require TYPE_LENGTH.
2026-09-24 14:47:14 -07:00
Sjors Provoost
0f8c26b7c2 bip138: specify empty associated data
Make the associated-data input explicit in the encryption and decryption
formulas and specify that it is empty, as used by the existing vectors.
2026-09-24 14:47:10 -07:00
Sjors Provoost
8c1314949e bip138: record metadata clarifications in changelog
Record this branch's clarifications and test vectors under draft document
version 0.1.1. Keep the initial-publication entry in the shared first commit.
2026-09-23 13:59:05 +02:00
Sjors Provoost
ffa6bf4944 bip138: clarify zero and omitted birth times
Explain that zero and omission both mean the birth time is unknown.
Recommend scanning from the wallet birthday if known, otherwise from
genesis.
2026-09-23 13:59:05 +02:00
Sjors Provoost
399ea2a091 bip138: clarify derivation ranges using BIP32
Identify range bounds as BIP32 non-hardened child indexes, ordered from
start to end.
2026-09-23 13:59:05 +02:00
Sjors Provoost
51995cc228 bip138: clarify receive-only descriptor sets
Make change_descriptor explicitly optional for non-multipath descriptors.
Add a receive-only document vector with no change descriptor or optional
metadata; the existing vectors cover a receive/change pair and multipath.
2026-09-23 13:55:04 +02:00
Sjors Provoost
bf63783c10 bip138: introduce changelog at version 0.1.0
Record the initial published draft using the BIP3 document-version
and changelog convention.
2026-09-23 13:27:10 +02:00
pythcoiner
5af62cba99 bip138: address review 2026-08-18 15:15:05 +00:00
pythcoiner
1ad6f11811 bip138: address review 2026-08-18 11:41:38 +00:00
pythcoiner
c21f642b83 bip138: address review 2026-08-18 08:38:49 +00:00
pythcoiner
0fbc187b99 bip138: address review 2026-08-16 06:30:55 +02:00
pythcoiner
65b4c38a02 bip138: address review 2026-07-16 08:32:47 -04:00
pythcoiner
1b1513ebaf bip138: add acknowledgements 2026-07-16 08:30:15 -04:00
pythcoiner
e1b35253bc bip138: add Requires header 2026-07-16 08:30:00 -04:00
pythcoiner
5d441163be bip138: address review 2026-07-16 08:06:52 -04:00
pythcoiner
d041c01f2f bip138: add a backward compatibility section 2026-07-16 02:38:01 -04:00
pythcoiner
f79d0862b8 bip138: address review 2026-07-16 02:19:27 -04:00
pythcoiner
1a157a6418 bip-138 saturate the decoy bucket at the count limit 2026-07-15 02:32:55 -04:00
pythcoiner
86e10c907e bip-138 recommend sorting and deduplicating derivation paths 2026-07-15 01:31:30 -04:00
pythcoiner
c1170d4634 bip-138 require warning about excluded key expressions 2026-07-15 00:28:36 -04:00
pythcoiner
317b8fdb2f bip-138 reference the CHACHA20-POLY1305 rationale footnote 2026-07-15 00:28:26 -04:00
pythcoiner
1de39be4e3 bip-138 document why content LENGTH is mandatory 2026-07-15 00:26:20 -04:00
pythcoiner
9f1be26e2f bip-138 recommend sorting and deduplicating individual secrets 2026-07-15 00:26:20 -04:00
pythcoiner
1e776e7a72 bip-138 pad individual secrets with decoys 2026-07-15 00:00:09 -04:00
pythcoiner
fb52eaab03 bip-138 document common derivation paths to try automatically 2026-07-15 00:00:08 -04:00
pythcoiner
1358003bc8 bip-138 add string content type 2026-07-14 23:55:04 -04:00
pythcoiner
86f5c28f7c bip-138 treat content type 0x00 as the end of content items 2026-07-14 23:55:04 -04:00
pythcoiner
56deb75d62 bip-138: allow multiple content items per payload 2026-06-30 10:59:17 -04:00
pythcoiner
99217c680f bip-138: reference BIP-0139 for wallet backup metadata 2026-06-18 11:47:17 -04:00
pythcoiner
c6b04e23df bip-138: BIP380 content is a bare descriptor or a JSON document 2026-06-18 11:47:17 -04:00
pythcoiner
d115620881 bip-138: make BIP380 backup content JSON-only 2026-06-18 11:47:17 -04:00
pythcoiner
810b4df73e bip-138: specify BIP388 wallet policy backup content 2026-06-18 11:46:44 -04:00
pythcoiner
9e2a585a9a bip-138: specify BIP380 descriptor backup content 2026-06-18 03:44:25 -04:00
pythcoiner
b7ba2840a9 bip-138: clarify CONTENT is a single TLV and forbid all-zero nonce 2026-06-18 03:02:17 -04:00
pythcoiner
72d8a9533f bip-0138: use assigned BIP number 138 for magic and domain separation tags 2026-06-18 01:51:17 -04:00
pythcoiner
7707cf2935 bip-0138: make PLAINTEXT LENGTH mandatory and add optional payload padding 2026-06-18 01:51:15 -04:00
Murch
e9858e8bbe Assign BIP138 2026-05-11 13:09:20 -07:00