Bitcoin Forum
May 08, 2024, 06:39:37 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [DISCUSSION] Why aren't we using SWEEP for all in-person transactions?  (Read 801 times)
nubbins (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1009



View Profile
September 10, 2013, 07:14:26 PM
 #1

There's no doubt that Bitcoin is wonderfully convenient for online transactions; it's fast, easy, and convenient. However, physical transactions involving BTC have always been a bit messier: how do you physically send digital money to someone with whom you're interacting face-to-face?

There have been a few attempts to find solutions to this problem.

The most low-tech method has been the static QR code, on display near the point of sale: the purchaser simply scans the vendor's QR code, sends the funds, and the transaction is complete. Pretty straight-forward, but not without its problems: the vendor must manually check to ensure the funds have arrived; the funds from all transactions are being sent to the same address, which quickly becomes a disorganized mess for bookkeeping. Also, the purchaser must have a smartphone capable of sending BTC, which is not always the case (many people have issues with blockchain.info for iOS, for example).

Hardware wallets like the TREZOR offer security and convenience for the purchaser; private keys never leave the device, so unless you physically lose it, your funds are reasonably safe. However, they're inherently dangerous for the vendor, because they have to plug foreign USB devices into their POS all day. All it takes is one bogus device loaded with malware to permanently change a vendor's mind on accepting funds in this manner.

Paper wallets are another solution, but they're not convenient, nor are they particularly secure: the address QR and the private key QR are on the same piece of paper (or plastic, metal, etc), which means that your funds are at risk from the moment you reveal the private key to the moment you've either spent all the funds in the wallet, or someone else has spent them for you. The vendor doesn't particularly mind this method of payment, as he can immediately import and sweep the funds from the private key. However, unless the purchaser is spending the entire contents of the paper wallet, the issue turns into where the change should be sent -- you don't want it sent back to the address for which you've just revealed your private key.

So why don't we start doing things in a way that makes sense?

Why don't we make sweeping private keys the default way to conduct a face-to-face transaction?


Here's a few examples of how this would work:

Alice
Alice wants to go to a cafe for lunch. She knows that a coffee and a sandwich will cost 0.1 BTC. She creates a new wallet address, sends 0.1 BTC to it, and prints out the QR code for the private key. When she places her order, she hands the cashier her QR code. The cashier sweeps the funds from the key, and no change is necessary.

Bob
Bob wants to buy some new clothes at the mall. He is planning to visit several stores, and he doesn't know how much money he will spend at each store. He has a budget of 2 BTC for this shopping trip. Bob creates 10 new wallet addresses, sends 0.2 BTC to each, and prints a QR code for each private key. He then creates a "change" wallet address, and prints the QR for the public key only.

Bob visits his first store and purchases a pair of sunglasses for 0.15 BTC. He provides the cashier with a QR code for 0.2 BTC, which is swept; he then provides the QR code for his change address, to which the cashier sends his change, 0.05 BTC.

Bob then visits another shop, and selects a pair of pants that cost 0.45 BTC. He presents the cashier with three QR codes for 0.2 BTC each, and then presents the QR for his change address. The cashier sweeps 0.6 BTC from the three keys, and sends 0.15 BTC to the change address.

Cathy
Cathy also wants to go to the mall to buy a television, earrings, and some lunch. She isn't sure how much money the earrings and lunch will cost, and she doesn't want to send a large amount of her money to a change address back home. She creates one wallet address with 3 BTC that she will use to buy her television, and creates several extra wallet addresses for her smaller purchases: some loaded with 0.05 BTC and others loaded with 0.01 BTC. This way, she can let the cashier sweep the funds without having to send too much change back home.

Dave
Dave wants to purchase 3 BTC worth of gifts for his wife. He creates ten wallet addresses, and loads the first with 3 BTC. He then transfers the QR codes for both the public and private keys to a smartphone app that can display them at will. He makes his first purchase by presenting the QR code for the private key with 3 BTC; he presents the public key of his next address in order to receive his change. With each subsequent purchase, he presents the QR for the private key that currently holds the balance of the funds, the cashier sweeps the funds, and Dave receives his change to an address of his choosing. As long as he has created enough addresses to cover all of his purchases, he can continue doing this until all of his money is spent.

Such a smartphone app would be trivial to create; it needn't even be specific to Bitcoin. This is handy for iOS users, as Apple disallows Bitcoin wallet apps, but obviously cannot ban an app that only displays QR codes. Users could create QR codes using bitaddress.org or a tool of their choice; importing the codes to a phone is as easy as capturing each one with the phone's camera.

I'm sure there are many, many other usage scenarios beyond the four presented here; I'm also having a difficult time finding any drawbacks in this system. Discussion is welcome!

No longer buying/selling Casascius coins. Beware scammers.
My OTC Web of Trust ratings / What's a PGP chain of custody?
1715150377
Hero Member
*
Offline Offline

Posts: 1715150377

View Profile Personal Message (Offline)

Ignore
1715150377
Reply with quote  #2

1715150377
Report to moderator
1715150377
Hero Member
*
Offline Offline

Posts: 1715150377

View Profile Personal Message (Offline)

Ignore
1715150377
Reply with quote  #2

1715150377
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715150377
Hero Member
*
Offline Offline

Posts: 1715150377

View Profile Personal Message (Offline)

Ignore
1715150377
Reply with quote  #2

1715150377
Report to moderator
george51
Newbie
*
Offline Offline

Activity: 38
Merit: 0



View Profile
September 10, 2013, 07:35:10 PM
 #2

Surely the issue with this is that you need to know what you want to buy and have enough QR codes. That's nt a step forward or easier than a plastic card/cash. There must be a simpler way of doing it.
nubbins (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1009



View Profile
September 10, 2013, 07:43:50 PM
 #3

Surely the issue with this is that you need to know what you want to buy and have enough QR codes. That's nt a step forward or easier than a plastic card/cash. There must be a simpler way of doing it.

Well, you only need to know how much money you might want to spend on any given outing. Not sure if you'll buy a tv for 2 BTC or 5 BTC? Bring 5.

It's just as easy as cash. If I'm going to buy lunch and toothpaste, I'm bringing enough $5 bills to cover my purchases, not the entire balance of my bank account.

No longer buying/selling Casascius coins. Beware scammers.
My OTC Web of Trust ratings / What's a PGP chain of custody?
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
September 10, 2013, 07:51:13 PM
 #4

Surely the issue with this is that you need to know what you want to buy

Arguably this is a good thing.
Herbert
Hero Member
*****
Offline Offline

Activity: 488
Merit: 500



View Profile WWW
September 10, 2013, 07:51:54 PM
 #5

I don't feel comfortable with the idea that a private key is known to more than one party. If I create a new address/private key and send some coins there just so someone else can sweep it, there is always the risk that I send some more coins to that address by accident. Reminds me of all the issues we have with change addresses.

If something like this gets implemented it needs to have a really, really foolproof UI.

www.bitcoinmonitor.net - Free payment notification via email, newsfeed, xpmm/jabber, url callback and full API access!
Send SMS with www.txt4coins.net! No registration, pay-per-use, full API access, bulk messages - All inclusive!
george51
Newbie
*
Offline Offline

Activity: 38
Merit: 0



View Profile
September 10, 2013, 07:56:49 PM
 #6

Surely the issue with this is that you need to know what you want to buy

Arguably this is a good thing.
But surely this will limit the adoption. Joe public is going to want something that is more useful - not more of a hindrance. And said person may want to go shopping without having planned the entirety of there shopping trip first. Having some form of card with NFC that is linked to a 'spending' account would no doubt be a more widely accepted solution?

Edit: obviously it would have to e carefully implemented. And appropriate safeguards put in place
nubbins (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1009



View Profile
September 10, 2013, 08:08:11 PM
 #7

I don't feel comfortable with the idea that a private key is known to more than one party. If I create a new address/private key and send some coins there just so someone else can sweep it, there is always the risk that I send some more coins to that address by accident. Reminds me of all the issues we have with change addresses.

If something like this gets implemented it needs to have a really, really foolproof UI.

Yeah, it'd be nice to get developers of the major bitcoin clients on board. Something as simple as a separate tab for "on the go" funds would be helpful. The client could delete these OTG keys as soon as they're swept, to discourage reuse.

Surely the issue with this is that you need to know what you want to buy

Arguably this is a good thing.
But surely this will limit the adoption. Joe public is going to want something that is more useful - not more of a hindrance. And said person may want to go shopping without having planned the entirety of there shopping trip first. Having some form of card with NFC that is linked to a 'spending' account would no doubt be a more widely accepted solution?

Edit: obviously it would have to e carefully implemented. And appropriate safeguards put in place

"More useful" is relative. Arguably, sweeping is more useful than any other current face-to-face method for exchanging BTC.

If you're not sure whether you'll spend 0.1 BTC or 30 BTC on a shopping trip, well, perhaps there's a better solution. Although the "Dave" scenario would still work just fine -- load every BTC that you own. Just don't lose your phone Wink

No longer buying/selling Casascius coins. Beware scammers.
My OTC Web of Trust ratings / What's a PGP chain of custody?
george51
Newbie
*
Offline Offline

Activity: 38
Merit: 0



View Profile
September 10, 2013, 08:48:32 PM
 #8


"More useful" is relative. Arguably, sweeping is more useful than any other current face-to-face method for exchanging BTC.

If you're not sure whether you'll spend 0.1 BTC or 30 BTC on a shopping trip, well, perhaps there's a better solution. Although the "Dave" scenario would still work just fine -- load every BTC that you own. Just don't lose your phone Wink

Yer but you still have to prep and get all the QR codes and deal with them. A system were you can put X about of coins into an accessible wallet - and use some device (card) to pay (and potentially receive) from that wallet would be the ideal situation. Keeping it as user friendly and accessible to the average person is key in my personal view.

The idea of having to prepare for a shopping trip in any great way would be a hiderance
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!