BIP93: Restrict master seed lengths and Revise codex32 string length specifications#2077
BIP93: Restrict master seed lengths and Revise codex32 string length specifications#2077BenWestgate wants to merge 1 commit intobitcoin:masterfrom
Conversation
Clarified codex32 string specifications, including character limits and decoding processes. Updated references to BIP-0173 and adjusted payload character limits.
|
This is ready for review if you prefer the regular/long checksum switch being a property of the codex32 format rather than application specific. A new #2040 approach avoids "ms" length restrictions by leaving checksum selection up to each application. This still improves insert/delete error correction, but we have not studied how much, so is less urgent. |
|
Hi @BenWestgate, I haven’t followed in detail which of your proposals is at what stage, but if this should be ready to move forward, could you please notify the authors that their review will be required for this to proceed? |
|
This helper PR was requested by I no longer think BIP93 should define which checksum non-"ms" applications must use. If he or another author agrees we can close this. |
|
@BenWestgate: Thanks for the update. Let’s close this in a couple weeks on or after 2026-03-13, if we don’t hear anything else from the BIP owners. |
|
Closing as discussed. |
codex32 string length limited to always cover HRP characters, master seed bit lengths limited to multiples of 32-bits, updated master seed encoding/decoding processes.
PR helper for #2040: prepares text for general HRP lengths by defining limits based on string length not data part length and deprecating master seed lengths that violate a general codex32 string length > checksum type rule.
Why
Restricting seeds to 32-bit multiples makes valid secret seed lengths differ by at least 6-7 characters reducing ambiguity to two valid lengths for insert/delete-correcting error correcting wallets.
Key changes c286c2c
Other changes:
<ref>notes for the less obvious changes./refso Footnotes now appear at the end of Rationale (they're invisible in master)Test Vectors
I have a reference implementation with test vectors according to this spec update, as well as #2040, so I will add these if reviewers agree about the text changes.