Bitcoin provides some anonymity but it’s up to bitcoiners where they want to be on the spectrum from fully anonymous to fully identified.
Bitcoin transactions do not contain identifying information about the sender or receiver. However they do contain some clues such as:
These clues could be combined with further information about the bitcoiner that might come from:
Clues in transactions plus further information from the above sources could be combined to identify the sender or recipient, if they had not been careful to stay anonymous.
Almost nobody has the expertise, access to information, resources or desire to identify bitcoiners in this way. However some governments and hackers do.
Bitcoiners can prevent people from getting the further information needed to identify them by using good bitcoin privacy practices like:
Most bitcoiners don’t bother to do those things, just like most people don’t bother to use encrypted communications or encrypt their hard drives. On the other hand bitcoiners who are doing something they want to keep private, are more likely to do those things.
Some altcoins already have better privacy that bitcoin, including dash, monero and zcash. There is a lot of research and testing underway on how to improve bitcoin’s privacy, which the entire community supports.
I think the next bitcoin hard fork will include improvements to bitcoin privacy. I hope we aggressively make multiple significant privacy improvements that can not be turned off. Everyone seems to agree but unfortunately core development is extremely slow.