Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 3DAFC408 for ; Tue, 2 Jan 2018 11:32:25 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-lf0-f49.google.com (mail-lf0-f49.google.com [209.85.215.49]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 39B8BA7 for ; Tue, 2 Jan 2018 11:32:24 +0000 (UTC) Received: by mail-lf0-f49.google.com with SMTP id y71so4341141lfd.12 for ; Tue, 02 Jan 2018 03:32:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rgrant-org.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=gUhA+7miy0p8kaG6J8/bgTbOL0zPCEQA37MSRrbfJcw=; b=ymZHDvmdQwrn5EBC8zU3Z2JLYssMJU2B3Ql3Amvd90IQZK+0E95xtr7Yw2H45Aqjv0 tRsU5+FOymBMDri3UGAt8JKZ1w7YNDsgVezWw8fIoHQ07OVPNeyyQ80qoO6c1vdVSBzl StDhG24sTIZD/9r+7VDR8QOe70YqEwdFOmuP3K6LtnhqCUxwR4YfQMz3Hs4quS/WUeoG DWK6s8ZdbAV2ePYzJ6yaWuwnOyWc2Yh3wkIwTxTNCKUcaOEwJpKg61iThdPdhzkqfmMG LEO91tR5w3raR6AgE50kQk3eU2umbq1hptba4iizeoMXqUBRdUbceLDJFnU8ASpKeUP7 tCQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=gUhA+7miy0p8kaG6J8/bgTbOL0zPCEQA37MSRrbfJcw=; b=l7I1viE5Eh0B6t6KwXJilZXWL7ssBiPTXLEbyf+zVvWOZDyFR09whS0ZzIGjs6o2Me YteVa2yxKXhuc86YwpV1u7gnE/Vp42tiO8mK2Jf0hFVwij5tSkjYJYHQtpiGFA8ZT1Cy W7HBdNRNrBG47pagu9F6MXujoFyMmimJf3prWBttsW+jR7vpUKQKs0DKVyielGRSa+cO o46dzOJss0Mk2ngihGVlFLBX/ZQzq070/jE/IQ5c5TKqBRDKKkYcY2furniH4Iky+4QK FCjOhtlZakh3ZeSoWULVWXkc4lT+taM8Fqmmj56uhQulUTJ7KqER6dJOmyGmsOKbocdo m2aA== X-Gm-Message-State: AKGB3mKfvhpS5VoTrLWUVnLTJ1cxhBaOEGbsZSfirOc/g8v56hvbj+n2 Kb6LNoD5JjgS8+IFhUPZCajHO96IZspfjLytO2BNaQ== X-Google-Smtp-Source: ACJfBot+QZCozZGgzRlFeHR09EN/R7T82W4tMxRy766YDGsqjtTN0VnHsr25iz4YMRjQ4ayUAhZ9OCfL2sosgPlvC9s= X-Received: by 10.46.9.69 with SMTP id 66mr26568576ljj.134.1514892742300; Tue, 02 Jan 2018 03:32:22 -0800 (PST) MIME-Version: 1.0 Sender: rgrant@rgrant.org Received: by 10.25.79.10 with HTTP; Tue, 2 Jan 2018 03:31:51 -0800 (PST) In-Reply-To: References: From: Ryan Grant Date: Tue, 2 Jan 2018 06:31:51 -0500 X-Google-Sender-Auth: 912okY5RPaksod-0-4TVGsKk1pc Message-ID: To: James Hilliard , Bitcoin Protocol Discussion Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] Decoupling BIP70 Payment Protocol from Wallets X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jan 2018 11:32:25 -0000 On Mon, Jan 1, 2018 at 1:50 PM, James Hilliard via bitcoin-dev wrote: > I propose that we move the BIP70 protocol implementation into a > browser extension that can communicate with wallets over a simple IPC > mechanism [...] As a reminder, there is a W3C Payments API, currently proceeding along the W3C Recommendation track, which registers "payment handlers" in the browser, and selects one to complete a transaction: https://w3c.github.io/payment-handler/ The purpose of the payments API is to automate all data entry and handle choices related to common transactions on the Web. Payment requests will often ask for information that Bitcoin wallets have no current need to provide, such as a shipping address. If shipping options or other personally identifying information (such as an email address and a return payment address) are involved, then it is the chosen payment type's *handler* that is tasked with negotiating with the user how to reveal the supposedly necessary information. https://www.w3.org/TR/payment-request/#the-options-argument Although it may seem early for wallet makers to consider integration with a mere W3C Recommendation, it would not be early to choose the right architecture to build code on, given that this is in the works for the major browsers. Development can proceed even in browsers that have not implemented anything, through an HTML5 Javascript polyfill. A demonstration which includes payment in bitcoins is already available, although it leaves as an exercise for the reader exactly how the txid would be made known to the handler (whether manually input by paste buffer after copying from an external app, or returned through IPC): https://web-payments.io/ https://github.com/digitalbazaar/payment-handler-polyfill From my brief inspection: not bad. I don't see anything in this spec that would preclude the workflow of a Bitcoin transaction, whether on-chain (with the seller's backend marking off confirmations) or using the Lightning Network. It even allows the seller to offer a discount on certain payment methods: https://www.w3.org/TR/payment-request/#dom-paymentdetailsmodifier