I read the following statement somewhere on the web: "Every blockchain address possible already existed, long before a wallet found it. The reason is that blockchain addresses are the result of a mathematical operation." Can somebody explain this to me as they would to a child. I have no computer science background.


An address is an encoding of a 20 byte value. This value is just a number, from 0 to 2^160 (there are 8 bits in a byte, so a 20 byte value has 160 bits and a bit can be 2 values). Because we know what all of those numbers are, all possible addresses are known beforehand and already exist; they are just a number.

  • Not all of them could be addresses, there might exist some set of bytes for which no hash160 of a sha256 can equal – Anonymous Oct 22 '17 at 9:19
  • @Bitcoin They would still be valid addresses for which you can send money to. It would just be that no one is able to spend from them. – Andrew Chow Oct 22 '17 at 16:25
  • I’m really just arguing semantics. – Anonymous Oct 22 '17 at 16:26
  • But you are still wrong. An address does not need to have a valid public or private key behind it. It is just a 20 byte value and it can be any 20 byte value. You can still send to an address even if there is no public key which hashes to that value. It's still an address as it can still be validly represented by the Base58 Check Encoding of that 20 byte value. This is actually how a lot of burn addresses are made; the creator generated a 20 byte value and encoded it with Base58 Check Encoding. If there is a private key associated with that address, no one knows it. It could also not have one. – Andrew Chow Oct 22 '17 at 16:30
  • I’m arguing that validity means you really want to be able to know there’s a way of spending the money again- this couples with the parents question thinking they are all pre allocated. This is again, semantics. – Anonymous Oct 22 '17 at 16:32

I would argue that the wording of that is so poor that it should be considered incorrect.

Yes, an address is a result of a calculation. However all numbers can be the result of a calculation. The quote you gave could be paraphrased "all addresses already exist because addresses are numbers, and numbers exist". Phrased this way, it's easy to see that the quote contains no useful information, and is potentially misleading.


As Andrew said, first you choose a number between 0 and 2^160 (inclusive). (1 byte has 2^8 combinations, so 20 bytes is (2^8)^20, 2^160). Then you (or, the software) calculate corresponding private key, then the public key and the address. So theoretically, a computer can find all BTC addresses. (But that's actually impossible - https://www.reddit.com/r/Bitcoin/comments/1rurll/on_the_subject_of_listing_all_possible_private/)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.