1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
|
Return-Path: <keagan.mcclelland@gmail.com>
Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])
by lists.linuxfoundation.org (Postfix) with ESMTP id 17C61C0001
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 6 Mar 2021 20:55:54 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
by smtp4.osuosl.org (Postfix) with ESMTP id 05D5246637
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 6 Mar 2021 20:55:54 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -0.199
X-Spam-Level:
X-Spam-Status: No, score=-0.199 tagged_above=-999 required=5
tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001,
RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001]
autolearn=ham autolearn_force=no
Authentication-Results: smtp4.osuosl.org (amavisd-new);
dkim=pass (2048-bit key) header.d=gmail.com
Received: from smtp4.osuosl.org ([127.0.0.1])
by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id gUx4kxKBDMjM
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 6 Mar 2021 20:55:51 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
[IPv6:2a00:1450:4864:20::42c])
by smtp4.osuosl.org (Postfix) with ESMTPS id 0279C465AC
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 6 Mar 2021 20:55:50 +0000 (UTC)
Received: by mail-wr1-x42c.google.com with SMTP id v15so6797027wrx.4
for <bitcoin-dev@lists.linuxfoundation.org>;
Sat, 06 Mar 2021 12:55:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to
:cc; bh=V/wKKTDzvvKLCCE1/q1G7ixpAKvxVmOoUBzn57c4eQ0=;
b=qYwgj3O4rguLwNPPCs07ciL24a9cnq7f7ZzERwuqcV1v30mccpOrc+rzZkHFlL/Td0
lRuo42BNpgu9WV1P9Bymsm+qzLdRhqMcHizPacSTKoZwGcfJiqI4uk0lLYGQcnTr6Fwm
dOeZdfNEZprD7+Y3isl6ar4pxqtqpqgeXCu5nbQl5/eg8sDf15+Ge9XQ9B4ioPmpNbUM
U4Xv+NJUNpE3P0px3h2EjrdYKGxg0ne8YXuwmDgvjPl+eggXam4r5WkAGQjRDmCbf32c
mlhMICcaxMjRZQPyyUAaYeku2QcybBgKxR5g+Xwh225l9a1fqtTYwiQS4sINJ51moz8Z
VlTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to:cc;
bh=V/wKKTDzvvKLCCE1/q1G7ixpAKvxVmOoUBzn57c4eQ0=;
b=td4q3aFWL7ShDNfWziWMfYMMj4Me8P5wdbv2qt0NJa+b+m1gyAbEmpdOOITYTcSGUW
szyCmySSX+MT1CA73YmQKhvgco8f28fvOqt7OujJ9OdmZNLogIzm/TqqUAoEvz0XHy3f
CYPXiHb/fzQeaX1VHf5Ia6XWAA7EXm8Liskp6F2uOWC4yEFAR6ZC8oVmLWDvxfQ039/a
ufDTNmcQuHnUK5hrnCvsfnrLeU2KwrmANtvcOHJGYmjS3M1zSdRbwdY93XNrF246OQBn
UG8x71CfwdFoJkG12AupEOrWIJz3nz/q5kdPxGr22D7TuMh0mmwJAr1t+zVrkzYSDrLV
khxg==
X-Gm-Message-State: AOAM5304HLFSw9o9KDFUVzADRgRdgPgAinSW1xAHUYTsR3ft19LHAEBi
NBf9ePxm9rkXMXdkxPv0gOpDuYeoCV80ihOpeNE=
X-Google-Smtp-Source: ABdhPJzcnZJv3mwJwLThCkHJWuvLyac5Koiq90By5GU83LIiVKn0qVC6Cia+CqmIqCXbKZaZK3oLmpJEXplVEnjDMAU=
X-Received: by 2002:adf:d84d:: with SMTP id k13mr15991989wrl.164.1615064149112;
Sat, 06 Mar 2021 12:55:49 -0800 (PST)
MIME-Version: 1.0
References: <20210306034343.fhwrxmq6gbb2os5m@ganymede>
<2a6955d6-d242-89f5-d622-82889d499cc0@mattcorallo.com>
<CAOv1TngCYTLzQZXNRkwFdAdPsgqNikZZETgx+iUpY+kPcJx6qg@mail.gmail.com>
In-Reply-To: <CAOv1TngCYTLzQZXNRkwFdAdPsgqNikZZETgx+iUpY+kPcJx6qg@mail.gmail.com>
From: Keagan McClelland <keagan.mcclelland@gmail.com>
Date: Sat, 6 Mar 2021 13:55:37 -0700
Message-ID: <CALeFGL0ywp2btE=3MebtaQK-a-5O_ukkqj-TYsnRmRkE2EBS-A@mail.gmail.com>
To: Ariel Luaces <arielluaces@gmail.com>,
Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000e5be4305bce46c33"
X-Mailman-Approved-At: Sat, 06 Mar 2021 23:09:47 +0000
Subject: Re: [bitcoin-dev] Taproot activation proposal "Speedy Trial"
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Sat, 06 Mar 2021 20:55:54 -0000
--000000000000e5be4305bce46c33
Content-Type: text/plain; charset="UTF-8"
The assumption of malice on the part of those of us supporting a UASF is
tragic and frankly ridiculous. Many of us backed off of the effort the
second that this Speedy Trial solution was proposed in order to dislodge
the gridlock on the LOT value. I can't say for certain that 100% of those
working towards a UASF will abandon the effort but I can say for certain
that a good portion of the would be contributors to Bitcoin Activation have
already said that they would switch over to this Speedy Trial if it
actually materialized.
Given that the opposition towards the UASF to begin with was to not assume
malice out of miners I would expect that the same good will be extended to
those who were supporting a LOT=true client in good faith *given that Core
already said they wouldn't ship any activation code at all.*
Keagan
On Sat, Mar 6, 2021 at 1:49 PM Ariel Luaces via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:
> On Sat, Mar 6, 2021 at 10:11 AM Matt Corallo via bitcoin-dev
> <bitcoin-dev@lists.linuxfoundation.org> wrote:
> >
> > I'm really unsure that three months is a short enough time window that
> there wouldn't be a material effort to split the
> > network with divergent consensus rules. Instead, a three month window is
> certainly long enough to organize and make a
> > lot of noise around such an effort, given BIP 148 was organized and
> reached its peak within a similar such window.
> >
> > Worse, because the obvious alternative after a three month activation
> failure is a significant delay prior to
> > activation, the vocal UASF minority may be encouraged to pursue such a
> route to avoid such a delay.
> >
>
> I agree with your concern, a three month window motivates a small
> group to constantly tell people to upgrade as soon as possible. Which
> is mostly fine, but if this group gets near 51% mining support in the
> three months it will embolden them to switch the messaging from
> "upgrade the client" to "run this new client that has the LOT flag
> switched to true" (UASF)
> This marketing group will attempt a UASF regardless of the timelines
> because there is no cost if they fail a UASF and there is great reward
> if they succeed by activating in 3 months. They can run an alt-node,
> scare everyone else of being reorged, pretend they have a majority,
> and say their chain is the safe one. I say there is no cost because
> the leaders of that movement are likely savvy enough to give up the
> effort and move back to running core even after the chain split. The
> ones who get hurt are the followers of the UASF movement that don't
> fully understand the discussion and drink the kool aid.
> A short time window doesn't preclude this group from attempting a UASF.
>
> > One alternative may be to reduce the signaling windows involved and
> start slightly later. Instead of the likelihood of
> > failure growing on the horizon, simply have two signaling windows (maybe
> two weeks, maybe a moth each?). In order to
> > ensure success remains likely, begin them somewhat later after software
> release to give pools and miners a chance to
> > configure their mining software in advance.
> >
> > Matt
>
> The shorter the signaling windows the more unlikely they are to reach
> a mining power supermajority.
> With a short signaling window the supermajority threshold will
> probably be configured to low levels (80% 70% 60%). Which makes the
> activation period dangerous because it forces the other miners (20%
> 30% 40%) to upgrade really suddenly once the threshold is reached.
> Unless the LOCKED_IN period is made really long (1 year) but then we
> have to wait a really long time.
> As long as the mining power running the soft fork is above 50% the
> chain will stay together. Anything above that is just a safety margin
> to prevent orphan blocks.
>
> So why not encode this 50%+ dynamic into the activation logic.
> Spread the deployment window out to a year, make the activation
> threshold 95%, and at the end of the window the feature can activate
> if there is above 51% signaling.
> By definition, the activation will happen if either 95% is reached
> early or if at the end of the deployment window mining support is
> between 51% and 95%. With this setup the chain is guaranteed to stay
> together and no need to rush miners and users.
>
> Cheers
> Ariel Lorenzo-Luaces
>
> >
> > On 3/5/21 22:43, 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: BitcoinCore.org,
> https://gist.github.com/ajtowns/1c5e3b8bdead01124c04c45f01c817bc
> > >
> > > 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]
> https://en.bitcoin.it/wiki/Taproot_activation_proposals#Let.E2.80.99s_see_what_happens.2C_BIP8.28false.2C_3m.29
> > >
> > > [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:
> https://en.bitcoin.it/wiki/Taproot_activation_proposal_202102
> > >
> > > [3]
> https://en.bitcoin.it/w/index.php?title=Taproot_activation_proposals&oldid=68062
> > >
> > > [4] https://github.com/bitcoin/bitcoin/pull/19953
> > >
> > > [5]
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html
> > >
> > > [6] https://github.com/bitcoin/bitcoin/pull/19573
> > >
> > > [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] https://en.bitcoin.it/wiki/July_2015_chain_forks
> > >
> > > [9]
> https://buildingbitcoin.org/bitcoin-core-dev/log-2016-06-21.html#l-32
> > >
> > > [10]
> https://github.com/bitcoin/bitcoin/blob/ed25cb58f605ba583c735f330482df0bf9348f3a/src/test/versionbits_tests.cpp#L337-L339
> > >
> > > [11] http://gnusha.org/taproot-activation/2021-03-05.log
> > >
> > >
> > > _______________________________________________
> > > bitcoin-dev mailing list
> > > bitcoin-dev@lists.linuxfoundation.org
> > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
> > >
> > _______________________________________________
> > bitcoin-dev mailing list
> > bitcoin-dev@lists.linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
--000000000000e5be4305bce46c33
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">The assumption of malice on the part of those of us suppor=
ting a UASF is tragic and frankly ridiculous. Many of us backed off of the =
effort the second that this Speedy Trial solution was proposed in order to =
dislodge the gridlock on the LOT value. I can't say for certain that 10=
0% of those working towards a UASF will abandon the effort but I can say fo=
r certain that a good portion of the would be contributors to Bitcoin Activ=
ation have already said that they would switch over to this Speedy Trial if=
it actually materialized.<div><br></div><div>Given that the opposition tow=
ards the UASF to begin with was to not assume malice out of miners I would =
expect that the same good will be extended to those who were supporting a L=
OT=3Dtrue client in good faith <i>given that Core already said they wouldn&=
#39;t ship any activation code at all.</i></div><div><i><br></i></div><div>=
Keagan</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"=
gmail_attr">On Sat, Mar 6, 2021 at 1:49 PM Ariel Luaces via bitcoin-dev <=
;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists=
.linuxfoundation.org</a>> wrote:<br></div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex">On Sat, Mar 6, 2021 at 10:11 AM Matt Corallo via bitcoi=
n-dev<br>
<<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_bla=
nk">bitcoin-dev@lists.linuxfoundation.org</a>> wrote:<br>
><br>
> I'm really unsure that three months is a short enough time window =
that there wouldn't be a material effort to split the<br>
> network with divergent consensus rules. Instead, a three month window =
is certainly long enough to organize and make a<br>
> lot of noise around such an effort, given BIP 148 was organized and re=
ached its peak within a similar such window.<br>
><br>
> Worse, because the obvious alternative after a three month activation =
failure is a significant delay prior to<br>
> activation, the vocal UASF minority may be encouraged to pursue such a=
route to avoid such a delay.<br>
><br>
<br>
I agree with your concern, a three month window motivates a small<br>
group to constantly tell people to upgrade as soon as possible. Which<br>
is mostly fine, but if this group gets near 51% mining support in the<br>
three months it will embolden them to switch the messaging from<br>
"upgrade the client" to "run this new client that has the LO=
T flag<br>
switched to true" (UASF)<br>
This marketing group will attempt a UASF regardless of the timelines<br>
because there is no cost if they fail a UASF and there is great reward<br>
if they succeed by activating in 3 months. They can run an alt-node,<br>
scare everyone else of being reorged, pretend they have a majority,<br>
and say their chain is the safe one. I say there is no cost because<br>
the leaders of that movement are likely savvy enough to give up the<br>
effort and move back to running core even after the chain split. The<br>
ones who get hurt are the followers of the UASF movement that don't<br>
fully understand the discussion and drink the kool aid.<br>
A short time window doesn't preclude this group from attempting a UASF.=
<br>
<br>
> One alternative may be to reduce the signaling windows involved and st=
art slightly later. Instead of the likelihood of<br>
> failure growing on the horizon, simply have two signaling windows (may=
be two weeks, maybe a moth each?). In order to<br>
> ensure success remains likely, begin them somewhat later after softwar=
e release to give pools and miners a chance to<br>
> configure their mining software in advance.<br>
><br>
> Matt<br>
<br>
The shorter the signaling windows the more unlikely they are to reach<br>
a mining power supermajority.<br>
With a short signaling window the supermajority threshold will<br>
probably be configured to low levels (80% 70% 60%). Which makes the<br>
activation period dangerous because it forces the other miners (20%<br>
30% 40%) to upgrade really suddenly once the threshold is reached.<br>
Unless the LOCKED_IN period is made really long (1 year) but then we<br>
have to wait a really long time.<br>
As long as the mining power running the soft fork is above 50% the<br>
chain will stay together. Anything above that is just a safety margin<br>
to prevent orphan blocks.<br>
<br>
So why not encode this 50%+ dynamic into the activation logic.<br>
Spread the deployment window out to a year, make the activation<br>
threshold 95%, and at the end of the window the feature can activate<br>
if there is above 51% signaling.<br>
By definition, the activation will happen if either 95% is reached<br>
early or if at the end of the deployment window mining support is<br>
between 51% and 95%. With this setup the chain is guaranteed to stay<br>
together and no need to rush miners and users.<br>
<br>
Cheers<br>
Ariel Lorenzo-Luaces<br>
<br>
><br>
> On 3/5/21 22:43, David A. Harding via bitcoin-dev wrote:<br>
> > On the ##taproot-activation IRC channel, Russell O'Connor rec=
ently<br>
> > proposed a modification of the "Let's see what happens&q=
uot; activation<br>
> > proposal.[1] The idea received significant discussion and seemed<=
br>
> > acceptable to several people who could not previously agree on a<=
br>
> > proposal (although this doesn't necessarily make it their fir=
st<br>
> > choice).=C2=A0 The following is my attempt at a description.<br>
> ><br>
> > 1. Start soon: shortly after the release of software containing t=
his<br>
> >=C2=A0 =C2=A0 =C2=A0proposed activation logic, nodes will begin co=
unting blocks towards<br>
> >=C2=A0 =C2=A0 =C2=A0the 90% threshold required to lock in taproot.=
[2]<br>
> ><br>
> > 2. Stop soon: if the lockin threshold isn't reached within ap=
proximately<br>
> >=C2=A0 =C2=A0 =C2=A0three months, the activation attempt fails.=C2=
=A0 There is no mandatory<br>
> >=C2=A0 =C2=A0 =C2=A0activation and everyone is encouraged to try a=
gain using different<br>
> >=C2=A0 =C2=A0 =C2=A0activation parameters.<br>
> ><br>
> > 2. Delayed activation: in the happy occasion where the lockin thr=
eshold<br>
> >=C2=A0 =C2=A0 =C2=A0is reached, taproot is guaranteed to eventuall=
y activate---but not<br>
> >=C2=A0 =C2=A0 =C2=A0until approximately six months after signal tr=
acking started.<br>
> ><br>
> > ## Example timeline<br>
> ><br>
> > (All dates approximate; see the section below about BIP9 vs BIP8.=
)<br>
> ><br>
> > - T+0: release of one or more full nodes with activation code<br>
> > - T+14: signal tracking begins<br>
> > - T+28: earliest possible lock in<br>
> > - T+104: locked in by this date or need to try a different activa=
tion process<br>
> > - T+194: activation (if lockin occurred)<br>
> ><br>
> > ## Analysis<br>
> ><br>
> > The goal of Speedy Trial is to allow a taproot activation attempt=
to<br>
> > either quickly succeed or quickly fail---without compromising saf=
ety in<br>
> > either case.=C2=A0 Details below:<br>
> ><br>
> > ### Mitigating the problems of early success<br>
> ><br>
> > New rules added in a soft fork need to be enforced by a large par=
t of<br>
> > the economy or there's a risk that a long chain of blocks bre=
aking the<br>
> > rules will be accepted by some users and rejected by others, caus=
ing a<br>
> > chain split that can result in large direct losses to transaction=
<br>
> > receivers and potentially even larger indirect losses to holders =
due to<br>
> > reduced confidence in the safety of the Bitcoin system.<br>
> ><br>
> > One step developers have taken in the past to ensure widespread a=
doption<br>
> > of new consensus rules is programming in a delay between the time=
software<br>
> > with those rules is expected to be released and when the software=
starts<br>
> > tracking which blocks signal for activation.=C2=A0 For example:<b=
r>
> ><br>
> >=C2=A0 =C2=A0 =C2=A0 Soft fork=C2=A0 =C2=A0 =C2=A0 =C2=A0 | Releas=
e=C2=A0 =C2=A0 | Start=C2=A0 =C2=A0 =C2=A0 | Delta<br>
> >=C2=A0 =C2=A0 =C2=A0 -----------------+------------+------------+-=
---------<br>
> >=C2=A0 =C2=A0 =C2=A0 BIP68 (v0.12.1)=C2=A0 | 2016-04-15 | 2016-05-=
11 | 26 days<br>
> >=C2=A0 =C2=A0 =C2=A0 BIP141 (v0.13.1) | 2016-10-27 | 2016-11-18 | =
24 days<br>
> ><br>
> >=C2=A0 =C2=A0 =C2=A0 Sources: BitcoinCore.org, <a href=3D"https://=
gist.github.com/ajtowns/1c5e3b8bdead01124c04c45f01c817bc" rel=3D"noreferrer=
" target=3D"_blank">https://gist.github.com/ajtowns/1c5e3b8bdead01124c04c45=
f01c817bc</a><br>
> ><br>
> > Speedy Trial replaces most of that upfront delay with a backend d=
elay.<br>
> > No matter how fast taproot's activation threshold is reached =
by miners,<br>
> > there will be six months between the time signal tracking starts =
and when<br>
> > nodes will begin enforcing taproot's rules.=C2=A0 This gives =
the userbase even<br>
> > more time to upgrade than if we had used the most recently propos=
ed start<br>
> > date for a BIP8 activation (~July 23rd).[2]<br>
> ><br>
> > ### Succeed, or fail fast<br>
> ><br>
> > The earlier version of this proposal was documented over 200 days=
ago[3]<br>
> > and taproot's underlying code was merged into Bitcoin Core ov=
er 140 days<br>
> > ago.[4]=C2=A0 If we had started Speedy Trial at the time taproot<=
br>
> > was merged (which is a bit unrealistic), we would've either b=
e less than<br>
> > two months away from having taproot or we would have moved on to =
the<br>
> > next activation attempt over a month ago.<br>
> ><br>
> > Instead, we've debated at length and don't appear to be a=
ny closer to<br>
> > what I think is a widely acceptable solution than when the mailin=
g list<br>
> > began discussing post-segwit activation schemes over a year ago.[=
5]=C2=A0 I<br>
> > think Speedy Trial is a way to generate fast progress that will e=
ither<br>
> > end the debate (for now, if activation is successful) or give us =
some<br>
> > actual data upon which to base future taproot activation proposal=
s.<br>
> ><br>
> > Of course, for those who enjoy the debate, discussion can continu=
e while<br>
> > waiting for the results of Speedy Trial.<br>
> ><br>
> > ### Base activation protocol<br>
> ><br>
> > The idea can be implemented on top of either Bitcoin Core's e=
xisting<br>
> > BIP9 code or its proposed BIP8 patchset.[6]<br>
> ><br>
> > - BIP9 uses two time-based[7] parameters, starttime and timeout.=
=C2=A0 Using<br>
> >=C2=A0 =C2=A0 these values plus a time-based parameter for the min=
imum activation<br>
> >=C2=A0 =C2=A0 delay would give three months for miners to activate=
taproot, but some<br>
> >=C2=A0 =C2=A0 of that time near the start or the end might not be =
usable due to<br>
> >=C2=A0 =C2=A0 signals only being measured in full retarget periods=
.=C2=A0 However, the<br>
> >=C2=A0 =C2=A0 six month time for users to upgrade their node would=
be not be<br>
> >=C2=A0 =C2=A0 affected by either slow or fast block production.<br=
>
> ><br>
> >=C2=A0 =C2=A0 =C2=A0 BIP9 is already part of Bitcoin Core and I th=
ink the changes being<br>
> >=C2=A0 =C2=A0 =C2=A0 proposed would be relatively small, resulting=
in a small patch that<br>
> >=C2=A0 =C2=A0 =C2=A0 could be easy to review.<br>
> ><br>
> > - BIP8 uses two height-based parameters, startheight and timeouth=
eight.<br>
> >=C2=A0 =C2=A0 Using height values would ensure miners had a certai=
n number of<br>
> >=C2=A0 =C2=A0 retarget periods (6) to lock in taproot and that the=
re'd be a certain<br>
> >=C2=A0 =C2=A0 number of blocks (about 24,000) until activation, al=
though latest lock<br>
> >=C2=A0 =C2=A0 in and expected activation could occur moderately ea=
rlier or later<br>
> >=C2=A0 =C2=A0 than the estimated three and six months.<br>
> ><br>
> >=C2=A0 =C2=A0 =C2=A0 BIP8 would likely be used if Speedy Trial fai=
ls, so it could be<br>
> >=C2=A0 =C2=A0 =C2=A0 advantageous to base this proposal on BIP8 so=
that we gain<br>
> >=C2=A0 =C2=A0 =C2=A0 experience running that code in production.<b=
r>
> ><br>
> > For additional discussion about using times versus heights, see t=
oday's<br>
> > log for ##taproot-activation.[11]<br>
> ><br>
> > ### Additional concerns<br>
> ><br>
> > - Encourages false signaling: false signaling is when miners sign=
al<br>
> >=C2=A0 =C2=A0 readiness to enforce rules that their nodes don'=
t actually support.<br>
> >=C2=A0 =C2=A0 This was partially responsible for a six-block reorg=
shortly after the<br>
> >=C2=A0 =C2=A0 final BIP66 activation[8] and was found to still be =
a problem during<br>
> >=C2=A0 =C2=A0 the BIP68 lockin period despite BIP9 being designed =
to avoid it.[9]<br>
> ><br>
> >=C2=A0 =C2=A0 Because Speedy Trial only gives miners a maximum of =
three months to<br>
> >=C2=A0 =C2=A0 signal support for taproot, it may encourage such fa=
lse signaling.=C2=A0 If<br>
> >=C2=A0 =C2=A0 taproot locks in as a result of their signaling but =
most of them fail<br>
> >=C2=A0 =C2=A0 to upgrade by the activation date several months lat=
er, unprepared<br>
> >=C2=A0 =C2=A0 miners could lose large amounts of money and users c=
ould see long<br>
> >=C2=A0 =C2=A0 reorgs (with unupgraded nodes and SPV lite clients p=
otentially losing<br>
> >=C2=A0 =C2=A0 money).<br>
> ><br>
> >=C2=A0 =C2=A0 Compared to other activation proposals, I think the =
only difference is<br>
> >=C2=A0 =C2=A0 Speedy Trial's short timeline.=C2=A0 False signa=
ling is possible with any<br>
> >=C2=A0 =C2=A0 other proposal and the same problems can occur if mi=
ners fail to<br>
> >=C2=A0 =C2=A0 upgrade for any mandatory activation.<br>
> ><br>
> > ### Additional advantages<br>
> ><br>
> > - No mandatory signaling: at no time are miners required to signa=
l by<br>
> >=C2=A0 =C2=A0 Speedy Trial.=C2=A0 This includes no mandatory signa=
ling during the<br>
> >=C2=A0 =C2=A0 locked_in period(s), although such signaling will be=
encouraged (as it<br>
> >=C2=A0 =C2=A0 was with BIP9[10]).<br>
> ><br>
> > - Party time: to a lesser degree, a benefit mentioned for flag da=
y<br>
> >=C2=A0 =C2=A0 activation may also apply here: we could get up to s=
ix months<br>
> >=C2=A0 =C2=A0 advanced notice of taproot activation, allowing user=
s, developers, and<br>
> >=C2=A0 =C2=A0 organizations to prepare software, announcements, an=
d celebrations for<br>
> >=C2=A0 =C2=A0 that event.<br>
> ><br>
> > ## Implementation details and next steps<br>
> ><br>
> > Initial discussion about implementation may be found in today'=
;s<br>
> > ##taproot-activation log.[11] If it appears Speedy Trial may have=
<br>
> > traction, Russell O'Connor has offered to work on a patch aga=
inst BIP8<br>
> > implementing it.<br>
> ><br>
> > ## Acknowledgments<br>
> ><br>
> > The original idea for a short-duration attempt was discussed in t=
he<br>
> > ##taproot-activation IRC channel last July and the revised idea s=
aw<br>
> > additional evaluation there this week.=C2=A0 Despite growing frus=
tration,<br>
> > discussion has been overwhelmingly constructive, for which all th=
e<br>
> > contributors should be commended.=C2=A0 Although this should not =
in any way<br>
> > imply endorsement, I'm grateful for the review and comments o=
n a draft<br>
> > of this email by Adam Gibson, Andrew Chow, Anthony Towns, Chris B=
elcher,<br>
> > Jeremy Rubin, Jonas Nick, Luke Dashjr, Michael Folkson, Russell<b=
r>
> > O'Connor, and IRC users maybehuman and proofofkeags<br>
> ><br>
> > ## Footnotes<br>
> ><br>
> > [1] <a href=3D"https://en.bitcoin.it/wiki/Taproot_activation_prop=
osals#Let.E2.80.99s_see_what_happens.2C_BIP8.28false.2C_3m.29" rel=3D"noref=
errer" target=3D"_blank">https://en.bitcoin.it/wiki/Taproot_activation_prop=
osals#Let.E2.80.99s_see_what_happens.2C_BIP8.28false.2C_3m.29</a><br>
> ><br>
> > [2] A threshold of 1,815/2,016 blocks (90%) in a single retarget =
period<br>
> >=C2=A0 =C2=A0 =C2=A0 seemed to have near-universal support during =
the 2021-02-16 IRC<br>
> >=C2=A0 =C2=A0 =C2=A0 meeting.=C2=A0 See: <a href=3D"https://en.bit=
coin.it/wiki/Taproot_activation_proposal_202102" rel=3D"noreferrer" target=
=3D"_blank">https://en.bitcoin.it/wiki/Taproot_activation_proposal_202102</=
a><br>
> ><br>
> > [3] <a href=3D"https://en.bitcoin.it/w/index.php?title=3DTaproot_=
activation_proposals&oldid=3D68062" rel=3D"noreferrer" target=3D"_blank=
">https://en.bitcoin.it/w/index.php?title=3DTaproot_activation_proposals&am=
p;oldid=3D68062</a><br>
> ><br>
> > [4] <a href=3D"https://github.com/bitcoin/bitcoin/pull/19953" rel=
=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/bitcoin/pull/1=
9953</a><br>
> ><br>
> > [5] <a href=3D"https://lists.linuxfoundation.org/pipermail/bitcoi=
n-dev/2020-January/017547.html" rel=3D"noreferrer" target=3D"_blank">https:=
//lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html<=
/a><br>
> ><br>
> > [6] <a href=3D"https://github.com/bitcoin/bitcoin/pull/19573" rel=
=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/bitcoin/pull/1=
9573</a><br>
> ><br>
> > [7] BIP9's times are based on the median of the past 11 block=
s, which<br>
> >=C2=A0 =C2=A0 =C2=A0 usually trails UTC by about 90 minutes but wh=
ich can trail behind<br>
> >=C2=A0 =C2=A0 =C2=A0 realtime significantly if miners are doing we=
ird things.<br>
> ><br>
> > [8] <a href=3D"https://en.bitcoin.it/wiki/July_2015_chain_forks" =
rel=3D"noreferrer" target=3D"_blank">https://en.bitcoin.it/wiki/July_2015_c=
hain_forks</a><br>
> ><br>
> > [9] <a href=3D"https://buildingbitcoin.org/bitcoin-core-dev/log-2=
016-06-21.html#l-32" rel=3D"noreferrer" target=3D"_blank">https://buildingb=
itcoin.org/bitcoin-core-dev/log-2016-06-21.html#l-32</a><br>
> ><br>
> > [10] <a href=3D"https://github.com/bitcoin/bitcoin/blob/ed25cb58f=
605ba583c735f330482df0bf9348f3a/src/test/versionbits_tests.cpp#L337-L339" r=
el=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/bitcoin/blob=
/ed25cb58f605ba583c735f330482df0bf9348f3a/src/test/versionbits_tests.cpp#L3=
37-L339</a><br>
> ><br>
> > [11] <a href=3D"http://gnusha.org/taproot-activation/2021-03-05.l=
og" rel=3D"noreferrer" target=3D"_blank">http://gnusha.org/taproot-activati=
on/2021-03-05.log</a><br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > bitcoin-dev mailing list<br>
> > <a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=
=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</a><br>
> > <a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bit=
coin-dev" rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundatio=
n.org/mailman/listinfo/bitcoin-dev</a><br>
> ><br>
> _______________________________________________<br>
> bitcoin-dev mailing list<br>
> <a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_bl=
ank">bitcoin-dev@lists.linuxfoundation.org</a><br>
> <a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-=
dev" rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org=
/mailman/listinfo/bitcoin-dev</a><br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
man/listinfo/bitcoin-dev</a><br>
</blockquote></div>
--000000000000e5be4305bce46c33--
|