Author

Topic: Theoretical question about multicurrency hardware wallets. (Read 75 times)

jr. member
Activity: 42
Merit: 66
Thank you very much guys! You are great!
Now I understand in general how it works.
I am grateful to you for your explanations.



legendary
Activity: 2730
Merit: 7065
Farewell, Leo. You will be missed!
Your 12/24 word seed is at the top of the pyramid. Actually, the format was made that way so you can easily make a backup and understand what is written. The thing you don't see is a long string of different characters that doesn't make sense to a human, so the software isn't displaying this to you.

That string can generate all the private keys you need for all your coins. The support is already there, it's just a matter of does your software/hardware wallet work with that particular coin. That's why you don't need to generate a brand new seed if your hardware wallet introduces support for altcoin XYZ one week from now.

Think of an electrical outlet in your wall. That's your seed. You have 10 different devices that can be plugged in to that socket (those are your supported altcoins), and then you have a battery operated keyboards for your kids that only take batteries (this is an unsupported coin). You can't connect the keyboards to the socket because it doesn't have a plug. The fact it doesn't have a plug isn't the fault of your electrical outlet (your seed). If the manufacturer created a plug on that musical instrument, you wouldn't have those problems.     
legendary
Activity: 3500
Merit: 6205
Looking for campaign manager? Contact icopress!
The hardware wallet contains the seed. OK. The software wallets - for each blockchain don't have any seed info, they only get the extended public keys that are calculated in an irreversible way from the seed for each blockchain.
So the software wallets don't get any private keys and also the public keys differ. And you cannot get anything private from anything public.
The addresses can be obtained from the public key too (not only from the private key) and the coins are on the blockchain (actually the information about inputs, not even the coins themselves) and the HW signs the transactions when they need to do that.
The software wallets will look your addresses' content and when they need a tx get signed, ask the HW do that.

The only problems you can have is with bad forks, if you have money on the same addresses: then the same transaction can be broadcasted on both blockchains and will be valid. But this is not a problem of HW.


So unless you claim for coins without moving away the main coins first, you're safe.
And, as you see, there are no account/user/password like information anywhere in the process. The blockchain doesn't know nor care what are your addresses; it only cares you can sign a transaction to move them away.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
On a slightly different point, the processor in a hardware wallet is actually quite powerful for what it actually needs to do.

When you enter your seed into your hardware wallet(s), it generates a master public key that's sent to a server to query if your wallet has funds, that's all that happens. The software on your computer asks the device for that information when you connect it or when you make a new wallet.
legendary
Activity: 2268
Merit: 18509
Seed phrases are not "registered" in any sense of the word.

A seed phrase is used to generate private keys. It can generate a near endless number of private keys. Each private key it generates is at a unique derivation path, meaning that (unless you do something very non-standard) each private key is linked to exactly one address for one specific coin type.

Now, taking bitcoin as an example - every single bitcoin address possible already exists. You can send coins to any valid bitcoin address imaginable, regardless of whether or not someone possess the private key which will allow those coins to be spent. The network has absolutely no idea if someone possesses the relevant private key, because private keys and seed phrases are not registered with the network in any way. You simply create them in private, and then use them to later sign transactions. I can create millions of seed phrases and millions of private keys in private if I like, and the network has no idea I have done so.

The derivation path used to generate an address in most seed phrase using wallets is explained in BIP44. Further, SLIP44 gives you the registered coin type field number for most altcoins. Because of how this works, seed phrases generate private keys which are unique to each coin.
legendary
Activity: 1512
Merit: 4795
The coins are stored on individual blockchains, The wallet generates the same keys and addresses of individual coins with the same derivation paths and synchronized with the individual blockchains.
jr. member
Activity: 42
Merit: 66
This is a raw theoretical question.

I shall be grateful if you explain me "what happens inside of hardware wallets" :-)

Say, you are setting up a multicurrency wallet.
Your seed (24 words) is set up and your wallet is ready.
You can see 10 (just for example) different cryptocurrencies in the same wallet. OK!
But all those 10 cryptocurrencies belong to 10 different blockchains.
How come that you have only 1 seed (the same 24 words) for 10 different blockchains?

May be it works like having the same login/password for 10 different email boxes?

But imagine, you set up the same seed on another hardware wallet which suports, say,
20 cryptocurrencies.
You are ready with your set up, and you can see now 20 cryptocurrencies in your wallet.
It means 10 more blockchains.
But how these 10 new blockchains were instantly added to the wallet with the same seed (the same 24 words) when this seed was never known to them before? This seed didn't exist for these blockchains before your set up the new wallet.

If it works like with email services, then
I can chose 1 login/password and use it for 10 or 20 or 100 email services like gmail, outlook etc.
But I need to register every email box with this login/password before using it.

Or is it so that when you set up the new hardware wallet with 20 currencies, which means 10 more blockchains (in this example),  it will "register" the old seed in new blockchains automatically during set up?

Could you please explain how it works.
Jump to: