Blockchain Trade-offs: Part 2 - Privacy
All transaction data is publicly viewable on most blockchains.
This means that complete transaction histories can be recreated for particular addresses fairly easily. How much you spent, who you sent it to, and where you got your tokens. Services like Etherscan even tag well-known wallets and miners with friendly names like Binance US 3. Dune Analytics provides tools to let you do your own analysis of on-chain data.
Blockchains cannot be permissionless, decentralized, and private at the same time.
This is almost by definition - if not all transactions are public on a chain, who decides what third parties can verify and audit transactions?
The downside to public transaction data is that, for consumers, this means having all of your transactions public. For businesses, this means exposing your customer list to your competitors. See my post on Open Customer Data for a real story about that.
There are services that provide some level of privacy by mixing (laundering, washing, etc.) transactions. Accounts A, B, and C send money to non-custodial smart contract X with a signed private note that has directions to withdraw that cash to accounts D, E, and F, respectively. This essentially breaks the audit trail since it's not provable whether D's money came from A, B, or C.
These services require three forms of trust: (1) the initial key signing, (2) the relayers that are used to move transactions to new wallets, and (3) the code that's used to hold and withdraw tokens.