Subject: Re: [Bitcoin-development] Extension for BIP-0070 to support recurring payments

From: Jeff Garzik <[email-masked]>
Date: Mon, 27 Jan 2014 23:43:58 -0500

Yes, recurring payments and subscriptions is a frequently-requested
feature.  It needs a new BIP.  Here is an outline:

The situation is somewhat analogous to HTML5 local storage.  The remote
(merchant) wants to initiate a persistent behavior.  This is bitcoin, so we
have a "push" model for payment, and the user has complete control.  The
merchant can, at most, send a "subscription request."  The user is
responsible for making on-time payments after that point.

Centralized services like coinbase.com or blockchain.info will have an easy
time of it.  An automated program on their backend, sending payments as
needed, is easy and direct.

More inventive services might employ multisig transactions, generating and
signing one signature of a TX, then sending that TX to the human for
further signing and publishing.  A few competing vendors could offer bots
that provide this signing service.

Decentralized, standalone wallet clients will be somewhat troublesome.  We
can store a local subscription request, and send recurring payments...  if
the wallet app is running.  If not, the user will be missing payments, that
perhaps they intended to make (rent!).

Each of these solutions can be cancelled at any time by the user.  As such,
a courtesy "subscription cancelled" message sent to the merchant is
recommended.  User controls the usage of their money at all times, the way
things should be.

And finally, you do not want to make it /too easy/ to send money over and
over again.  From a human-interface perspective, a textual reminder to send
money might be preferred over actual recurring payment automation: reminder
email + manual spend inserts a bit of additional human thought and review
into the process, with all that entails.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/