If one were to send bitcoins to an address that has not been created yet, what would happen? Would the coins be lost forever? Would they just sit there until the address and key pair are generated?
There's no such thing as a "non-existent" address.
Other than valid addresses created by a client in which the private key is kept secret there are also are:
- Invalid addresses (which will fail the client's sanity checks and thus cannot be used when building a transaction)
- There are also valid addresses in which no key exists. The private key is required to spend the funds. If the private key was lost or one was never generated (such as for 1BitcoinEaterAddressDontSendf59kuE) any amounts sent to that address are lost and can never be spent. There is no way to know if a private key exists for 1BitcoinEaterAddressDontSendf59kuE or if it was a purposely created throw-away address.
- There are also valid addresses in which no key can exist. An answer to a related question provides an example.
There is no way to know for sure that a valid address has no private key. What is known is that a program like VanityGen would not be able to create an address that includes many readable words like the address 1BitcoinEaterAddressDontSendf59kuE contains using the type of computational capacity that exists today. So it can be assumed beyond any realm of possibility (but not absolutely, positively 100% guaranteed) that bitcoins sent to that address are gone for good.
Yes. By the way this is exactly the point of a paper wallet like you can get from https://www.bitaddress.org/, you generate an address and private key that don't exist anywhere in the digital world, but you do transfer funds to the address. When you need them you add the private key to a bitcoin client to claim it.
Good luck by the way with finding out the private key of an address that was created randomly.
The bitcoins would be lost.
It's also very, very, very (times a very big number) unlikely that a randomly chosen address would ever be generated, as such capability would mean that brute force attacks could be performed and Bitcoin as a payment system would no longer be secure.
you can, absolutely, send coins to any address, that is, any hash whatsoever. that is the basis for this project: https://www.btproof.com
what I don't understand is, according to https://en.bitcoin.it/wiki/Address :
A Bitcoin address, or simply address, is an identifier of 27-34 alphanumeric characters, beginning with the number 1 or 3, that represents a possible destination for a Bitcoin payment
which begs the question, if the hash doesn't have to adhere to the above specification, then why have the spec?
I want to note. There is about 2^256 valid private keys. But there is only 2^160 valid addresses. Hash functions are used to convert public key to address. So, it is very-very likely, that for any valid bitcoin address there is a valid private key.