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