Bitcoin Forum
May 09, 2024, 12:47:23 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Are invalid addresses valid?  (Read 1504 times)
Realpra (OP)
Hero Member
*****
Offline Offline

Activity: 815
Merit: 1000


View Profile
September 29, 2013, 05:28:25 PM
 #1

So for those who thinks this is a stupid question: The normal address format for Bitcoin addresses puts a hash/checksum of the hashed public key at the end - this means you can tell if someone say mistyped their address as the checksum will not fit.

My question is can you send money to an address with an invalid checksum? (as in will the main Bitcoin clients allow such blocks, relay the TXs and so on)

If it IS possible my second question is why?
.. and my third is which clients and online exchanges are known to check the checksum?

Cheap and sexy Bitcoin card/hardware wallet, buy here:
http://BlochsTech.com
1715215643
Hero Member
*
Offline Offline

Posts: 1715215643

View Profile Personal Message (Offline)

Ignore
1715215643
Reply with quote  #2

1715215643
Report to moderator
1715215643
Hero Member
*
Offline Offline

Posts: 1715215643

View Profile Personal Message (Offline)

Ignore
1715215643
Reply with quote  #2

1715215643
Report to moderator
The forum strives to allow free discussion of any ideas. All policies are built around this principle. This doesn't mean you can post garbage, though: posts should actually contain ideas, and these ideas should be argued reasonably.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715215643
Hero Member
*
Offline Offline

Posts: 1715215643

View Profile Personal Message (Offline)

Ignore
1715215643
Reply with quote  #2

1715215643
Report to moderator
1715215643
Hero Member
*
Offline Offline

Posts: 1715215643

View Profile Personal Message (Offline)

Ignore
1715215643
Reply with quote  #2

1715215643
Report to moderator
eb3full
VIP
Full Member
*
Offline Offline

Activity: 198
Merit: 101


View Profile
September 29, 2013, 05:37:36 PM
 #2

Only the hash of the public key is included in the scriptPubKey of the transaction. Addresses are wrappers around this hash with an additional checksum for usability/compatibility purposes. The checksum is not included in the transaction at all.

Clients are the only things which interact with addresses as you perceive them, and are the only things that deal with checksums of public keys.

"With four parameters I can fit an elephant, and with five I can make him wiggle his trunk." John von Neumann
buy me beer: 1HG9cBBYME4HUVhfAqQvW9Vqwh3PLioHcU
Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
September 29, 2013, 06:09:12 PM
Last edit: September 30, 2013, 09:04:22 PM by Stephen Gornick
 #3

My question is can you send money to an address with an invalid checksum? (as in will the main Bitcoin clients allow such blocks, relay the TXs and so on)

Software following the Bitcoin protocol would not recognize that payment transaction to an address that fails the checksum verification.

So if there was some client that didn't follow the protocol and you happened to use it and also have established a peer connection to another node running that same flawed client, then your node will show the transaction as having been sent successfully and that other node will show the payment as having been received.  But the transaction will almost never get a confirmation (unless enough miners are using the flawed client as well and a blockchain fork happens).  And no other nodes (other than those using the flawed client) will use or relay that transaction.
 [Edit, from another thread:

There is no way to recognize "wrong" address at the protocol level, at that level it is no longer a string with checksum but just uninterpreted data, therefore the transaction will be relayed and coins lost.
]

I'm not aware, offhand, of any reports of a client that doesn't implement the checksum.  [Edit: As far as exchanges and E-Wallets, that is handled internally by that vendor's infrastructure.    If an invalid address is given by a user, that E-Wallet provider's internal software might accept the transaction and subtract that amount from the E-Wallet user's account balance.  But that doesn't mean the transaction got sent by that E-Wallet vendor's node.]

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


Realpra (OP)
Hero Member
*****
Offline Offline

Activity: 815
Merit: 1000


View Profile
September 29, 2013, 07:12:31 PM
 #4

Thanks for the replies. For the record I just tested this with with Bitstamp (0.01 BTC to a purposely wrong address) and the withdrawal request simply "failed", but you get no warning or other information as to why.

Anyway nice to know.

Cheap and sexy Bitcoin card/hardware wallet, buy here:
http://BlochsTech.com
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1233


May Bitcoin be touched by his Noodly Appendage


View Profile
September 29, 2013, 08:17:08 PM
 #5

https://bitcointalk.org/index.php?topic=299961.0

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3388
Merit: 4653



View Profile
September 30, 2013, 02:21:44 PM
 #6

Software following the Bitcoin protocol would not recognize that payment transaction to an address that fails the checksum verification.

So if there was some client that didn't follow the protocol and you happened to use it and also have established a peer connection to another node running that same flawed client, then your node will show the transaction as having been sent successfully and that other node will show the payment as having been received.  But the transaction will almost never get a confirmation (unless enough miners are using the flawed client as well and a blockchain fork happens).  And no other nodes (other than those using the flawed client) will use or relay that transaction.

Stephen,

Are you sure?  You and jackjack appear to be saying the opposite of each other.  It appears that only one of you are likely to be correct in this matter.  See jackjack's post here for additional details:

https://bitcointalk.org/index.php?topic=299961.msg3219105#msg3219105

jackjack seems to say that, when using a hypothetical poorly written client that doesn't check the checksum, it depends on where the typo is made.  If it is made in the checksum portion of the address then it won't matter, since the bitcoin protocol doesn't make use of that at all in the actual transaction.  If the typo is made in the non-checksum portion, then the result will be the same as sending to a vaild address that is different than the intended address.
jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1097


View Profile
September 30, 2013, 03:33:31 PM
 #7

The checksum is not part of the bitcoin protocol and is not relayed nor recorded in the blockchain

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1233


May Bitcoin be touched by his Noodly Appendage


View Profile
September 30, 2013, 05:03:26 PM
 #8

Actually it's not a network byte, it's an address version byte
A client that can handle version n addresses can send coins to all versions inferior to n (if it can handle version n, that means it came after versions <n, so it knows how to handle them)
But it can't send to versions >n (if version n+1 doesn't exist when it was released then it obviously can't know how to handle it)

That's how bitcoins were sent to namecoin or testnet-bitcoin addresses

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
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!