CoinJoin - Reading Assignment

  1. BitLaundry is centralized and you have to trust a single entity with your coins. CoinJoin is decentralized because all you need is people who agree on the inputs and outputs of the transaction and for them all to sign it. This does not require trusting a third party with your coins like BitLaundry.

  2. The failure (retry) risk is a risk for the transaction to fail because of someone refusing to sign a valid joint transaction or someone spending their input out from under the joint transaction before it completes.

  3. Since the transactions are cheap, you can do many small transactions which increases the anonymity set because of increased participation.

  4. The main benefit of CoinJoin over Zerocoin is that Zerocoin requires a soft fork on the Bitcoin network, as where CoinJoin can work today.

1. What is the benefit of CoinJoin over BitLaundry, if any?
BitLaundry is centralized like a bank. BitJoin is decentralized and allows the two parties to agree on the number of inputs and outputs.

2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
There is a risk that one of the parties could go down during the transaction.

3. How can anonymity set be increased while keeping small transaction sizes?
Increasing the number of transactions would make it much harder to trace.

4. What is the main benefit of CoinJoin over Zerocoin?
You don’t have to soft-fork the bitcoin network for CoinJoin.

[quote=“Grant_Hawkins, post:1, topic:13033”]

  • What is the benefit of CoinJoin over BitLaundry, if any?
    BitLaundry mediates transactions between sender and receiver. CoinJoin the users have to agree on a set of inputs to spend and outputs to pay before signing a transaction.

  • About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
    Failure risk will happen if a party in the transaction fails to sign or a DOS attack.

  • How can anonymity set be increased while keeping small transaction sizes?
    A limitless number of transactions can be cascaded because they are cheap.

  • What is the main benefit of CoinJoin over Zerocoin?
    In contrast to CoinJoin, a soft-fork of the bitcoin protocol is necessary in Zerocoin.

2 Likes

1. What is the benefit of CoinJoin over BitLaundry, if any?
Bitlaundry is a centralized entity while CoinJoin is a decentralized p2p between users that agrees on inputs and outputs, while the signatures, one per input, inside a transaction remain completely independent from each other, will be merged after with the signed transaction.

2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
If a participant doesn’t sign a transaction or in the eventuality of DOS attack the process fail and needs to be retried leaving out the party that failed to provide the signature.

3. How can anonymity set be increased while keeping small transaction sizes?
Because these transactions are cheap, there is no limit to the number of transactions you can cascade, so you can increase the anonymity set simply increasing participation.

4. What is the main benefit of CoinJoin over Zerocoin?
There is no need to softfork on the bitcoin network for it to work, and practically the anonymity set (because of the fact CJ transactions are really small) can be the same or really similar.

1 Like

1. What is the benefit of CoinJoin over BitLaundry, if any?
In the case of Coinjoin, the tx will not be spent until giving it the signature, but in the Bitlaundry, they controlled all the right about BTC.

  1. What is the benefit of CoinJoin over BitLaundry, if any?
  • BitLaundry mixes addresses, but keeps the transaction amounts the same. If there is only one transaction with the amount in question, it is not difficult to find out where it came from.
  • CoinJoin mixes addresses and amounts. Basically, there is a large mutual transaction which is like a pool. Senders insert funds, they are split in equal amounts and then the respective number of these amounts are distributed to receivers. The fact that Alice sent some coins to this “pool”, and then Bob received some coins from this “pool”, can still raise suspicion, but it cannot be proved that Alice sent something to Bob.
  1. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
  • Retry gives opportunity for a sender to withdraw their funds, or not sign the transaction again.
  1. How can anonymity set be increased while keeping small transaction sizes?
  • By cascading transactions. I imagine it like this: Alice sends her coins in a transaction along with 9 other users (anonimity set of 10). At the moment, there are 50 users for CoinJoin service, but the number of inputs shouldn’t exceed 10. The outputs of Alice’s transaction are distributed as inputs for 5 new transactions, along with users of 4 other transactions (now she has anonimity set of 50). As the cost of transaction is split between users, transactions are cheap so there could several such layers.
  1. What is the main benefit of CoinJoin over Zerocoin?
  • Zerocoin requires soft-forking Bitcoin protocol. Soft fork means that the blockchain doesn’t split, but it also means all nodes must agree on the changes.
1 Like

What about the rest of the questions? :slight_smile:

1 Like
  1. What is the benefit of CoinJoin over BitLaundry, if any? Improves privacy. The signatures, one per input, inside a transaction are completely independent of each other. This means that it’s possible for Bitcoin users to agree on a set of inputs to spend, and a set of outputs to pay to, and then to individually and separately sign a transaction and later merge their signatures.
  2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk. Because the anonymity set size of a single transaction is limited by the number of parties in it.
  3. How can anonymity set be increased while keeping small transaction sizes? In particular, if you have can build transactions with m participants per transaction you can create a sequence of m*3 transactions which form a three-stage switching network that permits any of m^2 final outputs to have come from any of m^2 original inputs (e.g. using three stages of 32 transactions with 32 inputs each 1024 users can be joined with a total of 96 transactions). This allows the anonymity set to be any size, limited only by participation.
  4. What is the main benefit of CoinJoin over Zerocoin? Cj worked since first day of BTC. They are indistinguishable from normal transactions and thus cannot be blocked or inhibited.
1 Like

I’m having trouble even reading this tldr styled ‘nested post’. So i reverted to searches

  1. What is the benefit of CoinJoin over BitLaundry, if any?
    CoinJoin transactions work today

  2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
    It’s when a transaction failes and you have to retry it. Making the joined transactions all nulled

  3. How can anonymity set be increased while keeping small transaction sizes?
    When you want to make a payment, find someone else who also wants to make a payment and make a joint payment together. Doing so doesn’t increase privacy much, but it actually makes your transaction smaller and thus easier on the network (and lower in fees); the extra privacy is a perk.

  4. What is the main benefit of CoinJoin over Zerocoin?
    Zerocoin requires a soft-forking change to the Bitcoin protocol, coinjoin works today

1 Like

Both work, but bitlaundry requires a centralized server to work, while Coinjoin is a p2p between users that together construct and individually sign a tx.

Coinjoin is one tx, but to make it work all parties must coordinate, which can be time consuming and not everyone might be willing to try again. :slight_smile:

1 Like
  1. What is the benefit of CoinJoin over BitLaundry, if any?

Bitlaundry is a third party website.
CoinJoin is more “decentralized” as it requires Users to agree on mixing inputs and outputs in a single transaction.

  1. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.

The risk is of the transaction to fail because of a DOS attack or because a participant does not sign the transaction.

  1. How can anonymity set be increased while keeping small transaction sizes?

Anonymity can be increased by increasing the number of transactions.

  1. What is the main benefit of CoinJoin over Zerocoin?

CoinJoin does not require any change in the network: no protocol (and political) change, no soft fork.

1 Like
  1. BitLaundry is a centralised service whereas CoinJoin isn’t. In BitLaundry, you send the money to them and then they send the money to your desired address. Whereas CoinJoin, users agree on a set of inputs to spend, and a set of outputs to pay to, and then to individually and separately sign a transaction and later merge their signatures. The transaction is not valid and won’t be accepted by the network until all signatures are provided, and no one will sign a transaction which is not to their liking.

  2. If one person in the huge join transaction does not agree to sign, they would have to retry again. The person that refused to, would be excluded for this transaction.

  3. Creating multiple transactions as transactions are cheap.

  4. Zerocoin requires a soft-forking change to the Bitcoin protocol.

Other reasons as discussed by the poster:

" * It uses cutting-edge cryptography which may turn out to be insecure, and which is understood by relatively few people (compared to ECDSA, for example).

  • It produces large (20kbyte) signatures that would bloat the blockchain (or create risk if stuffed in external storage).
  • It requires a trusted party to initiate its accumulator. If that party cheats, they can steal coin. (Perhaps fixable with more cutting-edge crypto.)
  • Validation is very slow (can process about 2tx per second on a fast CPU), which is a major barrier to deployment in Bitcoin as each full node must validate every transaction.
  • The large transactions and slow validation also means costly transactions, which will reduce the anonymity set size and potentially make ZC usage unavailable to random members of the public who are merely casually concerned about their privacy.
  • Uses an accumulator which grows forever and has no pruning. In practice this means we’d need to switch accumulators periodically to reduce the working set size, reducing the anonymity set size. And potentially creating big UTXO bloat problems if the horizon on an accumulator isn’t set in advance."
2 Likes
  1. What is the benefit of CoinJoin over BitLaundry, if any?
    with a mixer like BitLaunry, there is no guarantee your funds will be returned, that the coins you receive aren’t tainted, and your IP and BTC addresses may be logged. CoinJoin provides a decentralized alternative that does not require you to sacrifice the custody of your funds. Also, CoinJoin txs are not necessarily distinguishable from other txs, whereas one could determine you sent coins to a mixing service.
  2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
    the more users involved in a joint tx, the more likely one of them will fail to sign the tx, meaning it fails to go through, or that someone tries to spend the funds committed to the tx in another tx before the CoinJoin one goes through.
  3. How can anonymity set be increased while keeping small transaction sizes?
    the anonymity set in a single tx is limited by the number of inputs, but because the CoinJoin txs are fairly cheap, you can participate in multiple CoinJoin txs. So the anonymity set is only limited by how many txs you participate in.
  4. What is the main benefit of CoinJoin over Zerocoin?
    CoinJoin works under the current system rules, whereas Zerocoin would require a soft fork of the network.
1 Like
  1. What is the benefit of CoinJoin over BitLaundry, if any?
    there are no charges (the 0.5% is not charged, and also the 0.01% per receiver), and also the fees paid to the network would be less
  2. About halfway down, Maxwell writes: “failure (retry) risk mean that really huge joint transactions would not be wise.” Explain failure (retry) risk.
    this means the risk of a Tx not being validated, thus not transmitted to the network?? thus it would come back to the mempool?? please someone correct me if Im wrong
  3. How can anonymity set be increased while keeping small transaction sizes?
    In particular, if you have can build transactions with m participants per transaction you can create a sequence of m*3 transactions which form a three-stage switching network that permits any of m^2 final outputs to have come from any of m^2 original inputs (e.g. using three stages of 32 transactions with 32 inputs each 1024 users can be joined with a total of 96 transactions). This allows the anonymity set to be any size, limited only by participation.
  4. What is the main benefit of CoinJoin over Zerocoin?
    CoinJoin transactions work today , and they’ve worked since the first day of Bitcoin. They are indistinguishable from normal transactions and thus cannot be blocked or inhibited except to the extent that any other Bitcoin transaction could be blocked.
1 Like

Coinjoin doesn’t rely on third party. Multiple individuals construct a large transaction together, they join coins :stuck_out_tongue:

If there are a lot of people involved, someone in the line might not sign the transaction thus wasting the time coordinating the joint transaction.

1 Like

thanks specially for the second one, i didnt see that one coming :love_you_gesture:

1 Like
  1. There is no third party in control of your coins with CoinJoin.

  2. If someone doesn’t sign the transaction will fail and have to be retried.

  3. I don’t understand this paragraph. Can someone explain it to me in simpler english. I think that what is meant is that you create a pool of users and then randomly select them into groups (m?) per transaction.

  4. You don’t have to soft-fork the Bitcoin protocol and CoinJoin is available now (well, at the time of writing, so that argument probably doesn’t hold).

2 Likes
  1. Bitlaundry is a centralized system. where you have to send your transactions to a temporary account and after some time bitlaundry will send that ammount to the reciever. It has several issues compared go coinjoin. The main one is that bitlaundry is a third party mediim between peers using a temporary server which is deleted afterthe transactions are completed. the trust issue and risks are hugely increased in this scenario than when using coinjoin.

  2. risk of failure means that miners might not be willing or able to include the transaction that takes too much space in block

  3. cojoining several users inputs and outputs while keeping the transaction low. increases the anonimity set hugely.

  4. zero coin is a great system, but it is slower than standard rransactions and it need to soft fork the bitcoin chain. which means it needs 100 of the nodes to approve it. which may take several years or not reach that point at all

2 Likes

In coinjoin you don’t really have a pool of users, individuals cooperate together in creating one large transaction and if you join transactions together they are cheaper and can be stacked together, thus increasing privacy. :slight_smile:

It still is. Any UTXO blockchain is capable of conducting coinjoin transactions :slight_smile: In fact about a year ago the largest transaction of this type was created:
https://www.coindesk.com/bitcoin-users-perform-what-might-be-the-largest-coinjoin-ever

3 Likes

The main benefit of Coinjoin over tumbling services is that the transactions get combined, shuffled and combined together in a way where it obfuscates the senders and receivers in a decentralized way. The resulting combination of lower TX fees, higher anonymity, and privacy in transacting all done using existing capabilities of the code on the Bitcoin network. The way the code is implemented by coinjoin utilizes a unique splitting and sharding of transactions in a multi-sig environment, requiring all signatures before the tx is accepted on the blockchain. Thus if bad actors refuse to sign, the TX will reconstruct, potentially eliminating the actor for the new set of TX. These new TX constructs can go on in a cascading defense type manner to eliminate a potential attacker. However, the sending of extremely large TX could potentially insight enough motivation and computing power for a collusionary attempt to hijack the funds.
The smaller TX sizes can be broken into increasingly more potential participants because the number of potential entries in the TX goes up with increaded participation.
Coinjoin has several huge benefits over protocol like zerocoin, mostly because it is codigraphically possible today, does not require any type of soft fork, and it relies on tried and true cryptographic models that are not new and are widely understood in the community. Zerocoin and other potential technologies also typically involve the need for a third party, which brings added risk, while Coinjoin is done and executed in a decentralized manner involving no need for trust.

1 Like