Bitcoin Forum
November 12, 2024, 03:28:57 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How is this address possible?  (Read 2683 times)
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 05:11:03 AM
 #1

Base58 discludes 0oiL, so how is an address like this one possible?
http://blockexplorer.com/address/1BitcoinEaterAddressDontSendf59kuE
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 05:17:54 AM
 #2

This one too...
http://blockexplorer.com/address/1Boxo846yTDLHgKM94aYseHBnCjJ4eYbzb
bji
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 22, 2011, 05:34:45 AM
 #3

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.
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 05:47:11 AM
 #4

So the only check for the client to make a transaction is the checksum at the end of the address?  As long as the checksum matches, then it will allow the transaction to be processed?

Interesting...
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 07:05:28 AM
 #5

I've got a couple addresses in my wallet that have both L and o. What's going on there?
o.O
EricJ2190
Full Member
***
Offline Offline

Activity: 134
Merit: 102


View Profile
June 22, 2011, 07:06:06 AM
Last edit: June 22, 2011, 07:22:12 AM by EricJ2190
 #6

Neither of those are invalid. Bitcoin's base58 skips '0', 'O', 'I', or 'l'. Characters 'o', 'i', and 'L' are fine.

Code:
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 07:07:37 AM
 #7

Neither of those are invalid. Bitcoin's base58 doesn't allow '0', 'O', 'I', or 'l'. Characters 'o' and 'L' are fine.

Code:
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
Ahhhhh, makes a whole lot more sense.  Thanks for straightening that out for me (us).
Alex Beckenham
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
June 22, 2011, 07:10:24 AM
Last edit: June 22, 2011, 08:00:06 AM by Alex Beckenham
 #8

Base58 discludes 0oiL, so how is an address like this one possible?
http://blockexplorer.com/address/1BitcoinEaterAddressDontSendf59kuE

Maybe the EFF should send their donations there.

The end of the address even seems to be sending them a special message: f59k u EFF

Samantha2011
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
June 22, 2011, 07:58:20 AM
 #9

So does someone actually own the 1BitcoinEaterAddressDontSendf59kuE address?

If so, how hard is it to make your own address like that?  Huh
EricJ2190
Full Member
***
Offline Offline

Activity: 134
Merit: 102


View Profile
June 22, 2011, 08:02:13 AM
 #10

So does someone actually own the 1BitcoinEaterAddressDontSendf59kuE address?

If so, how hard is it to make your own address like that?  Huh

I am sure nobody owns that address, but people have generated simpler vanity addresses.

See http://forum.bitcoin.org/index.php?topic=1387.0
Samantha2011
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
June 22, 2011, 08:16:13 AM
 #11

So does someone actually own the 1BitcoinEaterAddressDontSendf59kuE address?

If so, how hard is it to make your own address like that?  Huh

I am sure nobody owns that address, but people have generated simpler vanity addresses.

See http://forum.bitcoin.org/index.php?topic=1387.0
Thanks. I was thinking the encryption was broken for a second.  Cheesy
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
June 22, 2011, 01:19:10 PM
 #12

This may be an appropriate thread to mention that the the "checksum" at the end of an address does not effectively prevent single character errors or transpositions.

For instance https://blockexplorer.com/search/1ByteCoin shows that
Code:
1ByteCoinAddressesMatch1kpCWNXmHKW
1ByteCoinAddressesMatch1kpCxNXmHKW
are both valid addresses even though they only differ by one character.

Similarly, the valid addresses
Code:
1ByteCoinAddressesMatchcNN781jjwLY
1ByteCoinAddressesMatchcNN718jjwLY
only differ by one transposition.

ByteCoin
SgtSpike (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
June 22, 2011, 03:24:33 PM
 #13

Question: What is the checksum calculation?
Pieter Wuille
Legendary
*
qt
Offline Offline

Activity: 1072
Merit: 1181


View Profile WWW
June 22, 2011, 03:42:00 PM
 #14

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

I do Bitcoin stuff.
bji
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 22, 2011, 05:46:27 PM
Last edit: June 23, 2011, 12:35:24 AM by bji
 #15

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.
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
June 23, 2011, 01:13:23 AM
 #16

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.

ByteCoin


tschaboo
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
June 24, 2011, 12:34:28 AM
 #17

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.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!