ledger nano s showing "Warning !" when trying to sign transaction using electrum: unusual BIP32 change path 49'/0'/0'/0/0 should be 49'/0'/0'/1/0
See original GitHub issueElectrum is using “unusual BIP32 change path” 49'/0'/0'/0/0
but should be using 49'/0'/0'/1/0
according to jean-ledger Ledger Engineer
.
49'/0'/0'/0/0
49'/0'/0'/1/0
This results in ledger showing Warning !
which is then non-obvious to proceed (press both ledger buttons). Without asking ledger support, I wouldn’t have known if it is safe to proceed.
This is a summary. The full bug report was originally posted ledger’s reddit, you can find it here: https://www.reddit.com/r/ledgerwallet/comments/b8vf3z/ledger_nano_s_showing_warning_and_freezing_when/
I am just a user so I don’t know if this should be fixed in ledger and/or electrum. Please consider joining the technical discussion on reddit or perhaps the ledger engineer can join the discussion here so this can be sorted among the two involved projects.
Issue Analytics
- State:
- Created 4 years ago
- Comments:11 (5 by maintainers)
If the “use change address” box is unchecked, the change is send to the first input address (address reuse). This part is expected behavior. The change output is used in any case; if you would remove this output, it would be a donation to the miner.
Now in your first case the change address 48’/0’/0’/2’/1/3 uses the right path. The “/1/” indicates it uses a change address. I guess the algorithm that Ledger uses to determine whether a change address is fine is too restrictive in this case. They probably erred on the side of giving too many warnings. Maybe they don’t accept derivation paths with unusual length (6 instead of 5).
Handling of change addresses in multisig setup is always a bit tricky. You don’t want that the change goes to a different wallet or even is under the control of different signers. For a hardware wallet it is better to err on the side of too many warnings, than to silently send the change to a 1 of 2 multisig where the second key is owned by someone else (some very early firmware of Trezor had this bug).
If you sign it on the Trezor, does it work there, or does it explicitly ask you to confirm the change output? I think it should work as the path matches what the Trezor is expecting.
No, I used the same (m/48’/0’/0’/2’).
I’m not quite sure what this means… but probably yes. Adding the extra passphrase. Ledger gives the option to tie it to a PIN or set it temporarily.