[Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
Airbitz has developed and implemented a method for communicating a bitcoin
URI across Bluetooth (BLE) or any other P2P, mid range, wireless, broadcast
medium. The currently documented implementation is available in our iOS and
Android mobile wallet (updated Android version with BLE coming in about 1
week). We would like to have the BIP pulled into Github for review and
discussion. Here is the current BIP:


BIP: TBD

Title: P2P Wireless URI transfer

Authors: Thomas Baker tom’at’airbitz.co, Paul Puey paul’at’airbitz.co

Contributors: Joey Krug joeykrug’at’gmail.com

Status: proposal

Type: Standards Track

Created: 2015-01-12

Table of Contents

   -

   Abstract
   -

   Motivation
   -

   Specification
   -

   Compatibility
   -

   Examples
   -

   References

Abstract

This is a protocol for peer-to-peer wireless transfer of a URI request
using an open broadcast or advertisement channel such as Bluetooth,
Bluetooth Low Energy, or WiFi Direct.
Motivation

There are disadvantages for a merchant (requester) and customer (sender) to
exchange a URI request using QR codes that can be eliminated by using
wireless broadcast or advertisements.

Current QR code scan method to transfer a request URI from merchant
(Requester) to customer (Sender) is cumbersome. A usual scenario is a
merchant with a POS terminal for order entry and a separate tablet for
transacting payments with bitcoin, and a customer with a smartphone. After
the order is entered, the merchant enters payment request information into
the tablet, generates the QR code representing the URI, and presents this
to the customer. The customer prepares to scan the QR code with their
smartphone by maneuvering the camera to the tablet. The tablet screen must
be relatively clean, point at the customer, and held steady. The smartphone
camera lens must be clean, point at the tablet screen, come into range, and
held steady to focus and wait for a QR scan. Environmental conditions such
as bright outdoor sunlight, indoor spot lights, or significant distance
between QR code and camera can create difficult and cumbersome experiences
for users.

Using a wireless local broadcast allows the merchant to just enter the
payment and wait. The tablet and smartphone are not maneuvered to align in
any way. The customer observes broadcast listings, selects the appropriate
one from possible simultaneous broadcasts from other POS stations nearby,
examines the URI request details such as amount, and decides whether to
send funds, initiating a bitcoin network transfer. The merchant and
customer then receive the transaction confirmations and are done with the
sale. Merchant and customer devices are kept private and secured in their
own possession.

The URI and other broadcast identification (Joe’s Grill #1) only contain
public information. However, a copycat broadcaster acting as MITM might
duplicate the broadcast simultaneously as the merchant, attempting to lure
the customer to send funds to the copycat. That attack is mitigated with
this broadcast method because of the partial address in the broadcast.
Specification

Requester generates a bitcoin URI request of variable length, and a limited
descriptive identifier string. Requester then broadcasts the URI’s partial
public address (paddress) plus identifier (id) over a publicly visible
wireless channel.

Sender scans for broadcasts on their device, examines and selects the
desired request by the identifier and partial address. This connects a data
channel to Requester.

Requester sends full URI back over the data channel.

Sender device ensures paddress is part of the full URI public address and
checks the full address integrity. Checking the broadcast and full URI
integrity prevents a copycat device within range from copying the partial
address and fooling the customer into sending funds to the copycat instead.

Below is a description of the protocol through Bluetooth Smart (Low Energy).

Requestor  Sender - Bitcoin transaction roles

Peripheral Central- Bluetooth GAP definitions

  Mode   Mode

1   |-|   - Requestor Advertises partial bitcoin: URI +
Name

   | ...  |

2   |-|   - Subscribe then send sender's Name, requesting
a response

3   |-|   - ACK

4   |-|   - request Read Characteristic from peripheral

5   |-|   - Sender receives full bitcoin: URI


   1.

   Peripheral advertises over a service UUID a BLE extended advertisement
   with a Scan Response containing the partial address of a bitcoin URI and a
   Name, any plain text. The entire response is limited to 26 characters. The
   first 10 make up the first 10 characters of the bitcoin URI public address
   where to send bitcoin, and must be present. The remaining characters are
   any plain text such as “The Habit 1” or “Starbucks-Reg 1”, more human
   readable information. The partial address serves as a check against a
   nearby attacker who may try

Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
So if you picked up the BLE broadcast request. All you know is that
*someone* within 100m is requesting bitcoin at a certain address. Not
necessarily who. The *name* is both optional, and possibly just a *handle*
of the user. If I'm sitting 5 ft away from someone at dinner and wanted to
pay them via BLE, I might see Monkey Dude on my list and simply ask him
is that you? If so, I send it. If there are two Monkey Dude's Then I
have to bother with the address prefix, but not otherwise.


[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046




On Thu, Feb 5, 2015 at 1:46 PM, Eric Voskuil e...@voskuil.org wrote:

 BLE has an advertised range of over 100m.

 http://www.bluetooth.com/Pages/low-energy-tech-info.aspx

 In the case of mass surveillance that range could most likely be extended
 dramatically by the reviewer. I've seen  WiFi ranges of over a mile with a
 strong (not FCC approved) receiver.

 WiFi hotspots don't have strong identity or a guaranteed position, so they
 can't be trusted for location.

 e

 On Feb 5, 2015, at 1:36 PM, Mike Hearn m...@plan99.net wrote:

 This sounds horrible. You could basically monitor anyone with a wallet in
 a highly populated area and track them super easily by doing facial
 recognition.


 We're talking about BLE, still? The radio tech that runs in the so called
 junk bands because propagation is so poor?

 My watch loses its connection to my phone if I just put it down and walk
 around my apartment. I'm all for reasonable paranoia, but Bluetooth isn't
 going to be enabling mass surveillance any time soon. It barely goes
 through air, let alone walls.

 Anyway, whatever. I'm just bouncing around ideas for faster user
 interfaces. You could always switch it off or set it to be triggered by the
 presence of particular wifi hotspots, if you don't mind an initial bit of
 setup.

 Back on topic - the debate is interesting, but I think to get this to the
 stage of being a BIP we'd need at least another wallet to implement it?
 Then I guess a BIP would be useful regardless of the design issues. The
 prefix matching still feels flaky to me but it's hard to know if you could
 really swipe payments out of the air in practice, without actually trying
 it.



--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
The broadcast is ONLY done when the wallet is in Receive mode. Same as when
the QR code is visible. The use of the *Name* section is specifically so
that a recipient can broadcast their name/handle. Not so the recipient
would broadcast the name of the Sender.


[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046




On Thu, Feb 5, 2015 at 12:50 PM, Mike Hearn m...@plan99.net wrote:

 I'm imagining myself walking around broadcasting my photo and MAC
 address while hucksters push payment requests to me for approval


 I hate to break it to you, but you broadcast a photo of your face every
 time you walk outside ;)

 Bluetooth MAC addresses are random, they aren't useful identifiers. If
 someone can see you, a face is a far more uniquely identifying thing than a
 MAC.

 Payment spam might be a problem. I can imagine a wallet requiring that
 such requests are signed and then spammers can be blacklisted in the usual
 fashion so they can't push things to your phone anymore. Anyway, a hurdle
 that can be jumped if/when it becomes an issue.

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
The implementation on Airbitz does not encourage or even let a user
broadcast a photo. Just an address prefix and name/handle. And it's only
broadcast during the Receive request. Not generally while the app is
running although that's up to the implementation.


[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046




On Thu, Feb 5, 2015 at 1:19 PM, Brian Hoffman brianchoff...@gmail.com
wrote:

 This sounds horrible. You could basically monitor anyone with a wallet in
 a highly populated area and track them super easily by doing facial
 recognition. Yes you could photograph people but it's way more burdensome.
 Sorry to go off topic a little.


 On Feb 5, 2015, at 3:50 PM, Mike Hearn m...@plan99.net wrote:

 I'm imagining myself walking around broadcasting my photo and MAC
 address while hucksters push payment requests to me for approval


 I hate to break it to you, but you broadcast a photo of your face every
 time you walk outside ;)

 Bluetooth MAC addresses are random, they aren't useful identifiers. If
 someone can see you, a face is a far more uniquely identifying thing than a
 MAC.

 Payment spam might be a problem. I can imagine a wallet requiring that
 such requests are signed and then spammers can be blacklisted in the usual
 fashion so they can't push things to your phone anymore. Anyway, a hurdle
 that can be jumped if/when it becomes an issue.


 --
 Dive into the World of Parallel Programming. The Go Parallel Website,
 sponsored by Intel and developed in partnership with Slashdot Media, is
 your
 hub for all things parallel software development, from weekly thought
 leadership blogs to news, videos, case studies, tutorials and more. Take a
 look and join the conversation now. http://goparallel.sourceforge.net/

 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development


--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
Although not perfect, and it may require visual/verbal verification, I
don't see what the trust issue is.


[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046




On Thu, Feb 5, 2015 at 2:05 PM, Eric Voskuil e...@voskuil.org wrote:

 Hi Paul,

 The issue is in the establishment of trust. Anyone can broadcast the
 initial information.

 e

 On Feb 5, 2015, at 2:01 PM, Paul Puey p...@airbitz.co wrote:

 The broadcast is ONLY done when the wallet is in Receive mode. Same as
 when the QR code is visible. The use of the *Name* section is specifically
 so that a recipient can broadcast their name/handle. Not so the recipient
 would broadcast the name of the Sender.

 On Thu, Feb 5, 2015 at 12:50 PM, Mike Hearn m...@plan99.net wrote:

 I'm imagining myself walking around broadcasting my photo and MAC
 address while hucksters push payment requests to me for approval


 I hate to break it to you, but you broadcast a photo of your face every
 time you walk outside ;)

 Bluetooth MAC addresses are random, they aren't useful identifiers. If
 someone can see you, a face is a far more uniquely identifying thing than a
 MAC.

 Payment spam might be a problem. I can imagine a wallet requiring that
 such requests are signed and then spammers can be blacklisted in the usual
 fashion so they can't push things to your phone anymore. Anyway, a hurdle
 that can be jumped if/when it becomes an issue.



--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
Although consumer to merchant is a use case for BLE I would argue that NFC has 
a higher chance of providing a better user experience in most cases since, at 
least on Android, a user can tap their phone without even having a wallet 
running. The URI handler will launch the wallet for them. However a dedicated, 
user facing, screen can give certainty that the user is connecting to the 
correct recipient. 

1. Because it can show an address prefix 
2. It can display the users nickname/handle upon connecting which is only sent 
to the merchant upon a point to point connection. Not a broadcast. 

The Airbitz wallet already does this on the recipient side. A popup shows the 
most recent person connecting to the recipient. 


   
Paul Puey CEO / Co-Founder, Airbitz Inc
619.850.8624 | http://airbitz.co | San Diego
 



On Feb 5, 2015, at 3:34 PM, Roy Badami r...@gnomon.org.uk wrote:

For peer-to-peer payments, how common do we think that the payment is
of an ad hoc nature rather than to a known contact?

If I want to pay my friends/colleagues/etc over a restaurant table
there's no reason why I couldn't already have their public keys in my
contact list - then it would be pretty straightforward to have a
watertight mechanism where I would know who I was paying.  You could
probably even relatively securely bootstrap a key exchange over SMS,
relying only on the contacts already having each other in their
phonebooks.

As for comsumer-to-merchant transactions where the merchant is a
bricks and mortar merchant, IMHO it absolutely has to be pay that
terminal over there.  It's the trust model we all currently use -
whether paying cash or card - and it's the only trust model that works
IMHO (and customers and businesses alike are well aware of the risks
of a fraudster standing behind the counter pretending to be an
employee accepting payment - and by and large are pretty good at
mitigating it).  OTOH as we've discussed here before there are many
use cases where the custoemr doesn't actually know or care about the
name of the shop or bar they walked into but is pretty damn sure that
they need to make payment to the person over there behind the counter.

Granted, there are cases taht dont' fall into either of the above -
but they're the cases that are (a) harder to figure out how to
authenticate and consequently (b) the use cases that are going to be
most subject to attempted fraud.

roy

 On Thu, Feb 05, 2015 at 03:02:56PM -0800, William Swanson wrote:
 On Thu, Feb 5, 2015 at 2:10 PM, Eric Voskuil e...@voskuil.org wrote:
 A MITM can receive the initial broadcast and then spoof it by jamming the
 original. You then only see one.
 
 You are right, of course. There is no way to make Bluetooth 100%
 secure, since it is an over-the-air technology. You could try securing
 it using a CA or other identity server, but now you've excluded ad-hoc
 person-to-person payments. Plus, you need an active internet
 connection to reach the CA.
 
 You can try using proximity as a substitute for identity, like
 requiring NFC to kick-start the connection, but at that point you
 might as well use QR codes.
 
 This BIP is not trying to provide absolute bullet-proof security,
 since that's impossible given the physical limitations of the
 Bluetooth technology. Instead, it's trying to provide the
 best-possible security given those constraints. In exchange for this,
 we get greatly enhanced usability in common scenarios.
 
 There are plenty of usable, real-world technologies with big security
 holes. Anybody with lock-picking experience will tell you this, but
 nobody is welding their front door shut. The ability to go in and out
 is worth the security risk.
 
 Bluetooth payments add a whole new dimension to real-world Bitcoin
 usability. Do we shut that down because it can't be made perfect, or
 do we do the best we can and move forward?
 
 -William
 
 --
 Dive into the World of Parallel Programming. The Go Parallel Website,
 sponsored by Intel and developed in partnership with Slashdot Media, is your
 hub for all things parallel software development, from weekly thought
 leadership blogs to news, videos, case studies, tutorials and more. Take a
 look and join the conversation now. http://goparallel.sourceforge.net/
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development
 
--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net

Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
The trust can be considered bootstrapped by visual verification of the address 
prefix. If we are really concerned about someone jamming a Bluetooth signal in 
a coffeeshop then the UI can encourage verification of the prefix. Much like 
how regular Bluetooth requires 'pairing' via entering a 4-6 digit code.


   
Paul Puey CEO / Co-Founder, Airbitz Inc
619.850.8624 | http://airbitz.co | San Diego
 



On Feb 5, 2015, at 3:46 PM, Eric Voskuil e...@voskuil.org wrote:

On 02/05/2015 03:36 PM, MⒶrtin HⒶboⓋštiak wrote:
 A BIP-70 signed payment request in the initial broadcast can resolve the
 integrity issues, but because of the public nature of the broadcast
 coupled with strong public identity, the privacy compromise is much
 worse. Now transactions are cryptographically tainted.
 
 This is also the problem with BIP-70 over the web. TLS and other
 security precautions aside, an interloper on the communication, desktop,
 datacenter, etc., can capture payment requests and strongly correlate
 transactions to identities in an automated manner. The payment request
 must be kept private between the parties, and that's hard to do.
 
 What about using encryption with forward secrecy? Merchant would
 generate signed request containing public ECDH part, buyer would send
 back transaction encrypted with ECDH and his public ECDH part. If
 receiving address/amount is meant to be private, use commit protocol
 (see ZRTP/RedPhone) and short authentication phrase (which is hard to
 spoof thanks to commit protocol - see RedPhone)?

Hi Martin,

The problem is that you need to verify the ownership of the public key.
A MITM can substitute the key. If you don't have verifiable identity
associated with the public key (PKI/WoT), you need a shared secret (such
as a secret phrase). But the problem is then establishing that secret
over a public channel.

You can bootstrap a private session over the untrusted network using a
trusted public key (PKI/WoT). But the presumption is that you are
already doing this over the web (using TLS). That process is subject to
attack at the CA. WoT is not subject to a CA attack, because it's
decentralized. But it's also not sufficiently deployed for some scenarios.

e

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
Thanks for all the feedback Eric. You know we value all that you have to say. 
That's what this forum is for. We're looking for great ideas to harden this 
protocol and we're not closed to better ideas and we'll improve it as 
suggestions come up.



   
Paul Puey CEO / Co-Founder, Airbitz Inc
619.850.8624 | http://airbitz.co | San Diego
 



On Feb 5, 2015, at 5:05 PM, Eric Voskuil e...@voskuil.org wrote:

 On 02/05/2015 04:49 PM, Paul Puey wrote:
 The trust can be considered bootstrapped by visual verification of the
 address prefix.

Another (unspendable) address can trivially match the prefix. Imagine
someone walking around in a mall with a phone in the pocket with a
malicious app, just disrupting business by causing money to be burned.
Manual verification doesn't fix this attack.

 If we are really concerned about someone jamming a Bluetooth signal
 in a coffeeshop then the UI can encourage verification of the prefix.

I don't think it would be great to constrain a standard implementation
to low cost purchases or the need for manual verification, but again
manual prefix verification isn't actually a solution.

 Much like how regular Bluetooth requires 'pairing' via entering a 4-6
 digit code.

An appeal to the security of BT bootstrapping isn't exactly flattering.

You know I love Airbitz, and I know you guys are extremely privacy
conscious. I personally would have no problem using this feature under
certain circumstances. My question is only whether it would be wise to
standardize on the proposal as-is.

e

 On Feb 5, 2015, at 3:46 PM, Eric Voskuil e...@voskuil.org
 mailto:e...@voskuil.org wrote:
 
 On 02/05/2015 03:36 PM, MⒶrtin HⒶboⓋštiak wrote:
 A BIP-70 signed payment request in the initial broadcast can resolve the
 integrity issues, but because of the public nature of the broadcast
 coupled with strong public identity, the privacy compromise is much
 worse. Now transactions are cryptographically tainted.
 
 This is also the problem with BIP-70 over the web. TLS and other
 security precautions aside, an interloper on the communication, desktop,
 datacenter, etc., can capture payment requests and strongly correlate
 transactions to identities in an automated manner. The payment request
 must be kept private between the parties, and that's hard to do.
 
 What about using encryption with forward secrecy? Merchant would
 generate signed request containing public ECDH part, buyer would send
 back transaction encrypted with ECDH and his public ECDH part. If
 receiving address/amount is meant to be private, use commit protocol
 (see ZRTP/RedPhone) and short authentication phrase (which is hard to
 spoof thanks to commit protocol - see RedPhone)?
 
 Hi Martin,
 
 The problem is that you need to verify the ownership of the public key.
 A MITM can substitute the key. If you don't have verifiable identity
 associated with the public key (PKI/WoT), you need a shared secret (such
 as a secret phrase). But the problem is then establishing that secret
 over a public channel.
 
 You can bootstrap a private session over the untrusted network using a
 trusted public key (PKI/WoT). But the presumption is that you are
 already doing this over the web (using TLS). That process is subject to
 attack at the CA. WoT is not subject to a CA attack, because it's
 decentralized. But it's also not sufficiently deployed for some scenarios.
 
 e

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
The BIP70 protocol would preclude individuals from utilizing the P2P
transfer spec. It would also require that a Sender have internet
connectivity to get the payment protocol info. BLE could enable payment w/o
internet by first transferring the URI to from Recipient to Sender. Then in
the future, we could sign a Tx and send it over BLE back to the recipient
(who would still need internet to verify the Tx). This is an important use
case for areas with poor 3G/4G connectivity as I've experience myself.

Also, due to Android issues, NFC is incredibly clunky. The URI Sender is
required to tap the screen *while* the two phones are in contact. We
support NFC the same way Bitcoin Wallet does, but unless the payment
recipient has a custom Android device (which a merchant might) then the
usage model is worse than scanning a QR code. BLE also allows people to pay
at a distance such as for a donation to a live performer. We'll look at
adding this to the Motivation section.

[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046


From: Andreas Schildbach andreas@sc... - 2015-02-05 13:47:04

Thanks Paul, for writing up your protocol!

First thoughts:

For a BIP standard, I think we should skip bitcoin: URIs entirely and
publish BIP70 payment requests instead. URIs mainly stick around because
of QR codes limited capacity. BIP70 would partly address the copycat
problem by signing payment requests.

In your Motivation section, I miss some words about NFC. NFC already
addresses all of the usability issues mentioned and is supported by
mobile wallets since 2011. That doesn't mean your method doesn't make
sense in some situations, but I think it should be explained why to
prefer broadcasting payment requests over picking them up via near field
radio.
--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI

2015-02-05 Thread Paul Puey
Thanks for CC'ing me Mike. Having trouble receiving maillist list posts.

Even if a user could get the BIP70 URL in the URI, they would still need
internet to access the URL. This BLE spec doesn't preclude BIP70, but can
work with it while still allowing individuals without a certificate to
broadcast a request.

The issue of confused payments becomes less so if the Recipient broadcasts
a name along with the 10 digit public addr prefix. Only if there is a name
conflict will the user have to be concerned with the prefix. The name can
be something like

Mikes Coffee #1 and it can have a Register #1 at the counter. A customer
facing screen can also show the 10 digit prefix.


[image: logo]
*Paul Puey* CEO / Co-Founder, Airbitz Inc
+1-619-850-8624 | http://airbitz.co | San Diego
http://facebook.com/airbitz  http://twitter.com/airbitz
https://plus.google.com/118173667510609425617
https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
https://angel.co/paul-puey
*DOWNLOAD THE AIRBITZ WALLET:*
  https://play.google.com/store/apps/details?id=com.airbitz
https://itunes.apple.com/us/app/airbitz/id843536046




On Thu, Feb 5, 2015 at 12:28 PM, Mike Hearn m...@plan99.net wrote:

 BIP70 requests can be sent over bluetooth as well, as can transactions.
 Bitcoin Wallet can already send money even when offline by doing this. It's
 transparent to the user. I mean original Bluetooth in this context - BLE
 has incredibly tight data constraints and isn't really meant for data
 transfer.

 Yes Android Beam has a pretty stupid UI. You can actually tap the devices,
 take them away and then press, but that's not obvious at all. There have
 been new APIs added in recent releases that give more control over this, so
 it's possible we can revisit things and make the UI better these days.

 The donation to live performer example is good - there's no issue of
 accidentally paying for someone else in this context as there's only one
 recipient, but many senders.

 The issue of confused payments remains in other situations though.

 For the coffee shop use case, it'd be nicer (I think) if we aim for a
 Square-style UI where the device broadcasts a (link to) a photo of the user
 combined with a bluetooth MAC. Then the merchant tablet can show faces of
 people in the shop, and can push a payment request to the users device.
 That device can then buzz the user, show a confirmation screen, put
 something on their smart watch etc or just auto-authorise the payment
 because the BIP70 signature is from a trusted merchant. User never even
 needs to touch their phone at all.

 On Thu, Feb 5, 2015 at 9:06 PM, Paul Puey p...@airbitz.co wrote:

 The BIP70 protocol would preclude individuals from utilizing the P2P
 transfer spec. It would also require that a Sender have internet
 connectivity to get the payment protocol info. BLE could enable payment w/o
 internet by first transferring the URI to from Recipient to Sender. Then in
 the future, we could sign a Tx and send it over BLE back to the recipient
 (who would still need internet to verify the Tx). This is an important use
 case for areas with poor 3G/4G connectivity as I've experience myself.

 Also, due to Android issues, NFC is incredibly clunky. The URI Sender is
 required to tap the screen *while* the two phones are in contact. We
 support NFC the same way Bitcoin Wallet does, but unless the payment
 recipient has a custom Android device (which a merchant might) then the
 usage model is worse than scanning a QR code. BLE also allows people to pay
 at a distance such as for a donation to a live performer. We'll look at
 adding this to the Motivation section.

 [image: logo]
 *Paul Puey* CEO / Co-Founder, Airbitz Inc
 +1-619-850-8624 | http://airbitz.co | San Diego
 http://facebook.com/airbitz  http://twitter.com/airbitz
 https://plus.google.com/118173667510609425617
 https://go.airbitz.co/comments/feed/  http://linkedin.com/in/paulpuey
   https://angel.co/paul-puey
 *DOWNLOAD THE AIRBITZ WALLET:*
   https://play.google.com/store/apps/details?id=com.airbitz
 https://itunes.apple.com/us/app/airbitz/id843536046


 From: Andreas Schildbach andreas@sc... - 2015-02-05 13:47:04

 Thanks Paul, for writing up your protocol!

 First thoughts:

 For a BIP standard, I think we should skip bitcoin: URIs entirely and
 publish BIP70 payment requests instead. URIs mainly stick around because
 of QR codes limited capacity. BIP70 would partly address the copycat
 problem by signing payment requests.

 In your Motivation section, I miss some words about NFC. NFC already
 addresses all of the usability issues mentioned and is supported by
 mobile wallets since 2011. That doesn't mean your method doesn't make
 sense in some situations, but I think it should be explained why to
 prefer broadcasting payment requests over picking them up via near field
 radio.




 --
 Dive into the World of Parallel Programming. The Go