Hi guys, I'm reading "Mastering Bitcoing" and I'm curious about this topic, I read that with 64 hexadecimal you can generate 10^77 seeds and there is 10^80 atoms in the visible universe, but is it possible that you have a seed that already exist? I'm not focus on the probability, just the possibility.
Theoreticians call this possible, because it is indeed possible in theory. But your question cannot be adequately answered without focusing on the probability: The precise reason why it is theoretically possible is that there is a nonzero probability. To understand what that means requires discussing probabilities.
Humans generally have a problem grasping large numbers. That is why comparisons are given, such as to the estimated number of atoms in the observable universe. Otherwise, the reader may fail to grasp that the number is not only large:
0 It is
astronomically, unthinkably huge.
On a much smaller scale, this is also the failing which causes many people to buy lottery ticketswhereas a typical large-jackpot lottery typically has on the order of 10
8 combinations.
N.b. that 10
77 is 10
69 times bigger than 10
8. This difference is itself so vast that it is difficult to explain in understandable terms.
The size of these numbers is why I must draw an important distinction:
Theoretically, it is possible for two people with working random number generators to pick the same keys. However, in real-world, practical terms, such a thing is impossible. The aforestated nonzero probability is so close to zero that we can safely ignore it.
Aside:
Terminology note: You refer to 256-bit numbers. Such numbers indeed have 64 hexadecimal digits; but computers handle them in binary, that is to say, in bits.
Also, you refer to a seed; I presume that you refer to Bitcoins private keys, which are 256-bit numbers. A BIP 32 seed is 512 bits in total.
Most Bitcoin
addresses (excepting the new P2WSH) have only 160 bits of substantial information. Thus there are only on the order of 10
48 potential addresses of each other type (P2PKH, P2WPKH, P2SH). That is still an astronomically large number.
If one billion Bitcoin users each generated
one million addresses per second for the next thousand years, that would only come to on the order of 10
25 addresses. Granted, at that point, the probability of a birthday collision in the 10
48 address space would be non-negligible. I may consider that a long-term worry when there exist one billion Bitcoin users, each generating
one million addresses per secondday and night.
0. My apologies to mathematicians who consider huge to start with Grahams Number. This discussion pertains to numbers so puny that they can be written in exponential notation.