[...]
Verification must be done at receive time. Ideally there should be a public black-list of addresses to be checked against before a transaction is confirmed.
I remember such ideas popped up when allinvain got his 25k BTCs stolen, but didn't follow.
Be careful with that. There's only one thing that's worse than getting hacked and getting your coins stolen, and that's punishing an innocent Bitcoin user.
If the thief uses one of those Bitcoin scramblers (where he sends his coins to a service that charges a fee, and sends back someone else's money to the thief) then we could be unjustly accusing some Silk Road user (or whoever might use such a service) for being a thief.
I remember watching a talk (guess it was
http://www.youtube.com/watch?v=hlWyTqL1hFA) that proved that there is basically no anonymity with Bitcoins for the simple fact that the blockchain keeps track on any single transaction - forever. Remaining anonymous requires very precautious and continuous line of action, otherwise with the described methods one's addresses can be easily identified.
Those Bitcoin laundry services seem to be the only reliable method to cover the tracks to some degree. And like in real live, it is of questionable use -- the majority of their users might turn out not to be the typical Joe who wants to conceal his payments to porn sites.
Bitcoin does not claim to be anonymous at all, and like
http://en.bitcoin.it/wiki/Anonymity#Legality suspects, Bitcoin laundry services are potentially illegal. Not all existing laws are bad, and in this case the community should consider avoiding such services. I even suppose that we need to accept transaction traceability by design, since irreversibility combined with anonymity won't work for too long.
Also, if someone were to steal 10,000 BTC, he could just create 900 Bitcoin addresses for himself, send 10 BTC to each of these addresses and send the remaining 1000 BTC to publicly available Bitcoin addresses. We would then have no way of knowing which addresses belonged to the thief, and which were legimitate Bitcoin users who have published their address. Sacrificing 10% of the loot in order to avoid not being able to spend the coins seems like it would be worth it for a thief.
Here I don't see the point. If one did those 900 transactions to new addresses, they are still visible and traceable from the blockchain. One could even set up some ping-pong or loop transaction scheme to move the BTCs between new addresses many times, but in the very end the BTCs need to be spent and as soon as the thief does a payment to someone checking the black-list, bad guy is bust.
This requires the black-list to be updated with each block and might turn out difficult to handle (DoS by spreading 100 stolen coins to 1 million addresses). Is this what your 10% sacrifice is meant for?