Contents

  • Entrance

  • What is coin mixing?

  • CoinJoin nedir?

  • How does CoinJoin work?

  • Privacy through deniability

  • latest ideas


Entrance

Bitcoin is often referred to as a digital currency, but this is a debatable comparison. If Alice pays Bob $10 in cash, Bob doesn't know where the money came from. If Bob later gives the money to Carol, Carol cannot infer that Alice had the money in the first place.

Bitcoin is different due to its public nature. The history of a particular coin (i.e., unspent transaction output, or UTXO) can be easily examined by anyone. The process is more like writing the transaction amount and recipient names on an invoice each time a bitcoin is used.

However, the absence of names in public addresses prevents user identities from being easily revealed. However, Bitcoin is not completely private. Blockchain analyzes are becoming more sophisticated and are connecting addresses and identities more successfully. In addition to monitoring techniques, a unit working specifically for this purpose can also reveal the identities of cryptocurrency users. To prevent this, techniques that interrupt transaction connections have emerged over the years.


What is coin mixing?

In general terms, coin mixing represents transactions aimed at disguising funds by exchanging them for other funds. But in the cryptocurrency world, coin mixing is often used when referring to services offered by third parties. Service providers collect users' coins (plus a small transaction fee) and return other coins to the user that have no connection to the ones sent. These services are also known as tumblers or blenders.

Of course, there are some questions about the security and privacy of such centralized services. There is no guarantee that mixers will refund users' money or that the coins returned do not have any problematic transaction history. Another thing to consider when using a mixer is that IPs and Bitcoin addresses may be recorded by a third party. Ultimately, users entrust their funds to someone else in the hope that they will receive disconnected coins.

A more interesting approach is CoinJoin transactions, which create significant plausible deniability. In other words, after a CoinJoin transaction is made, no evidence can be produced that definitively establishes a connection between the user and this user's previous transactions. Many CoinJoin solutions offer a more decentralized alternative to mixers. Users are not required to relinquish custody of their funds, although a coordinator may be involved in the process.


CoinJoin nedir?

CoinJoin transactions were first introduced by Bitcoin developer Gregory Maxwell in 2013. In his article, he briefly talks about how these transactions are structured and how a large-scale increase in privacy can be benefited from without making any changes to the protocol.

At its most essence, CoinJoin is about incorporating a combination of input from different users into a single transaction. Before we explain how (and why) it's done, let's talk about the basic transaction structure.

Bitcoin transactions consist of inputs and outputs. When the user wants to perform an action, he uses his UTXOs as inputs, determines the outputs, and signs the inputs. It is important to note that each input is signed independently and users can create multiple outputs (going to different addresses).


dört girdi ve iki çıktıya sahip örnek bir işlemin görseli


When we examine a transaction with four inputs (0.2 BTC each) and two outputs (0.7 BTC and 0.09 BTC), we can make some assumptions. The first is that a payment is made – the sender sends one of the printouts to a person and the change to himself. Since it uses four inputs, the highest consistent output probably goes to the receiver. The missing 0.01 BTC in the output is the transaction fee paid to the miner.

It's also possible that the sender wants to create a large UTXO from smaller UTXOs, so they combine smaller entries together to reach the desired 0.7 BTC figure.

Another assumption we can make is based on the fact that each entry is independently signed. The transaction may also have occurred with the entries signed by four different parties. Underlying this lies the principle that makes the CoinJoin process effective.


How does CoinJoin work?

The main idea is that multiple parties coordinate to create a process by introducing inputs and requested outputs. When all inputs are combined, it is not possible to say with certainty which output belongs to which user. You can see the process from the diagram below:


örnek bir coinjoin'in görseli


Here are four users who want to break the connection between transactions. They coordinate among themselves (or through a coordinator) to communicate the inputs and outputs they want to include.

The coordinator takes all the information, creates a transaction with it, and has each participant sign it before broadcasting the transaction to the network. Once users sign, it becomes impossible to modify the transaction without invalidating it. Therefore, the risk of the coordinator stealing funds is eliminated.

The process serves as a black box for mixing coins. Old UTXOs must be destroyed to create new ones. The only connection between the old and new UTXOs is the transaction itself, but at this point it is not possible to separate the participants. At best, one of the inputs can be said to have been added by a participant, and this participant may become the new owner of the resulting output.

But even this is not a complete guarantee. Looking at the above transaction, can it be concluded that there are four participants? Is one person sending funds to four different addresses of their own? Two people make two different purchases and send 0.2 BTC back to their own addresses? Are the four people sending funds to new people or to themselves? It is not possible for us to give definitive answers to these questions.


Privacy through deniability

The mere fact that CoinJoin applications exist is enough to make us suspicious of the methods used to analyze transactions. You can infer that CoinJoin is used in many transactions, but you still have no way of knowing who owns the outputs. As the popularity of these applications has increased, the assumption that all input belongs to the same user has weakened, resulting in a major step towards privacy within the broader ecosystem.

In the previous example, the transaction has an anonymity set of 4, meaning the owner of the output can be any of the four users involved in the transaction. The larger the anonymity set, the more difficult it is to link the transaction and its original owner. Fortunately, with the latest CoinJoin implementations, users have a high level of deniability by combining their input with dozens of other users without the need for trust. Recently, a transaction for 100 people was successfully completed.


latest ideas

Tools for mixing coins are important tools that all users who care about privacy can benefit from. Unlike other privacy updates that have been introduced (e.g. Secret Transactions), it is possible to take advantage of these tools while preserving the current state of the protocol.

For users who believe in the integrity and methods of third parties, mixing services offer an easy solution. For those who prefer verifiable and non-custodial alternatives, CoinJoin alternatives are superior. These operations can be done manually by technically knowledgeable users or with software tools that eliminate the need to deal with complex mechanisms. Several such tools already exist, and they are becoming increasingly popular as users seek greater privacy.