Author

Topic: Was not able to purchase my food with Bitcoin at Waves in Vancouver. (Read 517 times)

legendary
Activity: 1918
Merit: 1570
Bitcoin: An Idea Worth Spending
http://www.reddit.com/r/BitcoinCA/comments/1zk48s/where_are_you_buying_your_btc_with_cdn/cfujlsu

Are there more robocoin ATMs installed in Canada other than the one at Vancouver?



Not yet, but we're installing 4 more across Canada in the next two months, and we've just launched our new online exchange www.cointrader.net.

--
Jackson Warren
Co-founder
Bitcoiniacs - The Bitcoin Store
www.bitcoiniacs.com

First post:

https://bitcointalksearch.org/topic/m.1087453

www.cointrader.net is a good exchange for newbies, and they answer emails and phone calls.
legendary
Activity: 2282
Merit: 1050
Monero Core Team
Here in Vancouver, several brick-and-mortar businesses accept zero-confirm transactions using BitPay.  If you are buying a coffee, no one is going to wait 10 minutes (or longer) for confirmation;  it is critical that zero-confirm transactions are reasonably secure in order for this business model to work. 

So let me see if I understand the transaction malleability problem in relation to brick-and-mortar stores:

I pay for my coffee at Waves for 4mBTC.  Assume that to avoid "address reuse," my phone uses the full balance in 1AddressA, sends 4mBTC to Waves, and the rest to a new change address 1AddressB.  BitPay accepts this transaction and I get my coffee.  As soon as I finish paying, I realize that I also wanted a donut.  So I pay for this using what are now unconfirmed coins sitting in 1AddressB.  BitPay still approves the transaction and I get my donut too. 

But my first transaction was mutated, and the mutated version was accepted into the blockchain.  This means that the transaction I used to pay for my donut is now invalid, and Waves/BitPay won't get the money (and I've already left the store). 

This seems like a messy problem to deal with.  If we disallow spending unconfirmed change outputs, then there will be certain cases when I can't actually purchase my donut [without a long wait], correct?  Ideally, my wallet would try to break up my coins so that there are always plenty of fully-confirmed outputs ready for spending.  But how do most wallets actually work?  The Blockchain.info mobile wallet [that I use] sends the change back to the same address, so I'd expect that it would be very rare to have exhausted all of the confirmed outputs.  But for mobile wallets that avoid address reuse [do these even exist?], would it be less likely that you'd have confirmed coins available?

And should BitPay do anything to protect itself?


Very good example to think about, but: did I miss something? I think it won't happen, or at least doesn't have to. When you try to pay for the donut, assuming your wallet makes use of the change utxo which has been malled and is not yet confirmed, will bitpay accept it? I don't know whether they would today, but isn't it trivial to just check each utxo used as input and look at the blockchain to see if that transaction has any confirms? That way, they can accept unconfirmed spends, but not accept unconfirmed spends of unconfirmed spends, which is practically absolutely fine. Except you don't get your donut Cheesy

Unless your wallet is coded to not use unconfirmed change...

Today BitPay would accept it.  Unconfirmed change is used rather routinely although probably will be changing soon.  In your scenario though the bad news is not BitPay needs to figure out a way to return your coins.  You can't undo it and eventually it will confirm (unless a duplicate of the prior output is what confirms).  So you are now out the donut and coins.  Of course the shop will have no clue how to get your coins back, and "you" (or a less educated user) might be kinda upset seeing the donut funds deducted from your wallet but not getting the donut and the clueless clerk having no idea how to get your coins back or even where they went.

If this happened enough the store might just not accept Bitcoin in the future.  Now I am not going all doom and gloom and none of this is unsolvable but you can see how all this starts to get really ugly real quick.  Transaction Ids need to be immutable.  Period.   There is no other viable long term option.  However that is going to take some time so things might get a little clunky for service providers before they get better.

It's must likely BitPay, of which I'm sure will be resolved ASAP as soon as it's brought to their attention, for they're a fine org.

I am not so sure it is BitPay, given that this is just not like them. These quotes are from over two and a half months ago.
legendary
Activity: 1918
Merit: 1570
Bitcoin: An Idea Worth Spending
Here in Vancouver, several brick-and-mortar businesses accept zero-confirm transactions using BitPay.  If you are buying a coffee, no one is going to wait 10 minutes (or longer) for confirmation;  it is critical that zero-confirm transactions are reasonably secure in order for this business model to work. 

So let me see if I understand the transaction malleability problem in relation to brick-and-mortar stores:

I pay for my coffee at Waves for 4mBTC.  Assume that to avoid "address reuse," my phone uses the full balance in 1AddressA, sends 4mBTC to Waves, and the rest to a new change address 1AddressB.  BitPay accepts this transaction and I get my coffee.  As soon as I finish paying, I realize that I also wanted a donut.  So I pay for this using what are now unconfirmed coins sitting in 1AddressB.  BitPay still approves the transaction and I get my donut too. 

But my first transaction was mutated, and the mutated version was accepted into the blockchain.  This means that the transaction I used to pay for my donut is now invalid, and Waves/BitPay won't get the money (and I've already left the store). 

This seems like a messy problem to deal with.  If we disallow spending unconfirmed change outputs, then there will be certain cases when I can't actually purchase my donut [without a long wait], correct?  Ideally, my wallet would try to break up my coins so that there are always plenty of fully-confirmed outputs ready for spending.  But how do most wallets actually work?  The Blockchain.info mobile wallet [that I use] sends the change back to the same address, so I'd expect that it would be very rare to have exhausted all of the confirmed outputs.  But for mobile wallets that avoid address reuse [do these even exist?], would it be less likely that you'd have confirmed coins available?

And should BitPay do anything to protect itself?


Very good example to think about, but: did I miss something? I think it won't happen, or at least doesn't have to. When you try to pay for the donut, assuming your wallet makes use of the change utxo which has been malled and is not yet confirmed, will bitpay accept it? I don't know whether they would today, but isn't it trivial to just check each utxo used as input and look at the blockchain to see if that transaction has any confirms? That way, they can accept unconfirmed spends, but not accept unconfirmed spends of unconfirmed spends, which is practically absolutely fine. Except you don't get your donut Cheesy

Unless your wallet is coded to not use unconfirmed change...

Today BitPay would accept it.  Unconfirmed change is used rather routinely although probably will be changing soon.  In your scenario though the bad news is not BitPay needs to figure out a way to return your coins.  You can't undo it and eventually it will confirm (unless a duplicate of the prior output is what confirms).  So you are now out the donut and coins.  Of course the shop will have no clue how to get your coins back, and "you" (or a less educated user) might be kinda upset seeing the donut funds deducted from your wallet but not getting the donut and the clueless clerk having no idea how to get your coins back or even where they went.

If this happened enough the store might just not accept Bitcoin in the future.  Now I am not going all doom and gloom and none of this is unsolvable but you can see how all this starts to get really ugly real quick.  Transaction Ids need to be immutable.  Period.   There is no other viable long term option.  However that is going to take some time so things might get a little clunky for service providers before they get better.

It's must likely BitPay, of which I'm sure will be resolved ASAP as soon as it's brought to their attention, for they're a fine org.
legendary
Activity: 1918
Merit: 1570
Bitcoin: An Idea Worth Spending
We're going to celebrate Bitcoin Black Friday in Vancouver! We know it's short notice, but you have to get ready for all of the exciting news. We convinced the first night club to take Bitcoin, and it will be giving 1/3 off cover if you pay via cryptocurrency. A special event will be posted, soon.

We also have the first Indian restaurant to take Bitcoin offering you 30% off food. Waves (famous now for holding the Bitcoiniacs ATM) will be offering a 10% discount. We will announce new deals as they come on our Twitter @TheBitcoinCoop. If you or anyone you know runs a business, please let us know if you want to participate.

To the moon! http://www.bitcoinblackfriday.com/
legendary
Activity: 2282
Merit: 1050
Monero Core Team
To anyone who has been following the Bitcoin scene Waves Coffee House in Vancouver is well known as a centre for Bitcoin not only in BC and Canada but also around the world.

Let us keep in mind this was the first worldwide location for a Robocoin ATM and received worldwide media attention as the first Bitcoin ATM
It has been the location of many Bitcoin events.
It is also the location of Bitcoiniacs that has a major retail presence for the trading of Bitcoin.
etc. etc.

So I am visiting Vancouver for a few days and decide to check them out. I come up to the counter and order a coffee and a sandwich. When it comes time to pay I say that will be Bitcoin. I am then informed by the person at the counter that their Bitcoin system is down. Furthermore that it has been down for over a week and they have been trying to reach the company that is handling their Bitcoin payments / exchange, and that they have not got back to them. I asked who the company was and she did not know.

Given the prominence of this location it is important for whoever this company is to own up, fix this issue and apologize to the Bitcoin community. If they are not up to the task I am sure there are other competent companies who can provide Bitcoin merchant services with much better customer support.

The only positive aspect of this was that I was by myself, and avoided the embarrassment of this happening when I was introducing someone else to Bitcoin.

If you wish to have some of us early adopters spend rather than hoard our coins this kind of nonsense has to stop.
Jump to: