public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [bitcoindev] CTV + CSFS: a letter
@ 2025-06-09 11:40 James O'Beirne
  2025-06-09 12:51 ` Michael Folkson
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: James O'Beirne @ 2025-06-09 11:40 UTC (permalink / raw)
  To: Bitcoin Development Mailing List


[-- Attachment #1.1: Type: text/plain, Size: 4087 bytes --]

Good morning,

A letter has been published advocating for the final review and
activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
(BIP-348). 

The full text of the letter can be found at https://ctv-csfs.com. It is
reproduced below.

---

To the technical bitcoin community,

We believe that the best next step for bitcoin would be to activate
OP_CHECKTEMPLATEVERIFY (CTV, BIP-119) and OP_CHECKSIGFROMSTACK (CSFS,
BIP-348). These opcodes enable functionality for a broad set of uses
that will allow bitcoin to preserve and expand its role as a scarce,
censorship-resistant store of value.

While there are a few promising proposals to improve bitcoin at the
consensus layer which may someday be deployed, we believe that CTV and
CSFS are uniquely well reviewed, simple, and have been proven to be both
safe and widely demanded.

CTV was first formalized in BIP-119 over 5 years ago. Despite many
attempts at refinement or replacement, it has remained the most widely
preferred method for enforcing pregenerated transaction sequences using
consensus. It unlocks valuable functionality for scaling solutions,
vaults, congestion control, non-custodial mining, discreet log
contracts, and more.

CSFS is a primitive opcode that has been deployed to Blockstream’s
Elements for at least 8 years. It represents no significant
computational burden over bitcoin’s most often used opcode, OP_CHECKSIG.
It can be combined with CTV to implement ln-symmetry, a longstanding
improvement to Lightning. It also unlocks a variety of other use cases.

We respectfully ask Bitcoin Core contributors to prioritize the review
and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or
similar) within the next six months. We believe this timeline allows for
rigorous final review and activation planning.

This request isn't meant to suggest that these contributors dictate the
consensus process, but rather it is an acknowledgement that before these
opcodes can be activated, they must be implemented in the most widely
used bitcoin client.

As application and protocol developers, we are convinced of the
significant benefits that these changes would bring to end users of
bitcoin – even if only considering their use for layer 1 security and
layer 2 scaling solutions. We are optimistic that given the limited size
and scope of these changes in both concept and implementation, they
represent a realistic next step in the continuing and important work of
preserving bitcoin's unique promise.

Signed, 

Abdel (Starkware)
Andrew Poelstra (@apoelstra)
Ben Carman (@benthecarman)
Ben Kaufman (@ben-kaufman)
Brandon Black (@reardencode)
Brian Langel (for Five Bells)
Buck Perley (@puckberley)
Calle (Cashu)
Calvin Kim (@kcalvinalvin)
Chun Wang (f2pool)
Christian Decker (@cdecker)
Coinjoined Chris (Bitsurance.eu)
Evan Kaloudis (for Zeus)
fiatjaf (@fiatjaf)
Floppy (@1440000bytes)
Gary Krause (@average-gary)
Harsha Goli (@arshbot)
Hunter Beast (@cryptoquick)
Jad Mubaslat (@champbronc2)
James O’Beirne (@jamesob)
Jameson Lopp (@jlopp)
Johan Halseth (@halseth)
Luke Childs (@lukechilds)
Matt Black (for Atomic Finance)
Michael Tidwell (@miketwenty1)
Nick Hansen (for Luxor Mining)
Nitesh (@nitesh_btc)
nvk (@nvk)
Owen Kemeys (for Foundation)
Paul Sztorc (@psztorc)
Portland.HODL (for MARA Pool)
Rijndael (@rot13maxi)
Rob Hamilton (@rob1ham)
Robin Linus (@RobinLinus)
Sanket Kanjalkar (@sanket1729)
Sean Ryan (Anchorage)
Seth for Privacy (for Cake Wallet)
Simanta Gautam (Alpen Labs)
Steven Roose (@stevenroose)
stutxo (@stutxo)
Talip (@otaliptus)
mononaut (@mononautical)
vnprc (@vnprc)

-- 
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/a86c2737-db79-4f54-9c1d-51beeb765163n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 4752 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 11:40 [bitcoindev] CTV + CSFS: a letter James O'Beirne
@ 2025-06-09 12:51 ` Michael Folkson
  2025-06-09 14:41   ` James O'Beirne
  2025-06-09 13:51 ` Matt Corallo
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 18+ messages in thread
From: Michael Folkson @ 2025-06-09 12:51 UTC (permalink / raw)
  To: James O'Beirne; +Cc: Bitcoin Development Mailing List

Hi James

I'm losing track of where I haven't been blocked and am free to ask
questions. You've personally blocked me on X so I can't ask there and
I'm not sure what my current status is on the Core GitHub repo,
Delving Bitcoin, this mailing list. Perhaps if you're going to be
leading this attempt to move towards an activation attempt of a
consensus rule change there can be a forum set up where those who
would like to ask questions and/or have some default skepticism aren't
heavily censored or blocked. Or perhaps this is such a forum, I don't
know.

I've tried to follow your personal journey (despite you making it hard
by blocking me) on this let alone the entire community's journey on
this.

It seems like until recently (May 2025) you were a proponent of BIP
345 (OP_VAULT) and have argued that that should be activated in the
past. On Delving [0] in May 2025 you stated:

"OP_VAULT (BIP-345) has been essentially replaced by @salvatoshi’s
OP_CHECKCONTRACTVERIFY (CCV)"

Having read that I assumed you would be working on CCV so I'm quite
surprised that a month later you're now proposing that CTV and CSFS be
prepared for activation.

What is the current status of CCV? Why aren't you working towards CCV
being activated and why should CTV and CSFS be activated prior to CCV?

I'm finding it a little bewildering just trying to follow your
personal views on this and I suspect those who you are asking to
prioritize the review of CTV and CSFS in the Core repo in the next 6
months might be in a similar boat. If your view is changing month to
month have you finally settled on CTV and CSFS should definitely be
activated or might your view change again in the near future (e.g. the
addition of CCV or some other variation)? In my opinion to convince
the broader community these should be activated imminently probably
requires James to be consistently convinced from month to month.

Thanks
Michael

[0]: https://delvingbitcoin.org/t/withdrawing-op-vault-bip-345/1670

On Mon, Jun 9, 2025 at 2:54 PM James O'Beirne <james.obeirne@gmail•com> wrote:
>
> Good morning,
>
> A letter has been published advocating for the final review and
> activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> (BIP-348).
>
> The full text of the letter can be found at https://ctv-csfs.com. It is
> reproduced below.
>
> ---
>
> To the technical bitcoin community,
>
> We believe that the best next step for bitcoin would be to activate
> OP_CHECKTEMPLATEVERIFY (CTV, BIP-119) and OP_CHECKSIGFROMSTACK (CSFS,
> BIP-348). These opcodes enable functionality for a broad set of uses
> that will allow bitcoin to preserve and expand its role as a scarce,
> censorship-resistant store of value.
>
> While there are a few promising proposals to improve bitcoin at the
> consensus layer which may someday be deployed, we believe that CTV and
> CSFS are uniquely well reviewed, simple, and have been proven to be both
> safe and widely demanded.
>
> CTV was first formalized in BIP-119 over 5 years ago. Despite many
> attempts at refinement or replacement, it has remained the most widely
> preferred method for enforcing pregenerated transaction sequences using
> consensus. It unlocks valuable functionality for scaling solutions,
> vaults, congestion control, non-custodial mining, discreet log
> contracts, and more.
>
> CSFS is a primitive opcode that has been deployed to Blockstream’s
> Elements for at least 8 years. It represents no significant
> computational burden over bitcoin’s most often used opcode, OP_CHECKSIG.
> It can be combined with CTV to implement ln-symmetry, a longstanding
> improvement to Lightning. It also unlocks a variety of other use cases.
>
> We respectfully ask Bitcoin Core contributors to prioritize the review
> and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or
> similar) within the next six months. We believe this timeline allows for
> rigorous final review and activation planning.
>
> This request isn't meant to suggest that these contributors dictate the
> consensus process, but rather it is an acknowledgement that before these
> opcodes can be activated, they must be implemented in the most widely
> used bitcoin client.
>
> As application and protocol developers, we are convinced of the
> significant benefits that these changes would bring to end users of
> bitcoin – even if only considering their use for layer 1 security and
> layer 2 scaling solutions. We are optimistic that given the limited size
> and scope of these changes in both concept and implementation, they
> represent a realistic next step in the continuing and important work of
> preserving bitcoin's unique promise.
>
> Signed,
>
> Abdel (Starkware)
> Andrew Poelstra (@apoelstra)
> Ben Carman (@benthecarman)
> Ben Kaufman (@ben-kaufman)
> Brandon Black (@reardencode)
> Brian Langel (for Five Bells)
> Buck Perley (@puckberley)
> Calle (Cashu)
> Calvin Kim (@kcalvinalvin)
> Chun Wang (f2pool)
> Christian Decker (@cdecker)
> Coinjoined Chris (Bitsurance.eu)
> Evan Kaloudis (for Zeus)
> fiatjaf (@fiatjaf)
> Floppy (@1440000bytes)
> Gary Krause (@average-gary)
> Harsha Goli (@arshbot)
> Hunter Beast (@cryptoquick)
> Jad Mubaslat (@champbronc2)
> James O’Beirne (@jamesob)
> Jameson Lopp (@jlopp)
> Johan Halseth (@halseth)
> Luke Childs (@lukechilds)
> Matt Black (for Atomic Finance)
> Michael Tidwell (@miketwenty1)
> Nick Hansen (for Luxor Mining)
> Nitesh (@nitesh_btc)
> nvk (@nvk)
> Owen Kemeys (for Foundation)
> Paul Sztorc (@psztorc)
> Portland.HODL (for MARA Pool)
> Rijndael (@rot13maxi)
> Rob Hamilton (@rob1ham)
> Robin Linus (@RobinLinus)
> Sanket Kanjalkar (@sanket1729)
> Sean Ryan (Anchorage)
> Seth for Privacy (for Cake Wallet)
> Simanta Gautam (Alpen Labs)
> Steven Roose (@stevenroose)
> stutxo (@stutxo)
> Talip (@otaliptus)
> mononaut (@mononautical)
> vnprc (@vnprc)
>
> --
> 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/a86c2737-db79-4f54-9c1d-51beeb765163n%40googlegroups.com.



-- 
Michael Folkson
Personal email: michaelfolkson@gmail•com

-- 
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/CAFvNmHRvjbo0OCFa3edCERXRFsz6yiAAPgzWrX5YxdtR9a4GiA%40mail.gmail.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 11:40 [bitcoindev] CTV + CSFS: a letter James O'Beirne
  2025-06-09 12:51 ` Michael Folkson
@ 2025-06-09 13:51 ` Matt Corallo
  2025-06-09 14:43   ` James O'Beirne
  2025-06-09 18:55 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
  2025-06-09 23:02 ` Andrew Poelstra
  3 siblings, 1 reply; 18+ messages in thread
From: Matt Corallo @ 2025-06-09 13:51 UTC (permalink / raw)
  To: James O'Beirne, Bitcoin Development Mailing List

First of all, lol, we're really doing sign-on letters again? Great way to discourage people from 
doing things.

That said, I have yet to see a reasoned explanation of why we should prefer CTV over TXHASH. Any 
time I bring it up I get a few handwave arguments about "that would require bikeshedding", but I 
don't see why that is an argument. Preferring to do something worse because something better would 
require someone reasonable pick some reasonable encoding is not a good way to do engineering.

Maybe one of the letter-signers wants to provide an explanation for their view?

Matt

On 6/9/25 7:40 AM, James O'Beirne wrote:
> Good morning,
> 
> A letter has been published advocating for the final review and
> activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> (BIP-348).
> 
> The full text of the letter can be found at https://ctv-csfs.com. It is
> reproduced below.
> 
> ---
> 
> To the technical bitcoin community,
> 
> We believe that the best next step for bitcoin would be to activate
> OP_CHECKTEMPLATEVERIFY (CTV, BIP-119) and OP_CHECKSIGFROMSTACK (CSFS,
> BIP-348). These opcodes enable functionality for a broad set of uses
> that will allow bitcoin to preserve and expand its role as a scarce,
> censorship-resistant store of value.
> 
> While there are a few promising proposals to improve bitcoin at the
> consensus layer which may someday be deployed, we believe that CTV and
> CSFS are uniquely well reviewed, simple, and have been proven to be both
> safe and widely demanded.
> 
> CTV was first formalized in BIP-119 over 5 years ago. Despite many
> attempts at refinement or replacement, it has remained the most widely
> preferred method for enforcing pregenerated transaction sequences using
> consensus. It unlocks valuable functionality for scaling solutions,
> vaults, congestion control, non-custodial mining, discreet log
> contracts, and more.
> 
> CSFS is a primitive opcode that has been deployed to Blockstream’s
> Elements for at least 8 years. It represents no significant
> computational burden over bitcoin’s most often used opcode, OP_CHECKSIG.
> It can be combined with CTV to implement ln-symmetry, a longstanding
> improvement to Lightning. It also unlocks a variety of other use cases.
> 
> We respectfully ask Bitcoin Core contributors to prioritize the review
> and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or
> similar) within the next six months. We believe this timeline allows for
> rigorous final review and activation planning.
> 
> This request isn't meant to suggest that these contributors dictate the
> consensus process, but rather it is an acknowledgement that before these
> opcodes can be activated, they must be implemented in the most widely
> used bitcoin client.
> 
> As application and protocol developers, we are convinced of the
> significant benefits that these changes would bring to end users of
> bitcoin – even if only considering their use for layer 1 security and
> layer 2 scaling solutions. We are optimistic that given the limited size
> and scope of these changes in both concept and implementation, they
> represent a realistic next step in the continuing and important work of
> preserving bitcoin's unique promise.
> 
> Signed,
> 
> Abdel (Starkware)
> Andrew Poelstra (@apoelstra)
> Ben Carman (@benthecarman)
> Ben Kaufman (@ben-kaufman)
> Brandon Black (@reardencode)
> Brian Langel (for Five Bells)
> Buck Perley (@puckberley)
> Calle (Cashu)
> Calvin Kim (@kcalvinalvin)
> Chun Wang (f2pool)
> Christian Decker (@cdecker)
> Coinjoined Chris (Bitsurance.eu)
> Evan Kaloudis (for Zeus)
> fiatjaf (@fiatjaf)
> Floppy (@1440000bytes)
> Gary Krause (@average-gary)
> Harsha Goli (@arshbot)
> Hunter Beast (@cryptoquick)
> Jad Mubaslat (@champbronc2)
> James O’Beirne (@jamesob)
> Jameson Lopp (@jlopp)
> Johan Halseth (@halseth)
> Luke Childs (@lukechilds)
> Matt Black (for Atomic Finance)
> Michael Tidwell (@miketwenty1)
> Nick Hansen (for Luxor Mining)
> Nitesh (@nitesh_btc)
> nvk (@nvk)
> Owen Kemeys (for Foundation)
> Paul Sztorc (@psztorc)
> Portland.HODL (for MARA Pool)
> Rijndael (@rot13maxi)
> Rob Hamilton (@rob1ham)
> Robin Linus (@RobinLinus)
> Sanket Kanjalkar (@sanket1729)
> Sean Ryan (Anchorage)
> Seth for Privacy (for Cake Wallet)
> Simanta Gautam (Alpen Labs)
> Steven Roose (@stevenroose)
> stutxo (@stutxo)
> Talip (@otaliptus)
> mononaut (@mononautical)
> vnprc (@vnprc)
> 
> -- 
> 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 <mailto:bitcoindev+unsubscribe@googlegroups•com>.
> To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/a86c2737- 
> db79-4f54-9c1d-51beeb765163n%40googlegroups.com <https://groups.google.com/d/msgid/bitcoindev/ 
> a86c2737-db79-4f54-9c1d-51beeb765163n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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/6f78b702-4bd0-4aa4-ac51-b881d8df9f01%40mattcorallo.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 12:51 ` Michael Folkson
@ 2025-06-09 14:41   ` James O'Beirne
  2025-06-09 15:56     ` Michael Folkson
  0 siblings, 1 reply; 18+ messages in thread
From: James O'Beirne @ 2025-06-09 14:41 UTC (permalink / raw)
  To: Michael Folkson; +Cc: Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 1111 bytes --]

On Mon, Jun 9, 2025 at 8:51 AM Michael Folkson <michaelfolkson@gmail•com>
wrote:
> Having read that I assumed you would be working on CCV so I'm quite
> surprised that a month later you're now proposing that CTV and CSFS be
> prepared for activation.

I have consistently supported CTV for upwards of 3 years now. This should
be pretty clear based on a cursory read of my VAULT BIP's introduction:
https://github.com/bitcoin/bips/blob/master/bip-0345.mediawiki#introduction

In fact, I was at one point listed as a co-author because I was championing
it: https://github.com/bitcoin/bips/pull/1482

I like CCV, but in my opinion it needs more time to be scrutinized by the
community.

Best,
James

-- 
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/CAPfvXfKfAgVrFht8AUBOoyn28xwzHNr5BMg__OtRZfyBi1C1yw%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 1888 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 13:51 ` Matt Corallo
@ 2025-06-09 14:43   ` James O'Beirne
  2025-06-09 17:51     ` Matt Corallo
  0 siblings, 1 reply; 18+ messages in thread
From: James O'Beirne @ 2025-06-09 14:43 UTC (permalink / raw)
  To: Matt Corallo; +Cc: Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]

On Mon, Jun 9, 2025 at 9:51 AM Matt Corallo <lf-lists@mattcorallo•com>
wrote:
> That said, I have yet to see a reasoned explanation of why we should
prefer CTV over TXHASH.

From the author of TXHASH himself on Delving Bitcoin
(
https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/15
):

> Having implemented TXHASH, I would definitely not say that
> it “simplifies the change”. The difference in both technical debt and
> potential for bugs is an order of magnitude bigger for TXHASH than for
> CTV. (Not to say that I don’t think TXHASH would be worthwhile, but I
> will definitely say that it has not received the attention I had
expected,
> so I would definitely not want to put it on the table anytime soon.)

The use-cases that might merit such a jump up in complexity over CTV
have not been enumerated to my knowledge. CTV also includes
upgrade hooks to incorporate modifications should these additional
uses be more fully understood.

Best,
James

-- 
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/CAPfvXf%2Bt33u1ghz39cqYn4k5ErmxTkUv0njF9Zwbz_2UkdTjAg%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 2571 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 14:41   ` James O'Beirne
@ 2025-06-09 15:56     ` Michael Folkson
  0 siblings, 0 replies; 18+ messages in thread
From: Michael Folkson @ 2025-06-09 15:56 UTC (permalink / raw)
  To: James O'Beirne; +Cc: Bitcoin Development Mailing List

> I have consistently supported CTV for upwards of 3 years now. This should
be pretty clear based on a cursory read of my VAULT BIP's introduction:
https://github.com/bitcoin/bips/blob/master/bip-0345.mediawiki#introduction

Sure but CTV has never been enough for what you personally want to do
(your flavor of vaults). You need OP_VAULT, OP_CCV or OP_CSFS right?

I don't mean to be a smart ass, I know how fiendishly difficult and
frustrating this covenants maze is with so many subtly different
views. But I think it is a fair challenge to try to understand exactly
what you want/need and whether you're going to want CCV etc in
addition at a later date or not.

Thanks
Michael

On Mon, Jun 9, 2025 at 5:41 PM James O'Beirne <james.obeirne@gmail•com> wrote:
>
> On Mon, Jun 9, 2025 at 8:51 AM Michael Folkson <michaelfolkson@gmail•com> wrote:
> > Having read that I assumed you would be working on CCV so I'm quite
> > surprised that a month later you're now proposing that CTV and CSFS be
> > prepared for activation.
>
> I have consistently supported CTV for upwards of 3 years now. This should
> be pretty clear based on a cursory read of my VAULT BIP's introduction:
> https://github.com/bitcoin/bips/blob/master/bip-0345.mediawiki#introduction
>
> In fact, I was at one point listed as a co-author because I was championing
> it: https://github.com/bitcoin/bips/pull/1482
>
> I like CCV, but in my opinion it needs more time to be scrutinized by the
> community.
>
> Best,
> James



-- 
Michael Folkson
Personal email: michaelfolkson@gmail•com

-- 
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/CAFvNmHSQDkR9L7SAu95FmfASdrdjFPUmohEncjNcPHx2q4_9Fw%40mail.gmail.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 14:43   ` James O'Beirne
@ 2025-06-09 17:51     ` Matt Corallo
  2025-06-09 19:27       ` /dev /fd0
  0 siblings, 1 reply; 18+ messages in thread
From: Matt Corallo @ 2025-06-09 17:51 UTC (permalink / raw)
  To: James O'Beirne; +Cc: Bitcoin Development Mailing List



On 6/9/25 10:43 AM, James O'Beirne wrote:
> On Mon, Jun 9, 2025 at 9:51 AM Matt Corallo <lf-lists@mattcorallo•com <mailto:lf- 
> lists@mattcorallo•com>> wrote:
>  > That said, I have yet to see a reasoned explanation of why we should prefer CTV over TXHASH.
> 
>  From the author of TXHASH himself on Delving Bitcoin
> (https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards- 
> covenants/1509/15 <https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step- 
> towards-covenants/1509/15>):
> 
>  > Having implemented TXHASH, I would definitely not say that
>  > it “simplifies the change”.

Who claimed TXHASH is simpler than CTV?

>  > The difference in both technical debt and
>  > potential for bugs is an order of magnitude bigger for TXHASH than for
>  > CTV.

I mean, sure, compared to something trivial doing something marginally-trivial has a lot bigger 
surface area. But that isn't really an argument unless we're talking about something truly 
complicated, and TXHASH absolutely is not.

>  > (Not to say that I don’t think TXHASH would be worthwhile, but I
>  > will definitely say that it has not received the attention I had expected,
>  > so I would definitely not want to put it on the table anytime soon.)

I mean there's still debate around the exact format of CTV commitments (eg whether it commits to 
scriptSigs, if it works outside of segwit, etc), saying that there's debate over the format of 
TXHASH isn't exactly a compelling argument either? Yes, it needs some work, but the time we'll 
invest in CTV isn't all that different from the time we'll invest in TXHASH, once we pick a direction.

> The use-cases that might merit such a jump up in complexity over CTV
> have not been enumerated to my knowledge.

This is a much better argument :). I'm a bit skeptical, though, that its quite this cut-and-dry. For 
example, the utter hack of the BitVM-with-CTV variant pretty clearly points to us needing a more 
fully featured commitment gadget to enable these things without the nonsense they had to resort to.

Further, we should think at least somewhat about what we think a reasonable end state is. As far as 
I understand, most proponents of CTV+CSFS do not think that CTV+CSFS is *all* we want, but rather a 
first step towards some goal. If that goal includes more flexible tx field commitments (I imagine it 
certainly does!) then we should do that, rather than taking a detour we should make progress towards 
the eventual goal!

> CTV also includes
> upgrade hooks to incorporate modifications should these additional
> uses be more fully understood.

I do not understand why people make this argument. Yes, the encoding of the opcode allows you to 
turn it into an OP_NOP (or SUCCESS or whatever), that doesn't make it "upgrade hook"-friendly. If we 
think that we just want to do CTV but we want CTV to be upgradable later to be TXHASH, then we first 
need to define the TXHASH hash and bitfield format, so that we can take the subset of it that 
captures CTV and hard-code that. But, of course, if we do that work we should clearly do TXHASH :).

These really feel like the same arguments again and again. I just don't find them even remotely 
compelling. "Oh, well, if we want to figure out TXHASH someone would have to define a bitfield 
format and that will take years" is just nonsense. Hell, its already done! Maybe we want to tweak 
it, but honestly bikeshedding over a specific bitfield format sounds like it'll take a hell of a lot 
less time than trying to make sure we work out all the cases for what someone might want to commit 
to that we want them to commit to but not more and fix a specific set of commitments!

Matt

-- 
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/01f49d64-838e-4311-bf79-8c4130b40c8e%40mattcorallo.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 11:40 [bitcoindev] CTV + CSFS: a letter James O'Beirne
  2025-06-09 12:51 ` Michael Folkson
  2025-06-09 13:51 ` Matt Corallo
@ 2025-06-09 18:55 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
  2025-06-10  2:02   ` Paul Sztorc
  2025-06-09 23:02 ` Andrew Poelstra
  3 siblings, 1 reply; 18+ messages in thread
From: 'Antoine Poinsot' via Bitcoin Development Mailing List @ 2025-06-09 18:55 UTC (permalink / raw)
  To: James O'Beirne; +Cc: Bitcoin Development Mailing List

James, cosigners,

I am sympathetic to the idea of a CTV+CSFS soft fork, mainly for its flagship use case: LN-Symmetry.

However i think it is premature to call for a "final review and activation" of these opcodes when
there is still:
- disagreement between Bitcoin protocol developers/researchers that it is the way to go for enabling
  more expressive scripting capabilities in Bitcoin[^0];
- disagreement between Bitcoin developers on how the functionality of at least one of the proposed
  opcodes should be achieved[^1];
- no review after three months, from any of the champions or signers of this letter, on the PR for
  integrating one of the two proposed opcodes to the test network[^2].

The flagship use case of the proposal has also not been properly demonstrated. As a point of
comparison Greg Sanders provided motivation for `ANYPREVOUT`, a soft fork that no one even called
to be "finally reviewed and activated", by publishing a detailed proof of concept of LN-Symmetry
(with full specification as a BOLT draft + an implementation in one of the major Lightning clients).

A comprehensive exploration gives confidence a use case is actually realistic in practice. Of course
it's not necessary to go to such lengths just to demonstrate it to be *possible*, but it is
reasonable to expect a champion to have something to show if they are calling for changing Bitcoin.
Fortunately i hear some have taken upon themselves to further explore LN-Symmetry and multiparty
channels using CTV+CSFS, which could provide tangible motivation for the soft fork. Let's see what
they come up with.

Finally, it seems the post contains a built-in assumption that Bitcoin Core contributors are
detached from the research in more expressive scripting capabilities. It is incorrect. A number of
individuals have been involved both with Bitcoin Core development and Bitcoin protocol research,
with substantial contributions in both areas.

Therefore it seems the stalling state of the CTV+CSFS proposal is not due to apathy as this open
letter would lead to believe, but controversy on the content of the proposal among Bitcoin protocol
developers as well as a lack of involvement from the part of champions in reaching consensus.

In these conditions calling for an impending change to Bitcoin's consensus rules seems unadvisable,
and the urgency with a six months deadline is nothing short of reckless.

I remain confident we can make progress toward enabling more expressive scripting capabilities in
Bitcoin. The path forward is by building consensus on the basis of strong technical arguments, and
the politics of pushing for the premature activation of a consensus change are working against it.

Best,
Antoine Poinsot


[^0]: https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/14
      https://gnusha.org/pi/bitcoindev/6f78b702-4bd0-4aa4-ac51-b881d8df9f01@mattcorallo.com
[^1]: https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/58
[^2]: https://github.com/bitcoin-inquisition/bitcoin/pull/72
[^3]: https://delvingbitcoin.org/t/ln-symmetry-project-recap/359


On Monday, June 9th, 2025 at 7:54 AM, James O'Beirne <james.obeirne@gmail•com> wrote:

> Good morning,
> 
> A letter has been published advocating for the final review and
> activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> (BIP-348).
> 
> The full text of the letter can be found at https://ctv-csfs.com. It is
> reproduced below.
> 
> ---
> 
> To the technical bitcoin community,
> 
> We believe that the best next step for bitcoin would be to activate
> OP_CHECKTEMPLATEVERIFY (CTV, BIP-119) and OP_CHECKSIGFROMSTACK (CSFS,
> BIP-348). These opcodes enable functionality for a broad set of uses
> that will allow bitcoin to preserve and expand its role as a scarce,
> censorship-resistant store of value.
> 
> While there are a few promising proposals to improve bitcoin at the
> consensus layer which may someday be deployed, we believe that CTV and
> CSFS are uniquely well reviewed, simple, and have been proven to be both
> safe and widely demanded.
> 
> CTV was first formalized in BIP-119 over 5 years ago. Despite many
> attempts at refinement or replacement, it has remained the most widely
> preferred method for enforcing pregenerated transaction sequences using
> consensus. It unlocks valuable functionality for scaling solutions,
> vaults, congestion control, non-custodial mining, discreet log
> contracts, and more.
> 
> CSFS is a primitive opcode that has been deployed to Blockstream’s
> Elements for at least 8 years. It represents no significant
> computational burden over bitcoin’s most often used opcode, OP_CHECKSIG.
> It can be combined with CTV to implement ln-symmetry, a longstanding
> improvement to Lightning. It also unlocks a variety of other use cases.
> 
> We respectfully ask Bitcoin Core contributors to prioritize the review
> and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or
> similar) within the next six months. We believe this timeline allows for
> rigorous final review and activation planning.
> 
> This request isn't meant to suggest that these contributors dictate the
> consensus process, but rather it is an acknowledgement that before these
> opcodes can be activated, they must be implemented in the most widely
> used bitcoin client.
> 
> As application and protocol developers, we are convinced of the
> significant benefits that these changes would bring to end users of
> bitcoin – even if only considering their use for layer 1 security and
> layer 2 scaling solutions. We are optimistic that given the limited size
> and scope of these changes in both concept and implementation, they
> represent a realistic next step in the continuing and important work of
> preserving bitcoin's unique promise.
> 
> Signed,
> 
> Abdel (Starkware)
> Andrew Poelstra (@apoelstra)
> Ben Carman (@benthecarman)
> Ben Kaufman (@ben-kaufman)
> Brandon Black (@reardencode)
> Brian Langel (for Five Bells)
> Buck Perley (@puckberley)
> Calle (Cashu)
> Calvin Kim (@kcalvinalvin)
> Chun Wang (f2pool)
> Christian Decker (@cdecker)
> Coinjoined Chris (Bitsurance.eu)
> Evan Kaloudis (for Zeus)
> fiatjaf (@fiatjaf)
> Floppy (@1440000bytes)
> Gary Krause (@average-gary)
> Harsha Goli (@arshbot)
> Hunter Beast (@cryptoquick)
> Jad Mubaslat (@champbronc2)
> James O’Beirne (@jamesob)
> Jameson Lopp (@jlopp)
> Johan Halseth (@halseth)
> Luke Childs (@lukechilds)
> Matt Black (for Atomic Finance)
> Michael Tidwell (@miketwenty1)
> Nick Hansen (for Luxor Mining)
> Nitesh (@nitesh_btc)
> nvk (@nvk)
> Owen Kemeys (for Foundation)
> Paul Sztorc (@psztorc)
> Portland.HODL (for MARA Pool)
> Rijndael (@rot13maxi)
> Rob Hamilton (@rob1ham)
> Robin Linus (@RobinLinus)
> Sanket Kanjalkar (@sanket1729)
> Sean Ryan (Anchorage)
> Seth for Privacy (for Cake Wallet)
> Simanta Gautam (Alpen Labs)
> Steven Roose (@stevenroose)
> stutxo (@stutxo)
> Talip (@otaliptus)
> mononaut (@mononautical)
> vnprc (@vnprc)
> 
> 
> --
> 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/a86c2737-db79-4f54-9c1d-51beeb765163n%40googlegroups.com.

-- 
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/n4MR-H83t3x3B5yI8tjdTXR21smp_Ur7fRpqk_4EOc_im_zu0-9GlqxC1wl-gEzS__TdJNrf6XsV4XXOzxWn4kpdUocR3Xp8d6Uwo1m4ILw%3D%40protonmail.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 17:51     ` Matt Corallo
@ 2025-06-09 19:27       ` /dev /fd0
  2025-06-09 21:12         ` Matt Corallo
  0 siblings, 1 reply; 18+ messages in thread
From: /dev /fd0 @ 2025-06-09 19:27 UTC (permalink / raw)
  To: Matt Corallo; +Cc: Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 6315 bytes --]

Hi Matt,

> I mean, sure, compared to something trivial doing something
marginally-trivial has a lot bigger
> surface area. But that isn't really an argument unless we're talking
about something truly
> complicated, and TXHASH absolutely is not.

If you are referring to [BIP 346][0], it is not *marginally* trivial
compared to BIP 119. TxFieldSelector makes it super complex. That's without
even considering the possibilities when combined with CSFS.

> If that goal includes more flexible tx field commitments (I imagine it
> certainly does!) then we should do that, rather than taking a detour we
should make progress towards
> the eventual goal!

Sometimes the goal is easier to achieve through multiple steps with BIP 119
being the first step in this case. There are several reasons to prefer BIP
119 over BIP 346, and I have listed some of them below, based on rationales
shared in the [covenants support wiki][1]:

1. All the possible configurations need to be tested.
2. State carrying UTXOs will bloat the UTXO set.
3. BIP 346 could be activated in 2030 or later, once we better understand
how people are actually using covenants. This approach would be based on
real-world usage rather than premature optimization without sufficient data.

[0]:
https://github.com/bitcoin/bips/blob/debd349e6181d949cbea0691fcc0d67b265b02a8/bip-0346.md
[1]: https://en.bitcoin.it/wiki/Covenants_support

/dev/fd0
floppy disk guy

On Mon, Jun 9, 2025 at 11:23 PM Matt Corallo <lf-lists@mattcorallo•com>
wrote:

>
>
> On 6/9/25 10:43 AM, James O'Beirne wrote:
> > On Mon, Jun 9, 2025 at 9:51 AM Matt Corallo <lf-lists@mattcorallo•com
> <mailto:lf-
> > lists@mattcorallo•com>> wrote:
> >  > That said, I have yet to see a reasoned explanation of why we should
> prefer CTV over TXHASH.
> >
> >  From the author of TXHASH himself on Delving Bitcoin
> > (
> https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-
> > covenants/1509/15 <
> https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-
> > towards-covenants/1509/15>):
> >
> >  > Having implemented TXHASH, I would definitely not say that
> >  > it “simplifies the change”.
>
> Who claimed TXHASH is simpler than CTV?
>
> >  > The difference in both technical debt and
> >  > potential for bugs is an order of magnitude bigger for TXHASH than for
> >  > CTV.
>
> I mean, sure, compared to something trivial doing something
> marginally-trivial has a lot bigger
> surface area. But that isn't really an argument unless we're talking about
> something truly
> complicated, and TXHASH absolutely is not.
>
> >  > (Not to say that I don’t think TXHASH would be worthwhile, but I
> >  > will definitely say that it has not received the attention I had
> expected,
> >  > so I would definitely not want to put it on the table anytime soon.)
>
> I mean there's still debate around the exact format of CTV commitments (eg
> whether it commits to
> scriptSigs, if it works outside of segwit, etc), saying that there's
> debate over the format of
> TXHASH isn't exactly a compelling argument either? Yes, it needs some
> work, but the time we'll
> invest in CTV isn't all that different from the time we'll invest in
> TXHASH, once we pick a direction.
>
> > The use-cases that might merit such a jump up in complexity over CTV
> > have not been enumerated to my knowledge.
>
> This is a much better argument :). I'm a bit skeptical, though, that its
> quite this cut-and-dry. For
> example, the utter hack of the BitVM-with-CTV variant pretty clearly
> points to us needing a more
> fully featured commitment gadget to enable these things without the
> nonsense they had to resort to.
>
> Further, we should think at least somewhat about what we think a
> reasonable end state is. As far as
> I understand, most proponents of CTV+CSFS do not think that CTV+CSFS is
> *all* we want, but rather a
> first step towards some goal. If that goal includes more flexible tx field
> commitments (I imagine it
> certainly does!) then we should do that, rather than taking a detour we
> should make progress towards
> the eventual goal!
>
> > CTV also includes
> > upgrade hooks to incorporate modifications should these additional
> > uses be more fully understood.
>
> I do not understand why people make this argument. Yes, the encoding of
> the opcode allows you to
> turn it into an OP_NOP (or SUCCESS or whatever), that doesn't make it
> "upgrade hook"-friendly. If we
> think that we just want to do CTV but we want CTV to be upgradable later
> to be TXHASH, then we first
> need to define the TXHASH hash and bitfield format, so that we can take
> the subset of it that
> captures CTV and hard-code that. But, of course, if we do that work we
> should clearly do TXHASH :).
>
> These really feel like the same arguments again and again. I just don't
> find them even remotely
> compelling. "Oh, well, if we want to figure out TXHASH someone would have
> to define a bitfield
> format and that will take years" is just nonsense. Hell, its already done!
> Maybe we want to tweak
> it, but honestly bikeshedding over a specific bitfield format sounds like
> it'll take a hell of a lot
> less time than trying to make sure we work out all the cases for what
> someone might want to commit
> to that we want them to commit to but not more and fix a specific set of
> commitments!
>
> Matt
>
> --
> 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/01f49d64-838e-4311-bf79-8c4130b40c8e%40mattcorallo.com
> .
>

-- 
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/CALiT-ZqWjPM-dhAUfahG5AgNfQbLhn2Aa4%2BeLcrpugU4eZ4_vA%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 8177 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 19:27       ` /dev /fd0
@ 2025-06-09 21:12         ` Matt Corallo
  0 siblings, 0 replies; 18+ messages in thread
From: Matt Corallo @ 2025-06-09 21:12 UTC (permalink / raw)
  To: /dev /fd0; +Cc: Bitcoin Development Mailing List

Note that you can always reply inline, you don't have to copy and paste quotes, your email client 
will do that for you :)

On 6/9/25 3:27 PM, /dev /fd0 wrote:
> Hi Matt,
> 
>  > I mean, sure, compared to something trivial doing something marginally-trivial has a lot bigger
>  > surface area. But that isn't really an argument unless we're talking about something truly
>  > complicated, and TXHASH absolutely is not.
> 
> If you are referring to [BIP 346][0], it is not /marginally/ trivial compared to BIP 119. 
> TxFieldSelector makes it super complex. That's without even considering the possibilities when 
> combined with CSFS.

The "marginally-trivial" comment was not in comparison to, rather in the general sense. taking 
hashes of various parts of the transaction based on a discriminator (with intermediate hashes and 
caching to avoid hashed-data blowups) is absolutely marginally-trivial in the context of recent soft 
fork complexity.

>  > If that goal includes more flexible tx field commitments (I imagine it
>  > certainly does!) then we should do that, rather than taking a detour we should make progress towards
>  > the eventual goal!
> 
> Sometimes the goal is easier to achieve through multiple steps with BIP 119 being the first step in 
> this case.

I believe you missed my comment addressing this specifically in the email you're replying to, let me 
paste it here:

 > I do not understand why people make this argument. Yes, the encoding of the opcode allows you to 
turn it into an OP_NOP (or SUCCESS or whatever), that doesn't make it "upgrade hook"-friendly. If we 
think that we just want to do CTV but we want CTV to be upgradable later to be TXHASH, then we first 
need to define the TXHASH hash and bitfield format, so that we can take the subset of it that 
captures CTV and hard-code that. But, of course, if we do that work we should clearly do TXHASH 🙂.

 > There are several reasons to prefer BIP 119 over BIP 346, and I have listed some of them
 > below, based on rationales shared in the [covenants support wiki][1]:
 >
> 1. All the possible configurations need to be tested.

I mean....okay? Yes? And? Come on, this isn't a lot of work.

> 2. State carrying UTXOs will bloat the UTXO set.

State carrying UTXOs will bloat the UTXO set worse if its done via BitVM/GC? Come on...

> 3. BIP 346 could be activated in 2030 or later, once we better understand how people are actually 
> using covenants. This approach would be based on real-world usage rather than premature optimization 
> without sufficient data.

This is similar to the argument I was replying to which you replied to here, and I think my original 
response still stands and wasn't responded to at all:

 > This is a much better argument 🙂. I'm a bit skeptical, though, that its quite this cut-and-dry. 
For example, the utter hack of the BitVM-with-CTV variant pretty clearly points to us needing a more 
fully featured commitment gadget to enable these things without the nonsense they had to resort to.

IOW, we have concrete use-cases already for TXHASH-over-CTV (at least in the sense that it would 
simplify things that are currently very hacky), and if it avoids a future soft fork by just enabling 
the full set of things today vs some narrow subset, I don't see why we shouldn't take on the extra 
month of work.

Matt

-- 
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/351b6327-08ab-4c2d-937c-521020978c82%40mattcorallo.com.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 11:40 [bitcoindev] CTV + CSFS: a letter James O'Beirne
                   ` (2 preceding siblings ...)
  2025-06-09 18:55 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
@ 2025-06-09 23:02 ` Andrew Poelstra
  2025-06-10  2:08   ` David A. Harding
  2025-06-10  2:28   ` Melvin Carvalho
  3 siblings, 2 replies; 18+ messages in thread
From: Andrew Poelstra @ 2025-06-09 23:02 UTC (permalink / raw)
  To: James O'Beirne; +Cc: Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 3607 bytes --]

Le Mon, Jun 09, 2025 at 04:40:52AM -0700, James O'Beirne a écrit :
> Good morning,
> 
> A letter has been published advocating for the final review and
> activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> (BIP-348). 
> 
> The full text of the letter can be found at https://ctv-csfs.com. It is
> reproduced below.
>

Hi all,


James, thanks for posting the letter. Matt, Antoine -- thanks for
replying quickly and respectfully even though you disagree with its
contents. Let me try to clarify my stance and why I signed onto the
letter.

First, the specific choice of CTV + CSFS would not be my first choice
on technical grounds. But what I'd like to see is something that is
technically "good enough" to enable vaults and some new script usecases,
while avoiding things that are politically toxic (which seems to be
pretty-much everything, but maybe right now does not include CTV+CSFS?).

So any arguments about CTV+CSFS on the technical merits I think are
great and within the purview of "review and integration" that the letter
talks about. (The word "final" I think is too strong and in retrospect
I think we should've dropped it. But it's super difficult when writing
these things to identify which specific points of language need to be
changed.)


Second, regarding the ultimatum language -- it was quite difficult to
strike a balance between "Core consists of volunteers working on their
on projects, with no obligation to anybody, and certainly no obligation
to drive forward consensus changes" and "this is a letter that says
nothing substantial at all".

The message that I want to communicate is: Bitcoin Core, like many
stakeholders, can veto any consensus changes because there will never be
a large enough contigent of the Bitcoin community confident to rush in
where angels dare to tread. But furthermore, if nobody in Core wants to
engage at all with consensus changes, then the result is effectively the
same as a veto.

Therefore, if we want to see an increase in script expressivity, somebody
on the Core team needs to help champion it. (There's no one in particular
I imagine this "somebody" to be, and I suppose you could accuse me of
hypocrisy since I'm not volunteering myself, even though I have the
social and technical knowledge to help. It could be, and probably would
have to be, somebody who isn't currently active on Core. But it needs to
be somebody willing and able to work within the Core review process, to
deal with ongoing rebases, etc.)


Third, I really really hope that this letter does not lead to further
brigading or twitter fights or whatever bleeding into the Github repo.
(This is the one point where I think that my fellow cosigners agree with
me fully.) But on the other hand, I don't think that I personally should
shy away from discussion to mitigate that risk; it needs to be mitigated
by more agressive moderation or by higher barriers to entry for people
posting on Core PRs.



Best
Andrew




-- 
Andrew Poelstra
Director, Blockstream Research
Email: apoelstra at wpsoftware.net
Web:   https://www.wpsoftware.net/andrew

The sun is always shining in space
    -Justin Lewis-Webster

-- 
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/aEdoIvOgNNtT6L4s%40mail.wpsoftware.net.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 18:55 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
@ 2025-06-10  2:02   ` Paul Sztorc
  0 siblings, 0 replies; 18+ messages in thread
From: Paul Sztorc @ 2025-06-10  2:02 UTC (permalink / raw)
  To: Bitcoin Development Mailing List


[-- Attachment #1.1: Type: text/plain, Size: 10891 bytes --]

 >  the urgency with a six months deadline is nothing short of reckless. 

But why would 6 months be considered "urgent"?

I think the tiniest amount of clarity would help. I propose a new table 
(like the covenants support table), where we each self-sort ourselves into 
whichever category describes us BEST:

1) Those who believe ...that each soft fork should take 5+ years (like 
CTV). ...that we can only activate one soft fork at a time. ...that we must 
debate and "agree" upon which one, to activate. ...that soft forks are a 
dramatic event, different from other pull requests. ...that we need 
"consensus" among humans to activate a soft fork. [Etc, etc]
2) Those who would prefer Bitcoin development to revert, more back toward 
the way things were, pre-SegWit drama. In other words: we can activate 
multiple soft forks at once ; soft forks do not require "agreement" among 
humans -- they just need to meet the same quality threshold as other 
pull-requests ; we should merge any pull-request, if it is a good idea 
(regardless of if it is a soft fork or not -- the soft fork part, only 
affects when it is safe for users to rely on the feature). The [OP NOP / OP 
Success]-style forks, are inherently very safe, ignore-able, and 
reversible. In theory, we could activate 15 of these in the next release, 
and then later change our mind, and "deactivate" any (or all) of these (by 
banning that opcode from ever being spent to/from again). In that 
hypothetical scenario (very different from ours today), we would 
preemptively explain (to users), that all "new opcodes" (less than a year 
old), are "experimental", and may be "deactivated" at any time -- each user 
could decide for themselves if they want to take this risk (during the 
first 12 months).
3) Those unwilling to clarify their opinion.

If people think "2 soft forks per 10 years" is the right way to go, then 
they should stand behind that point of view.

People seem to want it both ways -- on one hand, reluctant to stick their 
neck out for any particular soft fork; but, on the other hand, too ashamed 
to admit that they are quietly handcuffing the Bitcoin project to the "5+ 
years per softfork", bike-shedding timeline.

Cheers,
Paul

P.S. I have never used google groups before so I hope this email goes out 
correctly. 

On Monday, June 9, 2025 at 5:17:54 PM UTC-4 Antoine Poinsot wrote:

> James, cosigners,
>
> I am sympathetic to the idea of a CTV+CSFS soft fork, mainly for its 
> flagship use case: LN-Symmetry.
>
> However i think it is premature to call for a "final review and 
> activation" of these opcodes when
> there is still:
> - disagreement between Bitcoin protocol developers/researchers that it is 
> the way to go for enabling
> more expressive scripting capabilities in Bitcoin[^0];
> - disagreement between Bitcoin developers on how the functionality of at 
> least one of the proposed
> opcodes should be achieved[^1];
> - no review after three months, from any of the champions or signers of 
> this letter, on the PR for
> integrating one of the two proposed opcodes to the test network[^2].
>
> The flagship use case of the proposal has also not been properly 
> demonstrated. As a point of
> comparison Greg Sanders provided motivation for `ANYPREVOUT`, a soft fork 
> that no one even called
> to be "finally reviewed and activated", by publishing a detailed proof of 
> concept of LN-Symmetry
> (with full specification as a BOLT draft + an implementation in one of the 
> major Lightning clients).
>
> A comprehensive exploration gives confidence a use case is actually 
> realistic in practice. Of course
> it's not necessary to go to such lengths just to demonstrate it to be 
> *possible*, but it is
> reasonable to expect a champion to have something to show if they are 
> calling for changing Bitcoin.
> Fortunately i hear some have taken upon themselves to further explore 
> LN-Symmetry and multiparty
> channels using CTV+CSFS, which could provide tangible motivation for the 
> soft fork. Let's see what
> they come up with.
>
> Finally, it seems the post contains a built-in assumption that Bitcoin 
> Core contributors are
> detached from the research in more expressive scripting capabilities. It 
> is incorrect. A number of
> individuals have been involved both with Bitcoin Core development and 
> Bitcoin protocol research,
> with substantial contributions in both areas.
>
> Therefore it seems the stalling state of the CTV+CSFS proposal is not due 
> to apathy as this open
> letter would lead to believe, but controversy on the content of the 
> proposal among Bitcoin protocol
> developers as well as a lack of involvement from the part of champions in 
> reaching consensus.
>
> In these conditions calling for an impending change to Bitcoin's consensus 
> rules seems unadvisable,
> and the urgency with a six months deadline is nothing short of reckless.
>
> I remain confident we can make progress toward enabling more expressive 
> scripting capabilities in
> Bitcoin. The path forward is by building consensus on the basis of strong 
> technical arguments, and
> the politics of pushing for the premature activation of a consensus change 
> are working against it.
>
> Best,
> Antoine Poinsot
>
>
> [^0]: 
> https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/14
> https://gnusha.org/pi/bitcoindev/6f78b702-4bd0-4aa4...@mattcorallo.com 
> <https://gnusha.org/pi/bitcoindev/6f78b702-4bd0-4aa4-ac51-b881d8df9f01@mattcorallo.com>
> [^1]: 
> https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/58
> [^2]: https://github.com/bitcoin-inquisition/bitcoin/pull/72
> [^3]: https://delvingbitcoin.org/t/ln-symmetry-project-recap/359
>
>
> On Monday, June 9th, 2025 at 7:54 AM, James O'Beirne <james....@gmail•com> 
> wrote:
>
> > Good morning,
> > 
> > A letter has been published advocating for the final review and
> > activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> > (BIP-348).
> > 
> > The full text of the letter can be found at https://ctv-csfs.com. It is
> > reproduced below.
> > 
> > ---
> > 
> > To the technical bitcoin community,
> > 
> > We believe that the best next step for bitcoin would be to activate
> > OP_CHECKTEMPLATEVERIFY (CTV, BIP-119) and OP_CHECKSIGFROMSTACK (CSFS,
> > BIP-348). These opcodes enable functionality for a broad set of uses
> > that will allow bitcoin to preserve and expand its role as a scarce,
> > censorship-resistant store of value.
> > 
> > While there are a few promising proposals to improve bitcoin at the
> > consensus layer which may someday be deployed, we believe that CTV and
> > CSFS are uniquely well reviewed, simple, and have been proven to be both
> > safe and widely demanded.
> > 
> > CTV was first formalized in BIP-119 over 5 years ago. Despite many
> > attempts at refinement or replacement, it has remained the most widely
> > preferred method for enforcing pregenerated transaction sequences using
> > consensus. It unlocks valuable functionality for scaling solutions,
> > vaults, congestion control, non-custodial mining, discreet log
> > contracts, and more.
> > 
> > CSFS is a primitive opcode that has been deployed to Blockstream’s
> > Elements for at least 8 years. It represents no significant
> > computational burden over bitcoin’s most often used opcode, OP_CHECKSIG.
> > It can be combined with CTV to implement ln-symmetry, a longstanding
> > improvement to Lightning. It also unlocks a variety of other use cases.
> > 
> > We respectfully ask Bitcoin Core contributors to prioritize the review
> > and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or
> > similar) within the next six months. We believe this timeline allows for
> > rigorous final review and activation planning.
> > 
> > This request isn't meant to suggest that these contributors dictate the
> > consensus process, but rather it is an acknowledgement that before these
> > opcodes can be activated, they must be implemented in the most widely
> > used bitcoin client.
> > 
> > As application and protocol developers, we are convinced of the
> > significant benefits that these changes would bring to end users of
> > bitcoin – even if only considering their use for layer 1 security and
> > layer 2 scaling solutions. We are optimistic that given the limited size
> > and scope of these changes in both concept and implementation, they
> > represent a realistic next step in the continuing and important work of
> > preserving bitcoin's unique promise.
> > 
> > Signed,
> > 
> > Abdel (Starkware)
> > Andrew Poelstra (@apoelstra)
> > Ben Carman (@benthecarman)
> > Ben Kaufman (@ben-kaufman)
> > Brandon Black (@reardencode)
> > Brian Langel (for Five Bells)
> > Buck Perley (@puckberley)
> > Calle (Cashu)
> > Calvin Kim (@kcalvinalvin)
> > Chun Wang (f2pool)
> > Christian Decker (@cdecker)
> > Coinjoined Chris (Bitsurance.eu)
> > Evan Kaloudis (for Zeus)
> > fiatjaf (@fiatjaf)
> > Floppy (@1440000bytes)
> > Gary Krause (@average-gary)
> > Harsha Goli (@arshbot)
> > Hunter Beast (@cryptoquick)
> > Jad Mubaslat (@champbronc2)
> > James O’Beirne (@jamesob)
> > Jameson Lopp (@jlopp)
> > Johan Halseth (@halseth)
> > Luke Childs (@lukechilds)
> > Matt Black (for Atomic Finance)
> > Michael Tidwell (@miketwenty1)
> > Nick Hansen (for Luxor Mining)
> > Nitesh (@nitesh_btc)
> > nvk (@nvk)
> > Owen Kemeys (for Foundation)
> > Paul Sztorc (@psztorc)
> > Portland.HODL (for MARA Pool)
> > Rijndael (@rot13maxi)
> > Rob Hamilton (@rob1ham)
> > Robin Linus (@RobinLinus)
> > Sanket Kanjalkar (@sanket1729)
> > Sean Ryan (Anchorage)
> > Seth for Privacy (for Cake Wallet)
> > Simanta Gautam (Alpen Labs)
> > Steven Roose (@stevenroose)
> > stutxo (@stutxo)
> > Talip (@otaliptus)
> > mononaut (@mononautical)
> > vnprc (@vnprc)
> > 
> > 
> > --
> > 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+...@googlegroups•com.
> > To view this discussion visit 
> https://groups.google.com/d/msgid/bitcoindev/a86c2737-db79-4f54-9c1d-51beeb765163n%40googlegroups.com
> .
>

-- 
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/7db9795a-53ff-4a1e-973e-d6be029d9022n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 14401 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 23:02 ` Andrew Poelstra
@ 2025-06-10  2:08   ` David A. Harding
  2025-06-10 13:23     ` Andrew Poelstra
  2025-06-10 14:03     ` James O'Beirne
  2025-06-10  2:28   ` Melvin Carvalho
  1 sibling, 2 replies; 18+ messages in thread
From: David A. Harding @ 2025-06-10  2:08 UTC (permalink / raw)
  To: Andrew Poelstra; +Cc: James O'Beirne, Bitcoin Development Mailing List

On 2025-06-09 13:02, Andrew Poelstra wrote:
> if nobody in Core wants to
> engage at all with consensus changes, then the result is effectively 
> the
> same as a veto.

Hi Andrew and the other signatories,

Why do you think nobody in Core wants to engage at all with consensus 
changes (or, at least, specifically the proposals for CTV & CSFS)?

The usual purpose of an open letter is to generate public pressure 
against the target (otherwise, if you didn't want to generate public 
pressure, you would send a private letter).  Does that mean that you 
feel the lack of engagement is a result of a previous lack of pressure?  
I have to admit that runs counter to my own sense---I thought there was 
already significant social pressure on Bitcoin Core contributors to work 
on CTV (and now CSFS); I wouldn't expect more pressure to achieve new 
results; rather, I'd expect more pressure to create more frustration on 
all sides.

Alternatively, if you feel like the lack of engagement is a result of 
some other condition, I would be curious to learn of that condition and 
learn why you thought an open letter (with what comes across as an 
ultimatum) would help address it.

Thanks,

-Dave

-- 
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/195051b7c393b9a28727e87647ac002b%40dtrt.org.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-09 23:02 ` Andrew Poelstra
  2025-06-10  2:08   ` David A. Harding
@ 2025-06-10  2:28   ` Melvin Carvalho
  2025-06-10 13:19     ` Greg Sanders
  1 sibling, 1 reply; 18+ messages in thread
From: Melvin Carvalho @ 2025-06-10  2:28 UTC (permalink / raw)
  To: Andrew Poelstra; +Cc: James O'Beirne, Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 4549 bytes --]

út 10. 6. 2025 v 1:11 odesílatel Andrew Poelstra <apoelstra@wpsoftware•net>
napsal:

> Le Mon, Jun 09, 2025 at 04:40:52AM -0700, James O'Beirne a écrit :
> > Good morning,
> >
> > A letter has been published advocating for the final review and
> > activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
> > (BIP-348).
> >
> > The full text of the letter can be found at https://ctv-csfs.com. It is
> > reproduced below.
> >
>
> Hi all,
>
>
> James, thanks for posting the letter. Matt, Antoine -- thanks for
> replying quickly and respectfully even though you disagree with its
> contents. Let me try to clarify my stance and why I signed onto the
> letter.
>
> First, the specific choice of CTV + CSFS would not be my first choice
> on technical grounds. But what I'd like to see is something that is
> technically "good enough" to enable vaults and some new script usecases,
> while avoiding things that are politically toxic (which seems to be
> pretty-much everything, but maybe right now does not include CTV+CSFS?).
>
> So any arguments about CTV+CSFS on the technical merits I think are
> great and within the purview of "review and integration" that the letter
> talks about. (The word "final" I think is too strong and in retrospect
> I think we should've dropped it. But it's super difficult when writing
> these things to identify which specific points of language need to be
> changed.)
>
>
> Second, regarding the ultimatum language -- it was quite difficult to
> strike a balance between "Core consists of volunteers working on their
> on projects, with no obligation to anybody, and certainly no obligation
> to drive forward consensus changes" and "this is a letter that says
> nothing substantial at all".
>
> The message that I want to communicate is: Bitcoin Core, like many
> stakeholders, can veto any consensus changes because there will never be
> a large enough contigent of the Bitcoin community confident to rush in
> where angels dare to tread. But furthermore, if nobody in Core wants to
> engage at all with consensus changes, then the result is effectively the
> same as a veto.
>
> Therefore, if we want to see an increase in script expressivity, somebody
> on the Core team needs to help champion it. (There's no one in particular
> I imagine this "somebody" to be, and I suppose you could accuse me of
> hypocrisy since I'm not volunteering myself, even though I have the
> social and technical knowledge to help. It could be, and probably would
> have to be, somebody who isn't currently active on Core. But it needs to
> be somebody willing and able to work within the Core review process, to
> deal with ongoing rebases, etc.)
>
>
> Third, I really really hope that this letter does not lead to further
> brigading or twitter fights or whatever bleeding into the Github repo.
> (This is the one point where I think that my fellow cosigners agree with
> me fully.) But on the other hand, I don't think that I personally should
> shy away from discussion to mitigate that risk; it needs to be mitigated
> by more agressive moderation or by higher barriers to entry for people
> posting on Core PRs.
>


Andrew, would you agree with this premise?

Bitcoin changes must be demonstrably proven safe, needed, and wanted before
adoption.  Proposers bear the burden, not the community.  If the benefit
doesn't demonstrably outweigh the risk, the answer is simple: don't fork
the rules.


>
>
>
> Best
> Andrew
>
>
>
>
> --
> Andrew Poelstra
> Director, Blockstream Research
> Email: apoelstra at wpsoftware.net
> Web:   https://www.wpsoftware.net/andrew
>
> The sun is always shining in space
>     -Justin Lewis-Webster
>
> --
> 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/aEdoIvOgNNtT6L4s%40mail.wpsoftware.net
> .
>

-- 
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/CAKaEYh%2BtLtzaqAcN26RLw3AeNhF6VYvMdKrQY6dfCdhYg2Ad3w%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 6097 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-10  2:28   ` Melvin Carvalho
@ 2025-06-10 13:19     ` Greg Sanders
  0 siblings, 0 replies; 18+ messages in thread
From: Greg Sanders @ 2025-06-10 13:19 UTC (permalink / raw)
  To: Bitcoin Development Mailing List


[-- Attachment #1.1: Type: text/plain, Size: 12955 bytes --]


Sorry, this got very long at least for my standards.

I'd like to start off by saying I believe that Bitcoin is in good technical 
hands regardless of how this shakes out. Good things take time and we've 
learned a lot; let's continue doing so.

Before I dive into what I think needs to be answered for this proposal to 
move forward, I'd like to respond to language in the letter to make sure 
we're on a common understanding of the asks being given here.

> We respectfully ask Bitcoin Core contributors to prioritize the review 
and integration of CTV (PR #31989 or similar) and CSFS (PR #32247 or 
similar) within the next six months. We believe this timeline allows for 
rigorous final review and activation planning.

This is the meat of the post. This seemingly dictates inclusion for 
activation as a fait accompli. Is this intended? The most generous 
interpretation is that it's an ask for rigorous review, with the explicit 
intention that if there is broad technical consensus to activate, that 
broader communication to non-technical world + activation discussions 
occur. I'd like to think this this is especially a call for those who have 
not spoken up, including those who have done the homework yet conceptually 
disagree?

What efforts will be done by proponents to gather that feedback and make it 
public?

Each co-signer should consider what feedback could be received that would 
demonstrate lack of technical consensus. I think it's plain that there 
isn't at least 100% excitement in the technical community for the proposal. 
How much of this lack of enthusiasm stems from inattention vs outright 
opposition? 

> six months

What happens if this time runs out? Is this just an ask to have people take 
a look within a "few months" and continue/cease work after depending on 
results?

# Feedback on Effort

I grouped my specific feedback as larger conceptual concerns, specification 
concerns, and deployment concerns. They don't need to be answered inline 
here at this specific venue, but this is a synthesis of my hesitation about 
the current effort, hopefully with some concrete actions that can be taken.

For sake of discussion:
"CTV" means "next tx" commitment capability, not BIP119 per se
"TXHASH" means CTV with many knobs for app devs to choose what to commit to
"CSFS" means what's on the tin (less wiggle room here for changes)

## Larger conceptual concern:

Given all the things we've learned over the lifetime of BIP119 and the 
prior iterations, we need to consider "why here and not there". What's a 
good stopping point for adding functionality to Bitcoin Script, when we 
have essentially infinitely combinations possible and different strategies?

My mental model of where we should stop in terms of capabilities comes in 
the form of: 

"Why here and not there"?
 - Why not just CTV?
 - Why CTV + CSFS?
 - Why not TXHASH + CSFS?
 - Why not bucket of opcodes? "swiss army knife" approach

"MEVil" is one type of objection to generalized Bitcoin script 
introspection. CTV+CSFS is not known to appreciably increase MEVil 
potential. For the sake of argument, let's assume this dimension doesn't 
matter, due to a mixture in technical/market realities, or ColliderVM is 
deployed, or the deployment of based rollups on Bitcoin without any 
softforks. In some of those cases we should deploy anti-MEV technology 
regardless, but let's set that aside.

Everyone should consider these on their own but stating my own view to 
start the conversation:

Why not just CTV? I think there is general agreement that CTV alone was 
insufficiently exciting to enough of the technical community to be deployed 
on its own. There are some cool usages without, but the complementary 
nature of a straight forward CSFS capability is too much to overlook, 
increasing the flagship use-cases substantially.

Why not TXHASH+CSFS? If the cost is a year of concentrated development to 
do something better, we should just do it. We could easily as a community 
decide that TXHASH (with CTV capabilities being baked in as a trivial 
default mode thereof) is the thing we actually want and easily get the 
design finalized within that timeframe. With TXHASH+CSFS we can let app 
developers decide what they find important, versus the opinionated CTV 
default, whatever that is.

Note that I'm not totally convinced by this argument in either direction. 
Once we have TXHASH, there's really no reason to not have CAT (that's very 
small too!), maybe big num math, perhaps direct introspection. Maybe 
bllish, simplicity, or GSR? The community would have to agree on a stopping 
point, and that seems like it could be difficult to do in a 
short-in-year-terms timeline.

Why not bucket of opcodes? Same arguments apply on slippery slope but 
moreso. There's no clear stopping point, turning it into a giant research 
and engineering project, even if it's a good idea to start working on it 
now.

## Specification concerns:

1. Why not commit to annex? I had considered future annex relay as 
problematic for rolling out BIP119 due to its lack of commitment to the 
annex field. Committing or not are both reasonable depending on usage. With 
https://github.com/bitcoin/bitcoin/pull/32453 it at least won't impede 
annex relay efforts unduly, so maybe this can be punted and CTV sticks 
closer to it's minimalistic txid-stable design goal. Bringing this up 
because few people seem to have considered this historically.

2. Legacy script support is not technically necessary for the capabilities 
we desire. It considerably increases review surface for no known capability 
gain and no known savings for protocols. Legacy scripting should not be 
modified lightly, and if there's no strong motivation, it should be 
abandoned in favor of solutions that don't touch it. See more discussion in 
that direction here: 
https://delvingbitcoin.org/t/ctv-csfs-can-we-reach-consensus-on-a-first-step-towards-covenants/1509/75

2. BIP119 committing to other prevouts very indirectly is a surprising 
anti-feature: 
https://delvingbitcoin.org/t/how-ctv-csfs-improves-bitvm-bridges/1591

This feature is proported to make specific BitVM constructions trustless in 
one respect, instead of the 1-of-n trust assumption held. This is extremely 
surprising, and as can be seen in the thread extremely brittle and ugly. 
BIP119 activated alone seemingly incentivizes very non-standard scriptSigs 
on legacy scripting, rather than directly offering the functionality 
desired. This is a bad sign which either means we should ban it outright by 
f.e. requiring scriptSigs to be blank, or take another long hard look at 
TXHASH to give app devs tools they actually want such as TXHASH.

What other surprising capabilities lurk in BIP119 that would incentivize 
deranged usage like this? Maybe nothing? Perhaps it's hubris to predict it 
and we should just do TXHASH? Maybe this hack is not a big deal and I 
shouldn't be physically repulsed by having to carve out a standardness rule 
for it?

## Concrete Deployment concerns:

1. Summarize technical community objections and adequately address them in 
a single discoverable location. I do not believe this has been done 
adequately up until now.

2. Specification feedback fully addressed and discoverable in a single 
location.

3. Flagship PoCs: At a minimum I would hope for some level of LN-Symmetry 
PoC, and or perhaps proving out hArk(or Erk), and make sure they are 
re-validated on whatever the final spec would end up being. If we want to 
draw some lessons on taproot activation it should be that validation should 
be done throughout the lifetime of the proposal, not early and then only 
after activation.

I'm hopeful on this front but 6 months to get things like this done in 
addition to everything else seems very short.

4. Second consensus implementation: It's important to validate the BIPs and 
gather more design feedback before finality of spec. Again, let's learn 
some lessons from past mistakes. Can btcd get a branch up and running that 
matches the specs and bitcoind?
On Tuesday, June 10, 2025 at 5:52:27 AM UTC-4 Melvin Carvalho wrote:

>
>
> út 10. 6. 2025 v 1:11 odesílatel Andrew Poelstra <apoe...@wpsoftware•net> 
> napsal:
>
>> Le Mon, Jun 09, 2025 at 04:40:52AM -0700, James O'Beirne a écrit :
>> > Good morning,
>> > 
>> > A letter has been published advocating for the final review and
>> > activation of OP_CHECKTEMPLATEVERIFY (BIP-119) and OP_CHECKSIGFROMSTACK
>> > (BIP-348). 
>> > 
>> > The full text of the letter can be found at https://ctv-csfs.com. It is
>> > reproduced below.
>> >
>>
>> Hi all,
>>
>>
>> James, thanks for posting the letter. Matt, Antoine -- thanks for
>> replying quickly and respectfully even though you disagree with its
>> contents. Let me try to clarify my stance and why I signed onto the
>> letter.
>>
>> First, the specific choice of CTV + CSFS would not be my first choice
>> on technical grounds. But what I'd like to see is something that is
>> technically "good enough" to enable vaults and some new script usecases,
>> while avoiding things that are politically toxic (which seems to be
>> pretty-much everything, but maybe right now does not include CTV+CSFS?).
>>
>> So any arguments about CTV+CSFS on the technical merits I think are
>> great and within the purview of "review and integration" that the letter
>> talks about. (The word "final" I think is too strong and in retrospect
>> I think we should've dropped it. But it's super difficult when writing
>> these things to identify which specific points of language need to be
>> changed.)
>>
>>
>> Second, regarding the ultimatum language -- it was quite difficult to
>> strike a balance between "Core consists of volunteers working on their
>> on projects, with no obligation to anybody, and certainly no obligation
>> to drive forward consensus changes" and "this is a letter that says
>> nothing substantial at all".
>>
>> The message that I want to communicate is: Bitcoin Core, like many
>> stakeholders, can veto any consensus changes because there will never be
>> a large enough contigent of the Bitcoin community confident to rush in
>> where angels dare to tread. But furthermore, if nobody in Core wants to
>> engage at all with consensus changes, then the result is effectively the
>> same as a veto.
>>
>> Therefore, if we want to see an increase in script expressivity, somebody
>> on the Core team needs to help champion it. (There's no one in particular
>> I imagine this "somebody" to be, and I suppose you could accuse me of
>> hypocrisy since I'm not volunteering myself, even though I have the
>> social and technical knowledge to help. It could be, and probably would
>> have to be, somebody who isn't currently active on Core. But it needs to
>> be somebody willing and able to work within the Core review process, to
>> deal with ongoing rebases, etc.)
>>
>>
>> Third, I really really hope that this letter does not lead to further
>> brigading or twitter fights or whatever bleeding into the Github repo.
>> (This is the one point where I think that my fellow cosigners agree with
>> me fully.) But on the other hand, I don't think that I personally should
>> shy away from discussion to mitigate that risk; it needs to be mitigated
>> by more agressive moderation or by higher barriers to entry for people
>> posting on Core PRs.
>>
>
>
> Andrew, would you agree with this premise? 
>
> Bitcoin changes must be demonstrably proven safe, needed, and wanted 
> before adoption.  Proposers bear the burden, not the community.  If the 
> benefit doesn't demonstrably outweigh the risk, the answer is simple: don't 
> fork the rules.
>  
>
>>
>>
>>
>> Best
>> Andrew
>>
>>
>>
>>
>> -- 
>> Andrew Poelstra
>> Director, Blockstream Research
>> Email: apoelstra at wpsoftware.net
>> Web:   https://www.wpsoftware.net/andrew
>>
>> The sun is always shining in space
>>     -Justin Lewis-Webster
>>
>> -- 
>> 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+...@googlegroups•com.
>>
> To view this discussion visit 
>> https://groups.google.com/d/msgid/bitcoindev/aEdoIvOgNNtT6L4s%40mail.wpsoftware.net
>> .
>>
>

-- 
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/b17d0544-d292-4b4d-98c6-fa8dc4ef573cn%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 16060 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-10  2:08   ` David A. Harding
@ 2025-06-10 13:23     ` Andrew Poelstra
  2025-06-10 14:03     ` James O'Beirne
  1 sibling, 0 replies; 18+ messages in thread
From: Andrew Poelstra @ 2025-06-10 13:23 UTC (permalink / raw)
  To: David A. Harding; +Cc: James O'Beirne, Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 5078 bytes --]

Le Mon, Jun 09, 2025 at 04:08:21PM -1000, David A. Harding a écrit :
> 
> Why do you think nobody in Core wants to engage at all with consensus
> changes (or, at least, specifically the proposals for CTV & CSFS)?
>

Because everybody actively working on Core has a project that, while
interesting and useful, does not affect users or the network in any
visible way. Over the years there has been a ton of work refactoring
the project into multiple libraries, rewriting the logic behind the
RPC interface and help text, upgrading to new C++ versions, etc.,
and yet if you want to mine from your local node on a local miner
today you need to run Sjors' personal fork of the project plus two
other daemons.

I'm being a bit unfair here -- over the same period there has been a
ton of critical infrastructure work on transaction relay, descriptor
wallets and mempool unification. Some things, like TRUC, even change
relay behavior on the network. But these are still things that no
ordinary user could articulate well enough to complain about.

This is understandable -- I also don't want to deal with the kind of
BS where making simple obvious mempool optimizations leads to Twitter
brigading and funded FUD campaigns. (Let alone something like the segwit
FUD campaign which was much larger and more professional.) And of
course, consensus changes requires large-scale public engagement; these
changes are not "luck of the draw" "hope your change doesn't get linked
on twitter" kinda things.

But the result, when everybody feels this way, is a lack of engagement
from the project as a whole.

Complicating matters is the fact that it's quite hard to contribute
things to Bitcoin Core -- it is hard to get reviews, when you can get
them they're slow, you need to spend months or years rebasing over the
codebase churn, etc. These problems are well-known. So it's hard to
onboard new people who want to push on more-visible things.

> The usual purpose of an open letter is to generate public pressure against
> the target (otherwise, if you didn't want to generate public pressure, you
> would send a private letter).

There isn't really any place to send a "private" letter. For most
open-source projects I could just file a discussion on their Github
repo, which would be unnoticed and unread by anyone else. Core does not
have that privilege.

There are in-person meetups a few times a year but for (happy) family
reasons I've been unable to attend, and won't be able to for the next
few years at least.

And of course I could email specific developers personally, but there
are no individuals that it makes sense to target, because this isn't an
individual problem. It's an incentive problem.

> Does that mean that you feel the lack of
> engagement is a result of a previous lack of pressure?  I have to admit that
> runs counter to my own sense---I thought there was already significant
> social pressure on Bitcoin Core contributors to work on CTV (and now CSFS);
> I wouldn't expect more pressure to achieve new results; rather, I'd expect
> more pressure to create more frustration on all sides.
>

I think that logistically there isn't any non-public medium that would
work. Maybe solving this would also solve the incentive problems around
making big changes!

I spent a while deliberating about whether signing onto an open letter
would just cause flamewars and "more pressure" -- especially since I'm
probably closer to Core development than any of the other signers, and
because its specific technical demand (CTV + CSFS) is not even something
I feel strongly about.

My goal was to start exactly this discussion, by talking about the role
Core plays in this ecosystem and pointing to (in my view) the incentive
problems that are getting in the way of that role.

> Alternatively, if you feel like the lack of engagement is a result of some
> other condition, I would be curious to learn of that condition and learn why
> you thought an open letter (with what comes across as an ultimatum) would
> help address it.
>

I apologize if it comes off as an ultimatum -- it has a timeline, but
one for a "respectful ask" for "review and integration" and no specified
consquences (I'm not even sure what consequences would look like ...
perhaps a fork of Core? I can say that I personally would never go along
with a consensus-changing fork of Core, barring some extreme event like
outright abandonment of the project.)

-- 
Andrew Poelstra
Director, Blockstream Research
Email: apoelstra at wpsoftware.net
Web:   https://www.wpsoftware.net/andrew

The sun is always shining in space
    -Justin Lewis-Webster

-- 
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/aEgxuiy4dUo8sNkY%40mail.wpsoftware.net.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-10  2:08   ` David A. Harding
  2025-06-10 13:23     ` Andrew Poelstra
@ 2025-06-10 14:03     ` James O'Beirne
  2025-06-10 16:56       ` Sjors Provoost
  1 sibling, 1 reply; 18+ messages in thread
From: James O'Beirne @ 2025-06-10 14:03 UTC (permalink / raw)
  To: David A. Harding; +Cc: Andrew Poelstra, Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 6440 bytes --]

Hi Dave,

> Why do you think nobody in Core wants to engage at all with consensus
> changes (or, at least, specifically the proposals for CTV & CSFS)?

For evidence of this, we need look no further than what the regulars of
the project themselves are saying. Mike Schmidt published the results of
the 2024 year-end Core contributors survey, and the aggregated answers
to "goals/priorities for 2025" were (https://archive.is/M8bln):

> - Cluster mempool completion and deployment +9
> - Enhanced wallet functionality +9
> - Testing infrastructure improvements +8
> - Security hardening initiatives +2
> - P2P layer improvements +2
> - Build system modernization +1

The "highlights from 2024" were also revealing
(https://archive.is/YNtcP). On both lists, questions of script
functionality or softforks are nowhere to be found, and this is
consistent with my personal experience in the project.

Another fact ready at hand is that while Core participants have dished
out a lot of soft, negative feedback about various proposals, or put
forth lofty posts about proposals of their own with no code (e.g. GSR,
TLUV),
they have written no code toward any of the workable proposals under
consideration. The single exception to this is instagibbs, who has
generated (valuable) code contributions toward VAULT, APO, and CSFS.

All prototyping and proposal construction have been done almost
exclusively outside of Core for the last 5 years.

---

More anecdotally, back when I was a regular (<2024) and casually talked
with some of the maintainers privately in Signal, there was open ridicule
for
developers (myself included) who would open pull requests related to
precursors for possible softforks.

As of just a few months ago, in a private Core signal group Antoine
Poinsot joked (presumably?) that if contributors simply let the recent
CHECKTEMPLATEVERIFY pull request[0] go unmoderated for a
week, the repo could close it on grounds of spam.

[0]: https://github.com/bitcoin/bitcoin/pull/31989

The message verbatim reads:

> Antoine Poinsot: At this point we could even just suspend moderation,
> all mute this thread, come back to the firehose in a week and have
> enough ground to close the PR.

Most attendees from the last CoreDev event should be able to attest to the
faithfulness of this transcript.

This instance, in conjunction with the fact that Poinsot is probably the
most active Core regular (of 2 or 3) actively engaged in covenants
discussions now, is not grounds for optimism for me personally.

This is all to say nothing of the reception that Jeremy Rubin was given
by Core regulars during 2020-2024.

Project internals aside, the plain fact is that despite changes that
have been stable for many years and significant community support, the
Core project does not feel meaningfully closer to merging even precurors
(e.g. regtest-only implementation) to improvements in script
functionality today than it did 3 years ago.

The more senior contributors in Core used to swap emails about
graftroot and APO (circa 2018), but now the major output from the
project seems to concern itself with policy, mempool design, performance
optimization, build systems -- areas that are much more permanently
malleable and (while important) are ultimately less impactful than
consensus changes.

From the standpoint of an informed outsider, it matters not so much
*why* there hasn't been progress, but simply that there hasn't been.

It doesn't really matter where the blame for this lays. What
does matter is addressing it. In my view, clearly broadcasting a
widespread desire among technical stakeholders to see a shift in focus
on the part of the de facto monopoly project seems like a necessary step
for "outsiders" of the project who are concerned about the lack of
progress.


> The usual purpose of an open letter is to generate public pressure
> against the target (otherwise, if you didn't want to generate public
> pressure, you would send a private letter).

I think there's somewhat of an excluded middle here.

While there could be many reasons for this letter, I would guess that
one of the most widely shared among the co-signers is that a public
letter of this sort creates the opportunity for a technical Schelling
point around the proposal. It demonstrates publicly and in one place
that there is considerable support among the technical bitcoin
community, and it creates a single "working draft" that can be built
around.

Many of the signers are builders capable of evaluating the proposals,
but don't necessarily have the time to opine on Delving threads or write
prototypes because they are, well, building things for actual end use.

This letter gives them a substrate to express an informed technical view
without having to construct from whole cloth a way to do that. As we all
know this takes time and is, in the case of bitcoin, fraught with social
peril.

So one of the core functions of the letter is as a single way that
engineers can demonstrate a unified agreement on a plausible
next step, and the letter exists as a public artifact of that consensus.
My own thinking was that such a unified statement would be a valuable
signal for Core contributors, indicating that a lot of the ecosystem is
serious about these changes. This creates a kind of "pressure" perhaps,
but it's the same kind of "pressure" that is created when consumers
demonstrate to a company that there's demand for a product.

The letter serves a few functions, but this optimistic one is
likely the most widely shared.

All that said, one of my personal goals in the letter, not shared by all
co-signers but likely many, is to clearly indicate dissatisfaction with
the observable status quo as of the last few years.

A few people who have suggested "if that's the case, instead of a letter
why not just release an activation client?" I think we all know how that
would have been received. This letter is a less drastic move that both
unambiguously signals dissatisfaction but stops short of acting rashly
and ineffectively.

Warm regards,
James

-- 
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/CAPfvXf%2B0M2PPYOAuWNt9EFWBXGspkZ3xDXKb9Tm7MW8RO3X0aA%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 7536 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [bitcoindev] CTV + CSFS: a letter
  2025-06-10 14:03     ` James O'Beirne
@ 2025-06-10 16:56       ` Sjors Provoost
  0 siblings, 0 replies; 18+ messages in thread
From: Sjors Provoost @ 2025-06-10 16:56 UTC (permalink / raw)
  To: James O'Beirne, Andrew Poelstra
  Cc: David A. Harding, Bitcoin Development Mailing List

Hi James,

From both your and Andrew's mail we can distill a relevant factor: pretty much everyone who is excited about (feature) soft forks is not working on Bitcoin Core.

A few, such as yourself and Jeremy, were in the past but stopped doing so.

Although trying to persuade more people inside the project to review and further develop these proposals is useful - methods and tone tbd - also consider the opposite: convince more people who want these changes to start contributing to Bitcoin Core.

Perhaps there should be grants specifically for people working on this, because as you point out it's quite the uphill battle and rebase hell. That's even true for proposals with broad support inside the project, just ask Antoine Poinsot what experience led him to (temporarily) rage-close BIP54 [0].  

There are of course two downsides to that approach:

1. It takes years to ramp up. The best time to plant a tree is ten years ago. But it's been six years and multiple developers could have been ramped up by now. To be fair, grant budgets were pretty tight until only two years ago.[1]

2. As a new developer becomes familiar with the project, they develop their own list of priorities which may no longer include the soft fork they were originally excited about.

Both can be overcome and if the industry is serious about these proposals they should allocate such resources. This sounds like a cop-out:

> Many of the signers are builders capable of evaluating the proposals,
but don't necessarily have the time to opine on Delving threads or write
prototypes because they are, well, building things for actual end use.

With grants one does have to careful to not create an incentive where the new developer has to achieve soft fork activation at all cost. Too much of that will lead to massive friction and burn them out very quickly, as Mike Hearn, Gavin Andresen and Jeff Garzik can probably attest. I don't how to best encode "don't put too much ego in your proposal, it will be your undoing" in a grant contract.

---

Let me also speak a bit to my own motivation. Vaults appear to be the only feature enabled by the proposal that I personally find important enough to work on.

Bear in mind that my main priority in these six months is getting Stratum v2 readiness in v30 [2], in order to end the situation Poelstra described, and to ensure Bitcoin Core is no longer a bottleneck:

> and yet if you want to mine from your local node on a local miner
today you need to run Sjors' personal fork of the project plus two
other daemons.

Congestion control seems highly premature, Lightning works well enough for me, which makes me less motivated to look into LN-Symmetry - though I'm happy to test a working demo. I don't see an urgent need for alternative L2 systems.

Up until quite recently it seemed to me that the momentum for vaults was in OP_VAULT, which in turn would require OP_CTV.  But a single purpose op code is not ideal, so this project didn't seem to be going anywhere.

I only realised yesterday that the vaults enabled by just CTV are much more ergonomic than I assumed, so I'll (continue to) look into CTV from that perspective [4].

A fully fleshed out shielded CSV demo is another thing that would motivate me to review things. That actually helps with a very serious problem: privacy.

That's why I would prefer  a more powerful soft fork, conditional on people doing a proper analysis on the MeVil issue - instead of the current strategy of avoiding it. I'd get my vaults, and the BitVM folks can have at it, hopefully with less crazy transactions.

Or is CTV + CSFS enough for that? My naive impression is that CCV + CAT + 64 bit arithmetic would be much more useful there, allowing a bridge without BitVM. But maybe it's a good enough start? I suppose Poelstra co-signed for a reason :-)

Conversely, I don't oppose CTV + CSFS; I haven't seen an argument that they're harmful. Since there's little MeVil potential, I could also imagine other developers carefully developing and rolling out these changes. I would just keep an eye on the process.

What I  _would_ oppose is a Python based alternative implementation and activation client like co-signer Paul Sztorc proposed.[3]

Cheers,

Sjors

[0] https://github.com/bitcoin/bips/pull/1800#issuecomment-2836126414
[1] https://opensats.org/blog/opensats-receives-additional-funding-of-dollar10m-from-startsmall
[2] https://github.com/bitcoin/bitcoin/issues/31098  
[3] https://www.youtube.com/watch?v=ImUCulfr1cE
[4] https://delvingbitcoin.org/t/ctv-vault-output-descriptor/1766


-- 
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/0B7CEBEE-FB2B-41CF-9347-B9C1C246B94D%40sprovoost.nl.


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2025-06-10 17:03 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-09 11:40 [bitcoindev] CTV + CSFS: a letter James O'Beirne
2025-06-09 12:51 ` Michael Folkson
2025-06-09 14:41   ` James O'Beirne
2025-06-09 15:56     ` Michael Folkson
2025-06-09 13:51 ` Matt Corallo
2025-06-09 14:43   ` James O'Beirne
2025-06-09 17:51     ` Matt Corallo
2025-06-09 19:27       ` /dev /fd0
2025-06-09 21:12         ` Matt Corallo
2025-06-09 18:55 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
2025-06-10  2:02   ` Paul Sztorc
2025-06-09 23:02 ` Andrew Poelstra
2025-06-10  2:08   ` David A. Harding
2025-06-10 13:23     ` Andrew Poelstra
2025-06-10 14:03     ` James O'Beirne
2025-06-10 16:56       ` Sjors Provoost
2025-06-10  2:28   ` Melvin Carvalho
2025-06-10 13:19     ` Greg Sanders

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox