summaryrefslogtreecommitdiff
path: root/52/dd188170f1f18b73ebc72dfbb30f471bb60757
blob: c5bae31f09f938fb80f41b420f71b73ec442475e (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
377
378
379
380
381
382
Return-Path: <achow101-lists@achow101.com>
Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 9BB81C0001
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 15 Mar 2021 03:14:38 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp3.osuosl.org (Postfix) with ESMTP id 89A2F6F4E3
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 15 Mar 2021 03:14:38 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -2.802
X-Spam-Level: 
X-Spam-Status: No, score=-2.802 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: smtp3.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key) header.d=achow101.com
Received: from smtp3.osuosl.org ([127.0.0.1])
 by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id A4wYJiyeBI8x
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 15 Mar 2021 03:14:35 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.8.0
Received: from mail-41103.protonmail.ch (mail-41103.protonmail.ch
 [185.70.41.103])
 by smtp3.osuosl.org (Postfix) with ESMTPS id 6AF0C6F4D4
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 15 Mar 2021 03:14:35 +0000 (UTC)
Received: from mail-03.mail-europe.com (mail-03.mail-europe.com
 [91.134.188.129])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mail-41103.protonmail.ch (Postfix) with ESMTPS id 4DzM3D3gkpz4xd5v
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 15 Mar 2021 03:14:32 +0000 (UTC)
Authentication-Results: mail-41103.protonmail.ch;
 dkim=pass (2048-bit key) header.d=achow101.com header.i=@achow101.com
 header.b="eR9reIRg"
Date: Mon, 15 Mar 2021 03:14:10 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=achow101.com;
 s=protonmail3; t=1615778060;
 bh=qg79I7DpDtXixASHaywJQCIcN4k0ASSHvAhTcLWgCBU=;
 h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From;
 b=eR9reIRglmm3XaQm11UO/yarwIKNeAh7yHHSiQ6OEraRLCtCm9kTzaTAdB2p8Q4Sq
 1PCTZ6+134dWS88Waq+F7q2MWk9Pr3FfX+IakCdEmO3h2O82aVTNhpsZ52uqvHjVQz
 y0zp6bLspeZ5WMk3Dnvzgs+YkwqEheEWF6wjCRh5vPzLlcZQ8t4L+vLMDbdqjekXl8
 KcCih7Pyk5npix1lelQlj26chV8mltFVrpS8q+Pie9TvKkcEweDKhrOf9f0M2h7YpF
 rkvEQte9QXAmCQ88xeq7ZkgX4iDTOqJdzc49nEMvPEQjYh7W4njG8cwjQGjPXCNslZ
 LtUuc7+wme9Pw==
To: Luke Dashjr <luke@dashjr.org>, bitcoin-dev@lists.linuxfoundation.org
From: Andrew Chow <achow101-lists@achow101.com>
Reply-To: Andrew Chow <achow101-lists@achow101.com>
Message-ID: <f75938e8-6e81-b13b-e085-ca91971ce23f@achow101.com>
In-Reply-To: <202103150251.46902.luke@dashjr.org>
References: <20210306034343.fhwrxmq6gbb2os5m@ganymede>
 <5be46169-8f38-da73-4112-fba2aff6dfcb@achow101.com>
 <202103150251.46902.luke@dashjr.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
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: Mon, 15 Mar 2021 03:14:38 -0000

I don't think we should have a followup deployment start so close to to
timeout of ST. I think it would be better to schedule the followup
around ST, especially since the details around that are fuzzier and
dependent on the results of ST itself.

That being said, I'm not opposed to moving everything one period earlier
or shortening the activation or locked in periods, but I'm not sure if
that is the best course of action right now.

Andrew

On 3/14/21 10:51 PM, Luke Dashjr wrote:
> The last period before timeoutheight here overlaps with the current BIP8(=
True)
> deployment plan. So if this period specifically were to reach 90% signall=
ing,
> nodes would activate Taproot at height 697536, but ST-only nodes would st=
ill
> wait until 709632 instead.
>
> Probably the best solution is to just move this ST window 1 period earlie=
r?
>
> Luke
>
>
> On Saturday 06 March 2021 06:04:22 Andrew Chow via bitcoin-dev wrote:
>> I like this idea.
>>
>> In terms of actual parameters, I propose that we base this Speedy Trial
>> off of BIP 8 with the following parameters:
>> * start height =3D 681408
>> * timeout height =3D 695520
>> * lockinontimeout =3D False
>> * signaling bit =3D 2
>> * threshold =3D 1815/2016 blocks (90%)
>>
>> For the extended lockin period, I propose 14112 blocks, which is 7
>> retarget periods. Thus the earliest activation height will be 697536 and
>> the latest activation height will be 709632.
>>
>> This will give us an approximate start time of May 1st 2021 and an
>> approximate timeout time of August 7th 2021, for a total activation
>> period of just over 3 months. The extended lockin period is the same
>> number of blocks as the activation period so that will also be just over
>> 3 months, giving us the latest activation time of November 13th, 2021.
>> If miners activated as soon as possible, the earliest activation time
>> would be August 21st 2021.
>>
>> Additionally, this timeline assumes a mid-April release of Bitcoin Core
>> 0.21.1 containing these parameters. They could be changed to move up if
>> the expected release date were sooner.
>>
>>
>> Andrew Chow
>>
>> On 3/5/21 10:43 PM, 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 toward=
s
>>>      the 90% threshold required to lock in taproot.[2]
>>>
>>> 2. Stop soon: if the lockin threshold isn't reached within approximatel=
y
>>>      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 adoptio=
n
>>> 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 wh=
en
>>> nodes will begin enforcing taproot's rules.  This gives the userbase ev=
en
>>> more time to upgrade than if we had used the most recently proposed sta=
rt
>>> 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 day=
s
>>> 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 tha=
n
>>> 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 whil=
e
>>> 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 s=
ome
>>>     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 bein=
g
>>>       proposed would be relatively small, resulting in a small patch th=
at
>>>       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 certa=
in
>>>     number of blocks (about 24,000) until activation, although latest l=
ock
>>>     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 durin=
g
>>>     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 fa=
il
>>>     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 losi=
ng
>>>     money).
>>>
>>>     Compared to other activation proposals, I think the only difference=
 is
>>>     Speedy Trial's short timeline.  False signaling is possible with an=
y
>>>     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_s=
ee
>>> _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=3DTaproot_activation_proposals&=
oldi
>>> d=3D68062
>>>
>>> [4] https://github.com/bitcoin/bitcoin/pull/19953
>>>
>>> [5]
>>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/01=
75
>>> 47.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/ed25cb58f605ba583c735f330482df0=
bf
>>> 9348f3a/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