--
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/01f49d64-838e-4311-bf79-8c4130b40c8e%40mattcorallo.com.
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.
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
--
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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/8d158e3d-b3cc-44b6-b71b-ab2e733c047c%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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/f8b37a59-0897-40df-a08e-7812c806a716%40mattcorallo.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CADL_X_fxwKLdst9tYQqabUsJgu47xhCbwpmyq97ZB-SLWQC9Xw%40mail.gmail.com.
I think the easy way to do this is to expect both an implementation of the features in question, and an interesting MVP/demo of how those features can be used in practice. You then draw the line between a collection of features that's implemented and has useful demos, versus ones that aren't implemented or don't yet have interesting demos.
........
(b) there has been huge resistance to the idea of implementing demos of useful things on top of proposed features when that's brought up as something people might expect to see prior to feature activation
From my perspective, the CTV discussion has missed important steps, and instead of those steps being taken, advocates have been attempting to use public pressure to force adoption on an "accelerated timeline" pretty much continuously for at least three years now. I've tried to help CTV advocates take the steps I believe they've missed, but it's mostly resulted in silence or insults rather than anything constructive.
Matt's already raised some specific issues in this thread that could be engaged with and resolved
--
You received this message because you are subscribed to a topic in the Google Groups "Bitcoin Development Mailing List" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/bitcoindev/KJF6A55DPJ8/unsubscribe. To unsubscribe from this group and all its topics, send an email to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/aEvC_zT3TEsjxc9o%40erisian.com.au.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CADL_X_faQhCGS78y0Nggm_h%3Dx_cEtshhbrZDDhQ%3DFEgbDXkc-Q%40mail.gmail.com.
Hi Jameson,
CTV does enable vaults, but the user has to (carefully) move coins into the vault themselves. Because CTV commits to the amount, among other things, you can't simply publish a vault address and receive arbitrary amounts there. They'd be stuck, committing to an impossible to satisfy CTV hash.
I'm struggling to figure out what kind of useful 'vault' could be constructed from CTV that isn't equivalent to "presign a transaction that sweeps your funds to an emergency address". Can someone clue me in?
Sure. As I mentioned in my article years ago, one can technically implement covenant functionality today via presigned transactions and ephemeral key material. But there is a vast gap between what is technically possible and what is practical, which is why I believe you can't find any such software in existence. Using presigned transactions means you have to regularly update your vault scheme whenever your UTXOs change. This becomes incredibly problematic if we're talking about a multisignature setup with geographically distributed keys. And ephemeral keys relies upon user being able to securely delete key material, which comes with its own host of problems.
As I see it, a setup where you presign a transaction to sweep funds to an emergency address is only particularly useful for the situation in which key material becomes inaccessible. It doesn't really help you in the case where key material is compromised. Vaults specifically allow for a user to recover from a situation in which a signing threshold of keys have been compromised.
(though I remain dubious as to the utility of that improvement, since if you can secure the rescue/abort key you could use the process for the primary.)
--
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/CAAS2fgSmmDmEhi3y39MgQj%2BpKCbksMoVmV_SgQmqMOqfWY_QLg%40mail.gmail.com.
Do you mean arbitrary output address that is unknown at commitment time? Otherwise, I think the current CTV vault does allow abort/allowing from "stage area" to "hot area" or abort to "rescue area". While general purpose recursive vaults will allow funds back into same "cold area", I think it is possible to also move funds back into same back under the same cold keys with a bounded recursion CTV provides.
Finally, on the usefulness of vaults; based on my own observation of all the hacks (bitcoin and wider crypto), in most cases it is not the key that is stolen but rather the authorization process or UI/UX hacks or something else up the signing stack is compromised. Having reactive security to "undo" feels valuable in this scenario.
On Sat, Jun 14, 2025 at 11:50 PM Sanket Kanjalkar <sanke...@gmail.com> wrote:Do you mean arbitrary output address that is unknown at commitment time? Otherwise, I think the current CTV vault does allow abort/allowing from "stage area" to "hot area" or abort to "rescue area". While general purpose recursive vaults will allow funds back into same "cold area", I think it is possible to also move funds back into same back under the same cold keys with a bounded recursion CTV provides.Moving funds back to the initial key that the attacker already has demonstrated the ability to release from doesn't seem useful to me. -- though that is a thing the presigned example I gave doesn't do.
Finally, on the usefulness of vaults; based on my own observation of all the hacks (bitcoin and wider crypto), in most cases it is not the key that is stolen but rather the authorization process or UI/UX hacks or something else up the signing stack is compromised. Having reactive security to "undo" feels valuable in this scenario.Is there an example of a hack that has been defeated by one? It would be interesting to see the exact workflow.
If the scheme is just released into a 'hot area' and the hot area keys have the power to send the coins anywhere, presumably the attacker will attack the hot area keys and wait for funds to be moved there and instantly sweep once they're there. If the hot area keys are presumed secure, then they can be multisig on the release from 'cold'.
On Sat, Jun 14, 2025 at 8:17 PM Jameson Lopp <jameso...@gmail.com> wrote:Sure. As I mentioned in my article years ago, one can technically implement covenant functionality today via presigned transactions and ephemeral key material. But there is a vast gap between what is technically possible and what is practical, which is why I believe you can't find any such software in existence. Using presigned transactions means you have to regularly update your vault scheme whenever your UTXOs change. This becomes incredibly problematic if we're talking about a multisignature setup with geographically distributed keys. And ephemeral keys relies upon user being able to securely delete key material, which comes with its own host of problems.What's the problem for securely deleting? The operation is atomic-- e.g. software can be written that performs it as a single step and never even hands the users the private key. If you need to attest to a third party the ephemeral key can have 1-N multisigners, which has none of the normal challenges for multisigning since they don't need to retain information or check anything (in fact, it could even be blinded).
From a durability perspective you also have the same issue of maintaining a script, if you're avoiding that by always constructing it programmatically and backing up the scheme, you can more or less do that with the presigned approach: just stick the ephemeral signature in a taproot annex in the transaction paying the coins to the 'vault' script and then immediately all the participants have the required data to deterministically construct the intermediate transaction.The result is essentially identical properties to a 'vault' constructed with CTV and needs no consensus change.As I see it, a setup where you presign a transaction to sweep funds to an emergency address is only particularly useful for the situation in which key material becomes inaccessible. It doesn't really help you in the case where key material is compromised. Vaults specifically allow for a user to recover from a situation in which a signing threshold of keys have been compromised.But that is the only kind of vault you can construct from CTV isn't it? One where the stationary output can go to one of multiple preconstructed outputs, typically one 'immediately' and the other after a delay that starts when a particular transaction is released. AFAICT, the CTV approach does not allow you to stage an output address and then either abort or allow it to continue.
It's the same problem as securely generating and storing keys. In order for presigned transaction vaults to actually be trustworthy then ephemeral key usage needs to occur on a hardened offline device that is highly unlikely to be compromised. I'm not aware of any of the hardware manufacturers offering functionality for generating and signing with ephemeral keys.
It's the same problem as securely generating and storing keys. In order for presigned transaction vaults to actually be trustworthy then ephemeral key usage needs to occur on a hardened offline device that is highly unlikely to be compromised. I'm not aware of any of the hardware manufacturers offering functionality for generating and signing with ephemeral keys.
Hey all
I've been following the discussion and noticed TXHASH is mentioned a lot. As a signer of the letter and author of the TXHASH proposal, I'd like to chime in with some thoughts.
However, I'd like to first express my disappointment with the
amount of drama this letter has caused. It quite literally merely
asks Core contributors to put this proposal on their agenda with
some urgency. No threats, no hard words.
Given that only a handful of Core contributors had thus far
participated in the conversation on the proposal elsewhere, it
seemed like a suitable next step to communicate that we want Core
contributors to provide their position within this conversation.
I strongly stand against an approach involving independent
activation clients and I think the sentiment of this e-mail aligns
with the preference of having Core be involved in any deployment
of protocol upgrades.
On the proposal itself. I have heard some mentions of TXHASH and why we, as the developer community, wouldn't go straight for TXHASH.
The above arguments convinced me that an activation based on CTV and CSFS makes sense today. We have lots of developers waiting to make use of the functionality it enables and we can continue development of further changes meanwhile.
That being said, I'm in no way married to the exact details of
the proposals.
Best
Steven
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.
I'd like to first express my disappointment with the amount of drama this letter has caused.
It quite literally merely asks Core contributors to put this proposal on their agenda with some urgency.
Given that only a handful of Core contributors had thus far participated in the conversation on the proposal elsewhere
it seemed like a suitable next step to communicate that we want Core contributors to provide their position within this conversation
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/035f8b9c-9711-4edb-9d01-bef4a96320e1%40roose.io.
If Bitcoin can be changed through a shouting match and on the basis of misleading pseudo use cases, it would be a major fuck up.
Bitcoin Core cannot, in my opinion, facilitate setting such a precedent.
I trust weallboth agree it is inadvisable to change the Bitcoin Core decision process from making software changes based on objective rough technical consensus toward making software changes based on the subjective intentions of whoever has influence in the space at the moment.
How could you ever think it be a "suitable next step"? Bitcoin Core contributors spend their days maintaining the existing Bitcoin network, where making it boringly stable is success.
In conclusion, i would like to state i understand the frustration of this proposal not making progress and how it led many signatories to get on board with the letter.
Steven,I'd like to first express my disappointment with the amount of drama this letter has caused.Likewise. As i mentioned earlier i think this bundle of capabilities is worth considering for a use case driven soft fork. I felt like, despite the lack of substantive work on the proposal, we were finally going somewhere in the discussion on extending Bitcoin's scripting capabilities.Instead of addressing minor objections to the design of the operations and working on demonstrating (real) use cases, the champion chose the route of political pressure on the Bitcoin Core project. Signatories backed this approach.In changing Bitcoin, the process matters as much as the outcome. If Bitcoin can be changed through a shouting match and on the basis of misleading pseudo use cases, it would be a major fuck up. Likewise if a suboptimal change can be rammed through without addressing objections and reasonable requests from the technical community, by bamboozling industry stakeholders into the false dichotomy "it's either this or ossification".Bitcoin Core cannot, in my opinion, facilitate setting such a precedent. Therefore this effort sets us back a long way in getting a consensus change merged there, and on the broader path of extending Bitcoin's scripting functionalitiesIt quite literally merely asks Core contributors to put this proposal on their agenda with some urgency.This is incorrect and misrepresenting the content of the letter. It specifically asks, i'm quoting "integration of CTV (PR #31989 or similar)". This is asking Core to merge a pull request implementing a contentious consensus change. And so, not by making the case for it with strong technical arguments but by presenting signatures from industry stakeholders. I trust weallboth agree it is inadvisable to change the Bitcoin Core decision process from making software changes based on objective rough technical consensus toward making software changes based on the subjective intentions of whoever has influence in the space at the moment.Given that only a handful of Core contributors had thus far participated in the conversation on the proposal elsewhereAnd pressure to merge code for an obviously controversial consensus change is a great way to make sure not more of them engage, if lurking at how previous CTV discussions went wasn't enough.it seemed like a suitable next step to communicate that we want Core contributors to provide their position within this conversationHow could you ever think it be a "suitable next step"? Bitcoin Core contributors spend their days maintaining the existing Bitcoin network, where making it boringly stable is success. Asking the project to merge a contentious consensus change, disregarding conceptual review, is just laughable. I don't see how piling a sign-on letter on top of this would improve anything.In conclusion, i would like to state i understand the frustration of this proposal not making progress and how it led many signatories to get on board with the letter. I do not ascribe bad intentions to most of them. However the effect of this letter has been, as could have been expected, a major setback in making progress on this proposal (or more broadly this bundle of capabilities). I am not sure how we bounce back from this, but it necessarily involves someone standing up and actually doing the work of addressing technical feedback from the community and demonstrating (real) use cases. The way forward must be by building consensus on the basis of strong objective, technical, arguments. Not with a bunch of people stating interest and nobody acting up and helping the proposal move forward.Best,
Antoine Poinsot
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/035f8b9c-9711-4edb-9d01-bef4a96320e1%40roose.io.
--
You received this message because you are subscribed to a topic in the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/bitcoindev/KJF6A55DPJ8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to bitcoindev+unsubscribe@googlegroups.com.
> What I _would_ oppose is a Python based alternative implementation and activation client like co-signer Paul Sztorc proposed.[3]
I have done no such thing.
The bip300301_enforcer is in rust [0]. Furthermore, it is not an "alternative" to Core -- it must connect to Bitcoin Core, via ZMQ. (But it is an "activation client" -- of a kind.)
(Anyone who glanced at the github for 2 seconds, would see all of these things, by the way.)
(Sjors, you may be confusing my project, with Bitcoin Core, which contains python, including a siget-mining-script.)
CUSF is clever -- because it **frees** Core from the headache and responsibility of soft fork activation (which I know many people here hardly enjoy). That is why it is better -- I can activate my own thing, without bothering you all. And I don't have to "compete" with CTV to be further ahead "in line" (or whatever). So I am free to appraise CTV rationally.
We all know that Core is a meritocracy. And that every decision and sentence uttered by Core is a perfect work of divine truth -- free of all the flaws that have plagued every other organization throughout history. Lucky us! Just think, in other organizations, people sometimes allow their prejudice to color their judgement, occasionally jumping to conclusions that are incorrect -- not here though. Here it's all based on merit, baby. No need for a plan B!
Cheers,
Paul
[0] https://github.com/LayerTwo-Labs/bip300301_enforcer
--
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/f8220f1b-831a-4459-8dee-7fc81f4b666cn%40googlegroups.com.