<oembed><type>rich</type><version>1.0</version><author_name>npub1kf0ppcjaguxekg24yx6smgxlu73qn0k8lm0t2wrqc0scpl7u3sgsmf3f58</author_name><author_url>https://nostr.ae/npub1kf0ppcjaguxekg24yx6smgxlu73qn0k8lm0t2wrqc0scpl7u3sgsmf3f58</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-06-19&#xA;📝 Original message:Yes, FSS RBF is far better.&#xA;&#xA;&#xA;On Fri, Jun 19, 2015 at 6:52 AM, Chun Wang &lt;1240902 at gmail.com&gt; wrote:&#xA;&#xA;&gt; Before F2Pool&#39;s launch, I performed probably the only successful&#xA;&gt; bitcoin double spend in the March 2013 fork without any mining power.&#xA;&gt; [ https://bitcointalk.org/index.php?topic=152348.0 ] I know how bad&#xA;&gt; the full RBF is. We are going to switch to FSS RBF in a few hours.&#xA;&gt; Sorry.&#xA;&gt;&#xA;&gt; On Fri, Jun 19, 2015 at 9:44 PM, Peter Todd &lt;pete at petertodd.org&gt; wrote:&#xA;&gt; &gt; On Fri, Jun 19, 2015 at 09:33:05AM -0400, Stephen Morse wrote:&#xA;&gt; &gt;&gt; It is disappointing that F2Pool would enable full RBF when the safe&#xA;&gt; &gt;&gt; alternative, first-seen-safe RBF, is also available, especially since&#xA;&gt; the&#xA;&gt; &gt;&gt; fees they would gain by supporting full RBF over FSS RBF would likely be&#xA;&gt; &gt;&gt; negligible. Did they consider using FSS RBF instead?&#xA;&gt; &gt;&#xA;&gt; &gt; Specifically the following is what I told them:&#xA;&gt; &gt;&#xA;&gt; &gt;&gt; We are&#xA;&gt; &gt;&gt; interested in the replace-by-fee patch, but I am not following the&#xA;&gt; &gt;&gt; development closely, more background info is needed, like what the&#xA;&gt; &gt;&gt; difference between standard and zeroconf versions? Thanks.&#xA;&gt; &gt;&#xA;&gt; &gt; Great!&#xA;&gt; &gt;&#xA;&gt; &gt; Basically both let you replace one transaction with another that pays a&#xA;&gt; &gt; higher fee. First-seen-safe replace-by-fee adds the additional criteria&#xA;&gt; &gt; that all outputs of the old transaction still need to be paid by the new&#xA;&gt; &gt; transaction, with &gt;= as many Bitcoins. Basically, it makes sure that if&#xA;&gt; &gt; someone was paid by tx1, then tx2 will still pay them.&#xA;&gt; &gt;&#xA;&gt; &gt; I&#39;ve written about how wallets can use RBF and FSS-RBF to more&#xA;&gt; &gt; efficiently use the blockchain on the bitcoin-development mailing list:&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07813.html&#xA;&gt; &gt;&#xA;&gt; http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg07829.html&#xA;&gt; &gt;&#xA;&gt; &gt; Basically, for the purpose of increasing fees, RBF is something like %50&#xA;&gt; &gt; cheaper than CPFP, and FSS-RBF is something like %25 cheaper.&#xA;&gt; &gt;&#xA;&gt; &gt; In addition, for ease of implementation, my new FSS-RBF has a number of&#xA;&gt; &gt; other restrictions. For instance, you can&#39;t replace multiple&#xA;&gt; &gt; transactions with one, you can&#39;t replace a transaction whose outputs&#xA;&gt; &gt; have already been spent, you can&#39;t replace a transaction with one that&#xA;&gt; &gt; spends additional unconfirmed inputs, etc. These restrictions aren&#39;t&#xA;&gt; &gt; &#34;set in stone&#34;, but they do make the code simpler and less likely to&#xA;&gt; &gt; have bugs.&#xA;&gt; &gt;&#xA;&gt; &gt; In comparison my previous standard RBF patch can replace multiple&#xA;&gt; &gt; transactions with one, can replace long chains of transactions, etc.&#xA;&gt; &gt; It&#39;s willing to do more computation before deciding if a transaction&#xA;&gt; &gt; should be replaced, with more complex logic; it probably has a higher&#xA;&gt; &gt; chance of having a bug or DoS attack.&#xA;&gt; &gt;&#xA;&gt; &gt; You&#39;ve probably seen the huge controversy around zeroconf with regard to&#xA;&gt; &gt; standard replace-by-fee. While FSS RBF doesn&#39;t make zeroconf any safer,&#xA;&gt; &gt; it also doesn&#39;t make it any more dangerous, so politically with regard&#xA;&gt; &gt; to zeroconf it makes no difference. You *can* still use it doublespend&#xA;&gt; &gt; by taking advantage of how different transactions are accepted&#xA;&gt; &gt; differently, but that&#39;s true of *every* change we&#39;ve ever made to&#xA;&gt; &gt; Bitcoin Core - by upgrading to v0.10 from v0.9 you&#39;ve also &#34;broken&#34;&#xA;&gt; &gt; zeroconf in the same way.&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; &gt; Having said that... honestly, zeroconf is pretty broken already. Only&#xA;&gt; &gt; with pretty heroic measures like connecting to a significant fraction of&#xA;&gt; &gt; the Bitcoin network at once, as well as connecting to getblocktemplate&#xA;&gt; &gt; supporting miners to figure out what transactions are being mined, are&#xA;&gt; &gt; services having any hope of avoiding getting ripped off. For the average&#xA;&gt; &gt; user their wallets do a terrible job of showing whether or not an&#xA;&gt; &gt; unconfirmed transaction will go through. For example, Schildbach&#39;s&#xA;&gt; &gt; Bitcoin wallet for Android has no code at all to detect double-spends&#xA;&gt; &gt; until they get mined, and I&#39;ve been able to trick it into showing&#xA;&gt; &gt; completely invalid transactions. In fact, currently Bitcoin XT will&#xA;&gt; &gt; relay invalid transactions that are doublepsends, and Schildbach&#39;s&#xA;&gt; &gt; wallet displays them as valid, unconfirmed, payments. It&#39;s really no&#xA;&gt; &gt; surprise to me that nearly no-one in the Bitcoin ecosystem accepts&#xA;&gt; &gt; unconfirmed transactions without some kind of protection that doesn&#39;t&#xA;&gt; &gt; rely on first-seen-safe mempool behavior. For instance, many ATM&#39;s these&#xA;&gt; &gt; days know who their customers are due to AML requirements, so while you&#xA;&gt; &gt; can deposit Bitcoins and get your funds instantly, the protection for&#xA;&gt; &gt; the ATM operator is that they can go to the police if you rip them off;&#xA;&gt; &gt; I&#39;ve spoken to ATM operators who didn&#39;t do this who&#39;ve lost hundreds or&#xA;&gt; &gt; even thousands of dollars before giving up on zeroconf.&#xA;&gt; &gt;&#xA;&gt; &gt; My big worry with zeroconf is a service like Coinbase or Shapeshift&#xA;&gt; &gt; coming to rely on it, and then attempting to secure it by gaining&#xA;&gt; &gt; control of a majority of hashing power. For instance, if Coinbase had&#xA;&gt; &gt; contracts with 80% of the Bitcoin hashing power to guarantee their&#xA;&gt; &gt; transactions would get mined, but 20% of the hashing power didn&#39;t sign&#xA;&gt; &gt; up, then the only way to guarantee their transactions could be for the&#xA;&gt; &gt; 80% to not build on blocks containing doublespends by the 20%. There&#39;s&#xA;&gt; &gt; no way in a decentralized network to come to consensus about what&#xA;&gt; &gt; transactions are or are not valid without mining itself, so you could&#xA;&gt; &gt; end up in a situation where unless you&#39;re part of one of the big pools&#xA;&gt; &gt; you can&#39;t reliably mine at all because your blocks may get rejected for&#xA;&gt; &gt; containing doublespends.&#xA;&gt; &gt;&#xA;&gt; &gt; One of my goal with standard replace-by-fee is to prevent this scenario&#xA;&gt; &gt; by forcing merchants and others to implement ways of accepting zeroconf&#xA;&gt; &gt; transactions safely that work in a decentralized environment regardless&#xA;&gt; &gt; of what miners do; we have a stronger and safer Bitcoin ecosystem if&#xA;&gt; &gt; we&#39;re relying on math rather than trust to secure our zeroconf&#xA;&gt; &gt; transactions. We&#39;re also being more honest to users, who right now often&#xA;&gt; &gt; have the very wrong impression that unconfirmed transactions are safe to&#xA;&gt; &gt; accept - this does get people ripped off all too often!&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; &gt; Anyway, sorry for the rant! FWIW I updated my FSS-RBF patch and am&#xA;&gt; &gt; waiting to get some feedback:&#xA;&gt; &gt;&#xA;&gt; &gt;     https://github.com/bitcoin/bitcoin/pull/6176&#xA;&gt; &gt;&#xA;&gt; &gt; Suhas Daftuar did find a pretty serious bug in it, now fixed. I&#39;m&#xA;&gt; &gt; working on porting it to v0.10.2, and once that&#39;s done I&#39;m going to put&#xA;&gt; &gt; up a bounty for anyone who can find a DoS attack in the patch. If no-one&#xA;&gt; &gt; claims the bounty after a week or two I think I&#39;ll start feeling&#xA;&gt; &gt; confident about using it in production.&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; &gt; --&#xA;&gt; &gt; &#39;peter&#39;[:-1]@petertodd.org&#xA;&gt; &gt; 000000000000000003188926be14e5fbe2f8f9c63c9fb8e2ba4b14ab04f1c9ab&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; &gt;&#xA;&gt; &gt; _______________________________________________&#xA;&gt; &gt; Bitcoin-development mailing list&#xA;&gt; &gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; &gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt; &gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;&#xA;&#xA;&#xA;&#xA;-- &#xA;Jeff Garzik&#xA;Bitcoin core developer and open source evangelist&#xA;BitPay, Inc.      https://bitpay.com/&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150619/2897fe9a/attachment.html&gt;</html></oembed>