The coins sent to that address are gone forever as it is not possible to claim them, because it is not possible to produce a public key that will hash to that value in base58.

The transaction was perfectly valid - it sent bitcoin to an invalid address, that's all.

I find it strange that block explorer shows that string for the address though; shouldn't it be formatting the binary of the bitcoin address hash in base58 before printing it? base58 definitely does not include some of the characters in that printed address, as you have pointed out. Very strange.

first or last 32 bits of the double sha256 checksum of everything before.

Bitcoin addresses are 160-byte hashes of a public key, and are represented in base-58, which is an ASCII encoding that does not use 0, O, I, and l, to avoid confusion.

The addresses that ByteCoin is talking about were clearly not produced by hashing a public key. The chances of producing recognizable text like that in a bitcoin address are so incredibly small as to be practically impossible.

So those addresses were just typed in by somebody and the hash applied to the end (which is the random-looking stuff at the end).

ByteCoin is right in that the addresses are valid and contain a single transposition which makes the argument that bitcoin addresses are very difficult to mistype because they use a checksum seem wrong.

The addresses that ByteCoin is talking about were clearly not produced by hashing a public key. The chances of producing recognizable text like that in a bitcoin address are so incredibly small as to be practically impossible.

Indeed the addresses do not have a public key associated with them at the moment or indeed for the foreseeable future.

Most addresses cannot be mistyped into other valid addresses with just the change of one character or one transposition.I estimate that there's about a 0.1% chance that a given address can be converted into another valid address by substituting just two of the characters, so it's not too much of a risk.

However, given that the checksum ensures that the addresses are 5 or 6 characters longer than an unprotected address, the guarantees that they provide are far from optimal. It would be better to employ an error correcting code designed to detect and correct substitutions, insertions, deletions and adjacent character transpositions. It's reasonable to imagine that equally protected addresses using the new scheme might be two characters shorter.

It would be an interesting problem to determine which of the bitcoin addresses with known public keys or holding a significant balance are most vulnerable to being mistyped.

It would be better to employ an error correcting code designed to detect and correct substitutions, insertions, deletions and adjacent character transpositions. It's reasonable to imagine that equally protected addresses using the new scheme might be two characters shorter.

That's a very nice idea. Although I would not aim for a correcting but just a detecting code. As long as the code is shorter than the address itself there is always a chance that the correction is wrong. And you don't want your client to correct to a wrong address. Never ever. But reducing the risk of a mistype being accepted by the client would be very welcome.