I would like to create seed phrases for use in a software-based wallets and applications. But, I want these seed phrases to be derived from my hardware wallet, so with access only to the hardware wallet I can recreate the seed phrases. I want to generate potentially many of these, so it would be burdensome if I had to manage seed phrases for these new wallets separately. Also, these must be seed phrases and not just individual keys derived from the same HD wallet, since the many different applications I use them in only accept seed phrases.
Is there a standard for doing this in a way that does not expose my hardware wallet private key(s)?
I have come up with a method for generating seeds from my hardware wallet, without exposing the hardware wallet's seed phrase or private key, and I would like to know if it is sound.
Sign a particular message with your hardware wallet, such as "My software wallet 156"
Double check that the signature is correct by recovering the public key from the signature using the message "My software wallet 156" (Optional check)
Take the keccak256 hash of the signature
Convert the hash to a 24-word seed phrase using BIP-39
Because in Ethereum we assume the one-wayness of the keccak256 hash, I think this should be a secure way of deriving a seed phrase (but, I am unsure). Also: I am signing these messages with my hardware wallet, so I do not leak the seed phrase or private keys of the hardware wallet. No one else can produce the signature as long as I keep the signature secret, and I assume my computer is trustworthy.
Possible threats:
If someone tricks me into signing the same message, thereby revealing the signature to them, the person can derive my seed and steal my funds. I will assume that no one can trick me into doing this, and that no one else ever has access to my hardware wallet.
Do different wallets sign messages in different ways? Signing the same message multiple times on my hardware wallet yields the same signature, so I assume the signature parameters are derived deterministically from the message contents. But, if a wallet signs the same message differently than when I first derive the seed, the seed might become irrecoverable.
Forgetting the message. I can store the message or message pattern along side my paper seed phrase backup so I cannot forget it. Storing the message pattern is compact, and I won't have to amend the paper backup every time I want to create a new software seed.
Thoughts?
[link] [comments]
You can get bonuses upto $100 FREE BONUS when you:
π° Install these recommended apps:
π² SocialGood - 100% Crypto Back on Everyday Shopping
π² xPortal - The DeFi For The Next Billion
π² CryptoTab Browser - Lightweight, fast, and ready to mine!
π° Register on these recommended exchanges:
π‘ Binanceπ‘ Bitfinexπ‘ Bitmartπ‘ Bittrexπ‘ Bitget
π‘ CoinExπ‘ Crypto.comπ‘ Gate.ioπ‘ Huobiπ‘ Kucoin.
Comments