12

What actually is a mixin, and how does it work?

Is it similar to mixing services that Bitcoin and DASH provide?

6

The mixin count refers to the number of other signatures (aside from yours) in the ring signature that authorizes the transaction. A default mixin of 4 means that there are 5 total signatures. Someone looking at a transaction with a mixin of 4 has no way of knowing which of the five signers is the true sender (source).

"Mixin" as a term used in Monero is different than how the term may be used for Bitcoin or DASH mixing services. In Monero, new transactions "mix" with other previous transactions in the blockchain in the way the protocol itself dictates. In other services, you "mix" your coins with other users' coins to make one transaction with many inputs and outputs. The verb used here is the same, but they are referring to two very different things.

To try and reduce confusion, some community members have advocated changing the name "mixin" to something that will differentiate it from traditional mixing services. You can see some discussions here on StackExchange, on Reddit, and on the Monero forum.

A higher mixin number will typically provide more privacy than a lower mixin number because it will provide a greater amount of plausible deniability. However, reusing an odd, recognizable mixin for your transactions will make your transactions stand out. To see more about what mixins provide the greatest level of privacy, see this post.

The GUI allows users to select a mixin between 4 and 25. The CLI allows users to select any value permitted by the network.

4

What actually is a mixin, and how does it work?

Technically, 'mixin' is the number of decoy one-time keys (aka 'outputs') used in a ring signature to hide the one which is actually getting used up.

When you produce a classic EC signature, you're in effect saying to the network "I authorize a coin to move from A to X". You're revealing 2 public keys: yours, and the destination one, and only the owner of the private key a corresponding to A is able to produce this signature. Even though we don't know to whom either A or X belong to, we can be certain that it was the owner of A who authorized it to be moved. This is the case of mixin=0, and with this you could trace any output all the way back to some block reward.

Now, with a ring signature, you're in effect saying to the network "Somebody from the group ABCDE has authorized a coin move to X, and here's the proof, I, that this coin wasn't spent before.". Now, all we know is that it was someone from ABCDE group who moved the coins, but there's no way to determine who, so there is a 1/5 probability that it was any of them because any of the private keys abcde could have made that transaction. Let's say that D is yours. You could pick any random A, B, C and E as decoys (mixin=4) to hide the real one - it doesn't require any action from the actual owners, and their coins never actually move. You only make it appear as if they could have moved. So does someone else make appear that yours may have moved, increasing privacy for everyone, and nobody knows when a given coin is actually spent or from where exactly it came from.

Is it similar to mixing services that Bitcoin and DASH provide?

Now compare this with classic mixing services. There, some coins are pooled together, and you take from the pool as much as you put in. Problem is, you need to count on other people to pool their coins in order to have a pool big enough to provide liquidity. Also, if all coins pooled are 'tainted' so will be the ones you take from the pool, only you will hide exactly how they were tainted. Furthermore, they could later still be traced back to this mixer/pool which could be used as a criteria to reject them by institutions.

1

To expand on what JustinEU4 said, Dash and Bitcoin "mixes" are a totally different concept than Monero "mixes".

Dash mixes are done by masternodes. These masternodes can de-anonymize mixes done by them. The dangers are: one party controls the majority and has access to who is doing what or a state level actor spies on the masternodes to extract info. This is not a viable privacy function.

In Bitcoin many mixers rely on a third party to either not steal or not keep logs. There is an implementation of joinparty that claims no spying or logs, but the big problem with Bitcoin is interfacing with fiat system. As the Bitcoin blockchain is completely transparent, it is trivial to "blacklist" all coins coming out of "mixers". In one simple move, privacy is defeated in Bitcoin.

Monero does not have these weaknesses. "Mixing" is built in at the protocol level (no third parties) and every transaction is mixed and private beyond recognition so censorship becomes impossible.

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.