From: Anthony Towns <aj@erisian•com.au>
To: Nadav Ivgi <nadav@shesek•info>
Cc: bitcoindev@googlegroups.com
Subject: Re: [bitcoindev] "Recursive covenant" with CTV and CSFS
Date: Wed, 12 Mar 2025 13:48:13 +1000 [thread overview]
Message-ID: <Z9ED_dez7_UHxjK0@erisian.com.au> (raw)
In-Reply-To: <CAGXD5f3EGyUVBc=bDoNi_nXcKmW7M_-mUZ7LOeyCCab5Nqt69Q@mail.gmail.com>
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 bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/Z9ED_dez7_UHxjK0%40erisian.com.au.
next prev parent reply other threads:[~2025-03-12 5:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 0:01 Anthony Towns
2025-03-05 6:14 ` Olaoluwa Osuntokun
2025-03-05 16:14 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
2025-03-06 17:17 ` Greg Sanders
2025-03-06 18:36 ` 'moonsettler' via Bitcoin Development Mailing List
2025-03-06 21:26 ` Antoine Riard
2025-03-07 21:36 ` Anthony Towns
2025-03-07 21:01 ` Anthony Towns
2025-03-08 15:55 ` James O'Beirne
2025-03-05 17:53 ` 'moonsettler' via Bitcoin Development Mailing List
2025-03-05 22:46 ` Antoine Riard
2025-03-07 21:16 ` Anthony Towns
2025-03-10 22:36 ` Antoine Riard
2025-03-10 5:14 ` Nadav Ivgi
2025-03-12 3:48 ` Anthony Towns [this message]
2025-03-12 10:02 ` Nadav Ivgi
2025-03-12 16:15 ` Nadav Ivgi
2025-03-14 3:20 ` Anthony Towns
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z9ED_dez7_UHxjK0@erisian.com.au \
--to=aj@erisian$(echo .)com.au \
--cc=bitcoindev@googlegroups.com \
--cc=nadav@shesek$(echo .)info \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox