Is the Ledger Implementation of BIP39 Generation Not Following the Spec?


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:

  1. Is this going against the BIP39 spec?
  2. Why does this code allow for 1 out of every 16 words of a block to be deemed as “valid”?



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: