<oembed><type>rich</type><version>1.0</version><author_name>npub1f2w9pm06c4k9ay8rst7757thahg2tfrtd0n645zxrtsqwhvaysrswydpll</author_name><author_url>https://nostr.ae/npub1f2w9pm06c4k9ay8rst7757thahg2tfrtd0n645zxrtsqwhvaysrswydpll</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-04-20&#xA;📝 Original message:&gt; I didn&#39;t think DROP/1 is necessary here? Doesn&#39;t leaving the 32 byte hash&#xA;on the stack evaluate as true?&#xA;&#xA;Not with Taproot&#39;s CLEANSTACK rule. It can make sense to always use `DROP&#xA;OP_1` even outside of Taproot, just to keep things consistent and to avoid&#xA;potential errors when switching from non-Taproot to Taproot. FWIW that&#39;s&#xA;what I found myself doing when playing with CTV in P2WSH&#xA;&#xA;On Wed, Apr 20, 2022 at 5:31 AM Anthony Towns via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; On Thu, Feb 17, 2022 at 01:58:38PM -0800, Jeremy Rubin via bitcoin-dev&#xA;&gt; wrote:&#xA;&gt; &gt; AJ Wrote (in another thread):&#xA;&gt; &gt; &gt;   I&#39;d much rather see some real&#xA;&gt; &gt; &gt;   third-party experimentation *somewhere* public first, and Jeremy&#39;s&#xA;&gt; CTV&#xA;&gt; &gt; &gt;   signet being completely empty seems like a bad sign to me.&#xA;&gt;&#xA;&gt; There&#39;s now been some 2,200 txs on CTV signet, of which (if I haven&#39;t&#xA;&gt; missed anything) 317 have been CTV spends:&#xA;&gt;&#xA;&gt;  - none have been bare CTV (ie, CTV in scriptPubKey directly, not via&#xA;&gt;    p2sh/p2wsh/taproot)&#xA;&gt;&#xA;&gt;  - none have been via p2sh&#xA;&gt;&#xA;&gt;  - 3 have been via taproot:&#xA;&gt;&#xA;&gt; https://explorer.ctvsignet.com/tx/f73f4671c6ee2bdc8da597f843b2291ca539722a168e8f6b68143b8c157bee20&#xA;&gt;&#xA;&gt; https://explorer.ctvsignet.com/tx/7e4ade977db94117f2d7a71541d87724ccdad91fa710264206bb87ae1314c796&#xA;&gt;&#xA;&gt; https://explorer.ctvsignet.com/tx/e05d828bf716effc65b00ae8b826213706c216b930aff194f1fb2fca045f7f11&#xA;&gt;&#xA;&gt;    The first two of these had alternative merkle paths, the last didn&#39;t.&#xA;&gt;&#xA;&gt;  - 314 have been via p2wsh&#xA;&gt;&#xA;&gt; https://explorer.ctvsignet.com/tx/62292138c2f55713c3c161bd7ab36c7212362b648cf3f054315853a081f5808e&#xA;&gt;    (don&#39;t think there&#39;s any meaningfully different examples?)&#xA;&gt;&#xA;&gt; As far as I can see, all the scripts take the form:&#xA;&gt;&#xA;&gt;   [PUSH 32 bytes] [OP_NOP4] [OP_DROP] [OP_1]&#xA;&gt;&#xA;&gt; (I didn&#39;t think DROP/1 is necessary here? Doesn&#39;t leaving the 32 byte&#xA;&gt; hash on the stack evaluate as true? I guess that means everyone&#39;s using&#xA;&gt; sapio to construct the txs?)&#xA;&gt;&#xA;&gt; I don&#39;t think there&#39;s any demos of jamesob&#39;s simple-ctv-vault [0], which&#xA;&gt; I think uses a p2wsh of &#34;IF n CSV DROP hotkey CHECKSIG ELSE lockcoldtx CTV&#xA;&gt; ENDIF&#34;, rather than taproot branches.&#xA;&gt;&#xA;&gt; [0] https://github.com/jamesob/simple-ctv-vault&#xA;&gt;&#xA;&gt; Likewise I don&#39;t think there&#39;s any examples of &#34;this CTV immediately;&#xA;&gt; or if fees are too high, this other CTV that pays more fees after X&#xA;&gt; days&#34;, though potentially they could be hidden in the untaken taproot&#xA;&gt; merkle branches.&#xA;&gt;&#xA;&gt; I don&#39;t think there&#39;s any examples of two CTV outputs being combined&#xA;&gt; and spent in a single transaction.&#xA;&gt;&#xA;&gt; I don&#39;t see any txs with nSequence set meaningfully; though most (all?)&#xA;&gt; of the CTV spends seem to set nSequence to 0x00400000 which I think&#xA;&gt; doesn&#39;t have a different effect from 0xfffffffe?&#xA;&gt;&#xA;&gt; That looks to me like there&#39;s still not much practical (vs theoretical)&#xA;&gt; exploration of CTV going on; but perhaps it&#39;s an indication that CTV&#xA;&gt; could be substantially simplified and still get all the benefits that&#xA;&gt; people are particularly eager for.&#xA;&gt;&#xA;&gt; &gt; I am unsure that &#34;learning in public&#34; is required --&#xA;&gt;&#xA;&gt; For a consensus system, part of the learning is &#34;this doesn&#39;t seem that&#xA;&gt; interesting to me; is it actually valuable enough to others that the&#xA;&gt; change is worth the risk it imposes on me?&#34; and that&#39;s not something&#xA;&gt; you can do purely in private.&#xA;&gt;&#xA;&gt; One challenge with building a soft fork is that people don&#39;t want to&#xA;&gt; commit to spending time building something that relies on consensus&#xA;&gt; features and run the risk that they might never get deployed. But the&#xA;&gt; reverse of that is also a concern: you don&#39;t want to deploy consensus&#xA;&gt; changes and run the risk that they won&#39;t actually turn out to be useful.&#xA;&gt;&#xA;&gt; Or, perhaps, to &#34;meme-ify&#34; it -- part of the &#34;proof of work&#34; for deploying&#xA;&gt; a consensus change is actually proving that it&#39;s going to be useful.&#xA;&gt; Like sha256 hashing, that does require real work, and it might turn out&#xA;&gt; to be wasteful.&#xA;&gt;&#xA;&gt; Cheers,&#xA;&gt; aj&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220420/5f867336/attachment-0001.html&gt;</html></oembed>