<oembed><type>rich</type><version>1.0</version><author_name>npub1fgnnmg7f4wzup9hct8nv5pnd9l07wcjqdjku9ax432n4g69v4rgq7xak44</author_name><author_url>https://nostr.ae/npub1fgnnmg7f4wzup9hct8nv5pnd9l07wcjqdjku9ax432n4g69v4rgq7xak44</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2021-03-15&#xA;📝 Original message:I don&#39;t think we should have a followup deployment start so close to to&#xA;timeout of ST. I think it would be better to schedule the followup&#xA;around ST, especially since the details around that are fuzzier and&#xA;dependent on the results of ST itself.&#xA;&#xA;That being said, I&#39;m not opposed to moving everything one period earlier&#xA;or shortening the activation or locked in periods, but I&#39;m not sure if&#xA;that is the best course of action right now.&#xA;&#xA;Andrew&#xA;&#xA;On 3/14/21 10:51 PM, Luke Dashjr wrote:&#xA;&gt; The last period before timeoutheight here overlaps with the current BIP8(True)&#xA;&gt; deployment plan. So if this period specifically were to reach 90% signalling,&#xA;&gt; nodes would activate Taproot at height 697536, but ST-only nodes would still&#xA;&gt; wait until 709632 instead.&#xA;&gt;&#xA;&gt; Probably the best solution is to just move this ST window 1 period earlier?&#xA;&gt;&#xA;&gt; Luke&#xA;&gt;&#xA;&gt;&#xA;&gt; On Saturday 06 March 2021 06:04:22 Andrew Chow via bitcoin-dev wrote:&#xA;&gt;&gt; I like this idea.&#xA;&gt;&gt;&#xA;&gt;&gt; In terms of actual parameters, I propose that we base this Speedy Trial&#xA;&gt;&gt; off of BIP 8 with the following parameters:&#xA;&gt;&gt; * start height = 681408&#xA;&gt;&gt; * timeout height = 695520&#xA;&gt;&gt; * lockinontimeout = False&#xA;&gt;&gt; * signaling bit = 2&#xA;&gt;&gt; * threshold = 1815/2016 blocks (90%)&#xA;&gt;&gt;&#xA;&gt;&gt; For the extended lockin period, I propose 14112 blocks, which is 7&#xA;&gt;&gt; retarget periods. Thus the earliest activation height will be 697536 and&#xA;&gt;&gt; the latest activation height will be 709632.&#xA;&gt;&gt;&#xA;&gt;&gt; This will give us an approximate start time of May 1st 2021 and an&#xA;&gt;&gt; approximate timeout time of August 7th 2021, for a total activation&#xA;&gt;&gt; period of just over 3 months. The extended lockin period is the same&#xA;&gt;&gt; number of blocks as the activation period so that will also be just over&#xA;&gt;&gt; 3 months, giving us the latest activation time of November 13th, 2021.&#xA;&gt;&gt; If miners activated as soon as possible, the earliest activation time&#xA;&gt;&gt; would be August 21st 2021.&#xA;&gt;&gt;&#xA;&gt;&gt; Additionally, this timeline assumes a mid-April release of Bitcoin Core&#xA;&gt;&gt; 0.21.1 containing these parameters. They could be changed to move up if&#xA;&gt;&gt; the expected release date were sooner.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Andrew Chow&#xA;&gt;&gt;&#xA;&gt;&gt; On 3/5/21 10:43 PM, David A. Harding via bitcoin-dev wrote:&#xA;&gt;&gt;&gt; On the ##taproot-activation IRC channel, Russell O&#39;Connor recently&#xA;&gt;&gt;&gt; proposed a modification of the &#34;Let&#39;s see what happens&#34; activation&#xA;&gt;&gt;&gt; proposal.[1] The idea received significant discussion and seemed&#xA;&gt;&gt;&gt; acceptable to several people who could not previously agree on a&#xA;&gt;&gt;&gt; proposal (although this doesn&#39;t necessarily make it their first&#xA;&gt;&gt;&gt; choice).  The following is my attempt at a description.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; 1. Start soon: shortly after the release of software containing this&#xA;&gt;&gt;&gt;      proposed activation logic, nodes will begin counting blocks towards&#xA;&gt;&gt;&gt;      the 90% threshold required to lock in taproot.[2]&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; 2. Stop soon: if the lockin threshold isn&#39;t reached within approximately&#xA;&gt;&gt;&gt;      three months, the activation attempt fails.  There is no mandatory&#xA;&gt;&gt;&gt;      activation and everyone is encouraged to try again using different&#xA;&gt;&gt;&gt;      activation parameters.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; 2. Delayed activation: in the happy occasion where the lockin threshold&#xA;&gt;&gt;&gt;      is reached, taproot is guaranteed to eventually activate---but not&#xA;&gt;&gt;&gt;      until approximately six months after signal tracking started.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ## Example timeline&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; (All dates approximate; see the section below about BIP9 vs BIP8.)&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - T+0: release of one or more full nodes with activation code&#xA;&gt;&gt;&gt; - T+14: signal tracking begins&#xA;&gt;&gt;&gt; - T+28: earliest possible lock in&#xA;&gt;&gt;&gt; - T+104: locked in by this date or need to try a different activation&#xA;&gt;&gt;&gt; process - T+194: activation (if lockin occurred)&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ## Analysis&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; The goal of Speedy Trial is to allow a taproot activation attempt to&#xA;&gt;&gt;&gt; either quickly succeed or quickly fail---without compromising safety in&#xA;&gt;&gt;&gt; either case.  Details below:&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ### Mitigating the problems of early success&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; New rules added in a soft fork need to be enforced by a large part of&#xA;&gt;&gt;&gt; the economy or there&#39;s a risk that a long chain of blocks breaking the&#xA;&gt;&gt;&gt; rules will be accepted by some users and rejected by others, causing a&#xA;&gt;&gt;&gt; chain split that can result in large direct losses to transaction&#xA;&gt;&gt;&gt; receivers and potentially even larger indirect losses to holders due to&#xA;&gt;&gt;&gt; reduced confidence in the safety of the Bitcoin system.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; One step developers have taken in the past to ensure widespread adoption&#xA;&gt;&gt;&gt; of new consensus rules is programming in a delay between the time&#xA;&gt;&gt;&gt; software with those rules is expected to be released and when the&#xA;&gt;&gt;&gt; software starts tracking which blocks signal for activation.  For&#xA;&gt;&gt;&gt; example:&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;       Soft fork        | Release    | Start      | Delta&#xA;&gt;&gt;&gt;       -----------------+------------+------------+----------&#xA;&gt;&gt;&gt;       BIP68 (v0.12.1)  | 2016-04-15 | 2016-05-11 | 26 days&#xA;&gt;&gt;&gt;       BIP141 (v0.13.1) | 2016-10-27 | 2016-11-18 | 24 days&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;       Sources: BitcoinCore.org,&#xA;&gt;&gt;&gt; https://gist.github.com/ajtowns/1c5e3b8bdead01124c04c45f01c817bc&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; Speedy Trial replaces most of that upfront delay with a backend delay.&#xA;&gt;&gt;&gt; No matter how fast taproot&#39;s activation threshold is reached by miners,&#xA;&gt;&gt;&gt; there will be six months between the time signal tracking starts and when&#xA;&gt;&gt;&gt; nodes will begin enforcing taproot&#39;s rules.  This gives the userbase even&#xA;&gt;&gt;&gt; more time to upgrade than if we had used the most recently proposed start&#xA;&gt;&gt;&gt; date for a BIP8 activation (~July 23rd).[2]&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ### Succeed, or fail fast&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; The earlier version of this proposal was documented over 200 days ago[3]&#xA;&gt;&gt;&gt; and taproot&#39;s underlying code was merged into Bitcoin Core over 140 days&#xA;&gt;&gt;&gt; ago.[4]  If we had started Speedy Trial at the time taproot&#xA;&gt;&gt;&gt; was merged (which is a bit unrealistic), we would&#39;ve either be less than&#xA;&gt;&gt;&gt; two months away from having taproot or we would have moved on to the&#xA;&gt;&gt;&gt; next activation attempt over a month ago.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; Instead, we&#39;ve debated at length and don&#39;t appear to be any closer to&#xA;&gt;&gt;&gt; what I think is a widely acceptable solution than when the mailing list&#xA;&gt;&gt;&gt; began discussing post-segwit activation schemes over a year ago.[5]  I&#xA;&gt;&gt;&gt; think Speedy Trial is a way to generate fast progress that will either&#xA;&gt;&gt;&gt; end the debate (for now, if activation is successful) or give us some&#xA;&gt;&gt;&gt; actual data upon which to base future taproot activation proposals.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; Of course, for those who enjoy the debate, discussion can continue while&#xA;&gt;&gt;&gt; waiting for the results of Speedy Trial.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ### Base activation protocol&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; The idea can be implemented on top of either Bitcoin Core&#39;s existing&#xA;&gt;&gt;&gt; BIP9 code or its proposed BIP8 patchset.[6]&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - BIP9 uses two time-based[7] parameters, starttime and timeout.  Using&#xA;&gt;&gt;&gt;     these values plus a time-based parameter for the minimum activation&#xA;&gt;&gt;&gt;     delay would give three months for miners to activate taproot, but some&#xA;&gt;&gt;&gt;     of that time near the start or the end might not be usable due to&#xA;&gt;&gt;&gt;     signals only being measured in full retarget periods.  However, the&#xA;&gt;&gt;&gt;     six month time for users to upgrade their node would be not be&#xA;&gt;&gt;&gt;     affected by either slow or fast block production.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;       BIP9 is already part of Bitcoin Core and I think the changes being&#xA;&gt;&gt;&gt;       proposed would be relatively small, resulting in a small patch that&#xA;&gt;&gt;&gt;       could be easy to review.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - BIP8 uses two height-based parameters, startheight and timeoutheight.&#xA;&gt;&gt;&gt;     Using height values would ensure miners had a certain number of&#xA;&gt;&gt;&gt;     retarget periods (6) to lock in taproot and that there&#39;d be a certain&#xA;&gt;&gt;&gt;     number of blocks (about 24,000) until activation, although latest lock&#xA;&gt;&gt;&gt;     in and expected activation could occur moderately earlier or later&#xA;&gt;&gt;&gt;     than the estimated three and six months.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;       BIP8 would likely be used if Speedy Trial fails, so it could be&#xA;&gt;&gt;&gt;       advantageous to base this proposal on BIP8 so that we gain&#xA;&gt;&gt;&gt;       experience running that code in production.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; For additional discussion about using times versus heights, see today&#39;s&#xA;&gt;&gt;&gt; log for ##taproot-activation.[11]&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ### Additional concerns&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - Encourages false signaling: false signaling is when miners signal&#xA;&gt;&gt;&gt;     readiness to enforce rules that their nodes don&#39;t actually support.&#xA;&gt;&gt;&gt;     This was partially responsible for a six-block reorg shortly after the&#xA;&gt;&gt;&gt;     final BIP66 activation[8] and was found to still be a problem during&#xA;&gt;&gt;&gt;     the BIP68 lockin period despite BIP9 being designed to avoid it.[9]&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;     Because Speedy Trial only gives miners a maximum of three months to&#xA;&gt;&gt;&gt;     signal support for taproot, it may encourage such false signaling.  If&#xA;&gt;&gt;&gt;     taproot locks in as a result of their signaling but most of them fail&#xA;&gt;&gt;&gt;     to upgrade by the activation date several months later, unprepared&#xA;&gt;&gt;&gt;     miners could lose large amounts of money and users could see long&#xA;&gt;&gt;&gt;     reorgs (with unupgraded nodes and SPV lite clients potentially losing&#xA;&gt;&gt;&gt;     money).&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt;     Compared to other activation proposals, I think the only difference is&#xA;&gt;&gt;&gt;     Speedy Trial&#39;s short timeline.  False signaling is possible with any&#xA;&gt;&gt;&gt;     other proposal and the same problems can occur if miners fail to&#xA;&gt;&gt;&gt;     upgrade for any mandatory activation.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ### Additional advantages&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - No mandatory signaling: at no time are miners required to signal by&#xA;&gt;&gt;&gt;     Speedy Trial.  This includes no mandatory signaling during the&#xA;&gt;&gt;&gt;     locked_in period(s), although such signaling will be encouraged (as it&#xA;&gt;&gt;&gt;     was with BIP9[10]).&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; - Party time: to a lesser degree, a benefit mentioned for flag day&#xA;&gt;&gt;&gt;     activation may also apply here: we could get up to six months&#xA;&gt;&gt;&gt;     advanced notice of taproot activation, allowing users, developers, and&#xA;&gt;&gt;&gt;     organizations to prepare software, announcements, and celebrations for&#xA;&gt;&gt;&gt;     that event.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ## Implementation details and next steps&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; Initial discussion about implementation may be found in today&#39;s&#xA;&gt;&gt;&gt; ##taproot-activation log.[11] If it appears Speedy Trial may have&#xA;&gt;&gt;&gt; traction, Russell O&#39;Connor has offered to work on a patch against BIP8&#xA;&gt;&gt;&gt; implementing it.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ## Acknowledgments&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; The original idea for a short-duration attempt was discussed in the&#xA;&gt;&gt;&gt; ##taproot-activation IRC channel last July and the revised idea saw&#xA;&gt;&gt;&gt; additional evaluation there this week.  Despite growing frustration,&#xA;&gt;&gt;&gt; discussion has been overwhelmingly constructive, for which all the&#xA;&gt;&gt;&gt; contributors should be commended.  Although this should not in any way&#xA;&gt;&gt;&gt; imply endorsement, I&#39;m grateful for the review and comments on a draft&#xA;&gt;&gt;&gt; of this email by Adam Gibson, Andrew Chow, Anthony Towns, Chris Belcher,&#xA;&gt;&gt;&gt; Jeremy Rubin, Jonas Nick, Luke Dashjr, Michael Folkson, Russell&#xA;&gt;&gt;&gt; O&#39;Connor, and IRC users maybehuman and proofofkeags&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; ## Footnotes&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [1]&#xA;&gt;&gt;&gt; https://en.bitcoin.it/wiki/Taproot_activation_proposals#Let.E2.80.99s_see&#xA;&gt;&gt;&gt; _what_happens.2C_BIP8.28false.2C_3m.29&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [2] A threshold of 1,815/2,016 blocks (90%) in a single retarget period&#xA;&gt;&gt;&gt;       seemed to have near-universal support during the 2021-02-16 IRC&#xA;&gt;&gt;&gt;       meeting.  See:&#xA;&gt;&gt;&gt; https://en.bitcoin.it/wiki/Taproot_activation_proposal_202102&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [3]&#xA;&gt;&gt;&gt; https://en.bitcoin.it/w/index.php?title=Taproot_activation_proposals&amp;oldi&#xA;&gt;&gt;&gt; d=68062&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [4] https://github.com/bitcoin/bitcoin/pull/19953&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [5]&#xA;&gt;&gt;&gt; https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/0175&#xA;&gt;&gt;&gt; 47.html&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [6] https://github.com/bitcoin/bitcoin/pull/19573&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [7] BIP9&#39;s times are based on the median of the past 11 blocks, which&#xA;&gt;&gt;&gt;       usually trails UTC by about 90 minutes but which can trail behind&#xA;&gt;&gt;&gt;       realtime significantly if miners are doing weird things.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [8] https://en.bitcoin.it/wiki/July_2015_chain_forks&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [9] https://buildingbitcoin.org/bitcoin-core-dev/log-2016-06-21.html#l-32&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [10]&#xA;&gt;&gt;&gt; https://github.com/bitcoin/bitcoin/blob/ed25cb58f605ba583c735f330482df0bf&#xA;&gt;&gt;&gt; 9348f3a/src/test/versionbits_tests.cpp#L337-L339&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&gt; [11] http://gnusha.org/taproot-activation/2021-03-05.log&#xA;&gt;&gt;&gt; _______________________________________________&#xA;&gt;&gt;&gt; bitcoin-dev mailing list&#xA;&gt;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;&gt;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&gt; _______________________________________________&#xA;&gt;&gt; bitcoin-dev mailing list&#xA;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</html></oembed>