Thank you for resurfacing and collating this concept.

At this time I don't see major issues with this course of action and think
it represents not only a reasonable compromise between all different
perspectives, but also gives us an opportunity to learn more about less
'slow' yet safe consensus upgrades. In particular, I am very happy to see
the earliest activation concept included.


@JeremyRubin <>

On Fri, Mar 5, 2021 at 7:44 PM David A. Harding via bitcoin-dev <> wrote:

> On the ##taproot-activation IRC channel, Russell O'Connor recently
> proposed a modification of the "Let's see what happens" activation
> proposal.[1] The idea received significant discussion and seemed
> acceptable to several people who could not previously agree on a
> proposal (although this doesn't necessarily make it their first
> choice).  The following is my attempt at a description.
> 1. Start soon: shortly after the release of software containing this
>    proposed activation logic, nodes will begin counting blocks towards
>    the 90% threshold required to lock in taproot.[2]
> 2. Stop soon: if the lockin threshold isn't reached within approximately
>    three months, the activation attempt fails.  There is no mandatory
>    activation and everyone is encouraged to try again using different
>    activation parameters.
> 2. Delayed activation: in the happy occasion where the lockin threshold
>    is reached, taproot is guaranteed to eventually activate---but not
>    until approximately six months after signal tracking started.
> ## Example timeline
> (All dates approximate; see the section below about BIP9 vs BIP8.)
> - T+0: release of one or more full nodes with activation code
> - T+14: signal tracking begins
> - T+28: earliest possible lock in
> - T+104: locked in by this date or need to try a different activation
> process
> - T+194: activation (if lockin occurred)
> ## Analysis
> The goal of Speedy Trial is to allow a taproot activation attempt to
> either quickly succeed or quickly fail---without compromising safety in
> either case.  Details below:
> ### Mitigating the problems of early success
> New rules added in a soft fork need to be enforced by a large part of
> the economy or there's a risk that a long chain of blocks breaking the
> rules will be accepted by some users and rejected by others, causing a
> chain split that can result in large direct losses to transaction
> receivers and potentially even larger indirect losses to holders due to
> reduced confidence in the safety of the Bitcoin system.
> One step developers have taken in the past to ensure widespread adoption
> of new consensus rules is programming in a delay between the time software
> with those rules is expected to be released and when the software starts
> tracking which blocks signal for activation.  For example:
>     Soft fork        | Release    | Start      | Delta
>     -----------------+------------+------------+----------
>     BIP68 (v0.12.1)  | 2016-04-15 | 2016-05-11 | 26 days
>     BIP141 (v0.13.1) | 2016-10-27 | 2016-11-18 | 24 days
>     Sources:,
> Speedy Trial replaces most of that upfront delay with a backend delay.
> No matter how fast taproot's activation threshold is reached by miners,
> there will be six months between the time signal tracking starts and when
> nodes will begin enforcing taproot's rules.  This gives the userbase even
> more time to upgrade than if we had used the most recently proposed start
> date for a BIP8 activation (~July 23rd).[2]
> ### Succeed, or fail fast
> The earlier version of this proposal was documented over 200 days ago[3]
> and taproot's underlying code was merged into Bitcoin Core over 140 days
> ago.[4]  If we had started Speedy Trial at the time taproot
> was merged (which is a bit unrealistic), we would've either be less than
> two months away from having taproot or we would have moved on to the
> next activation attempt over a month ago.
> Instead, we've debated at length and don't appear to be any closer to
> what I think is a widely acceptable solution than when the mailing list
> began discussing post-segwit activation schemes over a year ago.[5]  I
> think Speedy Trial is a way to generate fast progress that will either
> end the debate (for now, if activation is successful) or give us some
> actual data upon which to base future taproot activation proposals.
> Of course, for those who enjoy the debate, discussion can continue while
> waiting for the results of Speedy Trial.
> ### Base activation protocol
> The idea can be implemented on top of either Bitcoin Core's existing
> BIP9 code or its proposed BIP8 patchset.[6]
> - BIP9 uses two time-based[7] parameters, starttime and timeout.  Using
>   these values plus a time-based parameter for the minimum activation
>   delay would give three months for miners to activate taproot, but some
>   of that time near the start or the end might not be usable due to
>   signals only being measured in full retarget periods.  However, the
>   six month time for users to upgrade their node would be not be
>   affected by either slow or fast block production.
>     BIP9 is already part of Bitcoin Core and I think the changes being
>     proposed would be relatively small, resulting in a small patch that
>     could be easy to review.
> - BIP8 uses two height-based parameters, startheight and timeoutheight.
>   Using height values would ensure miners had a certain number of
>   retarget periods (6) to lock in taproot and that there'd be a certain
>   number of blocks (about 24,000) until activation, although latest lock
>   in and expected activation could occur moderately earlier or later
>   than the estimated three and six months.
>     BIP8 would likely be used if Speedy Trial fails, so it could be
>     advantageous to base this proposal on BIP8 so that we gain
>     experience running that code in production.
> For additional discussion about using times versus heights, see today's
> log for ##taproot-activation.[11]
> ### Additional concerns
> - Encourages false signaling: false signaling is when miners signal
>   readiness to enforce rules that their nodes don't actually support.
>   This was partially responsible for a six-block reorg shortly after the
>   final BIP66 activation[8] and was found to still be a problem during
>   the BIP68 lockin period despite BIP9 being designed to avoid it.[9]
>   Because Speedy Trial only gives miners a maximum of three months to
>   signal support for taproot, it may encourage such false signaling.  If
>   taproot locks in as a result of their signaling but most of them fail
>   to upgrade by the activation date several months later, unprepared
>   miners could lose large amounts of money and users could see long
>   reorgs (with unupgraded nodes and SPV lite clients potentially losing
>   money).
>   Compared to other activation proposals, I think the only difference is
>   Speedy Trial's short timeline.  False signaling is possible with any
>   other proposal and the same problems can occur if miners fail to
>   upgrade for any mandatory activation.
> ### Additional advantages
> - No mandatory signaling: at no time are miners required to signal by
>   Speedy Trial.  This includes no mandatory signaling during the
>   locked_in period(s), although such signaling will be encouraged (as it
>   was with BIP9[10]).
> - Party time: to a lesser degree, a benefit mentioned for flag day
>   activation may also apply here: we could get up to six months
>   advanced notice of taproot activation, allowing users, developers, and
>   organizations to prepare software, announcements, and celebrations for
>   that event.
> ## Implementation details and next steps
> Initial discussion about implementation may be found in today's
> ##taproot-activation log.[11] If it appears Speedy Trial may have
> traction, Russell O'Connor has offered to work on a patch against BIP8
> implementing it.
> ## Acknowledgments
> The original idea for a short-duration attempt was discussed in the
> ##taproot-activation IRC channel last July and the revised idea saw
> additional evaluation there this week.  Despite growing frustration,
> discussion has been overwhelmingly constructive, for which all the
> contributors should be commended.  Although this should not in any way
> imply endorsement, I'm grateful for the review and comments on a draft
> of this email by Adam Gibson, Andrew Chow, Anthony Towns, Chris Belcher,
> Jeremy Rubin, Jonas Nick, Luke Dashjr, Michael Folkson, Russell
> O'Connor, and IRC users maybehuman and proofofkeags
> ## Footnotes
> [1]
> [2] A threshold of 1,815/2,016 blocks (90%) in a single retarget period
>     seemed to have near-universal support during the 2021-02-16 IRC
>     meeting.  See:
> [3]
> [4]
> [5]
> [6]
> [7] BIP9's times are based on the median of the past 11 blocks, which
>     usually trails UTC by about 90 minutes but which can trail behind
>     realtime significantly if miners are doing weird things.
> [8]
> [9]
> [10]
> [11]
> _______________________________________________
> bitcoin-dev mailing list
bitcoin-dev mailing list

Reply via email to