No, it's not "just theory".
By observing timing and size of network traffic bursts, one may deduce who is the sender of a bitcoin transaction, even if the network connection is encrypted. And by default, the connection is not encrypted.
This is obviously predicated on someone already observing you, as well as actively sampling the P2P network. If you find out about a crime after the fact, it is a lot more difficult to associate a transaction with a network address.
Other spends from the same wallet may compromise your identity, if you have ever posted a public bitcoin address somewhere.
In a closed ecosystem without ISP wiretaps and social engineering, bitcoin is highly private. Use of dead drops, transaction delaying, mixing services and other means help increase anonymity, but are too difficult / time consuming for most people to want to use. So we must live in the real world, where methods of discovering who is using bitcoin are already well known and used in the field today (keylogging, data sniffing and snarfing, network timing analysis, ...)
jgarzik, I bow to your superior knowledge on this issue. Much respect.
However, you will always find out about a crime after the fact unless it is part of a larger criminal enterprise that is undergoing an active investigation. Even when there is active monitoring with wiretaps, it is fairly useless in the P2P context. This has been demonstrated by the huge proliferation of child pornography on the gnutella p2p network. The police catch a small percentage of people sharing it, and it continues to multiply faster than it is stamped out, for almost a decade, despite continuous monitoring (dedicated, large-scale, expensive, distributed) of the P2P network in real time.
Here's the test, for you, Gavin, and whoever else knows enough about bitcoin and computer science to qualify as an expert in court. Can you apply your theories about bitcoin not being anonymous to a real-world case.
Where are the mybitcoin, bitomat, and allinvain's bitcoins now? Obviously, no one knows. That's because bitcoins are anonymous. You have publicly said and continue to maintain that they are not, and I respect that opinion as much as I respect you as a core developer. But "keylogging, data sniffing and snarfing, network timing analysis" all presume that the investigator already has a target, has a court order in place to allow real-time monitoring of the target's electronic communication, and is monitoring that target when the crime takes place. This is not going to happen in the real world with a real criminal but rarely, if ever.
There could be money in it for you, as an expert witness for the plaintiffs in a lawsuit against the operator(s) of mybitcoin.com, bitomat, and the allinvain malware, probably $10k to $25k, in each case though I won't be paying you so that's just a guesstimate, ballpark fee for an expert witness in a lawsuit. Could higher if it turns out to be a $1 million lawsuit that requires your testimony.
Consider that some people that have lost bitcoin through fraud trusted the developers when they said that bitcoins were not anonymous. That there was some way to trace them.
The time has come to prove it isn't "just theory". Didn't Gavin Andresen go talk to the CIA about this at a hacker conference? If you guys have any software at all to help out or are working on tracing software, now would be a good time to release it and start building some cases.