Bitcoin is not anonymous, but, rather, pseudo-anonymous. By now, most Bitcoin veterans know this. It’s less obvious to many, however, why Bitcoin is not really anonymous by default, and what can be done to de-anonymize Bitcoin users – and what Bitcoin users can do to reclaim their privacy.
Below is an advanced beginners guide to get a better understanding of the nuances of Bitcoin and anonymity.
How do Bitcoin transactions work?
To better understand Bitcoin’s anonymity, it's necessary to first understand how Bitcoin works on a basic level.
Most importantly, the Bitcoin protocol effectively consist of a series of transactions. These transactions are basically a package of different kinds of data, among which are transaction inputs and transaction outputs. Inputs refer to Bitcoin addresses used to send bitcoin from, and can only be spent using the private key associated to that address. Outputs effectively refer to addresses used to send Bitcoin to. Each Bitcoin transaction transfers Bitcoin from one or several inputs to one or several outputs (therefore, transferring bitcoin from one or several addresses to one or several addresses).
It's possible for a transaction to simply have one input and one output. But that is rare, as it would require that the amount of bitcoin to be sent (the output) precisely equal the amount of an earlier amount received (the input).
Instead, it's quite common that a transaction consists of multiple smaller inputs in order to make for one larger transaction. If someone, for instance, controls three different inputs of one Bitcoin each, and needs to send 2.5 Bitcoin to an online store, the software will merge all three inputs into a single transaction.
And it's even more common that a transaction consists of multiple outputs. This is because Bitcoin uses change addresses. Change addresses allow users to create a transaction that returns the excess amount of Bitcoin from one or several inputs back to the original sender. So in the example above, the software will typically create two outputs. One output attributes 2.5 Bitcoin to the address belonging to the online store, while another output will attribute 0.5 Bitcoin back to the newly generated (change) address controlled by the sender.
What makes bitcoin 'anonymous'?
There are generally three reasons why Bitcoin is sometimes regarded as anonymous.
First, unlike bank accounts and most other payment systems, Bitcoin addresses are not tied to the identity of users on a protocol level. Anyone can create a new and completely random Bitcoin address (and the associated private key) at any time, without the need to submit any personal information to anyone.
Second, transactions are not tied to the identity of users either. As such, (and as long as a miner includes the transaction in a block) anyone can effectively transfer bitcoin from any address to which it controls the (private) keys, to any other address, with no need to reveal any personal information at all. Like physical cash, not even the receiver needs to know the identity of the sender.
And third, Bitcoin transaction data is transmitted and forwarded by nodes to a random set of nodes on the peer-to-peer network. While Bitcoin nodes do connect to each other using IP-addresses, it's not necessarily clear for nodes whether the transaction data they received was created by the node they connect to, or if that node merely forwarded that data.
How is anonymity defeated?
There are basically three ways to de-anonymize Bitcoin users.
First of all, even though Bitcoin transactions are randomly transmitted over the peer-to-peer network, this system is not airtight. If an attacker, for instance, has the means to connect multiple nodes to the Bitcoin network, the combined data collected from these different nodes might be enough to determine where a transaction originated.
Second, Bitcoin addresses can be linked to real identities if these real identities are used in combination with the Bitcoin addresses in some way. This includes addresses used to deposit or withdraw money to or from a (regulated) exchange or wallet service, publicly exposed donation addresses, or addresses simply used to send bitcoin to someone (including the online store) when using a real identity.
But perhaps most importantly, all transactions over the Bitcoin network are completely transparent and traceable by anyone. It's typically this complete transparency that allows multiple Bitcoin addresses to be clustered together, and be tied to the same user. Therefore, if just one of these clustered addresses is linked to a real-world identity through one or several of the other de-anonymizing methods, all clustered addresses can be.
RE: Musing Posts