Bitcoin just does not work that way. When you spend coins, you are signing a transaction that irreversibly passes control of them to the recipient. The recipient is not a participant in this. There is nothing he can do to prevent you from doing it, except by preventing you from ever getting an address that corresponds to a key he owns.
I'm not sure where you got the idea that this is what I'm suggesting. I am not.
We could add another layer that negotiates transactions before they happen, but as long as an address can be found, there is no possible way to prevent someone from sending to it.
Yes, this is what we're looking for - now, how to
prevent the local wallet from accepting the incoming TX, so it will remain unredeemedIn the case where you send coins to person A when you meant to send them to person B, the solution is to call up person A and explain the situation.
In some situations, the anonymous nature of the network prevented Person A from knowing who Person B is, and thus how to contact them.
If you get an unsolicited transaction and decide to send them back to the last address that was known to have had control of them, you must do so with the understanding that you can not prevent people from using shared wallets and thus you might not be sending it back to the entity that sent it to you.
Yes. This is very clearly the case, but we're looking for a way to
assist in the recovery from the error. None of my suggestions prevent the initial problem, or completely corrects the situation. (IMO, using the OP_DROP message could very much help. I also thought that a OP_CHECKMULTISIG would be useful to reduce potential fraud.
It seems that the businesses who do things in this way understand the risks of sending to shared wallets, but those are outweighed by other risks. This would mitigate the risk, but not entirely.
Also, the situation where the criminal sends money to you and then shows up in person to collect is pretty silly. If he shows up with a gun, you should give him his coins back. Duh. You should probably give him all of your coins too, and whatever cash you have on you. Oddly, this is exactly the same thing that you should do if a FedEx package full of cash shows up at your house. If he sends the 50k coins from his MtGox account, and you return them, he is not going to be happy that you sent his money to a random MtGox user.
It wasn't a great example, but I wanted to suggest there might be any number of reasons a user would want his client to simply refuse to acknowledge certain transactions. I also wanted to avoid having the bigbadman come at all by not having his money. Maybe a better example would be a government sting operation?
