Subject: Re: [bitcoin-dev] bitcoin-inquistion: evaluating soft forks on signet

From: Matt Corallo <[email-masked]>
Date: Sat, 17 Sep 2022 04:39:07 -0400

On 9/17/22 2:14 AM, Anthony Towns wrote:
> On Fri, Sep 16, 2022 at 12:46:53PM -0400, Matt Corallo via bitcoin-dev wrote:
>> On 9/16/22 3:15 AM, Anthony Towns via bitcoin-dev wrote:
>>> As we've seen from the attempt at a CHECKTEMPLATEVERIFY activation earlier
>>> in the year [0], the question of "how to successfully get soft fork
>>> ideas from concept to deployment" doesn't really have a good answer today.
>> I strongly disagree with this.
> 
> Okay? "X is good" is obviously just a statement of opinion, so if you
> want to disagree, that's obviously allowed.
> 
> I also kind of feel like that's the *least* interesting paragraph in the
> entire email to talk further about; if you think the current answer's
> already good, then the rest of the mail's just about (hopefully) making
> it better, which would be worthwhile anyway?

No, I think its at least a good chunk of the "statement of problem". Yes, more testing is good, and 
this project is a way to get that. Cool. But implying that lack of test frameworks is in any 
material way part of the lack of movement on forks in Bitcoin I think is very wrong, so its worth 
pointing out, whether the particular project is useful or not is separate.

>> Going back many, many years we've had many
>> discussions about fork process, and the parts people (historically) agreed
>> with tend to be:
>> (1) come up with an idea
>> (2) socialize the idea in the technical community, see if anyone comes up
>> with any major issues or can suggest better ideas which solve the same
>> use-cases in cleaner ways
>> (3) propose the concrete idea with a more well-defined strawman, socialize
>> that, get some kind of rough consensus in the loosely-defined, subjective,
>> "technical community" (ie just ask people and adapt to feedback until you
>> have found some kind of average of the opinions of people you, the
>> fork-champion, think are reasonably well-informed!).
>> (4) okay, admittedly beyond this is a bit less defined, but we can deal with it when we get there.
>> Turns out, the issue today is a lack of champions following steps 1-3, we
>> can debate what the correct answer is to step (4) once we actually have
>> people who want to be champions who are willing to (humbly) push an idea
>> forward towards rough agreement of the world of technical bitcoiners
>> (without which I highly doubt you'd ever see broader-community consensus).
> 
> Personally, I think this is easily refuted by contradiction.
> 
> 1) If we did have a good answer for how to progress a soft-fork, then
> the great consensus cleanup [0] would have made more progress over the
> past 3.5 years

No? Who is the champion for it? I haven't been. No one else is obliged to take up the reins and run 
with it, that's not how open-source works. And no one has emerged who has strong interest in doing 
so, and that's totally fine. It means it hasn't made any progress, but that's an indication that no 
one feels strongly enough about it that its risen to the top of their personal priority list so 
clearly doesn't *need* to make progress.

> Maybe not all of the ideas in it were unambiguously good
> [1], but personally, I'm convinced at least some of them are, and I
> don't think I'm alone in thinking that. Even if the excuse is that its
> original champion wasn't humble enough, there's something wrong with
> the process if there doesn't exist some other potential champion with
> the right balance of humility, confidence, interest and time who could
> have taken it over in that timeframe.

No? Its not up to the community to find a champion for someone who wants a fork to happen. Either 
someone thinks its a good enough idea that they step up, or no one does. If no one does, then so be 
it. If the original proper (me, in this case) thought it was that important then its *their* 
responsibility to be the champion, no one else's.

> 2) Many will argue that CTV has already done steps (1) through (3) above:
> certainly there's been an idea, it's been socialised through giving talks,
> having discussion forums, having research workshops [2], documenting use
> cases use cases; there's been a concrete implementation for years now,
> with a test network that supports the proposed feature, and new tools
> that demonstrate some of the proposed use cases, and while alternative
> approaches have been suggested [3], none of them have even really made
> it to step (2), let alone step (3).

I don't really see how you can make this argument seriously. Honestly, if a soft-fork BIP only has 
one author on the list, then I'm not sure one can argue that step (3) has really been completed, and 
maybe not even step (2).

> So that leaves a few possibilities
> to my mind:

>   * CTV should be in step (4), and its lack of definition is a problem,
>     and trying the "deal with it when we get there" approach is precisely
>     what didn't work back in April.
> 
>   * The evaluation process is too inconclusive: it should either be
>     saying "CTV is not good enough, fix these problems", or "CTV hasn't
>     sufficiently demonstrated its value/cost, work on X next", but it
>     isn't.
> 
>   * Parts (2) to (3) are too hard, and that's preventing alternatives
>     from making progress, which in turn is preventing people from
>     being able to decide whether CTV is the superior approach, or some
>     alternative is.

I think this is most of it, but its not that they're too hard, its that people are *too busy*. There 
seemed to be more positive feedback, for example, to Rusty's proposal, but being the champion for a 
soft-fork is a full-time job for months on end, and last I checked Rusty has a lightning 
implementation to maintain, which tends to be a more-than-full-time job already.

To my knowledge, no one but Jeremy has made any serious attempt at being the champion for a 
soft-fork since Taproot, and before that Segwit (if someone reading this who contributes to Core 
already wants to, and isn't sure how to, there's lots of people who would happily mentor you! I'm 
sure you can figure out who to reach out to!).

Matt