<oembed><type>rich</type><version>1.0</version><author_name>npub1e46n428mcyfwznl7nlsf6d3s7rhlwm9x3cmkuqzt3emmdpadmkaqqjxmcu</author_name><author_url>https://nostr.ae/npub1e46n428mcyfwznl7nlsf6d3s7rhlwm9x3cmkuqzt3emmdpadmkaqqjxmcu</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2019-03-07&#xA;📝 Original message:Replies inline.&#xA;&#xA;Matt&#xA;&#xA;On 3/7/19 3:03 PM, Russell O&#39;Connor wrote:&#xA;&gt; &#xA;&gt;     * OP_CODESEPARATOR in non-BIP 143 scripts fails the script validation.&#xA;&gt;     This includes OP_CODESEPARATORs in unexecuted branches of if&#xA;&gt;     statements,&#xA;&gt;     similar to other disabled opcodes, but unlike OP_RETURN.&#xA;&gt; &#xA;&gt; &#xA;&gt; OP_CODESEPARATOR is the only mechanism available that allows users to &#xA;&gt; sign which particular branch they are authorizing for within scripts &#xA;&gt; that have multiple possible conditions that reuse the same public key.&#xA;&#xA;This is true, and yet it does not appear to actually be practically &#xA;usable. Thus far, despite a ton of effort, I have not yet seen a &#xA;practical use-case for OP_CODESEPARATOR (except for one example of it &#xA;being used to make SegWit scripts ever-so-slightly more effecient in &#xA;TumbleBit, hence why this BIP does not propose disabling it for SegWit).&#xA;&#xA;&gt; Because of P2SH you cannot know that no one is currently using this &#xA;&gt; feature.  Activating a soft-fork as describe above means these sorts of &#xA;&gt; funds would be permanently lost.  It is not acceptable to risk people&#39;s &#xA;&gt; money like this.&#xA;&#xA;(1) It has been well documented again and again that there is desire to &#xA;remove OP_CODESEPARATOR, (2) it is well-documented OP_CODESEPARATOR in &#xA;non-segwit scripts represents a rather significant vulnerability in &#xA;Bitcoin today, and (3) lots of effort has gone into attempting to find &#xA;practical use-cases for OP_CODESEPARATOR&#39;s specific construction, with &#xA;no successes as of yet. I strongly, strongly disagree that the &#xA;highly-unlikely remote possibility that someone created something before &#xA;which could be rendered unspendable is sufficient reason to not fix a &#xA;vulnerability in Bitcoin today.&#xA;&#xA;&gt; I suggest an alternative whereby the execution of OP_CODESEPARATOR &#xA;&gt; increases the transactions weight suitably as to temper the &#xA;&gt; vulnerability caused by it.  Alternatively there could be some sort of &#xA;&gt; limit (maybe 1) on the maximum number of OP_CODESEPARATORs allowed to be &#xA;&gt; executed per script, but that would require an argument as to why &#xA;&gt; exceeding that limit isn&#39;t reasonable.&#xA;&#xA;You could equally argue, however, that any such limit could render some &#xA;moderately-large transaction unspendable, so I&#39;m somewhat skeptical of &#xA;this argument. Note that OP_CODESEPARATOR is non-standard, so getting &#xA;them mined is rather difficult in any case.</html></oembed>