Tell me more ×
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

up vote 8 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

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

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.