Post
Topic
Board Development & Technical Discussion
Re: Is it possible to generate every address from one seed
by
MrFreeDragon
on 18/10/2019, 20:19:07 UTC
Why did you limit your calculations to the BIP44 format? What prevents me from using the derivation path like m/0'/0'/0'/0'/0'/0'/0'/0'/0'/0'?

Yes, its under BIP44 convention. If you do not want to follow it you can make the non-standard deriviation path for your wallet.
The path in your example is supported for example by Electrum wallet, but it will not be supported by other wallets as it is not standard. You also need to remember the derivation path in addition to the secret seed.
HD wallets were designed for user comfort. User should write down just the seed words, and thats it. It is like brain wallet, but very very secure.

Due to different standards, there is also a warning in HD wallets: "HD wallet programs are not expected to be fully compatible, so users must only use the same HD wallet program with the same HD-related settings for a particular root seed"

To the question in the topic I would answer: Yes, it is possible to generate every address from one seed.

It depends.
Obviously, in order to generate every address with minimal operations, the function should be very simple (like private key = private key + 1). But for HD wallets, you should undertand the process of the sebsequent address creation. Even if you try to create all the addresses in your 8-deep childs HD wallet (2^32*8 = 2*256), you can not be sure that you will create them ALL, because there is no evidence that all the generated addresses will be unique. Some addresses could repeat in your complex wallet. And it is also possible that "some" addresses will NOT be created at all.

In simple wallets, there we increment a private key by 1, we can (only theoretically) generate all the addresses for 2^256 operations. But in HD wallet with complex generation process (where sha used for step calculation for every sunsequent key), you can not prove to generate every address from one seed even theoretically.

From a practical point of view, it's not possible to prove that one can generate all possible addresses from one seed. You can't know, because to find out, you'd have to try them all.

Yes, it's not possible to prove that one can generate all possible addresses from one seed