I think my proposal can be summarized simply:

1. get a child private key, hmac it and get entropy bits.
2. Use that entropy to feed BIP39 to make a new mnemonic seed

Bitcoin Core hdseed is a private key, so we can also do the same steps here

1. get a child private key, hmac it and get entropy bits.
2. Use that entropy to create a WIF to become the key for hdseed in Bitcoin 
Core.

I standardize this by using paths (like BIP44/49)

m/SEED'/BIP39'/index'
m/SEED'/CORE'/index'

index allows me to generate multiple childs for that type.

Ethen

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, March 20, 2020 6:34 PM, Ethan Kosakovsky 
<ethankosakov...@protonmail.com> wrote:

> Pavol,
>
> Yes thank you. I find abstracts hard, I will try again.
>
> Currently I need a separate BIP30 for many of my wallets. I cant have one 
> master seed for all my wallets because some are less safe than others and 
> storing the master in each environment will increase the chance it could be 
> compromised (e.g. hot environments). I cant export a hardened xprv from my 
> main BIP32 keychain and import it to my JM/Android wallet because they dont 
> support it. There's also a usability issue there since xprvs are not easy to 
> type.
>
> e.g.
>
> 1.  Join Market server (online)
> 2.  Lightning node (online)
> 3.  Trezor (offline)
> 4.  Smartphone wallet with coffee money (online) (and no HWW support)
> 5.  Bitcoin Core (doesn't use BIP39 at all)
>
>     I cannot use the same BIP39 seed across all these services. 1,2,4,5 are 
> effectively hot wallets.
>
>     The problem is BIP39. BIP32 is fine but the backup process is not human 
> friendly. It would have been better to simply serialize 128 or 256 bits of 
> entropy into words like BIP39 does and be done with it. After that, it's all 
> deterministic anyway. Instead BIP39 tries to ensure pseudorandom entropy by 
> hash-stretching the initial entropy.
>
>     We can already export keychains from BIP32, as xprvs, but there is also 
> no easy way to make as a human readable/typeable like BIP39 mnemonics. Most 
> wallets don't allow you to import an xprv anyway, but again, good luck typing 
> it.
>
>     What we are left with is an ecosystem that widely implements BIP39, so 
> practically speaking if I want to use multiple wallets and cannot share an 
> existing seed with that device, I need separate 12 or 24 word mnemonics. 
> That's 5 times the complexity to store than one (in my case). I need a new 
> cryptosteel. If I have two different geological locations for backup, it's 
> hard to add more, since I need to travel. The whole point of BIP32 was one 
> master key would rule them all - set up once, back up once and it's done. 
> BIP39 was simply to make it human friendly to write down the seed on paper.
>
>     The easy solution as I see it is have one BIP39 mnemonic as my "master 
> root key". From there it makes a BIP32 keychain and I can deterministically 
> create child BIP39 seeds by taking a hardened path, using the private key as 
> entropy ENT to create a new BIP39 mnemonic. If I do it this way I can have 
> one initial backup, and if I need more wallets with a different seed, I can 
> do it without worrying about backups. I'm future proof this way.
>
>     Ethan
>
>     ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>     On Friday, March 20, 2020 5:29 PM, Pavol Rusnak st...@satoshilabs.com 
> wrote:
>
>
> > On 20/03/2020 16:44, Ethan Kosakovsky via bitcoin-dev wrote:
> >
> > > I would like to present a proposal for discussion and peer review
> >
> > I read your proposal twice and I still don't know what kind of problem
> > are you trying to solve.
> > This should be obvious from the "Abstract" and it's bad if it's not.
> >
> > Best Regards / S pozdravom,
> > Pavol "stick" Rusnak
> > CTO, SatoshiLabs


_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to