<oembed><type>rich</type><version>1.0</version><author_name>npub1wtx5qvewc7pd6znlvwktq03mdld05mv3h5dkzfwd3dc30gdmsptsugtuyn</author_name><author_url>https://nostr.ae/npub1wtx5qvewc7pd6znlvwktq03mdld05mv3h5dkzfwd3dc30gdmsptsugtuyn</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2019-10-03&#xA;📝 Original message:&#xA;ZmnSCPxj via bitcoin-dev &lt;bitcoin-dev at lists.linuxfoundation.org&gt; writes:&#xA;&#xA;&gt; Good morning lists,&#xA;&gt;&#xA;&gt; Let me summarize concerns brought up:&#xA;&gt;&#xA;&gt; * Chris concern, is that an ordinary UTXO that is not allocated for `SIGHASH_NOINPUT` use, is inadvertently spent using `SIGHASH_NOINPUT`.&#xA;&gt; * My concern, is that unless a UTXO allocated for `SIGHASH_NOINPUT` use, is *indeed* used with SIGHASH_NOINPUT`, it should look exactly the same as any other SegWit v1 output.&#xA;&gt;&#xA;&gt; I propose the below instead:&#xA;&gt;&#xA;&gt; * Do ***NOT*** allocate SegWit v16 for `SIGHASH_NOINPUT`.&#xA;&gt; * Instead, allocate SegWit v1 Tapscript v16 for `SIGHASH_NOINPUT`.&#xA;&gt;&#xA;&gt; Then, on usage:&#xA;&gt;&#xA;&gt; * Exchange hoards can be protected by simple MuSig bip-schnorr SegWit v1 outputs, or a NUMS Taproot internal point with a MAST branch Tapscript v0 `OP_CHECKSIG_ADD` sequence.&#xA;&gt; * Decker-Russell-Osuntokun constructions are backed by a n-of-n MuSig Taproot internal point, with a MAST branch containing a Tapscript v16 with `OP_1 OP_CHECKSIG`.&#xA;&gt;&#xA;&gt; This solves both concerns:&#xA;&gt;&#xA;&gt; * Ordinary UTXOs not allocated for `SIGHASH_NOINPUT` use simply do not commit to any Taproot that has a Tapscript v16 branch, and thus `SIGHASH_NOINPUT` is unuseable to claim it.&#xA;&gt; * If a UTXO used for an offchain protocol ends up in a cooperative-resolution state, nobody has to know that a Tapscript v16 branch existed that could have used `SIGHASH_NOINPUT`.&#xA;&gt;&#xA;&gt; Again, my objection to output tagging is that it is **publicly visible** as soon as the funding transaction is confirmed onchain that this is a special output used for a Decker-Russell-Osuntokun construction, greatly damaging privacy.&#xA;&gt; But if this fact is kept secret *unless* the very specific case of unilateral uncooperative enforcement, then it is quite fine with me.&#xA;&gt;&#xA;&gt; Would this alternate proposal hold better muster?&#xA;&#xA;Intriguing idea, this would be an invisible tagging, since the opt-in to&#xA;noinput and friends is hidden inside the committed script, which only&#xA;gets revealed whenever we actually need it.&#xA;&#xA;For eltoo this would mean that the funding output would be invisibly&#xA;tagged, and the cooperative close would use the taproot pubkey, while&#xA;the uncooperative close, which would require noinput opt-in, reveals the&#xA;script, proving prior opt-in, and provides a matching signature.&#xA;&#xA;If I&#39;m not mistaken this would require AJ&#39;s alternative pubkey encoding&#xA;(0x01 or 0x00 prefixed pubkey) to make the opt-in visible, correct?</html></oembed>