The issue with Bitcoin privacy
Bitcoin can be anonymous, but it is not private by default. Every transaction and address balance is publicly visible to everyone on the distributed ledger known as the blockchain. While this is good for decentralized auditability, it is bad for privacy.
There are two types of financial privacy within the scope of this article: transaction privacy: concealing the source or destination and balance privacy, concealing someone’s net worth. The equivalent of privacy on Bitcoin was originally intended to be achieved through the assumption that bitcoin addresses are not associated with any identity. But in reality, bitcoin addresses are commonly or easily associated with identities. Many people get bitcoins from a source that complies with overreaching government regulations known as KYC (know your customer) requirements. Bitcoins that are obtained from a KYC source are tagged to your identity.
Even if you obtain your bitcoin from an anonymous source, it can be tied to your identity the moment you purchase something from a business that needs to collect your information for something as simple as shipping information or email address. If the business you are paying is using a 3rd party payment processing service that complies with KYC, then your bitcoin can no longer be considered anonymous. Even if the business you are paying is using a self-hosted payment system, your information could still be leaked if the business gives up your data intentionally, unintentionally, or via government coercion. Even if you do achieve transaction privacy, you still have to worry about balance privacy. You might not want people you do business with to know your entire net worth.
Various Solutions to Bitcoin Privacy
Fortunately, there are ways to use Bitcoin privately. The methods to use bitcoin with privacy include coinjoins, coinswaps, The Lightning Network, state chains, off-chain physical transactions (such as opendimes) and WabiSabi, A method recently introduced in Wasabi Wallet 2.0.
Explanation of Coinjoins
For transaction privacy, a coinjoin conceals a bitcoin’s future post-coinjoin activity from the past and conceals the past pre-coinjoin activity from the future. The coinjoin acts as an opaque wall in a timeline that transactions pass through. If a sender of bitcoin coinjoins, the recipient is unable to determine how the sender obtained the funds. If a recipient of the bitcoin coinjoins, the sender is unable to determine what the recipient does with the funds.
There are what I consider two types of common coinjoins, a mixing coinjoin and a spending coinjoin. A “mixing coinjoin” is used for the sole purpose of making bitcoin anonymous for future use. A “spending coinjoin” is when a coinjoin is used at the time of making a transaction to someone else, in which a recipient receives bitcoin from a sender directly as an output of a coinjoin.
For balance privacy, a coinjoin can also conceal someone’s full net worth. One way to do so is for a sender to pay a recipient directly from a coinjoin, via a “spending coinjoin”. Another way is to use a coinjoin to break up someone’s balance spread across multiple addresses that are not associated with each other. This is how it is often done with a “mixing coinjoin”.