<oembed><type>rich</type><version>1.0</version><author_name>npub1ya5lpm5h6rtgvnxt2t7ru68npeedk3u36635d2p7g8yfhr9pddas7mdsky</author_name><author_url>https://nostr.ae/npub1ya5lpm5h6rtgvnxt2t7ru68npeedk3u36635d2p7g8yfhr9pddas7mdsky</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-02-11&#xA;📝 Original message:This is Shinobi (can verify out of band at @brian_trollz on Twitter, I only&#xA;signed up to the list with this email to read initially, but feel like I&#xA;should reply to this as I think I am one of the only people in this space&#xA;who has voiced concerns with recursive covenants).&#xA;&#xA;My concerns don&#39;t really center specifically around recursion itself&#xA;necessarily, but unbounded recursion in combination with too much&#xA;generality/flexibility in what types of conditions future UTXOs can be&#xA;encumbered with based on the restriction of such covenants. Forgive the&#xA;hand waiving arguments without getting into specific opcodes, but I would&#xA;summarize my concerns with a hypothetical construct that I believe would be&#xA;incredibly damaging to fungibility. Imagine a covenant design that was&#xA;flexible enough to create an encumbrance like this: a script specifies a&#xA;specific key in a multisig controlled by some authority figure (or a branch&#xA;in the script that would allow unilateral control by such an authority),&#xA;and the conditions of the covenant would perpetually require than any spend&#xA;from the covenant can only be sent to a script involving that key from said&#xA;authority, preventing by consensus any removal of that central authorities&#xA;involvement in control over that UTXO. Such a construct would present&#xA;dangerous implications to the fungibility of individual UTXOs by&#xA;introducing a totally different risk model in being paid with such a coin&#xA;compared to any other coin not encumbered by such a condition, and also&#xA;potentially introduce a shift in the scope of what a 51% attack could&#xA;accomplish in terms of permanent consequences attempting to coerce coins&#xA;into such covenants, as opposed to right now only being able to accomplish&#xA;censorship or temporary network disruption.&#xA;&#xA;I know that such a walled garden could easily be constructed now with&#xA;multisig and restrictions on where coins can be withdrawn to from exchanges&#xA;or whatever place they initially purchased from, as is demonstrated by the&#xA;implementation of the Asset Management Platform by Blockstream for use on&#xA;Liquid with regulated equity tokens, but I think the important distinction&#xA;between such non-consensus system designed to enforce such restrictions and&#xA;a recursive covenant to accomplish the same is that in the case of a&#xA;multisig/non-consensus based system, exit from that restriction is still&#xA;possible under the consensus rules of the protocol. If such a construct was&#xA;possible to build with a recursive covenant enforced by consensus, coins&#xA;encumbered by such a covenant would literally be incapable of escaping&#xA;those restrictions without hardforking the protocol, leaving any such UTXOs&#xA;permanently non-fungible with ones not encumbered by such conditions.&#xA;&#xA;I&#39;m not that deeply familiar with all the working pieces involved in the&#xA;recent TXHASH + CSFS proposal, and whether such a type of overly (IMO)&#xA;generalized recursion would be possible to construct, but one of the&#xA;reasons CTV does not bother me in terms of such concerns is the inability&#xA;to infinitely recurse in such a generalized way given the requirements to&#xA;exactly specify the destination of future spends in constructing a chain of&#xA;CTV encumbrances. I&#39;d very much appreciate any feedback on my concerns, and&#xA;if this side tracks the discussion I apologize, but I felt given the issue&#xA;has been mentioned a few times in this thread it was appropriate for me to&#xA;voice the concerns here so they could be addressed directly.&#xA;&#xA;On Fri, Feb 11, 2022 at 11:42 AM James O&#39;Beirne via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; I don&#39;t oppose recursive covenants per se, but in prior posts I have&#xA;&gt; expressed uncertainty about proposals that enable more &#34;featureful&#34;&#xA;&gt; covenants by adding more kinds of computation into bitcoin script.&#xA;&gt;&#xA;&gt; Not that anyone here is necessarily saying otherwise, but I am very&#xA;&gt; interested in limiting operations in bitcoin script to &#34;verification&#34; (vs.&#xA;&gt; &#34;computation&#34;) to the extent practical, and instead encouraging general&#xA;&gt; computation be done off-chain. This of course isn&#39;t a new observation and I&#xA;&gt; think the last few years have been very successful to that effect, e.g. the&#xA;&gt; popularity of the &#34;scriptless scripts&#34; idea and Taproot&#39;s emphasis on&#xA;&gt; embedding computational artifacts in key tweaks.&#xA;&gt;&#xA;&gt; My (maybe unfounded?) worry about opcodes like OP_CAT and OP_TX is that&#xA;&gt; more logic will live in script than is necessary, and so the burden to&#xA;&gt; verify the chain may grow and the extra &#34;degrees of freedom&#34; in script may&#xA;&gt; make it harder to reason about. But I guess at this point there aren&#39;t&#xA;&gt; alternative means to construct new kinds of sighashes that are necessary&#xA;&gt; for some interesting covenants.&#xA;&gt;&#xA;&gt; One thing I like about CTV is that it buys a lot of functionality without&#xA;&gt; increasing the &#34;surface area&#34; of script&#39;s design. In general I think there&#xA;&gt; is a lot to be said for this &#34;jets&#34;-style approach[0] of codifying the&#xA;&gt; script operations that you&#39;d actually want to do into single opcodes. This&#xA;&gt; adds functionality while introducing minimal surface area to script, giving&#xA;&gt; script implementers more flexibility for, say, optimization. But of course&#xA;&gt; this comes at the cost of precluding experimentation, and probably&#xA;&gt; requiring more soft-forking. Though whether the place for script&#xA;&gt; experimentation using more general-purpose opcodes on the main chain is&#xA;&gt; another interesting debate...&#xA;&gt;&#xA;&gt; Sorry for going a little off-topic there.&#xA;&gt;&#xA;&gt; [0]: https://medium.com/blockstream/simplicity-jets-release-803db10fd589&#xA;&gt;&#xA;&gt;&#xA;&gt; On Thu, Feb 10, 2022 at 7:55 PM David A. Harding via bitcoin-dev &lt;&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&#xA;&gt;&gt; On Mon, Feb 07, 2022 at 08:34:30PM -0800, Jeremy Rubin via bitcoin-dev&#xA;&gt;&gt; wrote:&#xA;&gt;&gt; &gt; Whether [recursive covenants] is an issue or not precluding this sort&#xA;&gt;&gt; &gt; of design or not, I defer to others.&#xA;&gt;&gt;&#xA;&gt;&gt; For reference, I believe the last time the merits of allowing recursive&#xA;&gt;&gt; covenants was discussed at length on this list[1], not a single person&#xA;&gt;&gt; replied to say that they were opposed to the idea.&#xA;&gt;&gt;&#xA;&gt;&gt; I would like to suggest that anyone opposed to recursive covenants speak&#xA;&gt;&gt; for themselves (if any intelligent such people exist).  Citing the risk&#xA;&gt;&gt; of recursive covenants without presenting a credible argument for the&#xA;&gt;&gt; source of that risk feels to me like (at best) stop energy[2] and (at&#xA;&gt;&gt; worst) FUD.&#xA;&gt;&gt;&#xA;&gt;&gt; -Dave&#xA;&gt;&gt;&#xA;&gt;&gt; [1]&#xA;&gt;&gt; https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-July/019203.html&#xA;&gt;&gt; [2]&#xA;&gt;&gt; http://radio-weblogs.com/0107584/stories/2002/05/05/stopEnergyByDaveWiner.html&#xA;&gt;&gt;     (thanks to AJ who told me about stop energy one time when I was&#xA;&gt;&gt;     producing it)&#xA;&gt;&gt;&#xA;&gt;&gt; _______________________________________________&#xA;&gt;&gt; bitcoin-dev mailing list&#xA;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&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/20220211/d4080387/attachment-0001.html&gt;</html></oembed>