<oembed><type>rich</type><version>1.0</version><author_name>npub1vdngmkaq73c0aq4fp7xgzjjtp9l66l2t50j7ma242lcp8rleuvls8sc3yk</author_name><author_url>https://nostr.ae/npub1vdngmkaq73c0aq4fp7xgzjjtp9l66l2t50j7ma242lcp8rleuvls8sc3yk</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-04-23&#xA;📝 Original message:On 4/23/2014 3:55 AM, Mike Hearn wrote:&#xA;&gt; Lately someone launched Finney attacks as a service (BitUndo). As a &#xA;&gt; reminder for newcomers, Finney attacks are where a miner secretly &#xA;&gt; works on a block containing a double spend. When they eventually find &#xA;&gt; a block, they run to the merchant and pay, then broadcast the block. &#xA;&gt; In a simpler variant of this attack you make purchases as normal with &#xA;&gt; a modified wallet that always submits a double spend to the service, &#xA;&gt; and then N% of the time where N is the percentage of overall hash &#xA;&gt; power the dishonest miners have, you get your money back minus their fee.&#xA;&gt;&#xA;&gt; N does not need to be very high to render Bitcoin much less useful. &#xA;&gt; Real time transactions are very important. Although I never expected &#xA;&gt; it when I first started using Bitcoin, nowadays most of my purchases &#xA;&gt; with it are for food and drink. If Bitcoin could not support such &#xA;&gt; purchases, I would use it much less.&#xA;&gt; Even with their woeful security many merchants see &lt;1-2% credit card &#xA;&gt; chargeback rates, and chargebacks can be disputed. In fact merchants &#xA;&gt; win about 40% of chargeback disputes. So if N was only, say, 5%, and &#xA;&gt; there was a large enough population of users who were systematically &#xA;&gt; trying to defraud merchants, we&#39;d already be having worse security &#xA;&gt; than magstripe credit cards. EMV transactions have loss rates in the &#xA;&gt; noise, so for merchants who take those Bitcoin would be dramatically &#xA;&gt; less secure.&#xA;&gt;&#xA;&gt; The idea of discouraging blocks that perform Finney attacks by having &#xA;&gt; honest miners refuse to build on them has been proposed. But it has a &#xA;&gt; couple of problems:&#xA;&gt;&#xA;&gt;  1. It&#39;s hard to automatically detect Finney attacks. Looking for&#xA;&gt;     blocks that contain unseen transactions that override the mempool&#xA;&gt;     doesn&#39;t work - the dishonest users could broadcast all their&#xA;&gt;     double spends once a Finney block was found and then broadcast the&#xA;&gt;     block immediately afterwards, thus making the block look like any&#xA;&gt;     other would in the presence of double spends.&#xA;&gt;&#xA;&gt;  2. If they could be automatically identified, it possibly could be&#xA;&gt;     converted into a DoS on the network by broadcasting double spends&#xA;&gt;     in such a way that the system races, and every miner produces a&#xA;&gt;     block that looks like a Finney attack to some of the others. The&#xA;&gt;     chain would stop advancing.&#xA;&gt;&#xA;&gt;  3. Miners who want to vote &#34;no&#34; on a block take a big risk, they&#xA;&gt;     could be on the losing side of the fork and end up wasting their work.&#xA;&gt;&#xA;&gt; We can resolve these problems with a couple of tweaks:&#xA;&gt;&#xA;&gt;  1. Dishonest blocks can be identified out of band, by having honest&#xA;&gt;     miners submit double spends against themselves to the service&#xA;&gt;     anonymously using a separate tool. When their own double spend&#xA;&gt;     appears they know the block is bad.&#xA;&gt;&#xA;&gt;  2. Miners can vote to reallocate the coinbase value of bad blocks&#xA;&gt;     before they mature. If a majority of blocks leading up to maturity&#xA;&gt;     vote for reallocation, the value goes into a pot that subsequent&#xA;&gt;     blocks are allowed to claim for themselves. Thus there is no risk&#xA;&gt;     to voting &#34;no&#34; on a block, the work done by the Finney attacker is&#xA;&gt;     not wasted, and users do not have to suffer through huge reorgs.&#xA;&gt;&#xA;&gt; This may seem a radical suggestion, but I think it&#39;s much less radical &#xA;&gt; than some of the others being thrown around.&#xA;&gt;&#xA;&gt; The above approach works as long as the majority of hashpower is &#xA;&gt; honest, defined to mean, working to stop double spending. This is the &#xA;&gt; same security property as described in the white paper, thus this &#xA;&gt; introduces no new security assumptions. Note that assuming &#xA;&gt; /all/ miners are dishonest and are willing to double spend &#xA;&gt; automatically resolves the Bitcoin experiment as a failure, because &#xA;&gt; that would invalidate the entire theory upon which the system is &#xA;&gt; built. That doesn&#39;t mean the assumption is wrong! It may be that an &#xA;&gt; entirely unregulated market for double spending prevention cannot work &#xA;&gt; and the participants eventually all end up trashing the commons - but &#xA;&gt; the hope is that smart incentives can replace the traditional reliance &#xA;&gt; on law and regulation to avoid this.&#xA;&gt;&#xA;&gt; The voting mechanism would only apply to coinbases, not arbitrary &#xA;&gt; transactions, thus it cannot be used to steal arbitrary users &#xA;&gt; bitcoins. A majority of miners can already reallocate coinbases by &#xA;&gt; forking them out, but this wastes energy and work presenting a &#xA;&gt; significant discouragement to vote unless you already know via some &#xA;&gt; out of band mechanism that you have a solid majority. Placing votes &#xA;&gt; into the coinbase scriptSig as is done with other things avoids that &#xA;&gt; problem.&#xA;&gt;&#xA;&gt; The identification of Finney blocks relies on miners to take explicit &#xA;&gt; action, like downloading and running a tool that submits votes via &#xA;&gt; RPC. It can be expected that double spending services would try to &#xA;&gt; identify and block the sentinel transactions, which is why it&#39;s better &#xA;&gt; to have the code that fights this arms race be out of process and &#xA;&gt; developed externally to Bitcoin Core itself, which should ultimately &#xA;&gt; just enforce the new (forking) rule change.&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Start Your Social Network Today - Download eXo Platform&#xA;&gt; Build your Enterprise Intranet with eXo Platform Software&#xA;&gt; Java Based Open Source Intranet - Social, Extensible, Cloud Ready&#xA;&gt; Get Started Now And Turn Your Intranet Into A Collaboration Platform&#xA;&gt; http://p.sf.net/sfu/ExoPlatform&#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;I have some questions:&#xA;1.  How can we work towards solving the double-spending problem?&#xA;2.  Is it possible to &#34;scan&#34; for double-spending and correct it?&#xA;3.  Is the network at large not secure enough?&#xA;&#xA;&#xA;-- &#xA;Kevin&#xA;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140423/e1e5bf4e/attachment.html&gt;</html></oembed>