{"type":"rich","version":"1.0","author_name":"npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h","author_url":"https://nostr.ae/npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2015-10-06\n📝 Original message:On Mon, Oct 05, 2015 at 06:46:28PM +0200, Mike Hearn via bitcoin-dev wrote:\n\u003e The example is this: find someone that accepts 1-block confirmed\n\u003e transactions in return for something valuable. There are plenty of them out\n\u003e there. Once the soft fork starts, send a P2SH transaction that defines a\n\u003e new output controlled by OP_CLTV. It will be incorporated into the UTXO set\n\u003e by all miners because it's opaque (p2sh).\n\u003e \n\u003e Now send a transaction that pays the merchant, and make it spend your\n\u003e OP_CLTV output with an invalid script. New nodes will reject it as a rule\n\u003e violator. Old nodes won't.\n\nOld nodes running bitcoind will see it as OP_NOP2, and will reject it\nunless they've manually disabled SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS,\nwhich (aiui) has been available since bitcoin 0.10 [0], but not backported\nto 0.8 or 0.9.\n\n[0] https://github.com/bitcoin/bitcoin/commit/0391423\n\nThat covers about 4700/5880 nodes going by bitnodes.21.co; but I can't\ntell how many miners it covers.\n\nFurther, AIUI, nodes running 0.8 or 0.9 will still apply IsStandard()\nchecks to scripts attempting to spend p2sh outputs [1], so will also\nfail to either mine or relay your OP_NOP2 payment.\n\n[1] https://github.com/bitcoin/bitcoin/commit/6259937\n\n\u003e So at some point an old miner will create a\n\u003e block containing your invalid transaction, the merchant will think they got\n\u003e paid, they'll give you the stuff and the fraud is done.\n\nMy understanding is that this isn't supposed to be a problem because you\nwon't be able to find an old miner that will do that; released versions\nof bitcoin already block it by default.\n\nSure, someone could disable those checks and not pay attention to a soft\nfork that will cause their blocks to be orphaned, but I'm not seeing why\nthat's any different a threat compared to someone deliberately mining\ninvalid blocks to do 1-confirmation doublespends against merchants not\nrunning a full node.\n\nAt least, that's my understanding, and I'm not an expert, so corrections\nappreciated.\n\nCheers,\naj"}
