Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 370FB482 for ; Tue, 21 Jul 2015 14:58:45 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id BE555165 for ; Tue, 21 Jul 2015 14:58:44 +0000 (UTC) Received: from mfilter47-d.gandi.net (mfilter47-d.gandi.net [217.70.178.178]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id ACA4741C064 for ; Tue, 21 Jul 2015 16:58:42 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mfilter47-d.gandi.net Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter47-d.gandi.net (mfilter47-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id FaL38MeDfj7P for ; Tue, 21 Jul 2015 16:58:41 +0200 (CEST) X-Originating-IP: 85.180.203.77 Received: from [192.168.1.3] (x55b4cb4d.dyn.telefonica.de [85.180.203.77]) (Authenticated sender: thomasv@electrum.org) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 5084D41C08A for ; Tue, 21 Jul 2015 16:58:40 +0200 (CEST) Message-ID: <55AE5E1F.4050609@electrum.org> Date: Tue, 21 Jul 2015 16:58:39 +0200 From: Thomas Voegtlin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: bitcoin-dev@lists.linuxfoundation.org References: In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW 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] QR code alternatives (was: Proposal: extend bip70 with OpenAlias) X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Jul 2015 14:58:45 -0000 Le 20/07/2015 16:40, Mike Hearn a =C3=A9crit : >=20 > If we accept a single payment address i.e. no clever tricks around merg= e > avoidance, such a QR code could look like this: >=20 > bitcoin:1aBcD1234....?x=3Dserialized_payment_request >=20 > However this requires text mode and wastes bytes at the front for the U= RI > type. >=20 It is possible to be both backward-compatible and to avoid wasting space in URIs, if we simply assume that the payment request is a single standard output + amount (that scenario will probably cover 99% of the cases, and the few other cases may not need QR codes). We generate a serialized bip70 PR from the parameters found in the URI, sign that string, and add the signature to the URI. Example: bitcoin:1H14AiSc4PqkK9VTmeutZU3edSy3HS5HL8?amount=3D1&message=3Dhere%20is= %20a%20test&time=3D1437489571&exp=3D604800&name=3Decdsa.net&sig=3D3Quot6m= 2RsR43NgV8VQQx3Ngf5u8wZY18mu523x3ViLrA3WLwSoQum2Znw3gRsTgfADpHuEiyyjnpxCL= KWrkR4RQM 'time' is the timestamp of the request 'exp' is the duration of validity, 1 week here (it saves a few bits to express it that way) 'name' is the domain name of the signer 'sig' is the signature The QR code derived from that URI is perfectly scannable with a phone.