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