Hi Michael,
I'm sympathetic to the idea of allowing time for the community to absorb, review, analyze, discuss, etc any new substantial change to bitcoin, especially consensus changes. I certainly think that over time the frequency of soft forks should generally go down on average, with ossification at some point being the ideal endpoint (perhaps in the next 10-20 years).
However, many of the messages of opposition/caution seem to imply that analysis of a consensus change can't begin until the last change has been completed. This is quite clearly not the case. And as far as I can tell the CTV spec was functionally completed *before* the taproot spec was (sometime in early 2020).
Jeremy included a nice list of "ticked boxes" that are all indicators of maturity of not only the spec but implementations and testing. I would expect any considered opposition to CTV to at least address that checklist, but you did not.
I think it would be interesting to compare the state of CTV now with the state of taproot when activation. One example is that Taproot had been on Signet for about
1 month before
consensus developed in support of pulling the trigger on a softfork for taproot. CTV has had a signet running for almost twice that long already if not longer. So Michael, what do you think is missing from Jeremy's checklist? Where do you think the checklist fails to meet your ideal bar of acceptance?
Not only that but CTV is a simpler change than taproot. I assume you'd agree that a simpler change should require correspondingly less review/analysis/etc, right? If not, I'd appreciate it if you could comment as to why.
> There are a number of individuals who have stated opposition to attempting to activate a CTV soft fork in the near term
As Jeremy has noted, none of these indicate or suspect any technical issues in CTV. Basically all of them are basically saying "too soon" without much concrete reasons. I believe in consensus weighted by quality-of-logic, and most of the ones in your list do not contain any supported logic at all. Many are borderline ad hominems at Jeremy. So to me, most hold little weight. The ones with some logic included seem to basically be "I'm not involved enough to know or knowledgeable enough to review, and therefore I'm hesitant". Now to be fair, many of the acks listed in Jeremy's also hold little weight to me for the same reasons, with a few exceptions like Bram Cohen's discussion and a Corenell paper. But there's clearly been quite a bit of review on the PR as well. By contrast I've seen literally no opposition to CTV based on the proposal at all.
With regards to the idea that more time is needed to review/discuss. I wonder if any of those opposed to near term speedy trial of CTV plan on doing a deeper review/exploration of it in the next year? If not, then what will delaying do? Are these people simply waiting to see more people in their social bubble becomes familiar and comfortable with CTV?
> I have a better (and safer) way forward which is to continue to build out use cases of CTV, convince the community it is the best tool for the job (whatever use case(s) that is), compare it to other existing covenant enabling proposals
While I think this is a more valid position to take than your other points, I disagree with it. I am also sympathetic to the idea that alternatives should be evaluated and the best one at hand should be chosen. However, it is a simple fact that the "best" solution possible is almost never going to be found or created, even after absurd amounts of time (eg millenia). We live in a time bound world, with time bound human lives. I assume you've heard of the phrase "don't let the perfect become the enemy of the good". I assert that your argument is to do just that: to make the perfect become the enemy of the good.
There is some trade off between time to usage (think time to market) and the quality of the solution. We didn't choose taproot because it was the best possible solution, we chose it because it was a pretty good solution and the solution we had. Yes alternatives have been discussed (at least since 2013), but alternatives to CTV have also been discussed (eg OP_CAT) for probably just as long. There have been a number of random back-of-the-napkin alternative proposals to CTV. None have gained anything resembling support. I proposed one of them myself. And I certainly agree that CTV isn't perfect and doesn't do everything I want it to do. But despite this, I think having CTV is better than not having it. Even if its eventually mostly replaced by some more complex covenant opcode, CTV can provide a LOT of value in a number of ways until that point (which will likely be at least 4 years). And its also likely that a more full featured covenant opcode will take *longer* if CTV doesn't get out there and show the uninformed why covenants are important.
As far as I can tell, its uncontroversial that CTV is the simplest and safest of all the covenant proposals. Do you disagree?
> Taproot had overwhelming community consensus so it had much less chain split risk
IMO this is a completely invalid argument. If a speedy trial is done and 90% miner activation happens, that is quite a high supermajority percentage. If such a thing happens, there is basically 0 chance of any chain split happening directly from activation. The only chain split risk, then, would be from anyone who thinks it would be then worth it to hard fork away from that chain, which you have already said you wouldn't be one of. So I have to say, this additional chain split risk you speak of sounds completely imaginary to me.
~BT
> The client has a Speedy trial release similar to Taproots with parameters proposed to be....
As I've said before I was hoping we'd avoid this exercise. Best case, it wastes the time of people who could be working on all sorts of valuable projects for the ecosystem. Worst case, we take a Russian roulette style gamble with a chain split.
But here's a summary of the basic facts:
The latest Bitcoin Core release candidate (23.0) does not contain any new soft fork code, either CTV code or any new activation code. Running Bitcoin Core 23.0 out the box will not signal for any new soft fork and will not enforce any new soft fork rules (CTV or otherwise). Of course it will continue to enforce Taproot rules as Taproot activated last year.
There are a number of individuals who have stated opposition to attempting to activate a CTV soft fork in the near term:
Most of those individuals haven't logged their opposition on Jeremy's site:
Hence their views haven't been included or discussed in Jeremy's latest blog post.
Chain split risk
I can't predict how many full nodes and miners will run Jeremy's client attempting to activate CTV. One would expect that many will continue to run versions of Bitcoin Core that will not enforce CTV rules and will not activate it. But whether Jeremy's client will be a majority, significant minority, insignificant minority of full nodes and miners would be speculation on my part. (Personally I highly doubt those running Jeremy's client will be a majority which leaves a significant minority and insignificant minority as the most likely options).
Jeremy's client is intending to use Speedy Trial presumably with similar parameters to that used for Taproot. That would mean seeking 90 percent of miners to signal for this CTV soft fork activation attempt.
Assuming 90 percent of miners don't signal for it in one of the Speedy Trial windows then the activation attempt will have failed and it will be back in Jeremy's court whether he tries again with a different activation attempt.
Assuming 90 percent of miners do signal for it (unlikely in my opinion but presumably still a possibility) then the CTV soft fork could activate unless full nodes resist it. This resistance would most likely be in the form of a UASF style client which rejects blocks that apply the CTV rules and/or includes transactions that don't meet the CTV rules post activation. We would now be in chain split territory with two different assets and blockchains like we had with BTC and BCH.
If I oppose this activation attempt and the associated chain split risk what should I do?
It seems Jeremy will continue this activation attempt regardless but it will be useful for others to see clearly that this a contentious soft fork activation attempt and act accordingly. So far only 3 individuals' opposition is registered on his site.
Secondly, if it is looking like 90 percent (or whatever percentage Jeremy uses) of miners are going to signal for a CTV soft fork then you can consider joining a UASF style effort to resist the soft fork activation attempt. I will certainly seek to participate and will continue to inform this list of efforts in this direction.
The saddest thing is that if Jeremy's soft fork activation attempt causes the uncertainty, confusion and disruption I fear it could it will make future soft forks that do have community consensus orders of magnitude harder to pull off. There are a number of soft fork proposals that I'm personally excited about (enabling covenants, eltoo, Simplicity, CISA etc) that long term we might get with a sensible approach to only activating soft forks that have community consensus. But the more uncertainty, confusion and disruption we create over contentious soft forks the more dangerous any soft fork of any form will appear. The primary focus will need to be resisting soft forks that don't have community consensus and ensuring Bitcoin doesn't splinter into a large number of different assets/blockchains with different combinations of soft forks active.
So if you oppose this soft fork activation attempt please voice your opposition, run full node software that doesn't include CTV and CTV activation code such as Bitcoin Core and if/when necessary and available run full node software that proactively rejects application of the CTV rules.
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
------- Original Message -------
On Tuesday, April 19th, 2022 at 18:31, Jeremy Rubin via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:
Devs,
In advance of the CTV meeting today, I wanted to share what my next step is in advocating for CTV, as well as 7 theses for why I believe it to be the right course of action to take at this time.
As always, open to hear any and all feedback,
Jeremy
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev