Let's take we have two transactions. In the first transaction, it has 1 input with zero mixins and 3 outputs(stealth addresses). The second transaction has 1 input with one mixins and 2 outputs. Here 1st transaction input is can easily identify as real input being spent because it is zero mixin. Let's assume in the second transaction which has two mixins inside the input. In that one is a mixin and another one is the real one being spent.

My question is if the second transaction input contains the first transaction one output as mixin (one of two), is that mean that is only a decoy for mixins? Can't it be actual spent one in the transaction? Like Bitcoin, chaining the inputs and outputs?

In other word, if in one mixin input (has two ring members), if one is ring member is traceable due to it include transaction used zero mixin. Is that mean remaining ring member is the actual one?


If you are sure a decoy used as ring member is already spent in some other transaction, no matter if the reason is zero-mixin (no longer supported) or n transactions using the same n ring members, which then are obviously all spent, it is not providing any privacy gains for your transaction any more. Also forked chains may increase the amount of obviously spent outputs in special cases.

Monero however doesn't support 0-mixin transactions since 2016, when 0.9.0 Hydrogen Helix has been released. Minimum ring sizes have been raised since then from 3 to 5 and 7 as of today. Additionally blackballing has been introduced, which is a simple blacklist of all obviously spent outputs, no matter for what reason. It prevents your wallet from adding these outputs as decoys to your transactions. The list will be huge (about 1GB) when scanning all ever used outputs, when 0-mixin has been allowed, before the introduction of RingCT eg. but it's only about 2MB when you only consider outputs generated after RingCT introduction. With a raising ring size it's getting harder to generate obviously spent outputs (no matter if intentionally or accidentally).


As @janowitz points out, Monero no longer supports zero mixins.

That aside, the 2nd transaction, even if you could trace one of the inputs, you still couldn't know which was the real input (spent or not) in the 2nd tx as all the inputs are technically "real". I.e. if you had 2 inputs, one of which you could trace, that doesn't mean it's the actual real input for the 2nd transaction - it could be, but maybe not. In the case of your second transaction, it has a 50/50 chance.

All irrelevant anyway, as 0-mixins is no longer supported.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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