Bitcoin is often described as anonymous because it’s possible to send and receive bitcoins without giving any personally identifying information.
Achieving reasonable anonymity with Bitcoin can be quite complicated and perfect anonymity may be impossible.
As Bitcoin.org put it,
Bitcoin is designed to allow its users to send and receive payments with an acceptable level of privacy as well as any other form of money. However, Bitcoin is not anonymous and cannot offer the same level of privacy as cash.
Sending and receiving bitcoins is like writing under a pseudonym.
If an author’s pseudonym is ever linked to their identity, everything they ever wrote under that pseudonym will now be linked to them.
In Bitcoin, your pseudonym is the address to which you receive Bitcoin. Every transaction involving that address is stored forever in the blockchain. If your address is ever linked to your identity, every transaction will be linked to you.
In the original whitepaper, it was recommended that Bitcoin users use a new address for each transaction to avoid the transactions being linked to a common owner.
As an additional firewall, a new (address) should be used for each transaction to keep them from being linked to a common owner....The risk is that if the owner of a (address) is revealed, linking could reveal other transactions that belonged to the same owner.
This would be the equivalent of writing many books under different pseudonyms. If one of your pseudonyms is linked to you, the others are still secret.
But is this method enough to ensure full anonymity?
Although this remains a best practice, it is not enough to guarantee full anonymity due to multi-input transactions.
A multi-input transaction occurs when you receive payments to your wallet to different addresses, but then you send a payment out of your wallet which pulls bitcoins from multiple addresses.
The outgoing transaction will include multiple addresses as inputs, proving that they are in the same wallet and belong to the same entity. If your identity is ever linked to any of these addresses, none of the addresses will maintain their anonymity.
In the transaction displayed below, some of the bitcoins came from address 12TBGSTqd1how9cpYKWTm4VUYw3QDDWMoB and some came from the address 19t1HyYqe254NxiTAGLrAR4gPJAZCkSXJY.
This means that those two addresses are in the same wallet and belong to the same user.
For anyone to make a transaction on the Bitcoin blockchain, they need a wallet that is connected to a Bitcoin node. Bitcoin nodes validate transactions and the blocks that make up the blockchain. If you aren’t running a full node, you are relying on someone else’s node to transmit your transactions to the blockchain.
There are other implications as well. For example, let’s say you use a ledger hardware wallet. If you use Ledger’s out of the box wallet software, Ledger Live, then you rely on Ledger to transmit and receive transactions. Ledger claims they do not tie your name to the serial number of the device. And they also do not collect information about you when you set up Ledger Live. But, they could tie your IP address to your device and then your privacy is compromised.
You can avoid all of this by running your own full node. We will cover hiding your IP address in the sections below, and it is something you should do anyway. But the point is, you should be running your own full node for multiple reasons.
If you want to get one running, this is a great video to get you started:
If are aren’t already using a VPN for your day to day internet usage, you should. When a VPN is working as intended (never use a free VPN), it hides your IP address and encrypts your traffic. That means your ISP and its partners cannot see what websites you are visiting. It also means the websites you visit don’t know your IP address and your location.
This is where running a full node comes in. Whenever you connect to your Bitcoin client, you can do it through a VPN. This will prevent onlookers from tying you as the owner of your node.
Be aware: Not all VPNs are reliable. Free VPNs are very rarely worth using. They are usually very slow and not good at protecting your data. Some paid VPNs, such as Avast VPN, even sell your data to third parties, which totally defeats the purpose of a VPN. We suggest you do your own research to find a reliable one with a good history of protecting its customer.
You can also use Tor which is a built in feature of the Bitcoin Core full node client. Tor routes your traffic through multiple user-run nodes to hide your identity, sort of like a peer to peer VPN.
Any transaction made on the Bitcoin blockchain is transparent to the public. That means that anyone who knows which address belongs to you can tie any transactions to you. This public transparency is one source of the lack of privacy in Bitcoin.
Enter the lightning network.
The lightning network is a second layer for Bitcoin. Like Bitcoin, there are nodes in the network. But unlike Bitcoin, not every node needs to keep track of every transaction. They only see the transactions that come through them. The only history maintained by a node is its history with the other nodes it transacts with. This makes trading bitcoin much like keeping an IOU between your friends and then settling up in cash at some point.
The only times the bitcoin blockchain is involved in this process is when you open or close a channel. “Opening a channel” is the same as agreeing to keeping a tab with your friends. When the tab is opened, that information is put into a transaction on the blockchain. This happens again when you settle up the tab.
What this all means is that all of the transactions that happen inbetween opening and closing the tab is not on the blockchain. Only you and your friend are aware of it.
Using the lightning network is a great way to increase the privacy of your Bitcoin transactions.
Be aware: the Lightning network is not totally stable, so it is possible to lose your coins. It's also more complicated to get a lightning node up and running than a bitcoin node as of this writing.
Here is a good video to get you started (keep in mind you need to run a bitcoin full node in order to run a lightning network node):