Author

Topic: Are invalid addresses valid? (Read 1505 times)

legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
September 30, 2013, 12: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 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
legendary
Activity: 1792
Merit: 1111
September 30, 2013, 10:33:31 AM
#7
The checksum is not part of the bitcoin protocol and is not relayed nor recorded in the blockchain
legendary
Activity: 3472
Merit: 4801
September 30, 2013, 09:21:44 AM
#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://bitcointalksearch.org/topic/m.3219105

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.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
hero member
Activity: 815
Merit: 1000
September 29, 2013, 02: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.
legendary
Activity: 2506
Merit: 1010
September 29, 2013, 01:09:12 PM
#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.]
vip
Activity: 198
Merit: 101
September 29, 2013, 12: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.
hero member
Activity: 815
Merit: 1000
September 29, 2013, 12: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?
Jump to: