Coinjoin

There are so many privacy techniques, lets take a brief look at how each of them works from a higher level, looking at Zcash, Monero, Dash, Mixers (General)

Project Source Code

Get the project source code below, and follow along with the lesson material.

Download Project Source Code

To set up the project on your local machine, please follow the directions provided in the README.md file. If you run into any issues with running the project source code, then feel free to reach out to the author in the course's Discord channel.

This lesson preview is part of the newline's Introduction to Privacy on Ethereum course and can be unlocked immediately with a \newline Pro subscription or a single-time purchase. Already have access to this course? Log in here.

This video is available to students only
Unlock This Course

Get unlimited access to newline's Introduction to Privacy on Ethereum, plus 70+ \newline books, guides and courses with the \newline Pro subscription.

Thumbnail for the \newline course newline's Introduction to Privacy on Ethereum
  • [00:00 - 00:07] In this lesson, we are going to look at coin join. It's classified as one of the ways you can achieve privacy within Bitcoin.

    [00:08 - 00:30] And coin join is basically a trustless method for combining multiple Bitcoin payments from multiple send spenders into a single transaction to make it more difficult for parties to determine which spender paid the recipient or recipients. So before we go a bit deeper into this, it's good to understand how Bitcoin transactions work.

    [00:31 - 00:52] So in a Bitcoin transaction, there are certain inputs and certain outputs. You can have as many inputs and as many outputs as you want as long as you follow this rule, which is that the sum of the outputs are actually equal to or less than the sum of the inputs.

    [00:53 - 01:11] So it means that you're not trying to spend more than what you have. So in this case, it doesn't say that you cannot use multiple addresses and you can create a transaction which has multiple inputs from different addresses and multiple outputs.

    [01:12 - 01:23] So a single transaction can use any number of your DXOs unspent transaction outputs. And this is essentially what is used to do a coin join.

    [01:24 - 01:41] In a coin join, multiple senders, multiple spenders basically incorporate their inputs and outputs. So you can't actually tell which one does it all belong to one person or does it belong to 10 people or does it belong to how many?

    [01:42 - 01:48] So it essentially hides it very efficiently. And that is the concept of a coin join.

    [01:49 - 02:11] And you can read more about it on the Bitcoin wiki, but that is the basic concept that you combine multiple inputs from different spenders and you make a single transaction in a trustless fashion. And when the transaction is executed, everyone comes out with different values.

    [02:12 - 02:30] And therefore one can differentiate between the spenders, whether these inputs are all belonging to a single spender or they belong to different spenders. And this is the main idea about coin joins.

    [02:31 - 02:32] Thanks.