Hey everyone,
I was wondering about the BIP39 standard and its uniformity with importing wallets. Are all wallet providers consistent with how they use BIP39? Or do some have their own twists that can cause issues? I'm trying to get my head around this, any insight would be super helpful!
Yes but why will you do that? No need of buying hardware wallet if you want to import online seed phrase on it. Best is to create another seed phrase on the hardware wallet and send the coins there.
Every transactions is existing on bitcoin blockchain and wallets can easily recognize that.
Yes.
But why not create a new seed phrase on the hardware wallet and use
Electrum cold storage and watch-only wallet to send it to the address generated on the hardware.
Thank you for your reply.
Could you elaborate how another wallet provider does recognize what wallet has to be restored when typing in the 12-mnmemoric seed phrase?
For example:
1. Wallet got created at Exodus for example and the 12-mnemoric seed phrase has been backed up and 100$ worth of bitcoin has been sent to it.
2. Now after 2 years this seed phrase is used at electrum to restore it, how does electrum know what kind of wallet adresses are behind these seed phrase?
because there is no central database to gather the information as its decentralized?
So is there anything encrypted behind these 12 words which gets decrypted? So all the providers uses the same script to generate a compatible seed phrase for wallets? and how do they avoid that a seed phrase wont be generated twice?
You should know that your wallet software acts as a tool to generate your keys and helps you interact with the blockchain. Your seed phrase holds the access to your digital assets allowing your to recover them through any compatible wallet.
Upon restoration using a 12 word seed in a wallet like Electrum, the software then uss standards Bip39 and derivation methods like BIP44 or its own to define your key pairs and associated addresses. It then scans the blockchain for these addresses, and the balance related to it.
This is just mathematics. Bitcoin wallets uses the Hierarchical Deterministic wallet, that is, it generates all it keys and addresses from it main source.
When you import the seed phrase to your wallet, the BIP version/standards are backward and forward compatible, the wallet go through the blockchain to find every address with balance in the wallet.
Although, some wallets would require you to pick the kind of address you want to import either the Legacy, Segwit or the likes, because their derivative path are different.
everything is done through the Hierarchical Deterministic order.
OP, I hope you know that you shouldn't enter mnemonic recovery words to an online website. There's something fundamentally wrong with that, because your recovery words aren't really only in your sole possession. This is also why I don't like the concept of a non-custodial online web wallet, because both the wallet provider and you must have details that allow you both to derive private keys of such a wallet.
How does HD wallet key derivation work across different unrelated wallets? See the graph below
Source: https://github.com/EAWF/BTC-Toolbox/commit/3938785f186c76598989cc0aa017ad351483d3b1
In layman's terms: there are mathematical and/or cryptographical recipies how to derive a master private key from the mnemonic recovery words. Standardized derivation paths define how to derive child keys from such a master private key (there's more involved, but I spare you the details; it's maybe fun for you to read about it in the book "Mastering Bitcoin" which is available for free https://github.com/bitcoinbook/bitcoinbook).
All wallets that are compatible with BIP-39 mnemonic recovery words and BIP-32 HD key derivation know the rules and recipies to interchangably derive the same private keys and associated public addresses from the same mnemonic recovery words and derivation path. If they don't do it correctly, they're broken.
Maybe but not directly
Perhaps, but not directly the 2014 Blockchain.info wallets did not use the BIP39 standard used by hardware wallets such as Ledger, Trezor, or BitBox, but rather a non standard 12 word format the 12 words cannot be imported straight into a hardware wallet you would have to manually move the money to a hardware wallet after first restoring the wallet with Blockchain.com
Nothing is recognised by the Bitcoin network itself the 12 words are merely a deterministic mathematical method for recreating your private keys regardless of the platform, the 12 words are used by your wallet software (not the Bitcoin network) to recalculate the exact same private keys and addresses the wallet software can replicate the addresses as long as it comprehends the original technique
Yes, provided it is properly restored In 2014, Blockchain.info primarily used legacy P2PKH addresses, which begin with "1." All addresses and balances including any legacy addresses and the private keys that go with them, should be recovered when you use the right software such as Blockchain.com today
Bitcoin users can use different wallet softwares and they can import mnemonic seed created by one wallet software to another wallet software if two wallet softwares are compatible with each other and support similar BIP used in wallet creation.
If a second wallet software does not support BIP used in a first (initial) wallet software you used to create your wallet originally, you can not import that wallet to a second wallet software.
You can import Private keys or Mnemonic Seeds. Examples.
https://bitcoinelectrum.com/importing-your-private-keys-into-electrum/
https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/
Bitcoin Feature Compatibility Matrix. You can select more features than the screenshot.
A mnemonic or seed phrase is just an encoding of a fixed size entropy. There is no encryption involved.
Since the size of that entropy is big (from 128 bits to 256), as long as they are generated randomly it is impossible to find a collision aka to "generate it twice".
This entropy is used as the input to a key derivation function that allows you to derive child keys that are 256-bits. You can use this 256-bit derived key for whatever you want. It can be used to generate another mnemonic (24 words) or as a password, or as an altcoin private key!
BIP39 which is the most common mnemonic algorithm in use has no way of telling the wallet which type of addresses to derive. You have to manually tell it (eg. tell it to derive P2PKH addresses), then it derives those keys normally at the specific derivation path and uses the corresponding public key to create the appropriate address.
Electrum itself uses its own mnemonic algorithm which is different from BIP39 and is chosen in a way that would include a "version bit" which allows the wallet to automatically detect which type of addresses to derive.
Blockchain web wallet didn't issue 12-words BIP39 seed in 2014.
The number of words of their old "Recovery Phrase" exceed that (varies per version) and it's not something that can restore the private keys, it's for recovering the Password.
Have you actually done that or just forgotten?
Since you've used Electrum to restore a BIP39 seed by ticking 'BIP39 seed' option,
It must have showed you options to select the script type (address type) to derive from the seed, unless you've used "Detect Existing Accounts".
For the specifics:
BIP39 doesn't have the capability of identifying the right script type to derive, the client or user has to find or already know it.
e.g.: with BIP39 seed, Electrum asks the user for the script type to derive or it's "Detect Existing Accounts" button uses pre-defined derivation paths and script types to derive and look for associated transactions.
For the derivation from mnemonic to child private keys:
There's a "standard" to it.
Means that wallets should follow that standard in order to have cross-platform compatibility.
So if your wallet follows the standard, other wallets that follow the same algorithm can get to the same result.
But if it didn't followed the standard, other wallets cannot reproduce it from the algorithm used by the standard.
The software you made use of is just like a generator that creates a seed phrase from a given set of word lists and then hashes it to give you your public keys --> addresses and your private keys separately. The hard ware wallet will recognise the seed as a valid check sum as long as it is a supported format which most likely could be BIP39.
It doesn't actually matter the number of addresses or the type of address you had , as long as it was generated under that seed , once you sync with the network via a wallet software with that seed phrase you get access to all the addresses.