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