I read some sources that say Bitcoin transactions are anonymous, some that say they are semi-anonymous, and some that say they are not anonymous at all. In what ways are the transactions anonymous and in what ways are they not anonymous?
Technically the appropriate term is "pseudonymous" - imagine that your bitcoin address is like an email address or an online alias: how hard it is to trace to your actions depend largely on what you do with it.
There is, for example, a bitcoin address in my forum signature that would obviously be VERY traceable back to me. On the other hand if I install the client on a separate system which only connects to the internet through TOR and obtain my bitcoins by mining them from a pool like Eligius (no accounts/email necessary, they only ask for a bitcoin address) then it would be very difficult indeed to trace those funds to me.
And of course there are shades of gray in-between. As I said, think of it as being an email address and then consider how your actions with that bitcoin address can be tied to you. It's difficult but possible to make truly anonymous bitcoin transactions.
It is considered pseudo-anonymous. With casual usage, it is not very anonymous at all. Transactions occur between cryptographic addresses and anyone can create any number of these addresses. However, Bitcoin transactions can be traced back to your IP address. The history of all transactions can be analyzed for spatial and temporal correlations. If one address can be linked to a person, then related transactions can be identified. I would say that bitcoin offers a degree of privacy not offered by other means of online payment, but for a sufficiently motivated entity, it is possible to reconstruct a person's bitcoin transaction activity. There are steps that one can take to make it more anonymous, but it is certainly not as anonymous as physical cash. And, you have to know what you're doing to use it in complete anonymity. I would not advise using bitcoin if you are seeking complete anonymity.
There are ways to acquire and use Bitcoins anonymously. This article for example states:
- install Tor and use it for all subsequent browsing steps
- visit Instawallet to anonymously create a Bitcoin wallet
- List $100 cash for sale on Silk Road Market
- Mail the cash through any US Postal Service drop box
- When the Silk Road bitcoin payment arrives, withdraw it to your Instawallet
You can now spend Bitcoins from this Instawallet with complete anonymity. Instawallet doesn't know who you are (because of Tor). Silk Road doesn't know who you are (because of Tor). The USPS doesn't know who you are (anonymous drop boxes). The person who sold you Bitcoins doesn't know who you are (anonymous US mail).
Two researchers did a study on bitcoin at the Clique Research Cluster at University College Dublin. Their results say that bitcoin is not inherently anonymous.
They are not anonymous at all. Bitcoin is just a distributed accounting scheme - every client stores all transactions, so no secret transactions are possible.
However, if there's no way to tie a specific address to you (you bought your bitcoins with cash) and no way to tie the receiver of your transaction to you (you simply donated to the EFF) then it's pseudonymous. Everybody knows that a transaction to the EFF has taken place from some address, but nobody knows it's you.
When you create a transaction and broadcast it to the network it is possible a group of well connected nodes could identify you as the owner of that transaction and therefore as the owner of a particular address. The theory is if you connected to every node on the network then the first node to relay you a transaction is the owner.
Tor can help disguise you somewhat however the tor exit node owner could still identify you if he was monitoring bitcoin traffic. A publicly available example of this technique (experimental) can be found at http://pi.uk.com/bitcoin
You can search for an ip e.g.
http://pi.uk.com/bitcoin/ip-address/126.96.36.199 (Eligius's push pool ip)
Or view ips associated with an address e.g. http://pi.uk.com/bitcoin/address/174972669bb20f9c44f2ba160c24727ef69da210
clicking on "Associated ips" which will show you all the ips who have relayed transactions involving a particular address. If one ip appears more frequently they are the probable owner.
I run 3 nodes each connected to ~1000 nodes, it is estimated that there are around 30,000 active bitcoin nodes at any one time so I am only connected to a small %. Someone with more resources can (and may already) be doing this on a larger scale.
One easy way to anonymize Bitcoins is to use a mixer based on Chaumian blinding (such as Open-Transactions.) This enables fully-untraceable transactions. Then, connect over an anonymous network such as I2P for full-anonymity.
Here is a diagram of the concept in action: http://opentransact.nevermeta.com/OT-Anon-CashOnly.jpg
One more step to make your identity more anonymous would be to use a second hand cash bought old laptop that you only use for anonymous bitcoin transactions. Adding to it, go use public hot-spots or use the war driving method to locate unsecured networks. That would make it much harder to track you.