<oembed><type>rich</type><version>1.0</version><author_name>npub1mtxs7jztn027d9cylej99hltqq9vq84uxm80zl4naxafd9hpxqwsj9g5zm</author_name><author_url>https://nostr.ae/npub1mtxs7jztn027d9cylej99hltqq9vq84uxm80zl4naxafd9hpxqwsj9g5zm</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-04-23&#xA;📝 Original message:Just a few issues with the idea as it currently stands:&#xA;&#xA;1. This provides a very strong incentive to always vote for&#xA;reallocating a block if it isn&#39;t yours, regardless of whether it&#39;s bad&#xA;or not (there&#39;s a positive expected return to voting to reallocate&#xA;coinbases from other miners). The incentive is bigger the more hash&#xA;power you have. You can partially address this by:&#xA;    a) Requiring supermajorities&#xA;    b) Requiring a vote to include proof of a double spend (that&#39;s not&#xA;a very strong safeguard, since anyone can create them after the fact&#xA;if one of their own transactions has been included).&#xA;    c) Burning, rather than reallocating, the coins. Miners&#39; immediate&#xA;incentive to attack honest pools is much reduced.&#xA;&#xA;2. BitUndo gets paid using additional txouts in the double-spend&#xA;transaction, no by miner&#39;s fees. This means that the coinbase&#xA;transaction will represent a smaller and smaller share of their&#xA;revenues over time (however if the total honest transaction fees they&#xA;get in their block are high enough, the risk of losing those might&#xA;still be enough).&#xA;&#xA;On Wed, Apr 23, 2014 at 3:55 AM, Mike Hearn &lt;mike at plan99.net&gt; wrote:&#xA;&gt; Lately someone launched Finney attacks as a service (BitUndo). As a reminder&#xA;&gt; for newcomers, Finney attacks are where a miner secretly works on a block&#xA;&gt; containing a double spend. When they eventually find a block, they run to&#xA;&gt; the merchant and pay, then broadcast the block. In a simpler variant of this&#xA;&gt; attack you make purchases as normal with a modified wallet that always&#xA;&gt; submits a double spend to the service, and then N% of the time where N is&#xA;&gt; the percentage of overall hash power the dishonest miners have, you get your&#xA;&gt; money back minus their fee.&#xA;&gt;&#xA;&gt; N does not need to be very high to render Bitcoin much less useful. Real&#xA;&gt; time transactions are very important. Although I never expected it when I&#xA;&gt; first started using Bitcoin, nowadays most of my purchases with it are for&#xA;&gt; food and drink. If Bitcoin could not support such purchases, I would use it&#xA;&gt; 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 win&#xA;&gt; about 40% of chargeback disputes. So if N was only, say, 5%, and there was a&#xA;&gt; large enough population of users who were systematically trying to defraud&#xA;&gt; merchants, we&#39;d already be having worse security than magstripe credit&#xA;&gt; cards. EMV transactions have loss rates in the noise, so for merchants who&#xA;&gt; take those Bitcoin would be dramatically less secure.&#xA;&gt;&#xA;&gt; The idea of discouraging blocks that perform Finney attacks by having honest&#xA;&gt; miners refuse to build on them has been proposed. But it has a couple of&#xA;&gt; problems:&#xA;&gt;&#xA;&gt; It&#39;s hard to automatically detect Finney attacks. Looking for blocks that&#xA;&gt; contain unseen transactions that override the mempool doesn&#39;t work - the&#xA;&gt; dishonest users could broadcast all their double spends once a Finney block&#xA;&gt; was found and then broadcast the block immediately afterwards, thus making&#xA;&gt; the block look like any other would in the presence of double spends.&#xA;&gt;&#xA;&gt; If they could be automatically identified, it possibly could be converted&#xA;&gt; into a DoS on the network by broadcasting double spends in such a way that&#xA;&gt; the system races, and every miner produces a block that looks like a Finney&#xA;&gt; attack to some of the others. The chain would stop advancing.&#xA;&gt;&#xA;&gt; Miners who want to vote &#34;no&#34; on a block take a big risk, they could be on&#xA;&gt; 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; Dishonest blocks can be identified out of band, by having honest miners&#xA;&gt; submit double spends against themselves to the service anonymously using a&#xA;&gt; separate tool. When their own double spend appears they know the block is&#xA;&gt; bad.&#xA;&gt;&#xA;&gt; Miners can vote to reallocate the coinbase value of bad blocks before they&#xA;&gt; mature. If a majority of blocks leading up to maturity vote for&#xA;&gt; reallocation, the value goes into a pot that subsequent blocks are allowed&#xA;&gt; to claim for themselves. Thus there is no risk to voting &#34;no&#34; on a block,&#xA;&gt; the work done by the Finney attacker is not wasted, and users do not have to&#xA;&gt; suffer through huge reorgs.&#xA;&gt;&#xA;&gt; This may seem a radical suggestion, but I think it&#39;s much less radical than&#xA;&gt; some of the others being thrown around.&#xA;&gt;&#xA;&gt; The above approach works as long as the majority of hashpower is honest,&#xA;&gt; defined to mean, working to stop double spending. This is the same security&#xA;&gt; property as described in the white paper, thus this introduces no new&#xA;&gt; security assumptions. Note that assuming all miners are dishonest and are&#xA;&gt; willing to double spend automatically resolves the Bitcoin experiment as a&#xA;&gt; failure, because that would invalidate the entire theory upon which the&#xA;&gt; system is built. That doesn&#39;t mean the assumption is wrong! It may be that&#xA;&gt; an entirely unregulated market for double spending prevention cannot work&#xA;&gt; and the participants eventually all end up trashing the commons - but the&#xA;&gt; hope is that smart incentives can replace the traditional reliance on law&#xA;&gt; 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 bitcoins. A&#xA;&gt; majority of miners can already reallocate coinbases by forking them out, but&#xA;&gt; this wastes energy and work presenting a significant discouragement to vote&#xA;&gt; unless you already know via some out of band mechanism that you have a solid&#xA;&gt; majority. Placing votes into the coinbase scriptSig as is done with other&#xA;&gt; things avoids that 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 RPC. It&#xA;&gt; can be expected that double spending services would try to identify and&#xA;&gt; block the sentinel transactions, which is why it&#39;s better to have the code&#xA;&gt; that fights this arms race be out of process and developed externally to&#xA;&gt; Bitcoin Core itself, which should ultimately just enforce the new (forking)&#xA;&gt; rule change.&#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; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;</html></oembed>