1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
Delivery-date: Mon, 14 Jul 2025 12:06:15 -0700
Received: from mail-yw1-f187.google.com ([209.85.128.187])
by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(Exim 4.94.2)
(envelope-from <bitcoindev+bncBD3JDRH3Z4ARBHFK2XBQMGQEUO72CMY@googlegroups.com>)
id 1ubOVC-0000LQ-Qx
for bitcoindev@gnusha.org; Mon, 14 Jul 2025 12:06:15 -0700
Received: by mail-yw1-f187.google.com with SMTP id 00721157ae682-711a46ce053sf68163547b3.0
for <bitcoindev@gnusha.org>; Mon, 14 Jul 2025 12:06:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=20230601; t=1752519969; x=1753124769; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-sender:mime-version
:subject:message-id:to:from:date:sender:from:to:cc:subject:date
:message-id:reply-to;
bh=bjLEk2BMt+dW1lVWCR46TLx3r5XQ80N50fWSDIXGdDE=;
b=Dt06hGFJxQGk2VKBfFTqhDv1qVA0GXoPx1exNXQnuHUSx8SkHl9sE5DokZB2/DHwVN
KAbmKp6lE8pGSSbfmKp6i/jXKTzSgMPpal1DavoF3Pg7PNUVqRaCzvKks4F615t48RVU
6hrZIGHTjv96L7GoD5TO9bdbsGpIXP2tI85/0WaVRXI1IRHin5aMOMQ+XKhH6iNdqBJ/
sa0UGdCfJ8vx8WxKpPLBlh6tOdaJ9RzJsQ50TSqHJ0P1EKIDxef+/SKlPNwrlcl7PeRv
TvEMyjs4RtTg+F/8YF2z9kW/P2rWTRJtu9PnB+yca24ayBjc4Rjr95vS+PNWmWsFUkXu
AtyQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1752519969; x=1753124769; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-sender:mime-version
:subject:message-id:to:from:date:from:to:cc:subject:date:message-id
:reply-to;
bh=bjLEk2BMt+dW1lVWCR46TLx3r5XQ80N50fWSDIXGdDE=;
b=hJC36MbD7ia9Isr7nJy8DgR1w7nVRWEZZX5sZUgqDHs33hLQ+PFxyiTyokUphWYy0o
hzqeSuEJBpuqUTTFaztxtQWNkPtDdlgKOvHe0XkuezQYDva2oZ0sM2pTumDVd3cNRRUU
7RmuH1HicbE7hNbYwbGsF9gZNrc6WA4je5qrTXLWXpZfvmQYbsyZzx+u6ZPfvnj9IwEq
5rUxBy5pWeZdfq64XHs3brAPIPZW/B9nxsWL1LXMvtswh/37euL4WmDjYzyOMOOr4REA
8Vy82kqQr6+gzntlFAmm3tEKYaGcywJZHaS04qUSrIBbb56U61Y2eToGFE2wQivf9bUe
YvmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1752519969; x=1753124769;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-sender:mime-version
:subject:message-id:to:from:date:x-beenthere:x-gm-message-state
:sender:from:to:cc:subject:date:message-id:reply-to;
bh=bjLEk2BMt+dW1lVWCR46TLx3r5XQ80N50fWSDIXGdDE=;
b=sU6L+UnMruvUXSzBRDU73iIJCXUEo4NrcLM2hnc/PdtzDYRkANrkioOTUJg7pvZ6Ns
KTVLOCMsI3Fx8rymdkZ25je4JTkIPRl0evLS6JJ5FMPs8Rm7TejUQ6FuNvjbg+87EWPi
cUojhXH2wqAYI10w24NVEvywjcEaeCxj8bDJIcck+DWGEWsdiPp1sPSw0XDNu0EX2r/Z
IZ/YG6gPa39X6EtjSW1voBiN2Nsk/qIzxzqtfz7oKTNhiBEhwV9yLkt0pyEzmtr9yekw
k2T95wOvKxp6c1aqg2DlQckJe+telfIPeGAKc09we4dfWqhctF1XiRivdBgHUg1yIaDO
fYrg==
Sender: bitcoindev@googlegroups.com
X-Forwarded-Encrypted: i=1; AJvYcCVW09l5qCLc11PLQuBQdndWpYCNEhUi8DwGLul8MlJb4p2KH9NQkIior9NiZjhdFRvCv7yvoDcAlvE+@gnusha.org
X-Gm-Message-State: AOJu0Yx4xCHTKZeqp0M75vJTUXVaXPDmLUAYqDHFGWPP0eDDaJlXDccS
etELOroKRv0f0tNGefLjVP8EBEtftXBCL9APpxJFDmbeC/ESwWut3Hju
X-Google-Smtp-Source: AGHT+IGk0ZQ5TISwGQh8/DWzR3RbvQqh/zS+rMvJOD44KkarbMia7nfzRMOIIM45KakbeGgxQbfTbQ==
X-Received: by 2002:a05:690c:9:b0:718:2387:4544 with SMTP id 00721157ae682-71823874737mr8103427b3.12.1752519968473;
Mon, 14 Jul 2025 12:06:08 -0700 (PDT)
X-BeenThere: bitcoindev@googlegroups.com; h=AZMbMZdBZL2DOhwh05ohRcR3+etnDkvD1V8+uNOMK7Wdk0slHw==
Received: by 2002:a25:c1c5:0:b0:e82:307f:5561 with SMTP id 3f1490d57ef6-e8b7795f27bls4809644276.2.-pod-prod-06-us;
Mon, 14 Jul 2025 12:06:04 -0700 (PDT)
X-Received: by 2002:a05:690c:45c7:b0:716:4ae0:7bf3 with SMTP id 00721157ae682-717d5b7c823mr194067237b3.5.1752519964447;
Mon, 14 Jul 2025 12:06:04 -0700 (PDT)
Received: by 2002:a81:c805:0:b0:710:fccf:6901 with SMTP id 00721157ae682-71801526bd3ms7b3;
Mon, 14 Jul 2025 09:12:15 -0700 (PDT)
X-Received: by 2002:a05:690c:4a0a:b0:70e:2cba:868c with SMTP id 00721157ae682-717d5bc3e39mr223815277b3.11.1752509534528;
Mon, 14 Jul 2025 09:12:14 -0700 (PDT)
Date: Mon, 14 Jul 2025 09:12:14 -0700 (PDT)
From: Zach <corneliusamadeusacts10@gmail.com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Message-Id: <1da0467a-9cc6-4448-85b9-a9b01ef1aca7n@googlegroups.com>
Subject: [bitcoindev] [BIP Proposal] Compressed Base58 Encoding for BIP-39
Mnemonics with Multisig Extensions
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_589718_827532640.1752509534180"
X-Original-Sender: corneliusamadeusacts10@gmail.com
Precedence: list
Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com
List-ID: <bitcoindev.googlegroups.com>
X-Google-Group-Id: 786775582512
List-Post: <https://groups.google.com/group/bitcoindev/post>, <mailto:bitcoindev@googlegroups.com>
List-Help: <https://groups.google.com/support/>, <mailto:bitcoindev+help@googlegroups.com>
List-Archive: <https://groups.google.com/group/bitcoindev
List-Subscribe: <https://groups.google.com/group/bitcoindev/subscribe>, <mailto:bitcoindev+subscribe@googlegroups.com>
List-Unsubscribe: <mailto:googlegroups-manage+786775582512+unsubscribe@googlegroups.com>,
<https://groups.google.com/group/bitcoindev/subscribe>
X-Spam-Score: -0.4 (/)
------=_Part_589718_827532640.1752509534180
Content-Type: multipart/alternative;
boundary="----=_Part_589719_516876564.1752509534180"
------=_Part_589719_516876564.1752509534180
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Dear Bitcoin-Dev Community,
My name is Zach and I'm a Bitcoin enthusiast interested in improving wallet=
=20
usability and security. I'm writing to propose a new Bitcoin Improvement=20
Proposal (BIP) and seek initial feedback before submitting a formal draft=
=20
via GitHub pull request.
The proposal builds on BIP-39 by introducing a compressed representation of=
=20
mnemonic phrases using Base58 encoding, reducing a 12-word mnemonic to 24=
=20
characters. It also includes an optional extension for multisig setups=20
(e.g., 2-of-3), where each participant's storage combines their compressed=
=20
mnemonic with foreign xpubs and a checksum into a ~252-character Base58=20
string. This aims to facilitate secure, distributed storage in=20
space-constrained scenarios like physical backups or QR codes.
Below is a draft of the BIP in plain text format for review. I've followed=
=20
the structure from BIP-2 but haven't assigned a number yet. If the=20
community finds this idea promising, I'll convert it to MediaWiki and=20
submit it to the bitcoin/bips repo.
------------------------------
*Bitcoin Improvement Proposal: BIP-XXXX (Compressed Base58 Mnemonic=20
Encoding with Multisig Extensions)*=20
*Preamble *
=20
- BIP#: XXXX (to be assigned)=20
- Title: Compressed Base58 Encoding for BIP-39 Mnemonics with Multisig=
=20
Storage Format=20
- Author: Zach corneliusamadeusacts10@gmail.com=20
- Status: Draft
- Type: Standards Track
- Created: 2025-07-14
- License: BSD-2-Clause
*Abstract*
This BIP proposes a method to compress BIP-39 mnemonic phrases by mapping=
=20
each word in the standard 2048-word English wordlist to a unique=20
two-character string using Base58 encoding. This reduces a typical 12-word=
=20
mnemonic (approximately 59 characters including spaces) to a compact=20
24-character string without spaces. The encoding is deterministic,=20
reversible, and leverages the existing BIP-39 word indices, ensuring=20
compatibility with current seed generation practices.
Additionally, this BIP introduces an optional extension for multi-signature=
=20
(multisig) setups, particularly m-of-n schemes like 2-of-3. In such=20
scenarios, each participant's location stores their local compressed=20
mnemonic alongside the extended public keys (xpubs) from the other=20
participants. These components are concatenated into a single Base58 string=
=20
with a checksum for integrity, resulting in a ~252-character string per=20
location. This facilitates secure, distributed storage while enabling=20
independent address derivation at each site.
This can aid in easier storage, transmission, and input of mnemonics and=20
multisig data in space-constrained environments, such as physical etchings=
=20
or QR codes, while maintaining security.
*Motivation*=20
BIP-39 mnemonics are human-readable but verbose. Compressing them to 24=20
characters for 12 words reduces overhead significantly. In multisig=20
contexts, such as a 2-of-3 scheme with geographically distributed=20
participants, each location must store foreign xpubs to derive shared=20
addresses, but private mnemonics remain isolated. Concatenating the=20
compressed mnemonic with xpubs and a checksum creates a compact, verifiable=
=20
dataset (~252 characters), and supports error detection during=20
transcription or recovery.
This does not replace BIP-39 or existing multisig standards (e.g., BIP-45=
=20
for derivation paths) but provides an optional compressed representation=20
and storage format.
*Specification*
Base58 Alphabet
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Word Index Mapping and Encoding/Decoding=20
The BIP-39 English wordlist is sorted alphabetically, assigning indices=20
from 0 ("abandon") to 2047 ("zoo"). The full wordlist is defined in BIP-39=
=20
and remains unchanged.
For a word with index i (0 =E2=89=A4 i =E2=89=A4 2047):
1. Compute high =3D i // 58 (integer division, range 0-35 for i =E2=89=
=A4 2047)=20
2. Compute low =3D i % 58 (range 0-57)=20
3. The two-character code is alphabet[high] + alphabet[low] (big-endian=
=20
order, higher digit first)=20
Examples:
- i=3D0 ("abandon"): "11"=20
- i=3D2047 ("zoo"): "PJ"=20
Compressing a mnemonic: Look up indices, encode each to 2 chars,=20
concatenate (24 chars for 12 words).
Decompressing: Split into 2-char chunks, decode indices, look up words,=20
verify checksum.
Multisig Storage Format (Extension)=20
Assumes 12-word mnemonics, 111-char xpubs.
Structure: Compressed mnemonic (24 chars) + Sorted foreign xpub1 (111) +=20
xpub2 (111) + Checksum (6 chars) =3D 252 chars.
Checksum: Double-SHA256 of decoded data bytes, first 4 bytes encoded to=20
Base58, padded to 6 chars with '1's.
Verification: Extract parts, recompute checksum, validate.
Usage in 2-of-3: Each location stores local compressed + 2 foreign xpubs +=
=20
checksum.
*Rationale*=20
- 58^2 =3D 3364 > 2048 for unique codes.=20
- Concatenation leverages Base58 for compactness.=20
- Fixed lengths for easy parsing.
*Backwards Compatibility*=20
Fully compatible; optional extension.
*Reference Implementation *
Full Python reference implementation available upon request or in the=20
formal submission.
*Test Vectors *
- Compressed mnemonic: "1112131415161718191A1B1C" (first 6 words, extend=
=20
to 24 chars for full).=20
- xpub1:=20
"xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoC=
u1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"=20
(111 chars).=20
- xpub2:=20
"xpub68Gmy5EdvgibQVbouHdFqKg4ZP5oVjJeJUP7yKS4xEM2it2c8EL3MEN8WC4PTEiGK8o=
FUaKUV4ndBKSp53Q6fFi8DwhsBS1Lxf4H9fwnK2"=20
(111 chars).=20
- Sorted: xpub1, xpub2 (assuming lex order).=20
- Data str: "1112131415161718191A1B1C" + xpub1 + xpub2 (246 chars, but=
=20
use full 24-char compressed in practice).=20
- Checksum: Compute as per code (will be 6 chars, e.g., "2AbCdE").=20
- Full storage: Data str + checksum (252 chars).
*Acknowledgements*=20
- BIP-39 authors for the foundational wordlist.=20
- Bitcoin community for Base58 standards.
- Multisig distribution insights.
------------------------------
I'd appreciate any feedback on this draft: Is the concept sound? Are there=
=20
similar existing proposals I'm unaware of? Suggestions for improvements,=20
such as in the checksum method or generalization to other word counts/m-n=
=20
schemes?
If there's interest, I'll proceed with the GitHub submission after=20
incorporating comments.
Thank you very much for your attention to this matter and any insights!
Best regards, Zach corneliusamadeusacts10@gmail.com
--=20
You received this message because you are subscribed to the Google Groups "=
Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/=
1da0467a-9cc6-4448-85b9-a9b01ef1aca7n%40googlegroups.com.
------=_Part_589719_516876564.1752509534180
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<p dir=3D"auto" style=3D"white-space-collapse: preserve;">Dear Bitcoin-Dev =
Community,</p>
<p dir=3D"auto" style=3D"white-space-collapse: preserve;">My name is Zach a=
nd I'm a Bitcoin enthusiast interested in improving wallet usability and se=
curity. I'm writing to propose a new Bitcoin Improvement Proposal (BIP) and=
seek initial feedback before submitting a formal draft via GitHub pull req=
uest.</p>
<p dir=3D"auto" style=3D"white-space-collapse: preserve;">The proposal buil=
ds on BIP-39 by introducing a compressed representation of mnemonic phrases=
using Base58 encoding, reducing a 12-word mnemonic to 24 characters. It al=
so includes an optional extension for multisig setups (e.g., 2-of-3), where=
each participant's storage combines their compressed mnemonic with foreign=
xpubs and a checksum into a ~252-character Base58 string. This aims to fac=
ilitate secure, distributed storage in space-constrained scenarios like phy=
sical backups or QR codes.</p>
<p dir=3D"auto" style=3D"white-space-collapse: preserve;">Below is a draft =
of the BIP in plain text format for review. I've followed the structure fro=
m BIP-2 but haven't assigned a number yet. If the community finds this idea=
promising, I'll convert it to MediaWiki and submit it to the bitcoin/bips =
repo.</p>
<hr />
<span dir=3D"auto"><b>Bitcoin Improvement Proposal: BIP-XXXX (Compressed Ba=
se58 Mnemonic Encoding with Multisig Extensions)</b></span>=C2=A0<div><span=
dir=3D"auto"><br /></span></div><div><b><span dir=3D"auto">Preamble</span>
</b><ul dir=3D"auto">
<li>BIP#: XXXX (to be assigned)</li>
<li>Title: Compressed Base58 Encoding for BIP-39 Mnemonics with Multisig St=
orage Format</li>
<li>Author: Zach corneliusamadeusacts10@gmail.com</li>
<li>Status: Draft</li><li>Type: Standards Track</li><li>Created: 2025-07-14=
</li><li>License: BSD-2-Clause</li></ul><b><span dir=3D"auto">Abstract</spa=
n></b><br /><p dir=3D"auto" style=3D"white-space-collapse: preserve; displa=
y: inline;"><br /></p></div><div><p dir=3D"auto" style=3D"white-space-colla=
pse: preserve; display: inline;">This BIP proposes a method to compress BIP=
-39 mnemonic phrases by mapping each word in the standard 2048-word English=
wordlist to a unique two-character string using Base58 encoding. This redu=
ces a typical 12-word mnemonic (approximately 59 characters including space=
s) to a compact 24-character string without spaces. The encoding is determi=
nistic, reversible, and leverages the existing BIP-39 word indices, ensurin=
g compatibility with current seed generation practices.</p><p dir=3D"auto" =
style=3D"white-space-collapse: preserve;">Additionally, this BIP introduces=
an optional extension for multi-signature (multisig) setups, particularly =
m-of-n schemes like 2-of-3. In such scenarios, each participant's location =
stores their local compressed mnemonic alongside the extended public keys (=
xpubs) from the other participants. These components are concatenated into =
a single Base58 string with a checksum for integrity, resulting in a ~252-c=
haracter string per location. This facilitates secure, distributed storage =
while enabling independent address derivation at each site.</p><p dir=3D"au=
to" style=3D"white-space-collapse: preserve;">This can aid in easier storag=
e, transmission, and input of mnemonics and multisig data in space-constrai=
ned environments, such as physical etchings or QR codes, while maintaining =
security.</p><span dir=3D"auto"><b>Motivation</b></span>
<p dir=3D"auto" style=3D"white-space-collapse: preserve;">BIP-39 mnemonics =
are human-readable but verbose. Compressing them to 24 characters for 12 wo=
rds reduces overhead significantly. In multisig contexts, such as a 2-of-3 =
scheme with geographically distributed participants, each location must sto=
re foreign xpubs to derive shared addresses, but private mnemonics remain i=
solated. Concatenating the compressed mnemonic with xpubs and a checksum cr=
eates a compact, verifiable dataset (~252 characters), and supports error d=
etection during transcription or recovery.</p><p dir=3D"auto" style=3D"whit=
e-space-collapse: preserve;">This does not replace BIP-39 or existing multi=
sig standards (e.g., BIP-45 for derivation paths) but provides an optional =
compressed representation and storage format.</p><span dir=3D"auto"><b>Spec=
ification</b></span></div><div><span dir=3D"auto"><p dir=3D"auto" style=3D"=
white-space-collapse: preserve;">Base58 Alphabet</p><p dir=3D"auto" style=
=3D"white-space-collapse: preserve;">123456789ABCDEFGHJKLMNPQRSTUVWXYZabcde=
fghijkmnopqrstuvwxyz</p><p dir=3D"auto" style=3D"white-space-collapse: pres=
erve;"><span dir=3D"auto">Word Index Mapping and Encoding/Decoding</span>
</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">The BIP-39 En=
glish wordlist is sorted alphabetically, assigning indices from 0 ("abandon=
") to 2047 ("zoo"). The full wordlist is defined in BIP-39 and remains unch=
anged.</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">For a w=
ord with index i (0 =E2=89=A4 i =E2=89=A4 2047):</p><ol dir=3D"auto"><li>Co=
mpute high =3D i // 58 (integer division, range 0-35 for i =E2=89=A4 2047)<=
/li>
<li>Compute low =3D i % 58 (range 0-57)</li>
<li>The two-character code is alphabet[high] + alphabet[low] (big-endian or=
der, higher digit first)</li>
</ol><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Examples:</p=
><ul dir=3D"auto"><li>i=3D0 ("abandon"): "11"</li>
<li>i=3D2047 ("zoo"): "PJ"</li>
</ul><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Compressing =
a mnemonic: Look up indices, encode each to 2 chars, concatenate (24 chars =
for 12 words).</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;"=
>Decompressing: Split into 2-char chunks, decode indices, look up words, ve=
rify checksum.</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;"=
><span dir=3D"auto">Multisig Storage Format (Extension)</span>
</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Assumes 12-wo=
rd mnemonics, 111-char xpubs.</p><p dir=3D"auto" style=3D"white-space-colla=
pse: preserve;">Structure: Compressed mnemonic (24 chars) + Sorted foreign =
xpub1 (111) + xpub2 (111) + Checksum (6 chars) =3D 252 chars.</p><p dir=3D"=
auto" style=3D"white-space-collapse: preserve;">Checksum: Double-SHA256 of =
decoded data bytes, first 4 bytes encoded to Base58, padded to 6 chars with=
'1's.</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Verific=
ation: Extract parts, recompute checksum, validate.</p><p dir=3D"auto" styl=
e=3D"white-space-collapse: preserve;">Usage in 2-of-3: Each location stores=
local compressed + 2 foreign xpubs + checksum.</p><p dir=3D"auto" style=3D=
"white-space-collapse: preserve;"><span dir=3D"auto"><b>Rationale</b></span=
>
</p><ul dir=3D"auto">
<li>58^2 =3D 3364 > 2048 for unique codes.</li>
<li>Concatenation leverages Base58 for compactness.</li>
<li>Fixed lengths for easy parsing.</li></ul><p dir=3D"auto" style=3D"white=
-space-collapse: preserve;"><span dir=3D"auto"><b>Backwards Compatibility</=
b></span>
</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Fully compati=
ble; optional extension.</p><p dir=3D"auto" style=3D"white-space-collapse: =
preserve;"><b><span dir=3D"auto">Reference Implementation</span>
</b></p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Full Pyth=
on reference implementation available upon request or in the formal submiss=
ion.</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;"><b><span =
dir=3D"auto">Test Vectors</span>
</b></p><ul dir=3D"auto">
<li>Compressed mnemonic: "1112131415161718191A1B1C" (first 6 words, extend =
to 24 chars for full).</li>
<li>xpub1: "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29=
ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8" (111 chars).</li>
<li>xpub2: "xpub68Gmy5EdvgibQVbouHdFqKg4ZP5oVjJeJUP7yKS4xEM2it2c8EL3MEN8WC4=
PTEiGK8oFUaKUV4ndBKSp53Q6fFi8DwhsBS1Lxf4H9fwnK2" (111 chars).</li>
<li>Sorted: xpub1, xpub2 (assuming lex order).</li>
<li>Data str: "1112131415161718191A1B1C" + xpub1 + xpub2 (246 chars, but us=
e full 24-char compressed in practice).</li>
<li>Checksum: Compute as per code (will be 6 chars, e.g., "2AbCdE").</li>
<li>Full storage: Data str + checksum (252 chars).</li></ul><p dir=3D"auto"=
style=3D"white-space-collapse: preserve;"><span dir=3D"auto"><b>Acknowledg=
ements</b></span>
</p><ul dir=3D"auto">
<li>BIP-39 authors for the foundational wordlist.</li>
<li>Bitcoin community for Base58 standards.</li><li>Multisig distribution i=
nsights.</li></ul><hr /><p dir=3D"auto" style=3D"white-space-collapse: pres=
erve;">I'd appreciate any feedback on this draft: Is the concept sound? Are=
there similar existing proposals I'm unaware of? Suggestions for improveme=
nts, such as in the checksum method or generalization to other word counts/=
m-n schemes?</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;">I=
f there's interest, I'll proceed with the GitHub submission after incorpora=
ting comments.</p><p dir=3D"auto" style=3D"white-space-collapse: preserve;"=
>Thank you very much for your attention to this matter and any insights!</p=
><p dir=3D"auto" style=3D"white-space-collapse: preserve;">Best regards,
Zach
corneliusamadeusacts10@gmail.com</p></span></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Bitcoin Development Mailing List" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:bitcoindev+unsubscribe@googlegroups.com">bitcoind=
ev+unsubscribe@googlegroups.com</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
bitcoindev/1da0467a-9cc6-4448-85b9-a9b01ef1aca7n%40googlegroups.com?utm_med=
ium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msgid/bitcoind=
ev/1da0467a-9cc6-4448-85b9-a9b01ef1aca7n%40googlegroups.com</a>.<br />
------=_Part_589719_516876564.1752509534180--
------=_Part_589718_827532640.1752509534180--
|