<div dir="ltr">Eric,<div><br></div><div>BitPay clearly do understand the risks of 0-conf. In case you were not aware BitPay does not particularly &quot;accept zero confirm transactions&quot;. When a payment is seen on the network the payment screen reports the invoice has been paid, but that&#39;s front-end user facing. On the back end it&#39;s marked as paid but the API exposes the the confirmation status allowing the merchant to make business decisions about when to progress to fulfilment. A good example of this is Neteller (a sort of paypal variant) which allows one to fund the account with fiat using Bitcoin, via Bitpay. When you pay the bitpay invoice, your account is marked as payment pending until there are some confirmations.<br></div><div><br></div><div>Coinbase does not expose the confirmation status and from what I understand (not checked myself) they guarantee payment to merchants for 0-confirm, regardless of whether they confirm or not.<br><div><br></div><div>I want to address something stated by Justus, that signing a payment message and broadcasting somehow solidifies intent and going back on that would be fraud. This seriously conflates cryptographic certainty with human behaviour. For one, humans make mistakes all the time. We get tired, we get distracted, we make copy paste errors. It&#39;s entirely possible on sends a payment only to find it&#39;s been sent to the wrong address or the wrong amount has been sent or the fee is wrong. Software may also misbehave (Electrum for example has a weird UI glitch with fees where the specified fee can be overwritten). r/bitcoin it littered with sad examples. What ECDSA signing tells is that it was signed by your private key, but nothing else. It does not say if *you* signed it, or that the message you signed was correct.</div><div><br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Sun, Jun 21, 2015 at 8:42 AM, Eric Lombrozo <span dir="ltr">&lt;<a href="mailto:elombrozo@gmail.com" target="_blank">elombrozo@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Jun 20, 2015, at 11:45 PM, Jeff Garzik &lt;<a href="mailto:jgarzik@bitpay.com" target="_blank">jgarzik@bitpay.com</a>&gt; wrote:</div><br><div><div dir="ltr"><span class="">On Sat, Jun 20, 2015 at 5:54 PM, Eric Lombrozo <span dir="ltr">&lt;<a href="mailto:elombrozo@gmail.com" target="_blank">elombrozo@gmail.com</a>&gt;</span> wrote:<br></span><div class="gmail_extra"><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> but we NEED to be applying some kind of pressure on the merchant end to upgrade their stuff to be more resilient<br></blockquote><div><br></div></span><div>Can you be specific?  What precise technical steps would you have BitPay and Coinbase do?  We upgrade our stuff to... what exactly?</div></div><span class=""><div><br></div>-- <br><div>Jeff Garzik<br>Bitcoin core developer and open source evangelist<br>BitPay, Inc.      <a href="https://bitpay.com/" target="_blank">https://bitpay.com/</a></div>
</span></div></div>
</div></blockquote></div><br><div>Thanks for asking *the* question, Jeff. We often get caught up in these philosophical debates…but at the end of the day we need something concrete.</div><div><br></div><div>Even more important than the specific software you’re using is the security policy.</div><div><br></div><div>If you must accept zero confirmation transactions, there are a few concrete things you can do to reduce your exposure:</div><div><br></div><div>1) limit the transaction amounts for zero confirmation transactions - do not accept them for very high priced goods…especially if they require physical shipping.</div><div>2) limit the total amount of unconfirmed revenue you’ll tolerate at any given moment - if the amount is exceeded, require confirmations.</div><div>3) give merchants of subscription services (i.e. servers, hosting, etc…) the ability to shut the user out if a double-spend is detected.</div><div>4) collect legal information on purchasers (or have the merchants collect this information) so you have someone to go after if they try to screw you</div><div>5) create a risk profile for users…and flag suspicious behavior (i.e. someone trying to purchase a bunch of stuff that totally doesn’t fit into their purchasing habits).</div><div>6) get insurance (although right now reasonably-priced insurance is probably pretty hard to obtain since statistics are generally of little use…we’re entering uncharted territory).</div><div>7) set up a warning system and a “panic” button so that if you start to see an attack you can immediately disable all zero confirmation transactions system-wide.</div><div>8) independently verify all inbound transactions and connect to multiple network nodes…check them against one another.</div><div><br></div><div><br></div><div>As for software tools to accomplish these things, we can talk about that offline :)</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div><div>- Eric Lombrozo</div><div><br></div><div><br></div><div><br></div><div><br></div></font></span></div><br>------------------------------------------------------------------------------<br>
<br>_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href="mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-development@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a><br>
<br></blockquote></div><br></div></div></div>