In order to understand, how many address could be generated from one seed we should go to the process of address generation in HD wallets.
As bitmover said, there are 4 billion children possible:
Might've got it wrong, but I'd like to ask the following just to make sure I understand: does this mean 2^65 is the max number of addresses your seed can create? I know the number is HUGE (36,893,488,147,419,103,232), but what happens if somebody somehow created the last possible address in their seed? Does it start over from the first address?
There is a very easy answer on your question:
It depends!I'm sure that you are not happy with this answer. So, here are more details.
First of all you should understand how Bitcoin public and private keys are connected and also understand the scalar addition of ECDSA points.
If
k - the private key, then Public Point is
k*G, where G is the basic point, and the X-coordinate of that public key will represent the public key --> the bitcoin address. All these operations are made under mod p (which is 2^256-2^32-2^2^8-2^7-2^6-2^4-1 - determined in bitcoin ECDSA)
So, if you now want to receieve the address from the subsequent private key
(k+1), the public point for that key will be
(k+1) * G which is exactly
k*G + G. The public point for key
(k+m) will be
k*G + m*G which is the addition of the Public Point for
k and the Public Point for
m.
This particulariyu is used in HD wallets. So you can easily calculate the subsequent address knowing the master public key, and you do no actually need to know the master private key, as the subsequent address could be calculated based on Public Point.
Why did I say in the beginning that it depends? Because, if you are facing with HD wallet there the subsequent address is only the increase of the private key by 1, so actually you do not need the limitation of 2^32 for the index, you can calculate the next address just increasing the private key by 1. So, using some seed you will start at some point (let's say the master private key is mpk = 2^100), the every next address is mpk = mpk +1 up to the order (which is close to 2^256). When mpk exceeds the order, it starts from 1 and will increase up to initial private key 2^100. So, you will have all possible private keys generating the subsequent address 2^256 times.
BUT, in reality HD wallets are not so easy. In reality HD wallets use special
chain to generate the "neighbour" addresses index, i.e. the difference in neighbour private keys of HD wallet will be not 1 (as in the easy example above), but it will be one way hash of address index and a special chain code. Thats why HD wallets uses not just private and public keys, but
master private key and
master public key. That master keys contain also the "
chain code" which is the same as in master private key, so in master public key. Knowing this chain code it is possible to generate ANY index address of the HD wallet (with the master public key) and ANY index private key (with the master private key).
So, returning to the initial question, in practice, the key out of 2^65 range in HD wallet wil not repeat the 1st key. Because of the random entropy (for chain code and master private key) and one way sha256 (for subsequent address generation) used in HD wallets.
You can also find more details about how HD wallets works here:
https://bitcoin.org/en/wallets-guide#hierarchical-deterministic-key-creationPS. Regardless of HD wallets, how many private keys (addresses) could be generated from the starting private key
6a4669bc5d8959ab24a60e15da09275c950539edf45cfc138ab527eeb4f136d8 (which is sha256('d.kevin29') - sha256 from your forum nick) making the next private key privkey n+1 as sha256(privkey n)? Is it the whole 100% available range from 1 to 2^256 or only 10% of this range? Inspite of easier calculations in this example (compared to HD wallets), there is no answer.