summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Puey <paul@airbitz.co>2015-02-05 00:01:31 -0800
committerbitcoindev <bitcoindev@gnusha.org>2015-02-05 08:32:39 +0000
commita783b90d99bdc3d85b5074113262dc90bbf3b446 (patch)
tree0169b8a4d06f64c45ebc08b856073f778117d62e
parentb292e5c9e5791788bdbe5cb9671eb4ac80323c23 (diff)
downloadpi-bitcoindev-a783b90d99bdc3d85b5074113262dc90bbf3b446.tar.gz
pi-bitcoindev-a783b90d99bdc3d85b5074113262dc90bbf3b446.zip
[Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI
-rw-r--r--de/678d6e2543d26ba6a2998e30da6f8bac8c26fa595
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 &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--
+
+