If I Sign two different transactions with the same private key and send it to the same node. Would this node now be able to know which member of the ring is trying to sign?

As I believe the public keys would be the same and the key image.

If so, why is this not a problem?

1 Answer 1


The key image of the real output being spent in a transaction is consistent, regardless of the choice of other outputs referenced as decoys.

Therefore if you attempt to spend an output twice, and each time a different set of decoys are chosen, then from the perspective of any nodes listening for transactions it will be obvious which output is the real output being spent.

This is a problem if you are using the same wallet on multiple computers and there is a simultaneous attempt to spend the same output. It's also a problem if the transaction you attempt to send is aborted for any reason (perhaps due to connecting to a malicious node), which causes you to reattempt the transaction to spend the same output using a different selection of decoys.

Therefore to avoid these attacks, announce transactions to your own node rather than directly to a public one, and do not attempt to spend funds from the same wallet simultaneously from multiple devices.

Outputs are only supposed to be spent once, and so under normal conditions this isn't a problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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