BIP-39: say what separates two words - #2237
Conversation
The BIP never says it. The rule is on the wordlist page, which requires the ideographic space for Japanese, and it is not quoted here; the note there also holds a caveat that ASCII and ideographic spaces are the same "as long as your code ... [does not try] to split the phrase input by the user". The reference implementation does split it, on U+0020, and so cannot read back the Japanese sentences it writes. No test vector changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
If this lands and there is interest, I am happy to write the follow-up on the The BIP mandates NFKD and says nothing more, so implementations differ and the I left it out of this PR because it is new normative text rather than a |
The BIP never says it. The rule exists — the Japanese wordlist page requires
the ideographic space U+3000, added in #130 — but it is not in the BIP text,
and the note there holds a caveat: ASCII and ideographic spaces are
equivalent "as long as your code never shows the user an ASCII space
separated phrase or tries to split the phrase input by the user".
The reference implementation splits the input, on U+0020, and so cannot read
back the Japanese sentences it writes:
to_entropyraises on all 24Japanese vectors of its own
vectors.json. The fix of the referenceimplementation is open there: trezor/python-mnemonic#145
This adds three sentences to "From mnemonic to seed": the separator, the
Japanese exception, and what it means for software that splits a sentence
before normalizing it. No test vector changes, and nothing that is correct
today becomes incorrect.
Found downstream in btclib: btclib-org/btclib#258.
🤖 Generated with Claude Code