Your bitcoins are not anonymous if they come from an exchange. To remedy this, you must participate in a coinjoin. Explanation.
UTXO
To understand what a coinjoin is, it is necessary to first explain that bitcoins exist in the form of what we call “UTXOs”.
This extremely indigestible expression refers to small scripts (small pieces of code) which link a quantity of bitcoins to a bitcoin address.
We commonly talk about a bitcoin address, but we should rather talk about public key. An address is a public key that has been hashed via SHA-256 and encoded in base58 format.
Much shorter than keys, they allow greater ease of use and space savings for the nodes which are the guardians of the complete list of utxos.
A public key and a private key are two numbers mathematically linked by the so-called discrete logarithm problem. This so-called public key cryptography is at the heart of the bitcoin transaction mechanism.
Initiating a transaction requires a signature to prove to the nodes that we have the private key going hand in hand with the public key linked to the utxo that we want to spend.
Carrying out a transaction ultimately comes down to providing the address of the utxo to be spent, the address of the recipient, the amount of bitcoins to be transferred and the signature.
The utxo provided as input to the transaction is replaced by a new utxo linked to a new address (that of the recipient).
In concrete terms, how does that work ?
Imagine that you have received two transactions on your wallet. Let’s put 0.5 BTC and 1 BTC received on two different addresses. Your wallet will display a balance of 1.5 BTC.
By the way, your wallet does not actually “contain” 1.5 BTC. It simply hosts private keys controlling three utxos kept in memory by the nodes.
Now let’s imagine you want to send 0.6 BTC. The utxo of 0.5 BTC is not sufficient, it will be necessary to use that of 1 BTC. This utxo will be consumed in full and the difference of 0.4 BTC will be returned to you via the creation of a new utxo.
Clearly, from a single utxo two new utxos will emerge. One of 0.6 BTC linked to the recipient’s address that only he can spend. And another of 0.4 BTC corresponding to the change given to an address belonging to you.
For completeness, note that a third utxo is created during the transaction. That corresponding to the transaction fees paid to minors.
If you had wanted to send 1.5 BTC, your wallet would simply have spent the two utxos during the same transaction.
A transaction can in fact include a very large number of utxos, both on input and output. For example :
-Selection of a single utxo as input and creation of several utxos as transaction output.

-Selection of several utxos of 0.1 BTC as input creating a single utxo as output (+ the utxo corresponding to the transaction fees for the miner).

This digital flexibility makes it possible to make coinjoins.
Coinjoin Transaction
Many people do not know that a single transaction can contain several utxos belonging to different people. This functionality makes transactions known as coinjoins possible.
To do this, several people will jointly combine their transactions into one. The aim of the operation is to blur the lines so that an outside observer can no longer tell which bitcoins belong to whom.
Ambiguity is created by creating utxos of the same value in output. We will come back to this a little later. Click on the following tweet to observe an example made with the Wasabi wallet:
The main point of coinjoin is to make sure that no one knows how many bitcoins you own. In particular KYC (Know your Customer) exchanges…
The exchanges necessarily know your stack. So are the surveillance companies to whom the data is sold, as well as governments or hackers who manage to steal this data.
These “KYC” BTCs must not be mixed with other “clean” BTCs that you may have received from a friend, for example. The reason being that if you carry out a transaction combining the KYC utxos with your own utxos, the exchange will know that these other bitcoins also belonged to you.
This is what we call the “Common Input Ownership Heuristic » which assumes that several utxos combined in a single transaction are likely to belong to the same person.
Hence the interest in using a wallet asking you to write where your utxos come from. This makes it possible not to mix the utxos.
More information on tracking surveillance companies in this article: How does Chainalysis track your bitcoins?
However, it is possible to re-anonymize your bitcoins by participating in coinjoins. These are simply transactions involving a large number of participants.
Example of Coinjoin Bitcoin

This coinjoin has four input utxos belonging to Alice and Bob. Four utxos are provided as transaction input and six utxos of the same amount are created as output.
These utxo being of identical amounts, the tracks are blurred. Each UTXO has a 50% chance of belonging to Alice or Bob.
Of course, as the number of participants increases, this 50% probability decreases. It is also possible to chain the coinjoins together for even more anonymity.
Wallets that offer the coinjoin option are Wasabi, Samourai and Trezor. For more information on their specificities, go to these two articles:
-Trezor and Wasabi spark controversy
-Which wallet should you choose to anonymize your bitcoins?
Participating in a coinjoin is not free. You have to pay the coordinator who is responsible for building the coinjoin transaction. It will cost you 0.3% with Wasabi and Trezor (which use the same zkSNACKs coordinator). And 5% at Samourai.
Anonymity has a price. More or less expensive depending on the wallet…
Maximize your Tremplin.io experience with our ‘Read to Earn’ program! For every article you read, earn points and access exclusive rewards. Sign up now and start earning benefits.
