If a merchant decides to accept a Monero payment the moment it appears in the memory pool (before confirmation) what risks are being assumed?

Based on the probability of these risks being exploited, might there still be a business compelling need to accept them if amounts involved fall below a certain threshold?

  • 3
    Just a comment that the faster blockchain time of Monero would allow for 'faster' transactions (if waiting for inclusion in a block) than bitcoin, if a merchant is willing to assume that if it's included in the first block it sees, it is less likely to be double spent. Not ideal for physical purchases if you have to keep a customer around for a couple of minutes while a TX gets one confirmation, but not too bad for online payments. – BauerJack Jul 22 '16 at 19:40

The risk is that this transaction will not be included in a block, ever, and thus never pays the merchant.

The risk are the same as with Bitcoin, since Monero uses the same type of PoW system, so you may want to read up on doing this with Bitcoin.

One possibility for attack is that the transaction being sent to the merchant has an input which will be spent in another transaction that is being mined, but either not relayed to the merchant, or rejected by the merchant's daemon (since it spends an output that's already being spent in the pool). This requires that the second transaction be sent after the one to the merchant (so the merchant node can't receive it before from other relays), but reach mining nodes before the one sent to the merchant. So it's a timing race.

Another possibility is that a tx is sent to the merchant only. The merchant's daemon would normally relay it to ther nodes, so this only works if the merchant is in "listen only" mode. There is no such thing in the current monero daemon, but this might be done as an optimization in the future by a merchant who wants to save bandwidth.

As to how to balance the risks vs the loss if an attack succeeds, that is a decision for the merchant to take. If quick service is part of the merchant's appeal, there is an incentive to.

| improve this answer | |

Any unconfirmed/instant transaction on Monero should be assumed reversible. In practice however, a merchant needs to consider whether the goods need to be released immediately - something like shipped goods do not.

If the goods do not need to be released immediately, the merchant can give visual feedback to the user on an instant confirmation, then simply never send the goods if there was a double-spend.

If the goods are virtual and immediately released, a variable number of confirmations (depending on the price) could be done. For reference, XMR.to does immediate release for amounts worth <0.1 BTC.

| improve this answer | |

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.