diff options
author | Paul Puey <paul@airbitz.co> | 2015-02-05 00:01:31 -0800 |
---|---|---|
committer | bitcoindev <bitcoindev@gnusha.org> | 2015-02-05 08:32:39 +0000 |
commit | a783b90d99bdc3d85b5074113262dc90bbf3b446 (patch) | |
tree | 0169b8a4d06f64c45ebc08b856073f778117d62e | |
parent | b292e5c9e5791788bdbe5cb9671eb4ac80323c23 (diff) | |
download | pi-bitcoindev-a783b90d99bdc3d85b5074113262dc90bbf3b446.tar.gz pi-bitcoindev-a783b90d99bdc3d85b5074113262dc90bbf3b446.zip |
[Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI
-rw-r--r-- | de/678d6e2543d26ba6a2998e30da6f8bac8c26fa | 595 |
1 files changed, 595 insertions, 0 deletions
diff --git a/de/678d6e2543d26ba6a2998e30da6f8bac8c26fa b/de/678d6e2543d26ba6a2998e30da6f8bac8c26fa new file mode 100644 index 000000000..3cce153d3 --- /dev/null +++ b/de/678d6e2543d26ba6a2998e30da6f8bac8c26fa @@ -0,0 +1,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 <tom=E2=80= +=99at=E2=80=99<a href=3D"http://airbitz.co">airbitz.co</a>>, Paul Puey &= +lt;paul=E2=80=99at=E2=80=99<a href=3D"http://airbitz.co">airbitz.co</a>>= +</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 <joeykrug=E2=80=99at=E2=80=99<a href=3D"http= +://gmail.com">gmail.com</a>></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 (<paddress>) plu= +s identifier (<id>) 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 <paddress>= + 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:'Courier New';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';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:'Courier New';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:'Courier New&#= +39;;color:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;backgr= +ound-color:transparent">1 =C2=A0=C2=A0|------------->| =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:'Courier New';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:'Courier New';color:rgb(51,51,51);= +vertical-align:baseline;white-space:pre-wrap;background-color:transparent">= +2 =C2=A0=C2=A0|<-------------| =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0- Sub= +scribe then send sender'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:'Courier New';color:rgb(51,51,51);= +vertical-align:baseline;white-space:pre-wrap;background-color:transparent">= +3 =C2=A0=C2=A0|------------->| =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:'Courier New';col= +or:rgb(51,51,51);vertical-align:baseline;white-space:pre-wrap;background-co= +lor:transparent">4 =C2=A0=C2=A0|<-------------| =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:'Courier New';color:rgb(51,51,51);= +vertical-align:baseline;white-space:pre-wrap;background-color:transparent">= +5 =C2=A0=C2=A0|------------->| =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-- + + |