Author

Topic: Transactions when only one party is online (Read 1384 times)

hero member
Activity: 504
Merit: 502
April 25, 2012, 06:00:25 PM
#12
Yes, but with QR-Camera transfer media I feel a lot more safe than with some WiFi, at least for transferring the payment address and amount. Imagine phishing attacks made by faking the merchant's WiFi hotspot and announcing your own payment address instead of that of merchant.

Ah... got what you mean now.  I was still assuming that the merchant issued the payment request via QR code on screen.  The app would then ping for any bitcoin node that's listening to forward the transaction.  The idea being that we're never going to be able to persuade customers that a payment requires them to scan the merchant and then the merchant to scan them.
hero member
Activity: 531
Merit: 505
Yes, but with QR-Camera transfer media I feel a lot more safe than with some WiFi, at least for transferring the payment address and amount. Imagine phishing attacks made by faking the merchant's WiFi hotspot and announcing your own payment address instead of that of merchant.
hero member
Activity: 504
Merit: 502
With using QR code, there is no need to quirky setup Wifi nodes in the shop.

You've used QR-Camera as the communication channel; I was suggesting WiFi as that channel.  Doesn't change the central idea though -- the shopkeeper proxies for the customer; so I'm fine either way.
hero member
Activity: 531
Merit: 505
With using QR code, there is no need to quirky setup Wifi nodes in the shop. The merchant will issue "payment request" QR code, you mobile phone (offline) will scan it and launch your offline wallet. You will perhaps login with PIN to your wallet and confirm the payment. The mobile phone will prepare QR code with offline transaction and you will show it up against merchants tablet with camera. The merchants software will decode the transaction and quickly verify on the network that it is not a double spend, send the transaction alive and again check for doublespends. After few seconds, the transaction is complete and you can left the shop with the goods.
hero member
Activity: 504
Merit: 502
Sounds like a huge incentive for shopkeepers to run WiFi nodes on site.

I've also had an idea for a long time for a discovery protocol for bitcoin nodes.  That would allow mobiles to broadcast a discover message and find the shopkeeper-run node which will have every incentive to forward the transaction paying the shopkeeper to the rest of the network on behalf of the customer.

It even gives the shopkeeper a certain degree of double spend protection, since that relies on simultaneous release of the double spend transactions.  He can defend against that by (counter-intuitively) holding on to the transaction for a random amount of time; during that time he can watch for a double spend being received and reject the transaction the customer just gave him as fake.  Propagation time is what, two to five seconds?  Shopkeeper waits ten plus or minus five seconds to stop double spends. (at least partially; I suppose the double spender could have isolated the shopkeeper and have wide network connection)
kjj
legendary
Activity: 1302
Merit: 1026
It might be useful to have a standardized file format for offline BTC transactions...

At least one has been proposed.  See BIP 10.
hero member
Activity: 531
Merit: 505
Maybe, the phone mobile application can show the generated offline transaction as QR code on the display. The merchant cash register display (think iPad showing price and having a front facing camera) will read and decode the QR code and "run" the transaction.
legendary
Activity: 2618
Merit: 1007
It might be useful to have a standardized file format for offline BTC transactions...
legendary
Activity: 1526
Merit: 1134
Bitcoin Wallet from Andreas can also send transactions directly via NFC.
full member
Activity: 168
Merit: 100
Thanks Stephen - that was a brilliantly detailed reply.

I read all of the threads and I'm even more convinced that Bitcoin is going to succeed than I was before. It feels like the holes and being plugged and the Bitcoin ecosystem is maturing nicely and at a good speed. It's all rather impressive!
legendary
Activity: 2506
Merit: 1010
It is getting there -- at least one wallet now already accommodates the ability to create a transaction for spending, regardless of connectivity. (And spends properly, where the change transaction goes right back to the same wallet.)

If you are using My Wallet from Blockchain.info, then you can create a spend transaction offline.  Then if the other side has connectivity, takes that transaction and broadcasts it to the bitcoin network:
 - https://bitcointalksearch.org/topic/m.851062

Broadcast:
 - https://www.blockchain.info/pushtx

My Wallet from BlockChain.info
 - http://BlockChain.info/wallet

Additionally, because there is so little data traffic necessary, even a weak mobile phone signal that is incapable of carrying voice (e.g., bottom level of the concrete jungle shopping mall) might still provide more than enough bandwidth for a quick transaction.

Bitcoin won't be the only mobile payment system that will be hobbled if either the merchant or the customer won't have reliable connectivity.  As well-funded payment systems from Square, PayPal and Google need the ability for their retail partner's customers to be able to always transact then solutions to make sure connectivity is pervasive and reliable will be found.  Areas with a weak mobile signal where retail commerce occurs will get attention from the mobile carriers.  Alternatively, if the merchant has internet connectivity that could be shared to the customer for use in payments in a manner that is inexpensive and trivially easy for the merchant to provide.

Another method, if you trust the merchant, is a paper wallet approach. Like this:
 - https://bitcointalksearch.org/topic/m.831067

And related to this topic is an approach augmented with hardware, here:
 - https://bitcointalksearch.org/topic/bitcoin-poker-chip-physical-coin-77141

and here:
 - https://bitcointalksearch.org/topic/m.798591
 - http://en.bitcoin.it/wiki/In-store_Transactions#Smart_cards
full member
Activity: 168
Merit: 100
I was pondering how transactions could be made in areas where mobile data connectivity is poor. Specifically, how shops could allow payments in such situations.

As a shop can quite easily get a land line based broadband connection, they should be able to interact with the bitcoin network. However, the shopper may not have Internet access for various reasons (and may not want to set up wifi/bluetooth etc). That got me wondering whether there was a way to perform a transaction with only the receiver being online.

If this has already been done or discussed, apologies for bringing it up again. I tried searching the forum and google, but couldn't find what I was looking for.

My idea was using temporary deterministic wallets for such transactions. You could create a number of wallets with a fixed denomination of bitcoins in them. You could then show the PR code to the cashier and they could scan the code to re-create the deterministic wallet. The cashier's till software could then transfer the money out to another account, to ensure that the shopper couldn't attempt to double spend.

If change was needed, the shop could still send money to the shoppers receiving PR code, even if the shopper couldn't confirm them. They could give you a receipt and the transaction details in case there was a problem. If the money failed to reach the account, the block chain could be examined with the details in the receipt. Obviously, the shop isn't going to want to get a bad reputation for not giving change.

Is the above possible and would it be easy to implement? Also, are there other alternatives which can be completed in similar circumstances?
Jump to: