4

Ever since I started hearing about Bitcoin, people have been mentioning "coin mixers" to me, and told me to use them. However, even early on, when they were practically throwing away Bitcoins to the left and to the right for anyone to grab, due to their low market price, these always seemed fishy to me.

I just couldn't trust them, even for small amounts of Bitcoin. Certainly not with all my coins.

Today, I just could never trust such a service to do anything but simply steal my coins and don't do anything besides keeping them.

At the same time, I really want privacy. I've paid such extra margins for all these years for purchasing Bitcoin in a "P2P" manner, but my name/identity is still known by various individuals with whom I have traded or purchased goods from.

When I start my Bitcoin service, I will necessarily have to send some Bitcoin out to customers every now and then. And then it will pick "pieces" from my wallet which are known to be tied to me! And that will violate my privacy. But I can't risk losing them entirely, or pay even more than what I've already lost from paying all these extra costs and not to mention the huge transaction fees that the Bitcoin network itself charges. Extra fees for "mixing" the coins is more or less unthinkable.

Are these really a thing? Or just another scam? How can I trust them? Do you all use them? Why wasn't this feature simply built into Bitcoin and automated?

3

Bitcoin privacy is a complicated and nuanced topic, to really get a good idea of what is involved, I would recommend reading this article. That said, I can still provide you with some more direct answers to your question:

people have been mentioning "coin mixers" to me, and told me to use them. However, (...) I just couldn't trust them, even for small amounts of Bitcoin.

You are smart to not trust your coins to someone else. In the early days of the network, some people ran 'mixing' services, which would accept deposits from users, and then return coins with an unrelated history back to those users. This would break the chain of ownership, but it has several obvious downsides:

  • You have to entirely trust the service to not steal your funds
  • You have to entirely trust the service to not be keeping logs of coin ownership
  • You have to entirely trust the service to be doing a good job of sending you coins with an unrelated history

So for most users, this is not a good solution to the problem of wanting to maintain privacy while using bitcoin.

The good news is that over time new techniques have been invented, that allow the user to obfuscate the history of their coins, without encountering the issues named above. Some examples of these techniques include what are broadly referred to as 'coinjoin' transactions, and 'payjoin' transactions.

'Coinjoin' transactions are a special transaction that take inputs from a large number of users, and then create outputs of equal value. As a user, the equal value output you receive from this transaction cannot be mapped back to your specific input, so you gain privacy in the sense that your output could now potentially have come from any one of the (many) inputs. By employing some clever cryptography and partially signed bitcoin transactions (PSBTs), you as a user never have to trust any server, or other participant of the transaction. The software will only sign your input if it can see that you are being paid one of the outputs, so there is no trust involved! Your coins always reside in addresses that you alone control the keys for. Some examples of wallets that provide this functionality include JoinMarket, and Wasabi.

'Payjoin' transactions provide privacy in a different way: they work to break some of the heuristics used by chain-spying companies, by creating transactions with inputs from both the payer and payee. For anyone that is not party to the transaction, it becomes difficult to infer which input(s)/output(s) were the actual payment. I believe BTCPayServer implements this feature, and there are likely a couple other wallets that can participate in this style of transaction as well (note: it is an interactive process, so you need both wallets to be capable, and online). As with the coinjoin transactions mentioned above, there is no trust involved in participating in a payjoin transaction.

There is also further research being done, to investigate the viability of other privacy enabling techniques. For example, this idea for a coinswap protocol was posted to the bitcoin-dev mailing list just a couple weeks ago, complete with a working implementation.

It isn't clear which techniques will be most useful in the future, but there certainly is a lot of promise for a more private bitcoin economy, if the right infrastructure is built and adopted.

And all of that said, by simply participating in a coinjoin/payjoin transaction, the user does not magically gain an impenetrable privacy shield. For example, if the user receives a coinjoin'd output, and then goes to search for that bitcoin address using a popular block explorer website, then they have just doxxed their interest in that address to the operators of that website (and their ISP, the NSA, etc). So now all of those entities can infer that that particular output is owned by someone at that particular IP address! Woops! Now some privacy has been lost, even if the on-chain history has been obfuscated. To reiterate what I first wrote: bitcoin privacy is difficult (but it is not impossible).


But that's not all! By using the lightning network, you remove the footprint of your payment on the blockchain entirely. Lightning transactions can be extremely private, they don't even need to be publicly broadcast, they can simply be communicated over private (encrypted) communication channels. Lightning is still in somewhat early stages of development and adoption, but it shows a great amount of promise, especially in terms of user privacy. (further to this, if taproot is adopted, then even the opening/closing of lightning channels will become more private, making lightning payments even more difficult to track).


So, to answer your last questions in brief:

Are these really a thing?

Yes

Or just another scam?

Some mixers are definitely scams, but the legitimate ones that use proper protocols are not.

How can I trust them?

You don't have to. With a good implementation, there is no risk of theft.

Do you all use them?

Every user must decide for themselves what level of privacy they want. Not all users have the same needs or desires. But I think it is generally a good idea to engage in privacy-preserving pratices.

Why wasn't this feature simply built into Bitcoin and automated?

In the future, it is entirely possible that wallets will employ these techniques 'under the hood', so that users gain the benefit of privacy, without even realizing what is going on in the background. I believe this is already the case with BTCPayServer, for example.

Other more advanced cryptographic techniques do exist, that can hide transaction information (such as output values, or addresses), but many of these techniques scale even more poorly than bitcoin already does, or have less battle-tested cryptographic assumptions, or require trusted setups, etc. Attempting to add such functionality to the bitcoin network would be a massive undertaking, which imposes a lot of risk on the network. For this reason, finding clever ways of crafting transactions to preserve privacy, without requiring major changes to the network's code, seems to be a more viable alternative.


I've mentioned a few software projects in this post; general disclaimer: I am not associated with any of those projects, I may or may not have used them in the past, and I will always encourage you to do your own research before running any bitcoin software.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.