5

Waiting an average of two minutes for a transaction confirmation is a long time when there is a line of people at a checkout counter. This is particularly true when compared to nearly instant Visa/Mastercard confirmations.

Monero confirmations are 5x faster than Bitcoin on average. How do some retail merchants accept Bitcoin without waiting for a transaction confirmation (I have been to a bar for example and paid with Bitcoin without being required to wait for a block confirmation)?

Can retail merchants accepting Monero use the same method(s) that these Bitcoin retail merchants use to safely accept transactions without waiting for block confirmation?

Is scanning the mempool for transactions that have not yet been confirmed easier of more difficult for Monero compared to Bitcoin? If a Monero payment processor is used and is a victim of a double spend (after accepting a 0 conf transaction at a coffee shop) will the loss be eaten by the payment processor or the coffee shop?

  • 6
    Bitcoin merchants actually use a trusted central third party, usually. Sort of ironic. – PyRulez Aug 5 '16 at 10:22
9

Actually, instant (well, speed of information) payment channels are possible with monero, even now (no protocol changes to monero necessary).

First we will just start with one way payment channels. The merchant and buyer set up a some sort of multisig wallet. They mutually sign a transaction that sends the its contents back to the sender. The signature is sealed in time-release crypto using steps 2 through 2 through 4 here which forms the expiration date of the channel (which can be updated). The merchant will want to not accept transactions after or even near the expiration date. The time release crypto only needs to be released if the merchant is dishonest; an honest merchant can help the buyer recover his funds without it.

Now, to send funds to the merchant, such that the merchant instantly knows he cannot be cheated, the merchant and buyer simply mutually sign a transaction to the merchant's personal monero address. This can not be double spent, since the merchant would need to sign a transaction to double spend it. Additionally, they need to create a new expiration transaction, since it will have the wrong input. This also gives them an opportunity to set up a new release date.

You can also encrypt the transactions with the merchant's public key. This means that if the buyer sends them X monero, but then wants to send them Y, the merchant and buyer can simply create a new X+Y monero transfer, without the merchant fearing that the X monero transaction would override it (as long as he didn't publish it). The merchant could, say, publish these transactions once day, making this system ideal for micropayments.

Exercise for the reader: generalize the above into lightning network (hint: even more Secure multi-party computation will be needed).

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.