summaryrefslogtreecommitdiff
path: root/16/3bdddca975db38e63c65b2a802c45a31b1023c
blob: 8d54e4d4045726fc38bd427205ee70ff63b2c460 (plain)
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
Return-Path: <roconnor@blockstream.com>
Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 9304DC0016
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu,  4 Mar 2021 18:04:08 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp4.osuosl.org (Postfix) with ESMTP id 739104CA27
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu,  4 Mar 2021 18:04:08 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: 1.076
X-Spam-Level: *
X-Spam-Status: No, score=1.076 tagged_above=-999 required=5
 tests=[DATE_IN_PAST_03_06=1.076, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001]
 autolearn=no autolearn_force=no
Authentication-Results: smtp4.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key)
 header.d=blockstream-com.20150623.gappssmtp.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 y_lwJEFwLrew
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu,  4 Mar 2021 18:04:07 +0000 (UTC)
X-Greylist: delayed 03:19:04 by SQLgrey-1.8.0
Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com
 [IPv6:2607:f8b0:4864:20::f35])
 by smtp4.osuosl.org (Postfix) with ESMTPS id 366D94C1FB
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu,  4 Mar 2021 18:04:07 +0000 (UTC)
Received: by mail-qv1-xf35.google.com with SMTP id bh3so7161489qvb.5
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 04 Mar 2021 10:04:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=blockstream-com.20150623.gappssmtp.com; s=20150623;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=JGgT3y3gdFSu0EqqyvO0M1J67Vr97SqSqLFifuCo0ZQ=;
 b=eh8JAPTeDpUWn6N2In4SI6YB1vEmD8c5EUFtlY5vbfyRKlfWDNzkq9ATvIcbYmTApm
 MacunjzD9a/QsWc1pgxHzEDKgOZUtm2FxFUedvVmOIwchlwtI/O5UeVF1FYXEa1rb4rA
 AqFxP/IFV/LFYwYoEh5opShxH+7bhiKNn7mB9zF3oY2FdLKzYRBNjUxWzpiV5Gyfm4tl
 Eiz97XJfmiU4Whlo6OHl79hUryfKmv+oXDbqFKFBErgmxGLLehepNAvF/CR2NH1NNGYW
 shCY308N4y3OCsFby5yMvhgu0uNO2HZojWsStzMIrvvubFlZ5UGbOVBz5v54Idk7s4SY
 Jbqw==
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=JGgT3y3gdFSu0EqqyvO0M1J67Vr97SqSqLFifuCo0ZQ=;
 b=WFBfEFET95/jX+dSiwn7rSrjFu83mGC/Eq5XlDOW1DviU/kcjrRW9frJbtR/wnAnLU
 AzySdQTczojpTdK3L+CCm8AsoiSNbXeTYWtp5B5X6GEWeu+hj9yKgG3D9Z9i955Umomc
 XhCaKdH6bVhwTl+U4GdTqbG08TekkkLdrVDHlt+zdtZvt1SLrAhD/SY7Oj0yofIvSIId
 7hkc3Hg1qfBs4Qugldqq+Sa2VvbVkEWrqyCRd0v8Ortu0pmNKVjs04o3pD/UBSqyTb5h
 cIboSmFJoN+by8lci5eErYGA7wdsNUlwc2HDW/UZwIvcNNXLcuDdAx/Em1MKxpyQAF3f
 wFdw==
X-Gm-Message-State: AOAM532KKQSHnmBw71h8IPeSgLiklelBmPGFaeg3qtci5WAk5Snc4oyx
 P1IQd32mtRr2NbauziuX1vIJ7Vg5brcfks2HrnrmlfX0Ot/exy1R
X-Google-Smtp-Source: ABdhPJxUr1ncJw95PJL+qERuRa9ImiAgRS32ac52UXziGYzI/Mv6Ko99YBkSkL4C6FGAfjO7yHOrCAYj/k0GwkPEiRI=
X-Received: by 2002:a0c:a5a6:: with SMTP id z35mr4209314qvz.24.1614865644861; 
 Thu, 04 Mar 2021 05:47:24 -0800 (PST)
MIME-Version: 1.0
References: <3286a7eb-9deb-77d6-4527-58e0c5882ae2@riseup.net>
 <CAMZUoKkWmdwi-VH3WUvFfG+5MDK3xhvZUac3eBQbxXX_b_btWw@mail.gmail.com>
 <4947b02e-90fb-9044-4552-767de805ff14@mattcorallo.com>
In-Reply-To: <4947b02e-90fb-9044-4552-767de805ff14@mattcorallo.com>
From: "Russell O'Connor" <roconnor@blockstream.com>
Date: Thu, 4 Mar 2021 08:47:13 -0500
Message-ID: <CAMZUoKmTL+2GMpv8Qr5uOUC2bMgyuzMPw1zjdjuD+XNE23-65A@mail.gmail.com>
To: Matt Corallo <lf-lists@mattcorallo.com>
Content-Type: multipart/alternative; boundary="0000000000001f51de05bcb63521"
Cc: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Making the case for flag day activation of taproot
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: Thu, 04 Mar 2021 18:04:08 -0000

--0000000000001f51de05bcb63521
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Appologies as I've rearranged your comments in my reply.

On Wed, Mar 3, 2021 at 5:14 PM Matt Corallo <lf-lists@mattcorallo.com>
wrote:

>
> On 3/3/21 14:08, Russell O'Connor via bitcoin-dev wrote:
>
> After a normal and successful Core update with LOT=3Dfalse, we will have
> more data showing broad community support for the
> > taproot upgrade in hand.
>
> I think this is one of the strongest arguments against a flag day
> activation, but, as I described in more detail in the
> thread "Straight Flag Day (Height) Taproot Activation", I'm not sure we
> aren't there enough already.
>

I agree with you.  I also think we have plenty of evidence to proceed with
taproot and could proceed with a PR for such a flag day activation.  If
there is support for it to be merged, that would be fantastic.  I think we
should proceed along these lines forthwith.

However, the existence and/or release of a flag day activation code does
not in of itself preclude concurrently developing and/or releasing a BIP8
LOT=3Dfalse deployment.  Activating taproot is "idempotent" after all. We
could even do a Core release with a flag day activation while we continue
to discuss BIP8 LOT=3Dfalse if that gets the ball rolling.  Certainly havin=
g
a flag day activation code merged would take a lot of pressure off further
BIP8 LOT=3Dfalse work.

As Aaron noted on IRC, if the sticking point here is the MUST_SIGNAL state,
then running BIP8 LOT=3Dfalse alongside a flag day activation at timeout ma=
y
be the way to go.  Once a flag day deployment is released, the LOT=3Dtrue
people would have their guaranteed activation and would be less interested
in an alternative client. And without a MUST_SIGNAL state, I believe the
LOT=3Dfalse deployment won't lead any hashpower that is following
standardness rules to create invalid blocks.


> > In the next release, 6 months later or so, Core could then confidently
> deploy a BIP8 LOT=3Dtrue
>
> Could you clarify what an acceptable timeline is, then? Six months from
> release of new consensus rules to activation (in
> the case of a one-year original window) seems incredibly agressive for a
> flag-day activation, let alone one with
> forced-signaling, which would require significantly higher level of
> adoption to avoid network split risk. In such a
> world, we'd probably get Taproot faster with a flag day from day one.
>

Whatever timeline people are in favour of.  I think having a year or more
between the LOT=3Dtrue or flag day more and the anticipated second release
date is fair myself.
That would suggest a 2-year timeout from the start to give plenty of room.

Of course, if we start with a flag day from the start then we can just do 1
year and we don't need a second deployment.

We could also do a "Let=E2=80=99s see what happens" with a short 3 or 4-mon=
th
deployment and still do a follow up activation if that is more agreeable.
That would give a net of about 1.5 years or so because we don't need to
anticipate the second relase date.

I'm good with whatever, and I'm happy to make more concrete suggestions if
that is necessary.  I think there exist acceptable timelines here.


> > client, should it prove to be necessary.  A second Core deployment of
> LOT=3Dtrue would mitigate some of the concerns with
> > LOT=3Dfalse, but still provide a period beforehand to objective actions
> taken by the community in support of taproot.  We
> > don't even have to have agreement today on a second deployment of
> LOT=3Dtrue after 6 months to start the process of a
> > LOT=3Dfalse deployment. The later deployment will almost certainly be
> moot, and we will have 6 months to spend debating
> > the LOT=3Dtrue deployment versus doing a flag day activation or somethi=
ng
> else.
>


> That was precisely the original goal with the LOT=3Dfalse movement - do
> something easy and avoid having to hash out all
> the technical details of a second deployment. Sadly, that's no longer
> tennable as a number of people are publicly
> committed to deploying LOT=3Dtrue software on the network ASAP.
>



First things last:

> Even today, I still think that starting with BIP8 LOT=3Dfalse is, general=
ly
> speaking, considered a reasonably safe
> > activation method in the sense that I think it will be widely considere=
d
> as a "not wholly unacceptable" approach to
> > activation.
>
> How do you propose avoiding divergent consensus rules on the network,
> something which a number of commentors on this
> list have publicly committed to?
>

Firstly, it is an open network.  Anyone can join and run whatever consensus
rules they want.  People have run divergent consensus rules on the network
in the past and it will continue to do so in the future.
It is troublesome when it happens in mass, but it isn't fatal.  We can't
prevent it, and we should continue working to keep the protocol robust in
the face of it.
And we certainly shouldn't be bullied by anyone who comes threatening their
own soft-fork.

Even simply doing nothing may not prevent divergent consensus from
appearing on the network.  Playing conservative isn't playing it safe
because there is nothing more conservative than doing nothing, which isn't
guaranteed to be safe in this sense.

Secondly, for the specific concern of people running BIP8 LOT=3Dtrue client=
s,
we could start with "Let=E2=80=99s see what happens" with a short 3 or 4 mo=
nth
signaling period.  A short enough signaling period is not "hijackable".  We
could add a longer LOCKED_IN period if there are worries about getting
enough nodes upgraded in time for activation.  I see other options as well.

I keep being told that miners are ready and willing to activate, and
taproot will probably activate in two months. All we have to do is get
something out the door that does that.  If taproot activates in two months,
great.  If it fails to activate we will learn so much in so little time.
UASF's will get to say "I told you so" without waiting a year.  Users will
get to take active, meaningful and observable steps to demonstrate their
desire for a taproot upgrade.  Very little time will be wasted, in
particular we don't have to finish debating how best to handle the unlikely
scenario where taproot doesn't activate right away for whatever reason that
is, an scenario that isn't even likely to occur.

I'm still very optimistic.  I see multiple plausible and potentially
acceptable paths towards activation still open and we don't even have to
choose only one.  I can hardly wait to look at the forthcoming PRs for
these possibilities.


> Matt
>

--0000000000001f51de05bcb63521
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div class=3D"gmail_attr">Appol=
ogies as I&#39;ve rearranged your comments in my reply.<br></div><div dir=
=3D"ltr" class=3D"gmail_attr"><br></div><div dir=3D"ltr" class=3D"gmail_att=
r">On Wed, Mar 3, 2021 at 5:14 PM Matt Corallo &lt;<a href=3D"mailto:lf-lis=
ts@mattcorallo.com" target=3D"_blank">lf-lists@mattcorallo.com</a>&gt; wrot=
e:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 3/3/21 14:08, Russell O&#39;Connor via bitcoin-dev wrote:<br></blockquot=
e><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; After a normal and successful Core update with LOT=3Dfalse, we will ha=
ve more data showing broad community support for the <br>
&gt; taproot upgrade in hand.<br>
<br>
I think this is one of the strongest arguments against a flag day activatio=
n, but, as I described in more detail in the <br>
thread &quot;Straight Flag Day (Height) Taproot Activation&quot;, I&#39;m n=
ot sure we aren&#39;t there enough already.<br></blockquote><div><br></div>=
<div>I agree with you.=C2=A0 I also think we have plenty of evidence to pro=
ceed with taproot and could proceed with a PR for such a flag day activatio=
n.=C2=A0 If there is support for it to be merged, that would be fantastic.=
=C2=A0 I think we should proceed along these lines forthwith.<br></div><div=
><br></div><div>However, the existence and/or release of a flag day activat=
ion code does not in of itself preclude concurrently developing and/or rele=
asing a BIP8 LOT=3Dfalse deployment.=C2=A0 Activating taproot is &quot;idem=
potent&quot; after all. We could even do a Core release with a flag day act=
ivation while we continue to discuss BIP8 LOT=3Dfalse if that gets the ball=
 rolling.=C2=A0 Certainly having a flag day activation code merged would ta=
ke a lot of pressure off further BIP8 LOT=3Dfalse work.<br></div><div><br><=
/div><div>As Aaron noted on IRC, if the sticking point here is the MUST_SIG=
NAL state, then running BIP8 LOT=3Dfalse alongside a flag day activation at=
 timeout may be the way to go.=C2=A0 Once a flag day deployment is released=
, the LOT=3Dtrue people would have their guaranteed activation and would be=
 less interested in an alternative client. And without a MUST_SIGNAL state,=
 I believe the LOT=3Dfalse deployment won&#39;t lead any hashpower that is =
following standardness rules to create invalid blocks.<br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; In the next release, 6 months later or so, Core could then confidently=
 deploy a BIP8 LOT=3Dtrue <br>
<br>
Could you clarify what an acceptable timeline is, then? Six months from rel=
ease of new consensus rules to activation (in <br>
the case of a one-year original window) seems incredibly agressive for a fl=
ag-day activation, let alone one with <br>
forced-signaling, which would require significantly higher level of adoptio=
n to avoid network split risk. In such a <br>
world, we&#39;d probably get Taproot faster with a flag day from day one.<b=
r></blockquote><div>=C2=A0</div><div><div>Whatever timeline people are in f=
avour of.=C2=A0 I think having a year or more between the LOT=3Dtrue or fla=
g day more and the anticipated second release date is fair myself.</div><di=
v>That would suggest a 2-year timeout from the start to give plenty of room=
.</div><div><br></div><div>Of course, if we start with a flag day from the =
start then we can just do 1 year and we don&#39;t need a second deployment.=
</div><div><br></div><div>We could also do a &quot;Let=E2=80=99s see what h=
appens&quot; with a short 3 or 4-month deployment and still do a follow up =
activation if that is more agreeable.=C2=A0 That would give a net of about =
1.5 years or so because we don&#39;t need to anticipate the second relase d=
ate.</div><div><br></div><div>I&#39;m good with whatever, and I&#39;m happy=
 to make more concrete suggestions if that is necessary.=C2=A0 I think ther=
e exist acceptable timelines here.<br></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">
</blockquote></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; client, should it prove to be necessary.=C2=A0 A second Core deploymen=
t of LOT=3Dtrue would mitigate some of the concerns with <br>
&gt; LOT=3Dfalse, but still provide a period beforehand to objective action=
s taken by the community in support of taproot.=C2=A0 We <br>
&gt; don&#39;t even have to have agreement today on a second deployment of =
LOT=3Dtrue after 6 months to start the process of a <br>
&gt; LOT=3Dfalse deployment. The later deployment will almost certainly be =
moot, and we will have 6 months to spend debating <br>
&gt; the LOT=3Dtrue deployment versus doing a flag day activation or someth=
ing else.<br></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex">That was precisely the original goal with the LOT=3Dfalse=
 movement - do something easy and avoid having to hash out all <br>
the technical details of a second deployment. Sadly, that&#39;s no longer t=
ennable as a number of people are publicly <br>
committed to deploying LOT=3Dtrue software on the network ASAP.<br></blockq=
uote><div><br></div><div><br></div><div><br></div><div>First things last:<b=
r></div><div><br></div><div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">&gt; Even today, I still think that starting with BIP8 LOT=3Dfalse is, g=
enerally speaking, considered a reasonably safe <br>
&gt; activation method in the sense that I think it will be widely consider=
ed as a &quot;not wholly unacceptable&quot; approach to <br>
&gt; activation.<br>
<br>
How do you propose avoiding divergent consensus rules on the network, somet=
hing which a number of commentors on this <br>
list have publicly committed to?<br></blockquote><div><br></div><div>Firstl=
y, it is an open network.=C2=A0 Anyone can join and run whatever consensus =
rules they want.=C2=A0 People have run divergent consensus rules on the net=
work in the past and it will continue to do so in the future.<br></div><div=
>It is troublesome when it happens in mass, but it isn&#39;t fatal.=C2=A0 W=
e can&#39;t prevent it, and we should continue working to keep the protocol=
 robust in the face of it.</div><div>And we certainly shouldn&#39;t be bull=
ied by anyone who comes threatening their own soft-fork.</div><div><br></di=
v><div>Even simply doing nothing may not prevent divergent consensus from a=
ppearing on the network.=C2=A0 Playing conservative isn&#39;t playing it sa=
fe because there is nothing more conservative than doing nothing, which isn=
&#39;t guaranteed to be safe in this sense.<br></div><div><br></div><div>Se=
condly, for the specific concern of people running BIP8 LOT=3Dtrue clients,=
 we could start with &quot;Let=E2=80=99s see what happens&quot; with a shor=
t 3 or 4 month signaling period.=C2=A0 A short enough signaling period is n=
ot &quot;hijackable&quot;.=C2=A0 We could add a longer LOCKED_IN period if =
there are worries about getting enough nodes upgraded in time for activatio=
n.=C2=A0 I see other options as well.<br></div><div><br></div><div>I keep b=
eing told that miners are ready and willing to activate, and taproot will p=
robably activate in two months. All we have to do is get something out the =
door that does that.=C2=A0 If taproot activates in two months, great.=C2=A0=
 If it fails to activate we will learn so much in so little time.=C2=A0 UAS=
F&#39;s will get to say &quot;I told you so&quot; without waiting a year.=
=C2=A0 Users will get to take active, meaningful and observable steps to de=
monstrate their desire for a taproot upgrade.=C2=A0 Very little time will b=
e wasted, in particular we don&#39;t have to finish debating how best to ha=
ndle the unlikely scenario where taproot doesn&#39;t activate right away fo=
r whatever reason that is, an scenario that isn&#39;t even likely to occur.=
<br></div><div><br></div><div>I&#39;m still very optimistic.=C2=A0 I see mu=
ltiple plausible and potentially acceptable paths towards activation still =
open and we don&#39;t even have to choose only one.=C2=A0 I can hardly wait=
 to look at the forthcoming PRs for these possibilities.<br></div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex">
Matt<br>
</blockquote></div></div>

--0000000000001f51de05bcb63521--