9

Wallets can be created offline, and transactions can be made to that completely offline wallet through by obtaining that wallet address. Now, when the guy owning the offline wallet goes online, his wallet will sync with the network and he will get his coins.

Now, if the above is true, that means the transaction has been completed without the network actually knowing that such a wallet exists, and has been created by someone. The network will actually validate a transaction to a wallet that has never gone online before.

What if that wallet wasn't actually created? What if, while making the transaction, the sender accidentally misspelled the destination wallet address by changing a number or letter? If this happens, unless that same exact (misspelled) wallet address is created again (very unlikely) those bitcoins have gone poof. Nobody owns those bitcoins anymore, because they got transferred to a wallet that doesn't even exist. Those bitcoins have completely disappeared.

Bitcoin is probably too awesome for the above to happen. So what really happens?

2 Answers 2

16

This seems to be a few related questions in one, so I will try to rephrase them individually and answer each one separately.

First it is important to understand that a wallet is just a place to keep bitcoin addresses, in the same way that a leather wallet is just a place to keep cards and notes. Bitcoin amounts are sent to an address, not to a wallet. A wallet may contain many addresses, but a transaction output sends to one specific address. So all my answers will refer to an address, not a wallet.

The questions raised:

1. Can an amount be sent to an address that the network is unaware of?

Yes. An amount can be sent to any address, regardless of whether that address has been seen before. A transaction tells the network which address to take an amount from, and which address to send it to. The address to take an amount from must contain at least that amount, or the transaction will be rejected. There is no requirement on the destination address. Even if it has never before been seen by the network the transaction will still be confirmed.

2. What if the destination address has not been created?

If the address has not been created the network will have no way of knowing this. The amount will still be moved. However, since no one has a private key for this address, no one can ever spend the amount held at this address. The amount is lost forever.

3. What if the sender misspelled the destination address?

This is unlikely to happen due to a typo, since a bitcoin address has built in error checking. Changing one letter or number in a valid bitcoin address will not give a different valid bitcoin address. The mistyped address will be invalid and your wallet software should recognise this and refuse to send the transaction.

4. Bitcoin is probably too awesome for the above to happen, so what really happens?

Built in error checking makes it very unlikely that someone would accidentally send an amount to the wrong destination due to a typo. However, it is perfectly possible to lose money through other types of accident. If you accidentally type in the valid bitcoin address of the wrong person, the amount will be sent successfully but not to where you intended. Bitcoin transactions are not reversible. Sending to the wrong person cannot be undone. If they choose to they may return the amount to you, but you cannot force this. It is also possible to send an amount to an address that you thought you had the private key for, only to later realise the private key has been lost. Sending to an address for which the private key has been lost means the amount is permanently lost.

For more technical detail please see Meni's answer.

4
  • 3
    Perfect answer. I think you should also add this from the bitcoin wiki: "The probability that a mistyped address is accepted as being valid is 1 in 2^232, that is, approximately 1 in 4.29 billion." That gives you some perspective - it's almost impossible to misspell an address.
    – Vikram
    Mar 12, 2014 at 15:49
  • Thank you @Vikram. Meni Rosenfeld's answer is both more concise and more in depth than mine. Hopefully the two answers together will provide for a broader range of readers than either alone. Since Meni's is the more technical answer, I won't include the probability figures in mine, to keep it simple. It's fascinating quite how resistant to typos it is though... Mar 12, 2014 at 16:52
  • 1
    @githubphagocyte: I didn't include this bit originally to keep the answer concise, but at your suggestion I added it. The checksum in Bitcoin addresses is actually quite weak in modern standards. It's possible to design an ECC (Error correcting code) such that mistyping a single character will never lead to a valid address. More powerful codes are also possible, but those would require the address to be longer. Mar 12, 2014 at 17:06
  • The new Bech32/BIP173 native segwit address format uses a BCH checksum that guarantees any 4 errors will always be detected. Apr 30, 2018 at 6:16
5

Bitcoin addresses have a built-in checksum. If a character is misspelled, this will result in an invalid address which does not correspond to any pubkeyhash, and thus cannot be sent to the network, so nothing will happen (and the user will be prompted to enter a correct address instead). So it is nearly impossible to "accidentally" send to an address for which nobody has a corresponding private key.

(Specifically, the checksum is 32 bits which for all purposes are random, and thus the probability that a mistyped address will happen to be valid is one in 2^32, that is, about one in 4 billion.)

However, doing so purposefully is possible and will lead to destruction of the coins (at least until the relevant algorithms are broken). The most well-known address for which no private key is known is 1BitcoinEaterAddressDontSendf59kuE.

1
  • Some people have (for various -mostly ideological- reasons) sent coins to such "destroyer" addresses. Hopefully someone will eventually find a private key for them and gather a lot of wealth, though the possibilities are almost nil. It's been used on purpose at some alt-coins (like Novacoin) to destroy pre-mined or insta-mined coins in an effort to (re)gain credibility.
    – Joe Pineda
    Mar 16, 2014 at 15:34

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