A cornerstone of the currency rests on random folks like this threads OP not disclosing transaction IDs? That sounds like an incredibly weak cornerstone to me.
Actually, disclosing the transaction ID would demonstrate the real cornerstone of bitcoin: the fact that when you get your fingernail under the surface, the whole thing peels up. Identifying Satoshi's account would likely reveal a great deal of information about him and his dealings, and the de-anonymizing can occur anytime, even years or centuries after the fact.
I have a question about Bitcoin: If someone spends some bitcoin at a cafe, then spends some at the XXX porn shop down the street, can the cafe look at the block chain and deduce that the person visited the porn shop?
You can see that I sent 0.00597702 BTC to an address beginning "1Jtfi". That was worth $3.99 yesterday, suggesting a USD pricing structure for that transaction.
In the previous transaction, you can see 0.1198 BTC ($79.49) being paid to me. You might deduce that I sold something for bitcoin, or that I bought some bitcoin from someone. Given that they came from six different addresses, you might conclude that this is probably not a direct person-to-person trade, but went through some sort of escrow or mixer. The odd USD value might suggest non-USD, but it could easily have been $80 yesterday.
Prior to that, I paid the same 1Jtfi address 0.0278 BTC. If you track the exchange rate back to the date of that TX, you can see it works out to $3.99 again, showing that I'm paying the same entity the same amount of money on multiple occasions.
Prior to that, 1AVZ paid me 0.00271878 BTC
Prior to that, I paid 0.0326 BTC to 1P4v.
Let's assume that 1Jtfi is the cafe (it's actually me buying reddit gold for people, hence $3.99 each time). They can look up my blockchain info (not just on blockchain.info, that's just a convenient way of browsing it) and see the whole ledger.
If the cafe knows that the 1P4v address is a porn site (let's say the porn site publish a donation address), then it's incontrovertible.
Click the 'change address' 1BTCcq (nice vanity address).
Now try to track the seller, guess which of the two addresses is him and which is his client. It's pretty obvious that 1DPwh is the buyer and 1P5s1 is the same seller again.
Now we can basically track the smaller amounts, with the theory that the guy I bought from is selling small amount from a large stash, keep clicking the larger amount,
Ah, now who's our guy? Well, it's probably the one who kept an odd number of coins (much more likely someone will buy 5 BTC than 4.86764344 BTC).
Now, the proper way to do it is for me to set up a new address for each transaction and move my funds between addresses every time I transact. That way you can't prove whether me sending $80 to 1abcde is sending to myself or to someone else. You can't trace the funds like we just did, because there's no time to establish patterns. You'd also want to avoid sending BTC to an address you've sent to before, and avoid round numbers of BTC. And avoid transacting at timestamps with a pattern to them.
So, it's theoretically capable of a decent level of anonymity. But as with most things, in practice it is susceptible to human error.
By the way, if you liked this comment, feel free to donate bitcoin to 1PWSyqweZ7SZ8AMi9hWRtEU5Cd7PEvb9em - maybe I can have fun tracing your transactions too :)
Replying again to say that I am extremely touched by both donations that I received, and I have sent them on to the address being used to gather funds by the bitcoin community as an apology to Dorian Nakamoto.
You always give a transaction you received before in order to spend coins. However, you're supposed to use a fresh (source) address for every new transaction (the wallet software does it for you).
You can't (with the default wallet software) chose which transaction (called unspent transaction) you use in order to spend you coin (this is called coin control).
That is, you can trace coins, not owners, unless you're always using the same source address.
The payer uses a source address, which changes because each transaction should "kill" the original source, sending it's money to two addresses: the payee and the "change" that goes back to the payer but using a newly invented address.
You can invent a new destination address each time you transact (to get paid or to receive change). You make a new address by picking a random number and doing some math.