{"type":"rich","version":"1.0","author_name":"npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd","author_url":"https://nostr.ae/npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2014-04-23\n📝 Original message:Lately someone launched Finney attacks as a service (BitUndo). As a\nreminder for newcomers, Finney attacks are where a miner secretly works on\na block containing a double spend. When they eventually find a block, they\nrun to the merchant and pay, then broadcast the block. In a simpler variant\nof this attack you make purchases as normal with a modified wallet that\nalways submits a double spend to the service, and then N% of the time where\nN is the percentage of overall hash power the dishonest miners have, you\nget your money back minus their fee.\n\nN does not need to be very high to render Bitcoin much less useful. Real\ntime transactions are very important. Although I never expected it when I\nfirst started using Bitcoin, nowadays most of my purchases with it are for\nfood and drink. If Bitcoin could not support such purchases, I would use it\nmuch less.\nEven with their woeful security many merchants see \u003c1-2% credit card\nchargeback rates, and chargebacks can be disputed. In fact merchants win\nabout 40% of chargeback disputes. So if N was only, say, 5%, and there was\na large enough population of users who were systematically trying to\ndefraud merchants, we'd already be having worse security than magstripe\ncredit cards. EMV transactions have loss rates in the noise, so for\nmerchants who take those Bitcoin would be dramatically less secure.\n\nThe idea of discouraging blocks that perform Finney attacks by having\nhonest miners refuse to build on them has been proposed. But it has a\ncouple of problems:\n\n   1. It's hard to automatically detect Finney attacks. Looking for blocks\n   that contain unseen transactions that override the mempool doesn't work -\n   the dishonest users could broadcast all their double spends once a Finney\n   block was found and then broadcast the block immediately afterwards, thus\n   making the block look like any other would in the presence of double spends.\n\n   2. If they could be automatically identified, it possibly could be\n   converted into a DoS on the network by broadcasting double spends in such a\n   way that the system races, and every miner produces a block that looks like\n   a Finney attack to some of the others. The chain would stop advancing.\n\n   3. Miners who want to vote \"no\" on a block take a big risk, they could\n   be on the losing side of the fork and end up wasting their work.\n\nWe can resolve these problems with a couple of tweaks:\n\n   1. Dishonest blocks can be identified out of band, by having honest\n   miners submit double spends against themselves to the service anonymously\n   using a separate tool. When their own double spend appears they know the\n   block is bad.\n\n   2. Miners can vote to reallocate the coinbase value of bad blocks before\n   they mature. If a majority of blocks leading up to maturity vote for\n   reallocation, the value goes into a pot that subsequent blocks are allowed\n   to claim for themselves. Thus there is no risk to voting \"no\" on a block,\n   the work done by the Finney attacker is not wasted, and users do not have\n   to suffer through huge reorgs.\n\nThis may seem a radical suggestion, but I think it's much less radical than\nsome of the others being thrown around.\n\nThe above approach works as long as the majority of hashpower is honest,\ndefined to mean, working to stop double spending. This is the same security\nproperty as described in the white paper, thus this introduces no new\nsecurity assumptions. Note that assuming *all* miners are dishonest and are\nwilling to double spend automatically resolves the Bitcoin experiment as a\nfailure, because that would invalidate the entire theory upon which the\nsystem is built. That doesn't mean the assumption is wrong! It may be that\nan entirely unregulated market for double spending prevention cannot work\nand the participants eventually all end up trashing the commons - but the\nhope is that smart incentives can replace the traditional reliance on law\nand regulation to avoid this.\n\nThe voting mechanism would only apply to coinbases, not arbitrary\ntransactions, thus it cannot be used to steal arbitrary users bitcoins. A\nmajority of miners can already reallocate coinbases by forking them out,\nbut this wastes energy and work presenting a significant discouragement to\nvote unless you already know via some out of band mechanism that you have a\nsolid majority. Placing votes into the coinbase scriptSig as is done with\nother things avoids that problem.\n\nThe identification of Finney blocks relies on miners to take explicit\naction, like downloading and running a tool that submits votes via RPC. It\ncan be expected that double spending services would try to identify and\nblock the sentinel transactions, which is why it's better to have the code\nthat fights this arms race be out of process and developed externally to\nBitcoin Core itself, which should ultimately just enforce the new (forking)\nrule change.\n-------------- next part --------------\nAn HTML attachment was scrubbed...\nURL: \u003chttp://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140423/82270925/attachment.html\u003e"}
