Bitcoin Privacy Tutorial for Growers
This tutorial is not about keeping bitcoins safe in your wallet. It is about safety, security and privacy when using bitcoins to trade, buy and sell stuff.
Bitcoin is very specific because offers pseudonymous transactions by default. All transactions are kept in bitcoin blockchain so it is very transparent as it allows to track movement of particular coins between addresses. (See it in action on Blockchain.info) Bitcoin addresses are just bunch of random numbers and characters without any connection to your name, ip address or software you are using but they are identifiable by means described in this article. Thus they are not 100% anonymous but only pseudonymous. There are services which aim to track down and disclose different "clouds" of addresses which belongs to particular bitcoin services. If you want to see example of this analysis, visit WalletExplorer.com.
If you want to keep your privacy and make bitcoin transactions as anonymous as possible you can use following tips to obfuscate and hide your transactions, so that they are not easily trackable by blockchain analysis.
What private information can be possibly obtained from blockchain?
- How many bitcoins a person owns
- Where (how) he has obtained them
- How many bitcoins he is sending
- To whom he is transferring bitcoins
- Reason for particular payments
- Where he lives, which bitcoin wallet client he is using, etc.
Motivation: Why track participants of transactions?
- just for fun
- tracking stolen coins
- sniffing customers or clients
- checking incomes by financial institutions
- indentifying interesting targets
How to find owner of bitcoins or other information about bitcoin address?
- we can try google that address (or search in some discussion forums)
- look up tag at Blockchain.info or similar pages
- follow transactions in blockchain
- analyse internet traffic on the bitcoin network
How transactions work?
Inputs to transactions are outputs from previous transactions. Input is spent as a whole. Any surplus goes on address called "change address". Fee to miners is deducted automatically and it is equal to difference between sum of inputs and outputs. Coinbase transaction (miners rewards) have no inputs, only outputs.
Types of wallets
How you can handle your coins?
- Private wallet
- wallet with single address (mobile clients)
- more addresses, but created per request, change goes to one of them (Multibit, blockchain.info)
- change address is new everytime (bitcoin core, electrum, armory)
- online service
- one or more publicly known addresses (Satoshi Dice)
- every user gets his own address, but these are recycled (BitPay)
- every user has only his own addresses (one or more)
Practices that facilitate monitoring (what to avoid)
- using same address for multiple payments
- linking addresses together to the input of a single transaction
- sending a rounded or otherwise numerically significant amounts
- receiving same amounts regularly
- paying non-standard fee
- vanity addresses (own custom tailor-made address like 1Overgrow5aiajabed3g1jefjab)
- unconventional (or always the same) number of inputs / outputs or address types
- spending yet unconfirmed outputs
- creating transactions in typical times (habits, time zone)
- doing business with people who do not respect practices for anonymity
How to look up identity of participant on non-active address?
- send fraction of bitcoin and wait for them to combine with another address (repeatable)
- sending fragments of bitcoins to addresses around watched address (to identify other connections)
Tracking using other means:
With help of external servers:
- light clients do not download blockchain and do have to ask external servers about incoming payments. this way they expose list of addresses
- when looking at our addresses at websites we also disclose our or neighbouring addresses to blockchain explorers.
Tips and tricks against tracking
How to be the most anonymous?
- Always use a different address for each incoming payment
- If it happens that one receives multiple payments to one address, then spend all coins at once (in one transaction)
- Use a client which sends the change to newly created (unused) address
- Use a client which can use Coin Control and manually select all inputs to transaction (especially be careful about purses that
select inputs in deterministic fashion)
- If it is necessary to combine the inputs, it is better to put together transactions incoming from single person or single change address
- If surplus amount is too low it is possible to send change to external service (anonymous!) and withdraw someday in future
- Time to time send bitcoin through some centralised service or mixing service (see below).
- Use CoinJoin, blockchain.info "shared send", DarkWallet, etc.
- Best solution is to send bitcoins to anonymous multi-currency exchange, convert it to another currency (ideally with integrated mixing), send it to other currency exchange and trade alt-coin back to Bitcoin then withdraw. (see below)
- Use one of more anonymous alternatives (Monero, Darkcoin, BitcoinDark ...)
- If on some of old addresses some change arrives, leave them there (or you can destroy them using OP_RETURN)
How to verify anonymity?
Use web sites like WalletExplorer.com
Time to time some sites are hacked and bitcoins stolen. I do not endorse any of sites and I'm listing them for your information only! Use them at your own risk!
Biggest bitcoin forum: https://bitcointalk.org/
https://bitmixer.io (TOR mirror: http://bitmixer2whesjgj.onion/)
These services wash bitcoins by mixing them with other bitcoins. The downside is that your coins are probably mixed with other dirty coins... But if you chain more of these services your coins are practically untrackable.
Person to Person exchange
When selling or buying bitcoins use person-to-person transaction to avoid using bank account linked to some official exchange.
Three way exchange (Altcoins)
Very hard to track are transactions through other altcoins. Use Bitcoin -> Altcoin -> Bitcoin exchange through two independent and anonymous alt coin exchanges. Deposit BTC on first, buy altcoin, send altcoin to second exchange, sell altcoin to bitcoins and withdraw BTC.