summaryrefslogtreecommitdiff
path: root/de/678d6e2543d26ba6a2998e30da6f8bac8c26fa
blob: 3cce153d341c0b14fbbc80e9ac2309a8f0879195 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
	helo=mx.sourceforge.net)
	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <paul@airbitz.co>) id 1YJHrb-00075H-2u
	for bitcoin-development@lists.sourceforge.net;
	Thu, 05 Feb 2015 08:32:39 +0000
Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of airbitz.co
	designates 74.125.82.171 as permitted sender)
	client-ip=74.125.82.171; envelope-from=paul@airbitz.co;
	helo=mail-we0-f171.google.com; 
Received: from mail-we0-f171.google.com ([74.125.82.171])
	by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1YJHrY-00031i-CR
	for bitcoin-development@lists.sourceforge.net;
	Thu, 05 Feb 2015 08:32:39 +0000
Received: by mail-we0-f171.google.com with SMTP id k11so6289272wes.2
	for <bitcoin-development@lists.sourceforge.net>;
	Thu, 05 Feb 2015 00:32:30 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=cXQuqE9A5ihhdTh67a84P23mJY8j7FhXF+8UAmlnYLo=;
	b=Su6WmjiI806C/s8/QJRgDMehYthuD8RG6qzgd8+ezz3DbU3K6Gz21et74bbgS6xW8S
	Sc43zFYAUPy7H3h4iUyEd/K/SBQtqPVmcV/CwHgYYgIMQ2dLJ0i6b/hiLBMqTm3H/QUd
	x8SIvOuq6hWno7nMkaWrQ5G8slB5mTwnP1XjwfOOWNl/zfmAShM2yFtcRs7dhWFc1pxI
	cXjN+oWZWGSNBn3EraTUyLDdTB4p2Djeoe1YCOQDZAoqqyq1BHHbrE4hiJrjxsbFU0zo
	YB1C9gcPWW8Eh0kfUFhInWsqd3Rwh5IpYp8JQ0/bU01DEq0ueLeKmknQF24g1lkmbgNg
	XafQ==
X-Gm-Message-State: ALoCoQm10W8cxes8r471apgX+Y9B3cEhpc2v6U2AqMqoWiAhVpA8JmQ/A0Jozo5sl3oGuCt+UB/J
X-Received: by 10.180.74.52 with SMTP id q20mr1312688wiv.0.1423123312165; Thu,
	05 Feb 2015 00:01:52 -0800 (PST)
MIME-Version: 1.0
Received: by 10.216.37.137 with HTTP; Thu, 5 Feb 2015 00:01:31 -0800 (PST)
X-Originating-IP: [98.210.17.60]
From: Paul Puey <paul@airbitz.co>
Date: Thu, 5 Feb 2015 00:01:31 -0800
Message-ID: <CABdy8DLisEM4AMLqYOmDSAKepE3Ec6niT7ecpXDL80yt6hg5jQ@mail.gmail.com>
To: bitcoin-development@lists.sourceforge.net
Content-Type: multipart/alternative; boundary=f46d043890797e5d8f050e52b7aa
X-Spam-Score: 0.3 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
	0.9 THIS_AD                "This ad" and variants
X-Headers-End: 1YJHrY-00031i-CR
Subject: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE)
	transfer of Payment URI
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Thu, 05 Feb 2015 08:32:39 -0000

--f46d043890797e5d8f050e52b7aa
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

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=E2=80=99at=E2=80=99airbitz.co>, Paul Puey <paul=
=E2=80=99at=E2=80=99airbitz.co>

Contributors: Joey Krug <joeykrug=E2=80=99at=E2=80=99gmail.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=E2=80=99s Grill #1) only co=
ntain
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=E2=80=99s =
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. T=
he
   first 10 make up the first 10 characters of the bitcoin URI public addre=
ss
   where to send bitcoin, and must be present. The remaining characters are
   any plain text such as =E2=80=9CThe Habit 1=E2=80=9D or =E2=80=9CStarbuc=
ks-Reg 1=E2=80=9D, more human
   readable information. The partial address serves as a check against a
   nearby attacker who may try to lure a Sender into sending payment to a
   separate wallet by advertising a similar Scan Response but cannot replic=
ate
   a public address with the same leading 10 characters and different trail=
ing
   characters.
   2.

   When the Central scans the advertisement, it may display the Scan
   Response in a human readable listing using the two pieces of information=
.
   If Central chooses this advertisement to receive the full request, it th=
en
   subscribes to the service and writes the characteristic (a second UUID)
   with it=E2=80=99s own name, or a blank if not sending a name, to the Per=
ipheral.
   3.

   Peripheral gets a characteristic write request of the Central=E2=80=99s =
name,
   and acknowledges the receipt by sending a server response.
   4.

   Central receives a characteristic write (from the response) and
   immediately requests the entire bitcoin URI by issuing a read request on
   that characteristic.
   5.

   Peripheral receives the read request and sends the entire bitcoin URI
   over that characteristic up to 512 bytes.

This ends the proposed specification as the bitcoin URI transfer is
complete. The Sender would then normally confirm the request and decide
whether to initiate the fund transfer.
Compatibility

There are no prior BIPs covering this.
Examples

Airbitz iOS Bluetooth Low Energy to Bluetooth Low Energy request transfer.
References



[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=3Dcom.airbitz>
<https://itunes.apple.com/us/app/airbitz/id843536046>

--f46d043890797e5d8f050e52b7aa
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Airbitz has developed and implemented a method for communi=
cating a bitcoin URI across Bluetooth (BLE) or any other P2P, mid range, wi=
reless, broadcast medium. The currently documented implementation is availa=
ble 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 f=
or review and discussion. Here is the current BIP:<div><br><div><br></div><=
div><span id=3D"docs-internal-guid-9f096b22-58c0-7e5e-4500-8da4d4c7735e"><p=
 dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:15px;font-family:Consolas;color:rgb(51,51,51);vertical-=
align:baseline;white-space:pre-wrap;background-color:transparent">BIP: TBD<=
/span></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-botto=
m:0pt"><span style=3D"font-size:15px;font-family:Consolas;color:rgb(51,51,5=
1);vertical-align:baseline;white-space:pre-wrap;background-color:transparen=
t">Title: P2P Wireless URI transfer</span></p><p dir=3D"ltr" style=3D"line-=
height:1;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:15px;fo=
nt-family:Consolas;color:rgb(51,51,51);vertical-align:baseline;white-space:=
pre-wrap;background-color:transparent">Authors: Thomas Baker &lt;tom=E2=80=
=99at=E2=80=99<a href=3D"http://airbitz.co">airbitz.co</a>&gt;, Paul Puey &=
lt;paul=E2=80=99at=E2=80=99<a href=3D"http://airbitz.co">airbitz.co</a>&gt;=
</span></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:15px;font-family:Consolas;color:rgb(51,51,=
51);vertical-align:baseline;white-space:pre-wrap;background-color:transpare=
nt">Contributors: Joey Krug &lt;joeykrug=E2=80=99at=E2=80=99<a href=3D"http=
://gmail.com">gmail.com</a>&gt;</span></p><p dir=3D"ltr" style=3D"line-heig=
ht:1;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:15px;font-f=
amily:Consolas;color:rgb(51,51,51);vertical-align:baseline;white-space:pre-=
wrap;background-color:transparent">Status: proposal</span></p><p dir=3D"ltr=
" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span style=3D"f=
ont-size:15px;font-family:Consolas;color:rgb(51,51,51);vertical-align:basel=
ine;white-space:pre-wrap;background-color:transparent">Type: Standards Trac=
k</span></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bot=
tom:0pt"><span style=3D"font-size:15px;font-family:Consolas;color:rgb(51,51=
,51);vertical-align:baseline;white-space:pre-wrap;background-color:transpar=
ent">Created: 2015-01-12</span></p><br><div dir=3D"ltr" style><table style=
=3D"border:none;border-collapse:collapse"><colgroup><col width=3D"644"></co=
lgroup><tbody><tr style=3D"height:0px"><td style=3D"border:1px solid rgb(22=
1,221,221);vertical-align:top;padding:7px 13px"><h2 dir=3D"ltr" style=3D"li=
ne-height:1.225;margin-top:18pt;margin-bottom:24pt"><span style=3D"font-siz=
e:43px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;white-=
space:pre-wrap;background-color:transparent">Table of Contents</span></h2><=
ul style=3D"margin-top:0pt;margin-bottom:0pt"><li dir=3D"ltr" style=3D"list=
-style-type:circle;font-size:16px;font-family:Arial;color:rgb(51,51,51);ver=
tical-align:baseline;background-color:transparent"><p dir=3D"ltr" style=3D"=
line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style=3D"vertical-=
align:baseline;white-space:pre-wrap;background-color:transparent">Abstract<=
/span></p></li><li dir=3D"ltr" style=3D"list-style-type:circle;font-size:16=
px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;background=
-color:transparent"><p dir=3D"ltr" style=3D"line-height:1.15;margin-top:0pt=
;margin-bottom:0pt"><span style=3D"vertical-align:baseline;white-space:pre-=
wrap;background-color:transparent">Motivation</span></p></li><li dir=3D"ltr=
" style=3D"list-style-type:circle;font-size:16px;font-family:Arial;color:rg=
b(51,51,51);vertical-align:baseline;background-color:transparent"><p dir=3D=
"ltr" style=3D"line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"vertical-align:baseline;white-space:pre-wrap;background-color:transpa=
rent">Specification</span></p></li><li dir=3D"ltr" style=3D"list-style-type=
:circle;font-size:16px;font-family:Arial;color:rgb(51,51,51);vertical-align=
:baseline;background-color:transparent"><p dir=3D"ltr" style=3D"line-height=
:1.15;margin-top:0pt;margin-bottom:0pt"><span style=3D"vertical-align:basel=
ine;white-space:pre-wrap;background-color:transparent">Compatibility</span>=
</p></li><li dir=3D"ltr" style=3D"list-style-type:circle;font-size:16px;fon=
t-family:Arial;color:rgb(51,51,51);vertical-align:baseline;background-color=
:transparent"><p dir=3D"ltr" style=3D"line-height:1.15;margin-top:0pt;margi=
n-bottom:0pt"><span style=3D"vertical-align:baseline;white-space:pre-wrap;b=
ackground-color:transparent">Examples</span></p></li><li dir=3D"ltr" style=
=3D"list-style-type:circle;font-size:16px;font-family:Arial;color:rgb(51,51=
,51);vertical-align:baseline;background-color:transparent"><p dir=3D"ltr" s=
tyle=3D"line-height:1.15;margin-top:0pt;margin-bottom:24pt"><span style=3D"=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
References</span></p></li></ul></td></tr></tbody></table></div><h2 dir=3D"l=
tr" style=3D"line-height:1.225;margin-top:17pt;margin-bottom:12pt"><span st=
yle=3D"font-size:40px;font-family:Arial;color:rgb(51,51,51);vertical-align:=
baseline;white-space:pre-wrap;background-color:transparent">Abstract</span>=
</h2><p dir=3D"ltr" style=3D"line-height:1.60000002384186;margin-top:0pt;ma=
rgin-bottom:12pt"><span style=3D"font-size:16px;font-family:Arial;color:rgb=
(51,51,51);vertical-align:baseline;white-space:pre-wrap;background-color:tr=
ansparent">This is a protocol for peer-to-peer wireless transfer of a URI r=
equest using an open broadcast or advertisement channel such as Bluetooth, =
Bluetooth Low Energy, or WiFi Direct.</span></p><h2 dir=3D"ltr" style=3D"li=
ne-height:1.225;margin-top:17pt;margin-bottom:12pt"><span style=3D"font-siz=
e:40px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;white-=
space:pre-wrap;background-color:transparent">Motivation</span></h2><p dir=
=3D"ltr" style=3D"line-height:1.60000002384186;margin-top:0pt;margin-bottom=
:12pt"><span style=3D"font-size:16px;font-family:Arial;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
There are disadvantages for a merchant (requester) and customer (sender) to=
 exchange a URI request using QR codes that can be eliminated by using wire=
less broadcast or advertisements.</span></p><p dir=3D"ltr" style=3D"line-he=
ight:1.60000002384186;margin-top:0pt;margin-bottom:12pt"><span style=3D"fon=
t-size:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;w=
hite-space:pre-wrap;background-color:transparent">Current QR code scan meth=
od to transfer a request URI from merchant (Requester) to customer (Sender)=
 is cumbersome. A usual scenario is a merchant with a POS terminal for orde=
r 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 represe=
nting 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 tab=
let. 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 light=
s, or significant distance between QR code and camera can create difficult =
and cumbersome experiences for users.</span></p><p dir=3D"ltr" style=3D"lin=
e-height:1.60000002384186;margin-top:0pt;margin-bottom:12pt"><span style=3D=
"font-size:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseli=
ne;white-space:pre-wrap;background-color:transparent">Using a wireless loca=
l broadcast allows the merchant to just enter the payment and wait. The tab=
let and smartphone are not maneuvered to align in any way. The customer obs=
erves broadcast listings, selects the appropriate one from possible simulta=
neous broadcasts from other POS stations nearby, examines the URI request d=
etails such as amount, and decides whether to send funds, initiating a bitc=
oin network transfer. The merchant and customer then receive the transactio=
n confirmations and are done with the sale. Merchant and customer devices a=
re kept private and secured in their own possession.</span></p><p dir=3D"lt=
r" style=3D"line-height:1.60000002384186;margin-top:0pt;margin-bottom:12pt"=
><span style=3D"font-size:16px;font-family:Arial;color:rgb(51,51,51);vertic=
al-align:baseline;white-space:pre-wrap;background-color:transparent">The UR=
I and other broadcast identification (Joe=E2=80=99s Grill #1) only contain =
public information. However, a copycat broadcaster acting as MITM might dup=
licate 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.</span></p=
><h2 dir=3D"ltr" style=3D"line-height:1.225;margin-top:17pt;margin-bottom:1=
2pt"><span style=3D"font-size:40px;font-family:Arial;color:rgb(51,51,51);ve=
rtical-align:baseline;white-space:pre-wrap;background-color:transparent">Sp=
ecification</span></h2><p dir=3D"ltr" style=3D"line-height:1.60000002384186=
;margin-top:0pt;margin-bottom:12pt"><span style=3D"font-size:16px;font-fami=
ly:Arial;color:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;b=
ackground-color:transparent">Requester generates a bitcoin URI request of v=
ariable length, and a limited descriptive identifier string. Requester then=
 broadcasts the URI=E2=80=99s partial public address (&lt;paddress&gt;) plu=
s identifier (&lt;id&gt;) over a publicly visible wireless channel.</span><=
/p><p dir=3D"ltr" style=3D"line-height:1.60000002384186;margin-top:0pt;marg=
in-bottom:12pt"><span style=3D"font-size:16px;font-family:Arial;color:rgb(5=
1,51,51);vertical-align:baseline;white-space:pre-wrap;background-color:tran=
sparent">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.</span></p><p dir=3D"ltr" style=3D"line-height:1.=
60000002384186;margin-top:0pt;margin-bottom:12pt"><span style=3D"font-size:=
16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;white-sp=
ace:pre-wrap;background-color:transparent">Requester sends full URI back ov=
er the data channel.</span></p><p dir=3D"ltr" style=3D"line-height:1.600000=
02384186;margin-top:0pt;margin-bottom:12pt"><span style=3D"font-size:16px;f=
ont-family:Arial;color:rgb(51,51,51);vertical-align:baseline;white-space:pr=
e-wrap;background-color:transparent">Sender device ensures &lt;paddress&gt;=
 is part of the full URI public address and checks the full address integri=
ty. Checking the broadcast and full URI integrity prevents a copycat device=
 within range from copying the partial address and fooling the customer int=
o sending funds to the copycat instead.</span></p><p dir=3D"ltr" style=3D"l=
ine-height:1.60000002384186;margin-top:0pt;margin-bottom:12pt"><span style=
=3D"font-size:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:bas=
eline;white-space:pre-wrap;background-color:transparent">Below is a descrip=
tion of the protocol through Bluetooth Smart (Low Energy).</span></p><p dir=
=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
 Requestor =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Sender =C2=A0=C2=A0=C2=A0=C2=A0- B=
itcoin transaction roles</span></p><p dir=3D"ltr" style=3D"line-height:1;ma=
rgin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:13px;font-family:&=
#39;Courier New&#39;;color:rgb(51,51,51);vertical-align:baseline;white-spac=
e:pre-wrap;background-color:transparent"> Peripheral =C2=A0=C2=A0=C2=A0=C2=
=A0Central =C2=A0=C2=A0=C2=A0- Bluetooth GAP definitions</span></p><p dir=
=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
 =C2=A0=C2=A0Mode =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0Mode</span></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;marg=
in-bottom:0pt"><span style=3D"font-size:13px;font-family:&#39;Courier New&#=
39;;color:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;backgr=
ound-color:transparent">1 =C2=A0=C2=A0|-------------&gt;| =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0- Requestor Advertises partial bitcoin: URI + Name</sp=
an></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0=
pt"><span style=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:r=
gb(51,51,51);vertical-align:baseline;white-space:pre-wrap;background-color:=
transparent"> =C2=A0=C2=A0=C2=A0| =C2=A0=C2=A0=C2=A0=C2=A0... =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0| =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span></p><p dir=
=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
2 =C2=A0=C2=A0|&lt;-------------| =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0- Sub=
scribe then send sender&#39;s Name, requesting a response</span></p><p dir=
=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
3 =C2=A0=C2=A0|-------------&gt;| =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0- ACK=
</span></p><p dir=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:13px;font-family:&#39;Courier New&#39;;col=
or:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;background-co=
lor:transparent">4 =C2=A0=C2=A0|&lt;-------------| =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0- request Read Characteristic from peripheral</span></p><p dir=
=3D"ltr" style=3D"line-height:1;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:13px;font-family:&#39;Courier New&#39;;color:rgb(51,51,51);=
vertical-align:baseline;white-space:pre-wrap;background-color:transparent">=
5 =C2=A0=C2=A0|-------------&gt;| =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0- Sen=
der receives full bitcoin: URI</span></p><br><ol style=3D"margin-top:0pt;ma=
rgin-bottom:0pt"><li dir=3D"ltr" style=3D"list-style-type:decimal;font-size=
:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;backgro=
und-color:transparent"><p dir=3D"ltr" style=3D"line-height:1.60000002384186=
;margin-top:0pt;margin-bottom:0pt"><span style=3D"vertical-align:baseline;w=
hite-space:pre-wrap;background-color:transparent">Peripheral advertises ove=
r a service UUID a BLE extended advertisement with a Scan Response containi=
ng the partial address of a bitcoin URI and a Name, any plain text. The ent=
ire 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 mu=
st be present. The remaining characters are any plain text such as =E2=80=
=9CThe Habit 1=E2=80=9D or =E2=80=9CStarbucks-Reg 1=E2=80=9D, more human re=
adable information. The partial address serves as a check against a nearby =
attacker who may try to lure a Sender into sending payment to a separate wa=
llet by advertising a similar Scan Response but cannot replicate a public a=
ddress with the same leading 10 characters and different trailing character=
s.</span></p></li><li dir=3D"ltr" style=3D"list-style-type:decimal;font-siz=
e:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;backgr=
ound-color:transparent"><p dir=3D"ltr" style=3D"line-height:1.6000000238418=
6;margin-top:0pt;margin-bottom:0pt"><span style=3D"vertical-align:baseline;=
white-space:pre-wrap;background-color:transparent">When the Central scans t=
he advertisement, it may display the Scan Response in a human readable list=
ing using the two pieces of information. If Central chooses this advertisem=
ent to receive the full request, it then subscribes to the service and writ=
es the characteristic (a second UUID) with it=E2=80=99s own name, or a blan=
k if not sending a name, to the Peripheral.</span></p></li><li dir=3D"ltr" =
style=3D"list-style-type:decimal;font-size:16px;font-family:Arial;color:rgb=
(51,51,51);vertical-align:baseline;background-color:transparent"><p dir=3D"=
ltr" style=3D"line-height:1.60000002384186;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"vertical-align:baseline;white-space:pre-wrap;background-co=
lor:transparent">Peripheral gets a characteristic write request of the Cent=
ral=E2=80=99s name, and acknowledges the receipt by sending a server respon=
se.</span></p></li><li dir=3D"ltr" style=3D"list-style-type:decimal;font-si=
ze:16px;font-family:Arial;color:rgb(51,51,51);vertical-align:baseline;backg=
round-color:transparent"><p dir=3D"ltr" style=3D"line-height:1.600000023841=
86;margin-top:0pt;margin-bottom:0pt"><span style=3D"vertical-align:baseline=
;white-space:pre-wrap;background-color:transparent">Central receives a char=
acteristic write (from the response) and immediately requests the entire bi=
tcoin URI by issuing a read request on that characteristic.</span></p></li>=
<li dir=3D"ltr" style=3D"list-style-type:decimal;font-size:16px;font-family=
:Arial;color:rgb(51,51,51);vertical-align:baseline;background-color:transpa=
rent"><p dir=3D"ltr" style=3D"line-height:1.60000002384186;margin-top:0pt;m=
argin-bottom:12pt"><span style=3D"vertical-align:baseline;white-space:pre-w=
rap;background-color:transparent">Peripheral receives the read request and =
sends the entire bitcoin URI over that characteristic up to 512 bytes.</spa=
n></p></li></ol><p dir=3D"ltr" style=3D"line-height:1.60000002384186;margin=
-top:0pt;margin-bottom:12pt"><span style=3D"font-size:16px;font-family:Aria=
l;color:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;backgrou=
nd-color:transparent">This ends the proposed specification as the bitcoin U=
RI transfer is complete. The Sender would then normally confirm the request=
 and decide whether to initiate the fund transfer.</span></p><h2 dir=3D"ltr=
" style=3D"line-height:1.225;margin-top:17pt;margin-bottom:12pt"><span styl=
e=3D"font-size:40px;font-family:Arial;color:rgb(51,51,51);vertical-align:ba=
seline;white-space:pre-wrap;background-color:transparent">Compatibility</sp=
an></h2><p dir=3D"ltr" style=3D"line-height:1.60000002384186;margin-top:0pt=
;margin-bottom:12pt"><span style=3D"font-size:16px;font-family:Arial;color:=
rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;background-color=
:transparent">There are no prior BIPs covering this.</span></p><h2 dir=3D"l=
tr" style=3D"line-height:1;margin-top:17pt;margin-bottom:12pt"><span style=
=3D"font-size:40px;font-family:Arial;color:rgb(51,51,51);vertical-align:bas=
eline;white-space:pre-wrap;background-color:transparent">Examples</span></h=
2><p dir=3D"ltr" style=3D"line-height:1.45;margin-top:0pt;margin-bottom:12p=
t"><span style=3D"font-size:16px;font-family:Arial;color:rgb(51,51,51);vert=
ical-align:baseline;white-space:pre-wrap;background-color:transparent">Airb=
itz iOS Bluetooth Low Energy to Bluetooth Low Energy request transfer.</spa=
n></p><h2 dir=3D"ltr" style=3D"line-height:1.225;margin-top:17pt;margin-bot=
tom:12pt"><span style=3D"font-size:40px;font-family:Arial;color:rgb(51,51,5=
1);vertical-align:baseline;white-space:pre-wrap;background-color:transparen=
t">References</span></h2><br><br></span></div><div><br clear=3D"all"><div><=
div class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><=
div dir=3D"ltr"><div><div dir=3D"ltr"><div dir=3D"ltr"><br><table border=3D=
"0" style=3D"font-size:medium;font-family:Helvetica,Arial,sans-serif"><tbod=
y><tr valign=3D"top"><td style=3D"width:auto;vertical-align:top;white-space=
:nowrap"><img src=3D"https://s3.amazonaws.com/webapp.wisestamp.com/v7Zg7GfI=
Q9mF5xlHZrZA_airbitzlogo.png" alt=3D"logo" style=3D"border: none; border-ra=
dius: 4px;">=C2=A0<span style=3D"font-size:small">=C2=A0=C2=A0<br></span></=
td><td><span style=3D"font-size:small"><font color=3D"#3d85c6"><b>Paul Puey=
</b></font><font color=3D"#808080">=C2=A0</font><span style=3D"color:rgb(13=
6,136,136)">CEO / Co-Founder</span><span style=3D"color:rgb(136,136,136)">,=
 Airbitz Inc</span></span><br><div style=3D"margin-top:0px;margin-bottom:0p=
x"><span style=3D"font-size:small"><span style=3D"color:rgb(128,128,128)"><=
a style=3D"color:rgb(128,128,128);outline:none;text-decoration:none">+1-6</=
a>19-850-8624=C2=A0</span></span><span style=3D"font-size:small"><span styl=
e=3D"color:rgb(69,102,142)">|=C2=A0</span><a href=3D"http://airbitz.co/" st=
yle=3D"color:rgb(128,128,128);outline:none" target=3D"_blank">http://airbit=
z.co</a></span><span style=3D"font-size:small;color:rgb(128,128,128)">=C2=
=A0</span><span style=3D"font-size:small;color:rgb(128,128,128)"><span styl=
e=3D"color:rgb(69,102,142)">|=C2=A0</span>San Diego</span></div><div style=
=3D"margin-top:5px"><a href=3D"http://facebook.com/airbitz" style=3D"color:=
rgb(17,85,204);outline:none" target=3D"_blank"><img src=3D"http://images.wi=
sestamp.com/facebook.png" width=3D"16" style=3D"border: none;"></a>=C2=A0<a=
 href=3D"http://twitter.com/airbitz" style=3D"color:rgb(17,85,204);outline:=
none" target=3D"_blank"><img src=3D"http://images.wisestamp.com/twitter.png=
" width=3D"16" alt=3D"" style=3D"border: none;"></a>=C2=A0<a href=3D"https:=
//plus.google.com/118173667510609425617" style=3D"color:rgb(17,85,204);outl=
ine:none" target=3D"_blank"><img src=3D"http://images.wisestamp.com/googlep=
lus.png" width=3D"16" style=3D"border: none;"></a>=C2=A0<a href=3D"https://=
go.airbitz.co/comments/feed/" style=3D"color:rgb(17,85,204);outline:none" t=
arget=3D"_blank"><img src=3D"http://images.wisestamp.com/blogRSS.png" width=
=3D"16" style=3D"border: none;"></a>=C2=A0<a href=3D"http://linkedin.com/in=
/paulpuey" style=3D"color:rgb(17,85,204);outline:none" target=3D"_blank"><i=
mg src=3D"http://images.wisestamp.com/linkedin.png" width=3D"16" style=3D"b=
order: none;" alt=3D""></a>=C2=A0<a href=3D"https://angel.co/paul-puey" sty=
le=3D"color:rgb(17,85,204);outline:none" target=3D"_blank"><img src=3D"http=
://images.wisestamp.com/angelList.png" width=3D"16" style=3D"border: none;"=
 alt=3D""></a></div></td></tr></tbody></table><div style=3D"font-size:14px;=
margin-bottom:4px;font-family:Helvetica,Arial,sans-serif;font-weight:bold">=
<b style=3D"font-size:x-small;font-family:arial,sans-serif">DOWNLOAD THE AI=
RBITZ WALLET:</b><br></div><span style=3D"font-size:medium;font-family:Helv=
etica,Arial,sans-serif"><a href=3D"https://play.google.com/store/apps/detai=
ls?id=3Dcom.airbitz" style=3D"color:rgb(17,85,204);outline:none;text-decora=
tion:none" target=3D"_blank"><img src=3D"http://images.wisestamp.com.s3.ama=
zonaws.com/apps/mobile_android.png" style=3D"border: none;">=C2=A0</a></spa=
n><span style=3D"font-size:medium;font-family:Helvetica,Arial,sans-serif"><=
/span><span style=3D"font-size:medium;font-family:Helvetica,Arial,sans-seri=
f"><a href=3D"https://itunes.apple.com/us/app/airbitz/id843536046" style=3D=
"color:rgb(17,85,204);outline:none;text-decoration:none" target=3D"_blank">=
<img src=3D"http://images.wisestamp.com.s3.amazonaws.com/apps/mobile_iphone=
.png" style=3D"border: none;"></a></span><br></div><div dir=3D"ltr"><br></d=
iv><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br></div></div><div =
dir=3D"ltr"><br></div></div></div></div></div></div></div></div></div></div=
></div>
</div></div></div>

--f46d043890797e5d8f050e52b7aa--