Keags ๐Ÿ› - BIP-119 Profile picture
Apr 22 โ€ข 25 tweets โ€ข 5 min read
In the coming days/weeks there are going to be a bunch of people trying to twist what I say to try and project a world view onto me that I don't actually hold. So here is a thread that states my position on CTV and its activation procedure. I will update if/when my view shifts.
Starting with CTV: CTV is a specific proposal in a class of proposals people are referring to as "covenants". Covenants are a type of condition that restricts the types of outputs that can be included in a tx spending certain inputs. This money has rules on how it can be spent.
Covenants, regardless of the proposal, are opt-in: if you don't want to accept coins with restrictions, do not generate an addr that carries them. This primitive allows for new use cases and the technical community has broad consensus that some form of covenants are desirable.
CTV was the first concrete proposal I was made aware of that implemented covenant like properties in Bitcoin. I have been excited about them since I heard about it the first time at Bitcoin2019. The proposal for CTV had some changes but has been the same since Feb'20
CTV is a very simple change to the Bitcoin consensus rules, far less complexity in it than there was in Taproot. It has also been unchanged since before Taproot was made final. CTV simply allows you to pre-commit to future transactions.
This enables a limited but still significant subset of covenants to be expressed. Due to its simplicity, I and many others believe it to be extremely low risk, and it cracks the door on a number of interesting use cases and some efficiency gains.
CTV has also been seemingly systematically ignored by many of the more well-recognized names in the Bitcoin developer community. Reasons for this are not entirely clear. The opposition to CTV activation haven't really presented an affirmative argument against it.
The main opposition to CTV is one of "can we do better?". In order to answer this we have to define criteria for what "better" would be. Most people agree that:
1. more flexibility is better, to a point
2. orthogonal design is easier to understand and maintain
3. verification that is cheaper is better
4. fewer opportunities for self-sabotage is better

Given this, I feel confident in saying that we definitely are capable of doing better than CTV. However, all the proposals I'm aware of that have a shot at this, are not mature yet.
So do we just wait? What is the problem with using CTV now and then adding other proposals as they become mature? This is where things get muddy. Any changes to the consensus rules do have to be maintained in perpetuity. This maintenance takes work by experts.
It is irrefutably correct that this is a mark against any proposal that is not the "holy grail". However, opinions vary on whether that mark is significant enough to kill or delay support for this proposal. I, for now, do not believe that this is a big enough deal to kill/delay.
To date, there hasn't been a single fundamental, technical opposition to CTV. There is about 5.5BTC riding on this being true, and if you can find a flaw in the proposal/implementation, you have quite a bounty on your hands.
Despite no technical opposition, there has been skepticism about how in-demand this functionality is, which is absolutely a fair question. There is a fair amount of Proof of Concept code out that demonstrates its utility, but it is impossible to get hard data on projected use.
So what remains is the question of "what happens next?". Some people are pushing for imminent activation. Personally, I'd like to see CTV happen sooner than later, but I'm not hell bent on its immediate activation. If someone makes the claim that I am, you should be suspicious.
Those who are pushing for imminent activation are using the procedure that was used for Taproot, namely "Speedy Trial". This is a gentle MASF attempt that will activate if there is immediate and strong miner consensus (if this triggers you, you have some studying to do)
Significant effort has been put into gathering support for CTV. You can see it here: utxos.org/signals/

If you oppose it, especially on fundamental grounds, PLEASE SPEAK UP and find a way to get your opposition onto that site. Same for support.
To recap:
1. The proposal is mature and has been for years
2. Significant grassroots consensus gathering has happened
3. PoC code is published
4. Consensus code has been written
Still, some people believe this is rushed, and while they aren't opposed to CTV, they are opposed to this activation attempt. This is a reasonable view to take, and if you fall in this camp, you can simply not signal, point any hashpower you have away from pools that signal, etc.
If you do support this attempt you can point hashpower at signaling pools and upgrade your node to a release client that supports it. At this time you shouldn't take this action unless you know what you're doing. Either way, the existence of the client permits users to choose.
A criticism that has been raised is that there isn't consensus from the technical community that this should happen. The criteria for "technical community consensus" are presently undefined. As a result, it gives members of the Bitcoin Core dev team a discretionary veto.
Maybe you consider this a good thing because you trust the Bitcoin Core team. This is a fair view to take, they've been delivering quality software for a long time. However, I think most agree that allowing a very small group to veto without a reason is not good for Bitcoin.
So if people say I'm "attacking" Core, let me set the record straight: I am claiming that the lack of process around soft-forks and activation procedures structurally affords them this discretionary veto.
And no matter how well-intentioned, they don't have an incentive to relinquish that power. We find ourselves at a strange impasse. I think it is really important that users have a say here, whether that means a proliferation of alt clients or better processes for Core, idk.
I am NOT claiming malicious intent from Bitcoin Core contributors as a group. And I am also not at this time claiming malicious intent from any individuals who contribute to Core past or present. I am simply pointing out unsettling incentive dynamics.
Fin for now. Updates to my thought process here will follow below. If you have thoughts on the matter, feel free to DM me some feedback (or comment publicly). I have opinions, but I am very much interested in perspectives outside of my own.

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Keags ๐Ÿ› - BIP-119

Keags ๐Ÿ› - BIP-119 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ProofOfKeags

Dec 24, 2021
Three counts: ethereums issue isnโ€™t opcodes in general, just the ones that allow for recursion or looping or anything else that that triggers Halting Problem issues. Secondly Bitcoinโ€™s opcodes are in the witness not the state derivation, which are apparent from tx structure alone
This is important bc witness verification is done entirely via local reasoning. So you could opt into sparse verification where you only verify witness for 1/2 of the txs in a block and if you notice an invalid tx, you publish the txid and peers can discover and reject it.
All sorts of probabilistic compromises can be made in a way where the risks are well understood as long as you can locally reason about correctness. The thing that destroys this for Eth is contract interactivity and the fact that the state is derived rather than proposed + proven
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(