Bitcoin is presented as anonymous network. But in fact it's a transparent global payment system. Bitcoin is not offer a 100% confidentiality, if you use it incorrectly. A confidentiality is depend of your actions.
Bitcoin is an open source system, but many people don't understand why is this so. All bitcoin transactions are opened, monitored and constantly saved in Bitcoin network. Bitcoin addresses is an only information, that you may check in network, to find how many bitcoins have been sent and where. These addresses are created by user's wallet. As soon as addresses are created, they are related to appropriate transactions history. Anybody can see a transaction, check the wallet balance and all incoming and outgoing operations. The purpose of anonymity disclosure is in payment logics, when user is should present himself, to buy something. That's why you should use an address one time, and hide your addresses from anybody.
To protect your anonymity, you should use a new bitcoin address every time, when you get a new invoice. Also you may use several wallets for different purposes. In this way you will isolate own transactions, so nobody can find a relationship between. The people who sent you coins won't know the wallets you have, so it's important thing.
You shouldn't be carefull only when you get a public donation and show your earnings to anybody, otherwise a bitcoin address showing up, on social networks or any web page, is not a good idea. In case if you made it already, you need to know, that when you move some coins between addresses, it will be a public operation, saved in address history. Also you shouldn't post information about transactions and purchases, to avoid bitcoin-address hijack.
Bitcoins is a decentralized network, so it's possible to monitor transactions relay and save IP addresses. The bitcoin-nodes are relay all transactions of other users, as well as own. That means, to find a source of particular transaction is might be a difficult thing, and any bitcoin-node is can be recognized as a source by mistake. You may hide IP address of own machine, for example, with TOR, so it won't be disclosed.
Some online services, so called as "bitcoin mixers" or simply "mixers", allow you to decrease traceability, exchanging similar sums between different clients with independent bitcoin-addresses. It's important to know, that legality of these services usage is can be different and depend of various laws in countries around the globe. These services assume that you trust them, and you are not worry about coins steal or transactions traceability. Even if they can prevent traceability of small sums, it's hard to do that for large number of transactions.
There are many changes under development, to improve a confidentiality. For example, new payment API features, they are aim to prevent a cooperative usage of payment addresses, that helps to create association between. Many features are under development, which affect in some way on confidentiality, for example a possibility to joint transactions of random users.