Subject: Re: [bitcoindev] "Recursive covenant" with CTV and CSFS

From: "'moonsettler' via Bitcoin Development Mailing List" <[email-masked]>
Date: Tue, 18 Mar 2025 20:29:57 +0000

Hi All,

> You could have CTV commit to two inputs, with the second input's entire
> value being burnt to fees, but that's fairly annoying

Sometimes it's annoying, other times it enables new applications, because
it can force the submitter of the transaction to contribute to the output(s).

This could serve different uses like griefing deterrent (immortal statechains)
or collect yield from blind merged mining (surfchains).

BR,
moonsettler

On Wednesday, March 12th, 2025 at 4:48 AM, Anthony Towns <[email-masked]> wrote:

> On Mon, Mar 10, 2025 at 07:14:30AM +0200, Nadav Ivgi wrote:
> 
> > For some historical context, it's interesting to note that CTV originally
> > had the constexpr requirement which prevented your CSFS+CTV construct by
> > requiring the CTV hash to come from a literal push preceding the opcode
> > (i.e. not dynamically computed/pre-verified and not from the witness). This
> > was eventually removed because it was deemed an unnecessary safeguard and
> > to simplify the implementation.
> 
> 
> I think the original COSHV implementation had the hash appear a push after
> the CTV opcode.
> https://github.com/JeremyRubin/bips/blob/op-checkoutputshashverify/bip-coshv.mediawiki
> 
> > Also, it seems that APO alone also enables the same kind of construct as
> > what you're describing. For example, a 'recursive' APO signature spending
> > back to the same address could similarly be used as the basis for a BMM
> > Spacechain.
> 
> 
> With either APO or CTV alone you can do an arbitrarily long chain of commitments
> (with APO|SINGLE allowing you to add an input/output for fees and change when
> using those commitments), adding CSFS and discarding the CSFS private key allows
> you to have a single commitment that can be reused indefinitely.
> 
> > Here's my go at it using Minsc:
> > https://min.sc/v0.3/#gist=3aa538b384d3aaf4282d1acaf943f608
> 
> 
> Nice!
> 
> > Note however that what you described is creating 0-fee transactions, with
> > no way to attach additional fees.
> 
> 
> Yes; I don't think you can do a good job of that on mutinynet with just
> CTV/CSFS, since I don't think 0-value anchor outputs are supported. (You
> could have CTV commit to two inputs, with the second input's entire
> value being burnt to fees, but that's fairly annoying)
> 
> Cheers,
> aj
> 
> --
> You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email-masked].
> To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/Z9ED_dez7_UHxjK0%40erisian.com.au.

-- 
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email-masked].
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/NYpEviMeuCzkq09xeaXnKDBNDLjREe-7gJEKCHw5RiOo-fFntC4Ts6ainINIYpEh8CZdcVn9nNLApxbBTIl3jxkXs2zwtwPpPuOJHlbfKpQ%3D%40protonmail.com.