Replying to Avatar LiberLion

#Monero hides amounts, not math

Even though you can’t see how many XMR are in each transaction (they’re hidden with RingCT), every block still has to obey the protocol’s consensus rules. The math behind it is public, just not the values.

How double-spends are prevented

Every $XMR input creates a unique “key image.” That key image can only ever appear once on the blockchain. If someone tried to “reorg” and spend the same input twice, nodes would instantly reject the block containing the duplicate key image. Hidden amounts don’t matter here—key images are the anti-double-spend stamp.

How inflation is prevented

RingCT doesn’t just hide the amount, it also uses cryptographic proofs (Pedersen commitments + range proofs). Each transaction proves “the outputs = inputs” without revealing the numbers. If someone tried to mint extra coins secretly, the math in the proof would fail and the block would be rejected.

What about reorgs n blocks deep?

A reorg just means: “We thought these n blocks were the chain, but now there’s a longer chain that replaces them.” When this happens:

Every node re-verifies all the blocks in the new chain.

All the cryptographic checks (key images, RingCT balance proofs, range proofs) run again.

If any block tried to create value out of thin air, consensus rules fail → block is invalid → chain won’t be accepted.

👉 So the short version:

Even if amounts are hidden, the math proofs and key images make it impossible to sneak in fake value. A reorg just swaps blocks, but every block still has to pass the same verification rules.

Does this mean that an input can only be used once as a decoy? Because its key image is in the blockchain?

Reply to this note

Please Login to reply.

Discussion

The actual input can only be used once, because its key image gives it away if it's repeated.

Decoys can be repeated in different transactions because they aren't "locked" by any key image.