11

Some bitcoins have been permanently lost when they are sent the the following addresses. The explanation I've found is that they contain characters that are invalid in Base58

Specifically, base58 only allows the following characters (excluding 0oiL)

static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; 

What is the current running total of "lost" bitcoins, or lacking that, what is the general process needed to figure this out?

(What API methods would you call to get the data to determine this?)

2 Answers 2

13

The characters excluded in Base58 are 0OIl. oiL are allowed, making these two valid addresses.

It is impossible to send to an invalid address, as Bitcoin transaction scripts actually include raw 160-bit hashes (which by definition have a one-to-one correspondence with valid addresses), not addresses. Bitcoin clients will simply refuse to do anything if an invalid address is given.

There is probably no problem with 1Boxo846yTDLHgKM94aYseHBnCjJ4eYbzb. The problem with 1BitcoinEaterAddressDontSendf59kuE is that, given an English dictionary, it has very low Kolmogorov complexity, making it extremely unlikely that anyone has a private key (or even a public key) for it.

Likewise, 1111111111111111111114oLvT2 is known to correspond to the public key hash 0, which is so simple it is again extremely unlikely anyone has the keys for it.

3
  • Why would your "1BitcoinEater" simple address be less likely to be randomly generated than a "Kolmogorov complex" one? Afterall, it is simple because you (or Kolmogorov) said so, but the generator does not make a difference. Couldn't you have taken a "complex" address for your purpose, and achive the same "extremely unlikely that anyone has a private key for it"?
    – Totor
    Commented Dec 28, 2013 at 21:50
  • @Totor: We're not comparing randomly generating the simple address with randomly generating the complex address. We're comparing randomly generating the simple address with "non-randomly" generating the simple address. If you pick random letters you have 2^(-160) chance to get the eater address, whereas if you pick random phrases it's more like 2^(-40). That's an odds ratio of 2^120:1 in favor of the "random phrase" hypothesis, so observing the simple address the Bayesian deduction will be that the address was generated as a random phrase (or some other method which is not random letters). Commented Jan 1, 2014 at 16:28
  • 2
    @Totor: Whereas, for the complex address, there is no competing hypothesis that would have a higher probability of coming up with the particular address. That's what being complex means. Commented Jan 1, 2014 at 16:29
11

None. It's impossible to send bitcoins to an invalid address. Those addresses are valid, though they might not be owned by anyone. Look at pszBase58 more carefully: 'o', 'i', and 'L' are allowed. The first few posts in that forum thread are wrong.

The network doesn't know anything about Bitcoin addresses. At the network level, you never send bitcoins to an address. Bitcoins are sent to "scripts". Your client converts addresses into appropriate scripts. If an address is invalid, it can't be converted into a script. So the idea of sending BTC to an invalid address is nonsensical.

2
  • 1
    If doing low-level transaction handling, it is possible to send a transaction with a script that can never be satisfied. Technically the script is still valid (and therefore added to the blockchain) but in effect the coins will be lost. I think those less technically inclined would consider this to be an 'invalid' address.
    – ktorn
    Commented Mar 4, 2014 at 1:02
  • @ktorn You can even send BTC to invalid scripts that can't be properly parsed. Scripts aren't evaluated until used. But non-standard scripts of any type can't be converted to version-0 Bitcoin addresses. A P2SH address could represent a bad script, though the address itself wouldn't be invalid.
    – theymos
    Commented Mar 4, 2014 at 1:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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