<oembed><type>rich</type><version>1.0</version><author_name>npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_name><author_url>https://nostr.ae/npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-02-05&#xA;📝 Original message:Thanks Paul, for writing up your protocol!&#xA;&#xA;First thoughts:&#xA;&#xA;For a BIP standard, I think we should skip &#34;bitcoin:&#34; URIs entirely and&#xA;publish BIP70 payment requests instead. URIs mainly stick around because&#xA;of QR codes limited capacity. BIP70 would partly address the &#34;copycat&#34;&#xA;problem by signing payment requests.&#xA;&#xA;In your Motivation section, I miss some words about NFC. NFC already&#xA;addresses all of the usability issues mentioned and is supported by&#xA;mobile wallets since 2011. That doesn&#39;t mean your method doesn&#39;t make&#xA;sense in some situations, but I think it should be explained why to&#xA;prefer broadcasting payment requests over picking them up via near field&#xA;radio.&#xA;&#xA;&#xA;On 02/05/2015 09:01 AM, Paul Puey wrote:&#xA;&gt; Airbitz has developed and implemented a method for communicating a&#xA;&gt; bitcoin URI across Bluetooth (BLE) or any other P2P, mid range,&#xA;&gt; wireless, broadcast medium. The currently documented implementation is&#xA;&gt; available in our iOS and Android mobile wallet (updated Android version&#xA;&gt; with BLE coming in about 1 week). We would like to have the BIP pulled&#xA;&gt; into Github for review and discussion. Here is the current BIP:&#xA;&gt; &#xA;&gt; &#xA;&gt; BIP: TBD&#xA;&gt; &#xA;&gt; Title: P2P Wireless URI transfer&#xA;&gt; &#xA;&gt; Authors: Thomas Baker &lt;tom’at’airbitz.co &lt;http://airbitz.co&gt;&gt;, Paul Puey&#xA;&gt; &lt;paul’at’airbitz.co &lt;http://airbitz.co&gt;&gt;&#xA;&gt; &#xA;&gt; Contributors: Joey Krug &lt;joeykrug’at’gmail.com &lt;http://gmail.com&gt;&gt;&#xA;&gt; &#xA;&gt; Status: proposal&#xA;&gt; &#xA;&gt; Type: Standards Track&#xA;&gt; &#xA;&gt; Created: 2015-01-12&#xA;&gt; &#xA;&gt; &#xA;&gt;     Table of Contents&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     Abstract&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     Motivation&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     Specification&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     Compatibility&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     Examples&#xA;&gt; &#xA;&gt;   *&#xA;&gt; &#xA;&gt;     References&#xA;&gt; &#xA;&gt; &#xA;&gt;     Abstract&#xA;&gt; &#xA;&gt; This is a protocol for peer-to-peer wireless transfer of a URI request&#xA;&gt; using an open broadcast or advertisement channel such as Bluetooth,&#xA;&gt; Bluetooth Low Energy, or WiFi Direct.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Motivation&#xA;&gt; &#xA;&gt; There are disadvantages for a merchant (requester) and customer (sender)&#xA;&gt; to exchange a URI request using QR codes that can be eliminated by using&#xA;&gt; wireless broadcast or advertisements.&#xA;&gt; &#xA;&gt; Current QR code scan method to transfer a request URI from merchant&#xA;&gt; (Requester) to customer (Sender) is cumbersome. A usual scenario is a&#xA;&gt; merchant with a POS terminal for order entry and a separate tablet for&#xA;&gt; transacting payments with bitcoin, and a customer with a smartphone.&#xA;&gt; After the order is entered, the merchant enters payment request&#xA;&gt; information into the tablet, generates the QR code representing the URI,&#xA;&gt; and presents this to the customer. The customer prepares to scan the QR&#xA;&gt; code with their smartphone by maneuvering the camera to the tablet. The&#xA;&gt; tablet screen must be relatively clean, point at the customer, and held&#xA;&gt; steady. The smartphone camera lens must be clean, point at the tablet&#xA;&gt; screen, come into range, and held steady to focus and wait for a QR&#xA;&gt; scan. Environmental conditions such as bright outdoor sunlight, indoor&#xA;&gt; spot lights, or significant distance between QR code and camera can&#xA;&gt; create difficult and cumbersome experiences for users.&#xA;&gt; &#xA;&gt; Using a wireless local broadcast allows the merchant to just enter the&#xA;&gt; payment and wait. The tablet and smartphone are not maneuvered to align&#xA;&gt; in any way. The customer observes broadcast listings, selects the&#xA;&gt; appropriate one from possible simultaneous broadcasts from other POS&#xA;&gt; stations nearby, examines the URI request details such as amount, and&#xA;&gt; decides whether to send funds, initiating a bitcoin network transfer.&#xA;&gt; The merchant and customer then receive the transaction confirmations and&#xA;&gt; are done with the sale. Merchant and customer devices are kept private&#xA;&gt; and secured in their own possession.&#xA;&gt; &#xA;&gt; The URI and other broadcast identification (Joe’s Grill #1) only contain&#xA;&gt; public information. However, a copycat broadcaster acting as MITM might&#xA;&gt; duplicate the broadcast simultaneously as the merchant, attempting to&#xA;&gt; lure the customer to send funds to the copycat. That attack is mitigated&#xA;&gt; with this broadcast method because of the partial address in the broadcast.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Specification&#xA;&gt; &#xA;&gt; Requester generates a bitcoin URI request of variable length, and a&#xA;&gt; limited descriptive identifier string. Requester then broadcasts the&#xA;&gt; URI’s partial public address (&lt;paddress&gt;) plus identifier (&lt;id&gt;) over a&#xA;&gt; publicly visible wireless channel.&#xA;&gt; &#xA;&gt; Sender scans for broadcasts on their device, examines and selects the&#xA;&gt; desired request by the identifier and partial address. This connects a&#xA;&gt; data channel to Requester.&#xA;&gt; &#xA;&gt; Requester sends full URI back over the data channel.&#xA;&gt; &#xA;&gt; Sender device ensures &lt;paddress&gt; is part of the full URI public address&#xA;&gt; and checks the full address integrity. Checking the broadcast and full&#xA;&gt; URI integrity prevents a copycat device within range from copying the&#xA;&gt; partial address and fooling the customer into sending funds to the&#xA;&gt; copycat instead.&#xA;&gt; &#xA;&gt; Below is a description of the protocol through Bluetooth Smart (Low Energy).&#xA;&gt; &#xA;&gt; Requestor      Sender     - Bitcoin transaction roles&#xA;&gt; &#xA;&gt; Peripheral     Central    - Bluetooth GAP definitions&#xA;&gt; &#xA;&gt;   Mode           Mode&#xA;&gt; &#xA;&gt; 1   |-------------&gt;|       - Requestor Advertises partial bitcoin: URI +&#xA;&gt; Name&#xA;&gt; &#xA;&gt;    |     ...      |       &#xA;&gt; &#xA;&gt; 2   |&lt;-------------|       - Subscribe then send sender&#39;s Name,&#xA;&gt; requesting a response&#xA;&gt; &#xA;&gt; 3   |-------------&gt;|       - ACK&#xA;&gt; &#xA;&gt; 4   |&lt;-------------|       - request Read Characteristic from peripheral&#xA;&gt; &#xA;&gt; 5   |-------------&gt;|       - Sender receives full bitcoin: URI&#xA;&gt; &#xA;&gt; &#xA;&gt;  1.&#xA;&gt; &#xA;&gt;     Peripheral advertises over a service UUID a BLE extended&#xA;&gt;     advertisement with a Scan Response containing the partial address of&#xA;&gt;     a bitcoin URI and a Name, any plain text. The entire response is&#xA;&gt;     limited to 26 characters. The first 10 make up the first 10&#xA;&gt;     characters of the bitcoin URI public address where to send bitcoin,&#xA;&gt;     and must be present. The remaining characters are any plain text&#xA;&gt;     such as “The Habit 1” or “Starbucks-Reg 1”, more human readable&#xA;&gt;     information. The partial address serves as a check against a nearby&#xA;&gt;     attacker who may try to lure a Sender into sending payment to a&#xA;&gt;     separate wallet by advertising a similar Scan Response but cannot&#xA;&gt;     replicate a public address with the same leading 10 characters and&#xA;&gt;     different trailing characters.&#xA;&gt; &#xA;&gt;  2.&#xA;&gt; &#xA;&gt;     When the Central scans the advertisement, it may display the Scan&#xA;&gt;     Response in a human readable listing using the two pieces of&#xA;&gt;     information. If Central chooses this advertisement to receive the&#xA;&gt;     full request, it then subscribes to the service and writes the&#xA;&gt;     characteristic (a second UUID) with it’s own name, or a blank if not&#xA;&gt;     sending a name, to the Peripheral.&#xA;&gt; &#xA;&gt;  3.&#xA;&gt; &#xA;&gt;     Peripheral gets a characteristic write request of the Central’s&#xA;&gt;     name, and acknowledges the receipt by sending a server response.&#xA;&gt; &#xA;&gt;  4.&#xA;&gt; &#xA;&gt;     Central receives a characteristic write (from the response) and&#xA;&gt;     immediately requests the entire bitcoin URI by issuing a read&#xA;&gt;     request on that characteristic.&#xA;&gt; &#xA;&gt;  5.&#xA;&gt; &#xA;&gt;     Peripheral receives the read request and sends the entire bitcoin&#xA;&gt;     URI over that characteristic up to 512 bytes.&#xA;&gt; &#xA;&gt; This ends the proposed specification as the bitcoin URI transfer is&#xA;&gt; complete. The Sender would then normally confirm the request and decide&#xA;&gt; whether to initiate the fund transfer.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Compatibility&#xA;&gt; &#xA;&gt; There are no prior BIPs covering this.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Examples&#xA;&gt; &#xA;&gt; Airbitz iOS Bluetooth Low Energy to Bluetooth Low Energy request transfer.&#xA;&gt; &#xA;&gt; &#xA;&gt;     References&#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; logo   &#xA;&gt; &#x9;*Paul Puey* CEO / Co-Founder, Airbitz Inc&#xA;&gt; +1-619-850-8624 | http://airbitz.co &lt;http://airbitz.co/&gt; | San Diego&#xA;&gt; &lt;http://facebook.com/airbitz&gt; &lt;http://twitter.com/airbitz&gt; &lt;https://plus.google.com/118173667510609425617&gt; &lt;https://go.airbitz.co/comments/feed/&gt; &lt;http://linkedin.com/in/paulpuey&gt; &lt;https://angel.co/paul-puey&gt;&#xA;&gt; &#xA;&gt; *DOWNLOAD THE AIRBITZ WALLET:*&#xA;&gt;  &#xA;&gt; &lt;https://play.google.com/store/apps/details?id=com.airbitz&gt;&lt;https://itunes.apple.com/us/app/airbitz/id843536046&gt;&#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Dive into the World of Parallel Programming. The Go Parallel Website,&#xA;&gt; sponsored by Intel and developed in partnership with Slashdot Media, is your&#xA;&gt; hub for all things parallel software development, from weekly thought&#xA;&gt; leadership blogs to news, videos, case studies, tutorials and more. Take a&#xA;&gt; look and join the conversation now. http://goparallel.sourceforge.net/&#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;</html></oembed>