According to the BIP39 spec, invalid checksums should be displayed by software.
However, Ledger's BIP39 generation tool (which looks like a copy of Ian's tool), will not show an error for invalid checksums.
Example phrases to test with:
Correctly Generated Recovery Phrase: square cactus nurse pond share rescue prepare bottom suffer speed will tomorrow
another "valid phrase" (different but invalid checksum): square cactus nurse pond share rescue prepare bottom suffer speed will account
another "valid phrase" (different but invalid checksum): square cactus nurse pond share rescue prepare bottom suffer speed will acoustic
For a 12 word phrase, if you split the 2048 wordlist into 16 word blocks, every 1 word out of the 16-word block will not produce an invalid mnemonic (or checksum) error.
My two questions:
- Is this going against the BIP39 spec?
- Why does this code allow for 1 out of every 16 words of a block to be deemed as "valid"?