Post
Topic
Board Electrum
Re: HD seeds and breaking compatibility
by
atweiden
on 25/05/2014, 16:38:11 UTC
After speaking with Thomas, it's possible to do a workaround for offline seed generation even assuming 0x01 bits.

I understand 0x01 is there for seed versioning, which is a development boon.

My concern with it is libraries like Bitcore and others may choose to do BIP32 without the 0x01, and *if* that is the only difference between electrum's bip32 implementation and, say, JS wallets based on Bitcore, electrum could potentially find itself incompatible with a growing number of wallets in the future for only that reason. However, Thomas informed me there would be more than 0x01 distinguishing electrum seeds from other bip32 implementations.

Quote
Interchangeability with other BIP32 wallets would be nice, but tbh, electrum kinda did its own thing for a while, so having electrum's BIP32 also be like "its own thing" wouldn't be too much of a problem

I agree with this. I'm also for backwards compatibility, my thoughts at the time were that if 0x01 was the only difference between electrum and say bitcore bip32, it may be worth looking at. Only way I could thnk of to do that is to do a 1.x / 2.x split.

I think jQuery makes this approach work for their userbase, but that's a very technical audience and even then I remember there was grinding of teeth when jQuery announced the 2.x / 1.x split. ChaiScript is the only other project I can think of right now that does this, and it has a highly technical audience as well.

FWIW I think people will want to upgrade to bip32, and they're going to need to generate new seeds to do that regardless.

Quote
The entire point of BIP32 was that you'd get standardized seeds across wallets.

I've heard standardized seeds across wallets isn't happening. Multibit is adding a timestamp to the 12 words, not sure what BitcoinJ and JS libs are doing, but I don't think there's concensus.