3 ms·
Correct me if I'm wrong, but afaik there is no "eventual" invalidation in bitcoin: either the destination address fails the checksum (so nodes immediately rejec
by parliament32 7y ago
Correct me if I'm wrong, but afaik there is no "eventual" invalidation in bitcoin: either the destination address fails the checksum (so nodes immediately reject the transaction), or you send the funds to an (unused) address where they'll sit forever.
- dkersten 7y agoIf the transaction doesn’t end up in the canonical version of the blockchain (ie the nlockchain still says its unspent), then surely you can transfer it again, no? Of course if the blockchain does say it was transferred to a nonexistant address then its gone forever. I guess if it passes checksum, this is the likely scenario?
- parliament32 7y agoA tx will go from your client (which should reject an invalid tx to start with) to a node (which will verify and reject an invalid tx) to many other nodes (which will all verify and reject an invalid tx) to the node that's publishing the next block (which will verify and reject an invalid tx). I guess a broken client could think a tx is valid when it's not and not let you re-spend it, but it'll be rejected pretty much immediately after that. Technically there is no such thing as a nonexistent address. There are used and unused addresses -- an unused address is just an address with no history, but there's no way to tell if anyone has the private keys for it or not. I guess it's possible accidentally typo an address that somehow passes checksum (let's pretend that people actually type in addresses... nobody does that, copy/paste or QR code) but it's very very unlikely. For the checksum tech details: https://en.bitcoin.it/wiki/Base58Check_encoding#Creating_a_Base58Check_string https://en.bitcoin.it/wiki/Base58Check_encoding#Creating_a_B...
- heptathorp 7y agoYou are mostly correct. Except only your Bitcoin client sees the checksum/address, the raw transaction has just the pubkey hash encoded in the address. So there is no checksum for other nodes to check. If you accidentally crafted a transaction with the wrong hash in the scriptPubKey, the network would happily accept it.