Author

Topic: Beginner's Guide to CoinJoin (Read 376 times)

legendary
Activity: 2604
Merit: 2353
November 07, 2020, 04:17:58 PM
#10
Also, how about making use of mixer, because mixers can also mix bitcoin transactions in a way to maintain high level of privacy. Chipmixer is good for this purpose.

Coinjoin and mixer are very different from each other.

Mixer is a centralized service and you are trusting the third-party for privacy and hoping they won't log or leak your digital footprints like IP logs, addresses from which funds are sent, etc. That's why even though several mixers keep popping time-to-time, it is very difficult for us to trust them. Reputable mixers spent thousands to get hold of the market and whole industry is working on the trust factor.

Whereas, coinjoin as mentioned in the OP is a trustless mechanism. You are the one who's directly spending your UTXO and getting output back on your own bitcoin address in the same transaction.

However, Coinjoin although providing privacy don't hide you completely. It just makes you stand in the group of 50-100 and let the tracker guess which one is you. Moreover, if you make mistake in spending the output by either spending it with non-coinjoined UTXO or send that back to your already used address, the whole purpose is defeated. On the other side, mixer provides comparatively higher degree of anonymity for the world (except the mixer owner) especially using Chipmixer which provides you private keys of bitcoin moved before the bitcoins are sent for mixing.

So both have pros and cons.
Your post is a little bit OT IMO, I don't really understand why you're promoting this paid service here?
Tumblers have a big disadvantage : they force you to mix your coins with dirty money, and to potentially get coins from criminals.
legendary
Activity: 2366
Merit: 2054
November 04, 2020, 07:00:18 PM
#9
I have seen many members of this forum like o-e-l-e-o and 20kevin20 commenting good about Wasabi wallet, so this wallet is a good wallet for CoinJoin purpose.
You should also try itself or make it test by using Testnet BTC and watch your coin mixed. or if you have free time, try also Samourai wallet, mixing using coin using Whirlpool.
copper member
Activity: 2940
Merit: 4101
Top Crypto Casino
November 04, 2020, 12:55:09 PM
#8
...


Using Coinjoin, the user also needs to rely on a 3rd party for privacy especially its server, and to not steal the BTC. Then depending on the 3rd party, the back end server can know which inputs/outputs are yours (i.e. Whirlpool) and probably more than that

Regardless of the fact that you need to trust that the protocol is implemented correctly.
Otherwise, an example of what could be done...https://github.com/kristovatlas/coinjoin-sudoku

The point with Coinjoin is the deniability since like you say we belong to a group of xx persons, so we could simply say "perhaps it's me but perhaps it's someone else too, guess it from 50 people"
legendary
Activity: 1918
Merit: 1759
November 04, 2020, 10:15:31 AM
#7
Also, how about making use of mixer, because mixers can also mix bitcoin transactions in a way to maintain high level of privacy. Chipmixer is good for this purpose.

Coinjoin and mixer are very different from each other.

Mixer is a centralized service and you are trusting the third-party for privacy and hoping they won't log or leak your digital footprints like IP logs, addresses from which funds are sent, etc. That's why even though several mixers keep popping time-to-time, it is very difficult for us to trust them. Reputable mixers spent thousands to get hold of the market and whole industry is working on the trust factor.

Whereas, coinjoin as mentioned in the OP is a trustless mechanism. You are the one who's directly spending your UTXO and getting output back on your own bitcoin address in the same transaction.

However, Coinjoin although providing privacy don't hide you completely. It just makes you stand in the group of 50-100 and let the tracker guess which one is you. Moreover, if you make mistake in spending the output by either spending it with non-coinjoined UTXO or send that back to your already used address, the whole purpose is defeated. On the other side, mixer provides comparatively higher degree of anonymity for the world (except the mixer owner) especially using Chipmixer which provides you private keys of bitcoin moved before the bitcoins are sent for mixing.

So both have pros and cons.
hero member
Activity: 2702
Merit: 716
Nothing lasts forever
November 04, 2020, 09:39:04 AM
#6
You should also research about legal concern of mixed coin/coinjoin. Some centralized exchange assume deposited Bitcoin from CoinJoin process is suspicious/malicious or forbid using Bitcoin (withdrawn from exchange) to CoinJoin service which are very ridiculous.

Few references:
https://docs.wasabiwallet.io/why-wasabi/LegalConcern.html
https://twitter.com/bittlecat/status/1207621591820951552
Thanks for the info I will surely check this out. Getting to know the legal concerns is definitely worth a read.  Smiley

But does it really matter ? I think the legal concerns would be the same for CoinJoin and Coinmixing. I remember reading a post where a particular exchange was bothered why it's user was sending his coins to a mixer after the withdrawal. It's definitely ridiculous for these exchanges to determine legal concerns on coins linked to mixing services. I know obfuscating the history of bitcoin addresses might lead to encouraging money laundering but don't people do that already with bitcoins and also with other currencies including fiat.

If this keeps on going then these central authorities will keep increasing their dominance on us eventually leading to damaging the decentralization part of bitcoin  Undecided
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
November 04, 2020, 06:31:39 AM
#5
You should also research about legal concern of mixed coin/coinjoin. Some centralized exchange assume deposited Bitcoin from CoinJoin process is suspicious/malicious or forbid using Bitcoin (withdrawn from exchange) to CoinJoin service which are very ridiculous.

Few references:
https://docs.wasabiwallet.io/why-wasabi/LegalConcern.html
https://twitter.com/bittlecat/status/1207621591820951552
legendary
Activity: 2310
Merit: 4085
Farewell o_e_l_e_o
November 03, 2020, 08:48:39 PM
#4
People use Coin Join to protect their privacy and / or anonymity but the level of anonymity they get at the ends will depend on 2 main factors:
  • How they mix their coin with Coin Join transaction (big or small anonymity set)
  • How they use their received coin after the Coin Join transaction (coins post-mix)

  • The larger the anonymity set, the better
  • The less times you post-mix your coins, the better.
  • In case you decide to post-mix your coins, please only mix exactly the amount of UTXOs you want to spend from, not post-mix all UTXOs you get from Coin join transaction.
  • Ideally, use each post-mix UTXO for each of your sending transaction

Sources to read more (just my invitation)
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
November 03, 2020, 03:29:29 PM
#3
I have read an article before about Joinmarket, it is also an open source, and it has a plugin for electrum wallet. Is this true?

I have seen many members of this forum like o-e-l-e-o and 20kevin20 commenting good about Wasabi wallet, so this wallet is a good wallet for CoinJoin purpose.

Also, how about making use of mixer, because mixers can also mix bitcoin transactions in a way to maintain high level of privacy. Chipmixer is good for this purpose.
hero member
Activity: 2702
Merit: 716
Nothing lasts forever
November 03, 2020, 12:49:45 PM
#2
Honorable mentions :

tranthidung for
People use Coin Join to protect their privacy and / or anonymity but the level of anonymity they get at the ends will depend on 2 main factors:
  • How they mix their coin with Coin Join transaction (big or small anonymity set)
  • How they use their received coin after the Coin Join transaction (coins post-mix)

  • The larger the anonymity set, the better
  • The less times you post-mix your coins, the better.
  • In case you decide to post-mix your coins, please only mix exactly the amount of UTXOs you want to spend from, not post-mix all UTXOs you get from Coin join transaction.
  • Ideally, use each post-mix UTXO for each of your sending transaction
hero member
Activity: 2702
Merit: 716
Nothing lasts forever
November 03, 2020, 12:48:13 PM
#1
Hello guys,
 
Lately, I came across  the word “CoinJoin” quite a few times and I wondered what it is. So I thought to do a little research to find out what it actually is and how it works. I read a few articles but was only able to understand the high level context of CoinJoin. So I decided to spend some time on it and understand it well enough to create a beginner’s guide so that any person who reads it knows what it is and how it works. I have tried to make this guide as simple as I can to make it beginner friendly.



Introduction


As we all know, a bitcoin transaction consumes one or more inputs and creates one or more outputs. These outputs are the UTXOs (Unspent Transaction Output) which becomes the input of the next transaction. A standard bitcoin transaction may spend many inputs to get enough value to make the intended payment and this often leads to creating ‘change’ output which goes back to the sender’s address as an unspent output. All of these are visible on the blockchain and any person can look into these transactions to find out the amount that was transferred from one address to another.
 
Bitcoin addresses are pseudonymous which means privacy can be compromised through reuse of these addresses. This is why it is advised to use a new address every time we make a new transaction. Over the years Blockchain analysis techniques have grown increasingly sophisticated and are capable of linking addresses to identities more efficiently. This is where “CoinJoin” provides a privacy efficient way of making transactions.
 
CoinJoin was first introduced by gmaxwell (Gregory Maxwell) in 2013 in his post “ CoinJoin: Bitcoin privacy for the real world “. CoinJoin doesn’t require any softfork because it does not require any changes to the bitcoin protocol.

What is CoinJoin ?


CoinJoin is a technique where multiple participants combine their coins into one large transaction consisting of multiple inputs and multiple outputs (including change outputs). Here, an observer cannot determine which output belongs to which input. This makes it difficult for anybody to determine which participant was making a particular transaction. CoinJoin can be applied many times and as many transactions can be grouped together to make it more privacy efficient.

People use Coin Join to protect their privacy and / or anonymity but the level of anonymity they get at the ends will depend on 2 main factors:

  1. How they mix their coin with Coin Join transaction (big or small anonymity set)
  2. How they use their received coin after the Coin Join transaction (coins post-mix)

  • The larger the anonymity set, the better
  • The less times you post-mix your coins, the better.
  • In case you decide to post-mix your coins, please only mix exactly the amount of UTXOs you want to spend from, not post-mix all UTXOs you get from Coin join transaction.
  • Ideally, use each post-mix UTXO for each of your sending transaction

Example



Here, the anonymity set is the size of the privacy group.  I could have explained more on the anonymity set but it will be too technical for a beginner friendly guide. The last 3 transactions are the change output from the 3 inputs. There is no way to determine which transactions from the anonymity set belongs to which input. The only thing an observer can know is that one of the output from the anonymity set is derived from one of the inputs thus increasing the privacy.
 
CoinJoin transactions

https://blockstream.info/tx/e4a789d16a24a6643dfee06e018ad27648b896daae6a3577ae0f4eddcc4d9174
https://blockstream.info/tx/ef329b3ed8e790f10f0b522346f1b3d9f1c9d45dfa5b918e92d6f0a25d91c7ce
https://blockstream.info/tx/f82206145413db5c1272d5609c88581c414815e36e400aee6410e0de9a2d46b5

 
How to get started ?

The only two production ready platforms are Wasabi wallet and Joinmarket.
Wasabi is an open-source, non-custodial, privacy-focused Bitcoin wallet for Desktop, that implements trustless CoinJoin.
JoinMarket is a CoinJoin implementation aimed at improving the privacy and fungibility of bitcoin transactions.

https://wasabiwallet.io/
https://github.com/JoinMarket-Org/joinmarket-clientserver

 
Tip

One input per bitcoin address would be efficient to use for a CoinJoin transaction as reusing the same address damages the privacy. You can consolidate all your small inputs to create one bigger input. LoyceV has created a beautiful thread for this.
[Oct 2020] Fees are low, use this opportunity to Consolidate your small inputs!
 
Sources & References

https://en.bitcoin.it/wiki/CoinJoin#:~:text=CoinJoin%20is%20a%20trustless%20method,paid%20which%20recipient%20or%20recipients.
https://academy.binance.com/en/articles/coin-mixing-and-coinjoins-explained
https://wasabiwallet.io/

 


Forgive me for any mistakes. Suggestions and feedback are welcome.

Jump to: