Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1WTUzp-0000u2-FL for bitcoin-development@lists.sourceforge.net; Fri, 28 Mar 2014 11:30:49 +0000 X-ACL-Warn: Received: from wp059.webpack.hosteurope.de ([80.237.132.66]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1WTUzn-0003zj-CW for bitcoin-development@lists.sourceforge.net; Fri, 28 Mar 2014 11:30:49 +0000 Received: from [37.143.74.116] (helo=[192.168.2.2]); authenticated by wp059.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) id 1WTUzg-0003ta-9Q; Fri, 28 Mar 2014 12:30:40 +0100 Content-Type: multipart/signed; boundary="Apple-Mail=_2DBC39B1-0264-4056-A65D-B4F542EA6980"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) From: Tamas Blummer In-Reply-To: Date: Fri, 28 Mar 2014 12:30:39 +0100 Message-Id: <612FFAAD-14FF-4261-927D-BD2E0F287257@bitsofproof.com> References: To: Mike Hearn X-Mailer: Apple Mail (2.1510) X-bounce-key: webpack.hosteurope.de; tamas@bitsofproof.com; 1396006247; 8a72e94e; X-Spam-Score: 1.0 (+) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 1.0 HTML_MESSAGE BODY: HTML included in message X-Headers-End: 1WTUzn-0003zj-CW Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] BIP 70 refund field X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Mar 2014 11:30:49 -0000 --Apple-Mail=_2DBC39B1-0264-4056-A65D-B4F542EA6980 Content-Type: multipart/alternative; boundary="Apple-Mail=_D2489A7D-9452-4AFB-93AD-B96D277E9E79" --Apple-Mail=_D2489A7D-9452-4AFB-93AD-B96D277E9E79 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 Instead of a payment request and refund, businesses would actually need = a payment channel, that once established allows for multiple payments = back and forth between counterparties. One might have a number of open channels until the business relationship = is assumed. The customer might decide to close the channel explicitelly = once he does no longer expect a payment.=20 Regards, Tam=E1s Blummer http://bitsofproof.com On 28.03.2014, at 12:07, Mike Hearn wrote: > Modern devices like smartphones and tablets do not have swap files. = This design is chosen to ensure responsive, fluid UI that can avoid = blocking on disk regardless of how much multi-tasking is done, but it = creates ripples that impact everything else. >=20 > One implication of this is that on these devices, we cannot store all = keys or transactions in memory forever. BIP 70 has an expiry field for = PaymentRequests that we can use to allow us to eventually stop loading = those keys into RAM - at that point payments to those keys would no = longer be recognised. But there's no equivalent for refund addresses. >=20 > More generally, though we re-used the output structure to define the = refund, we didn't (for some reason that I forgot) reuse PaymentDetails, = even though the payment details for a refund are indeed PaymentDetails. >=20 > Though I am loathe to go back and redesign this part of BIP 70 so soon = after we shipped v1, it seems to me like the refund feature may be hard = to implement on phones if there's no time limit for when you can receive = a refund. Otherwise a wallet has to be looking out for refunds for = payments you may have made years ago. So perhaps we should add a new = refund field that embeds a PaymentDetails structure instead of being = just a list of outputs. >=20 > We could try and solve this problem some other way purely internally, = by doing a kind of wallet-specific swapping process in which things like = Bloom filters are calculated without all keys in them being held in = memory at once (perhaps caching filters for old parts of the key chain = on disk), so you can have "infinite" wallets, but eventually the huge = Bloom filters that would result would hurt efficiency in other ways. So = key expiry seems pretty fundamental to scalability. >=20 >=20 > = --------------------------------------------------------------------------= ---- > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development --Apple-Mail=_D2489A7D-9452-4AFB-93AD-B96D277E9E79 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=iso-8859-1
Instead of a payment request and refund, = businesses would actually need a payment channel, that once established = allows for multiple payments back and forth between = counterparties.

One might have a number of open channels = until the business relationship is assumed. The customer might decide to = close the channel explicitelly once he does no longer expect a = payment. 

Regards,

http://bitsofproof.com

On 28.03.2014, at 12:07, Mike Hearn <mike@plan99.net> wrote:

Modern devices like smartphones and tablets do not have swap = files. This design is chosen to ensure responsive, fluid UI that can = avoid blocking on disk regardless of how much multi-tasking is done, but = it creates ripples that impact everything else.

One implication of this is that on these devices, we = cannot store all keys or transactions in memory forever. BIP 70 has an = expiry field for PaymentRequests that we can use to allow us to = eventually stop loading those keys into RAM - at that point payments to = those keys would no longer be recognised. But there's no equivalent for = refund addresses.

More generally, though we re-used the output = structure to define the refund, we didn't (for some reason that I = forgot) reuse PaymentDetails, even though the payment details for a = refund are indeed PaymentDetails.

Though I am loathe to go back and redesign this part = of BIP 70 so soon after we shipped v1, it seems to me like the refund = feature may be hard to implement on phones if there's no time limit for = when you can receive a refund. Otherwise a wallet has to be looking out = for refunds for payments you may have made years ago. So perhaps we = should add a new refund field that embeds a PaymentDetails structure = instead of being just a list of outputs.

We could try and solve this problem some other way = purely internally, by doing a kind of wallet-specific swapping process = in which things like Bloom filters are calculated without all keys in = them being held in memory at once (perhaps caching filters for old parts = of the key chain on disk), so you can have "infinite" wallets, but = eventually the huge Bloom filters that would result would hurt = efficiency in other ways. So key expiry seems pretty fundamental to = scalability.


= --------------------------------------------------------------------------= ----
_______________________________________________
Bitcoin-develop= ment mailing list
Bitcoin-developm= ent@lists.sourceforge.net
https://lists.sourceforge.net/lists/listi= nfo/bitcoin-development

= --Apple-Mail=_D2489A7D-9452-4AFB-93AD-B96D277E9E79-- --Apple-Mail=_2DBC39B1-0264-4056-A65D-B4F542EA6980 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQEcBAEBAgAGBQJTNV1fAAoJEPZykcUXcTkckz8H/1a72ZcHyws4cnG30Hxmqs28 itIEQ25NP2Ytnj0/ChA8chKpCHkGzgt7ckBVj2nOiQXsy2ttOCCCpqBJ1Oog/WnN DKWqpdu0K5Vsj3ZLib7r2FiajM0IDLLZ02kkm59flIlRHMyXB76CPYIZ6axIVfFW /Dk9qAaeC0tgEw0VyAujRUdN8nzAEJxBw2pfyP5zmXFGEQV1guiEdLSds7llO4+E TIl8LsNXj06jMyYep1474oFGEWz2WlWhYt4VlGuyqEdIFq37fVatAo//0pB+I1QH o1ncjL0KuJnK+3cWvrHNldDlSuKP6jJ7fA9ICwN1fOGnAj5FwqN7zc33jFB1h14= =EkTQ -----END PGP SIGNATURE----- --Apple-Mail=_2DBC39B1-0264-4056-A65D-B4F542EA6980--