Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

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?)

share|improve this question

2 Answers 2

up vote 11 down vote accepted

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.

share|improve this answer
    
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 Dec 28 '13 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). –  Meni Rosenfeld Jan 1 at 16:28
    
@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. –  Meni Rosenfeld Jan 1 at 16:29

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.

share|improve this answer
    
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 Mar 4 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 Mar 4 at 1:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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