2

A Monero transaction input's ring signature contains a set of one time output keys corresponding to the outputs of some previous transactions. Such a transaction can have multiple inputs, and therefore multiple sets of old outputs. It would not make sense for any one old output to appear more than once in the bunch of inputs, since an output can only be spent once.

Within a single input's ring, does the core Monero implementation allow duplicate ring members? Within all the rings combined, can a member appear more than once? If either of these rules hold, are they held by the protocol or merely by the standard implementation?

This question corresponds to protocol v12. Were the answers above different in previous versions? (this is not necessary to answer, just curious)

| improve this question | | | | |
3

A ring may not include the same input more than once. Prior to v6, duplicate ring members were allowed. This is enforced by the protocol (otherwise it wouldn't be a rule, would it).

Distinct rings in the same transaction may include the same input more than once. This is in fact necessary for the corner case of spending 2 inputs of an amount for which there are 11 instances on the blockchain (admittedly, it could still be rejected and you'd get to spend your outputs separately).

| improve this answer | | | | |
  • If I'm understanding right, are you referring to pre-RingCT outputs which were communicated in clear text, so rings all had the same amounts? If a given amount (say 200) only had 15 outputs on the blockchain, then to spend two of those in the same transaction would necessitate two rings of 11-mixin each, resulting in ring overlap. Would this also occur post-RingCT given insufficient total transaction history? – koe Jan 2 at 10:51
  • 1
    Yes to all. RingCT outputs are "amount 0" as a placeholder. – user36303 Jan 2 at 12:20

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.