What is CoinJoin?
CoinJoin is a Bitcoin transaction anonymization technology.
Who created CoinJoin and when?
Bitcoin Core and Blockstream developer Gregory Maxwell introduced the CoinJoin protocol in 2013.
What problem does CoinJoin solve?
Contrary to a frequently repeated thesis, Bitcoin does not offer complete anonymity. By analyzing the public blockchain, transactions can be associated with a specific person.
Bitcoin transactions consist of inputs (sending addresses) and outputs (receiving addresses). When a user wants to complete a transaction, he selects the unspent incoming transaction balances (UTXO) as inputs, designates the outputs, and signs the inputs. Each entry is signed independently, and users can set multiple exits.
An example transaction with four inputs and two outputs:

This transaction consists of four inputs (0.2 BTC each) and two outputs (0.7 BTC and 0.09 BTC). It is obvious to the observer that a payment is taking place - the sender sends someone one of the exits and returns the change back to himself. Since four inputs were used, the larger output is most likely intended for the recipient. 0.01 BTC is deducted from the outputs - this is the commission that goes to the miner.
Also, the observer may assume that the sender wants to create a large UTXO from the smaller ones, therefore, combines the smaller inputs in order to obtain the desired output (0.7 BTC).
Another assumption that can be made by seeing a transaction is that each entry is signed independently.
CoinJoin aims to solve the problem of the lack of genuine anonymity in bitcoin.
How does CoinJoin work?
An analogy of the CoinJoin model is the situation when a group of people combines their cash into a single amount, puts it in a wallet, and goes to the store. All members of the group can make sure that no one spends more than they should, but in the process of making purchases they do not necessarily use the very banknotes that they themselves put into a common wallet.
In the case of CoinJoin, several parties jointly create a transaction; each side provides entrances and desired exits. When all the inputs are combined, it becomes impossible to say with certainty which user this or that output belongs to.
Example:

Four participants want to break the link between transactions. They agree among themselves (or through a specially designated coordinator) and announce which inputs and outputs they want to include.
The coordinator embeds information in the transaction, and each participant puts a signature, after the transaction is transmitted to the network. After the participants have signed up, the transaction cannot be modified; otherwise, it becomes invalid. Thus, there is no risk of theft of funds by the coordinator.
A transaction serves as a kind of black box in which coins are mixed. Old UTXOs were destroyed and new ones created. The only connection between old and new UTXOs is the transaction itself, but it is impossible to identify its participants. At most, you can know that the participant has provided one of the entrances and, possibly, is the new owner of the final exit.
Does CoinJoin have weaknesses?
- CoinJoin does not provide complete anonymity: senders and recipients are displayed on the blockchain. In addition, transactions can be identified through the CoinJoin Sudoku analysis tool . You can deal with this problem by using only certain amounts for transaction output values (0.1 VTS, 1 VTS, 10 VTS, etc.), but this creates additional difficulties and limitations.
- To form a transaction, you need to create groups and establish interaction between participants.
How is CoinJoin developing?
Improving CoinJoin, the developers proposed a number of extensions and improvements to the protocol: JoinMarket , CoinShuffle and Chaumian CoinJoin technologies .
Where and how is CoinJoin applied?
As of April 2020, two wallets support CoinJoin technology - the mobile Samourai Wallet with its associated Whirlpool technology and the desktop Wasabi Wallet.
On April 5, 2020, the expected birthday of Satoshi Nakamoto, the Bitcoin community first celebrated CoinJoin Day, a transaction mixing day. In honor of this day, the Wasabi developers introduced a new release.
CoinJoin is also used in MimbleWimble , a PoW protocol with scalability and increased privacy.
What is ZeroLink?
ZeroLink is a protocol that provides anonymous use of bitcoin.
Who created ZeroLink and when?
The ZeroLink protocol was created and introduced in August 2017 by the developers of Samourai Wallet and Hidden Wallet.
How does ZeroLink work?
ZeroLink solves a key problem that arises during the mixing process according to the CoinJoin model. It consists in the fact that the third party (individual, server, wallet) knows the source and purpose of each bitcoin. Thus, a single point of failure occurs.
ZeroLink operates on the basis of two types of wallets: for pre-mixing and for post-mixing. The first type of wallet stores initial funds; the user sends them to the switch (tumbler), which distributes the mixed bitcoins to the wallets, followed by mixing.
ZeroLink users provide inputs and outputs (addresses “from” and “to”) from the wallet for pre-mixing; the outputs are encrypted, so the switch does not know the final recipients of the coins that it receives. Encryption is also known as blinding.
Further, the switch cryptographically signs the “blinded” output by means of the cryptographic “blind signature”. Thus, transaction data can be verified at each stage, confirming the correspondence of the “blinded” data to those that were sent initially.
Users then connect to the ZeroLink switch via Tor or a similar network, and provide the switch with non-blinded outputs. They are signed by the same signature of the “blind” signature and compared with the initial blinded outputs, confirming their legitimacy.
After confirming the legitimacy, the switch adds outputs to the large CoinJoin transaction and sends it to users who confirm the transaction with their private keys.
After confirmation, the switch publishes the transaction, which miners add to the block. Thus, all bitcoins are “cleared” and again become interchangeable.
Where does the ZeroLink protocol apply?
ZeroLink is used in Wasabi and Samourai wallets , and it was also the basis of the now closed HiddenWallet project .
What is Stonewall?
Stonewall is a technology for protecting transaction privacy from cluster analysis.
Who developed Stonewall and when?
Stonewall technology was introduced by Samourai Wallet developers in May 2018. Stonewall was developed as a replacement for BIP126 in the initial implementation of Samourai Wallet after vulnerabilities were identified that could lead to less entropy in transactions.
fourteen
What are the features of Stonewall?
Stonewall does not use CoinJoin technology, but creates the appearance of such use. At their core, Stonewall transactions are ordinary transactions: with their help, one user sends bitcoins to another. The trick is that users combine their transactions into one, adding an arbitrary number of exits and exits to the standard Bitcoin transaction. For a third-party observer, the transaction looks like a CoinJoin transaction, which makes standard blockchain analysis less efficient.
Transactions using Stonewall are distinguished by a higher entropy compared to standard bitcoin transactions, which increases the cost of automated chain analysis and complicates the analysis of the transaction graph. Stonewall transactions are carried out in such a way that they get a Boltzmann estimate that exceeds zero (Boltzmann is a script that returns entropy transactions, providing a system of indicators of the connectivity of inputs and outputs through blockchain analysis display technologies).
Stonewall is not as effective as other technologies, such as Confidential Transactions (CTs), but it reduces the amount of information available to blockchain analysts.
Where is Stonewall used?
Stonewall is built in by Samourai Wallet as a default feature, but is not necessarily involved in every transaction.