Crazy idea, need to spit it out.
I was thinking about -multisession and @UdjinM6’s concern about backup issues for the user.
What if we could somehow lock a wallet.dat + deterministic wallet together?
wallet.dat spends 26 or so keys to sign and hash the HD wallet’s seed frase. At the same time, HD signs and hashes the wallet.dat’s password. One seed word per .dat key, one pw character per HD key. Crazy secure, and opens a world of possibilities! (I think). I imagine this is insane coding work, but please bear with me
Example, you could have full control of the HD wallet from a wallet.dat password, or in case of disaster be able to recover a wallet.dat to current state, using just an HD wallet seed. Just need to derive from a 1 of 2 multi-sig relationship for HD wallet to recover .dat’s keys, or vice versa. Both can extract and redeem script keys, right? Maybe this could open up some possibilities.
You could even give “special privileges” to either .dat or HD in some situations, creating a 2 of 3 relationship to balance usage of keys to certain funds, ex: Masternodes.
Since the wallet.dat “owns” the HD seed, it could eventually be used as a sort of HD keypool buffer. Potentially useful for mixing?
Specify one custom change addresses on the .dat redirecting to an HD key… so if .dat destroyed, from seed you could recover the mixing current state by spending all of the wallet.dat keys from that one HD custom change address with multisig privilidges.
On wallet creation QT “links” up and controls the seed, so it can use the HD keys as it pleases. In simpleton terms;
-> create new Wallet.dat
- “Introduce HD seed or Click Here to Generate new HD wallet”
-> = “Please Backup this new Seed phrase”
- “Introduce Wallet.dat password to confirm”
- “Introduce Seed to confirm”
Does this make any sense at all ?
In this case -multisession could be on by default. All the mix keys could be in the safe possession of a 1 of 2 multisig HD wallet key or seed.