<oembed><type>rich</type><version>1.0</version><author_name>npub1y22yec0znyzw8qndy5qn5c2wgejkj0k9zsqra7kvrd6cd6896z4qm5taj0</author_name><author_url>https://nostr.ae/npub1y22yec0znyzw8qndy5qn5c2wgejkj0k9zsqra7kvrd6cd6896z4qm5taj0</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2016-06-22&#xA;📝 Original message:&gt; Only large merchants are able to maintain such an infrastructure; (even&#xA;&gt; Coinbase recently failed at it, they forgot to update their&#xA;&gt; certificate). For end users that is completely unpractical.&#xA;&gt;&#xA;&#xA;Payment protocol is for when you buy stuff from purse.io, not really needed&#xA;for face-to face transfers, end users, IMO.&#xA;&#xA;&#xA;&gt; The same benefit can be achieved without the complexity of BIP70, by&#xA;&gt; extending the Bitcoin URI scheme. The requestor is authenticated using&#xA;&gt; DNSSEC, and the payment request is signed using an EC private key. A&#xA;&gt; domain name and an EC signature are short enough to fit in a Bitcoin URI&#xA;&gt; and to be shared by QR code or SMS text.&#xA;&gt;&#xA;&gt;  bitcoin:address?amount=xx&amp;message=yyy&amp;name=john.example.com&amp;sig=zzz&#xA;&gt;&#xA;&#xA;I agree.  A TXT record at that name could contain the pubkey.&#xA;&#xA;&#xA;&gt; That extension is sufficient to provide authenticated requests, without&#xA;&gt; requiring a https server. The signed data can be serialized from the&#xA;&gt; URI, and DNSSEC verification succeeds without requesting extra data from&#xA;&gt; the requestor. The only assumption is that the verifier is able to make&#xA;&gt; DNS requests.&#xA;&gt;&#xA;&#xA;The problem is that there&#39;s no way for a merchant to *refuse *a payment&#xA;without a direct communication with the merchant&#39;s server.    Verify first&#xA;/ clear later is the rule.   Check stock, ensure you can deliver, and clear&#xA;the payment on the way out the door.&#xA;&#xA;Also, as a merchant processing monthly subscriptions, you don&#39;t want the&#xA;first time you hear about a user&#39;s payment to be *after *it hits the&#xA;blockchain.  You could add a refund address to deal with it after the&#xA;fact... stuff a refund address int OP_RETURN somehow?&#xA;&#xA;bitcoin:address?amount=xx&amp;currency=ccc&amp;message=yyy&amp;name=john.example.com&#xA;&amp;offset=3d&amp;interval=1m&amp;sig=zzz&#xA;&#xA;... But what if the merchant simply goes out of business.  No OP_RETURN&#xA;will help you here.   You&#39;ll be posting transactions into a dead wallet.&#xA;You could have some way of posting a &#34;ping&#34; transaction, and then&#xA;monitoring for a valid response.   But this is &#34;spamming the blockchain for&#xA;communications&#34;.&#xA;&#xA;No, I think BIP075 is fine.   You just need to extend the *PaymentAck *with&#xA;a single field, instead of just having a memo.&#xA;&#xA;next_payment_days : integer&#xA;&#xA;The wallet, when it sees this field, re-initiates an invoice request after&#xA;the selected number of days, after presenting the user with the content of&#xA;the memo field which will presumably explain the subscription.   Wallet&#xA;vendors can let users &#34;auto approve&#34; vendors as needed.&#xA;&#xA;This is, I think, the absolute minimum needed to update BIP0070/0075 for&#xA;subscriptions.&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160622/69c8ccf9/attachment.html&gt;</html></oembed>