3. Would it be possible to pay for something with a transaction that contains an invalid scriptPubKey, (e.g. the pubKeyHash is invalid - if I understand this correctly would mean this output cannot be used as an input for further transactions), and trick the recipient into accepting this as payment? If not, why not?
It is possible only if the recipient is stupid enough not to verify the transaction.
How do you verify the transaction?
I assume that just checking, say with blockchain.info would be insufficient (it doesn't know what private keys you have access to).
However, can I assume that most (if not all) wallet applications will have checked that I can spend the funds before displaying the transaction or including the balance in the total?
Thanks