summaryrefslogtreecommitdiff
path: root/58/e236fa17ecfd4839cdda6c6e576b53a05d5dee
blob: b5386ef94a8aacf123ac389b028b3a11387019bb (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
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
Return-Path: <david.vorick@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 08AE1B6B
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon, 13 Mar 2017 10:35:42 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wr0-f169.google.com (mail-wr0-f169.google.com
	[209.85.128.169])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0C63DCB
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon, 13 Mar 2017 10:35:40 +0000 (UTC)
Received: by mail-wr0-f169.google.com with SMTP id g10so100604686wrg.2
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon, 13 Mar 2017 03:35:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc; bh=x2dKbX1cRjwrjh4eoiFDTuYMs1A54WbDhlZhkOTXFQY=;
	b=rQI/kGsmSBojJhm/GP724f5+iQeL4xhAYjCV3QZhRyaajrJNIiZTkLDrjszKsCuk5d
	7ysk3RE6V3DlAbj6NXWnF8+JrhE9Cqr2UQvlKajkoj/+lwewkTBdURKP0k7hksFIOiqk
	5FWWTyJTGG50WCjOQvYwXNkqBvGQ8cqX1hsp8XbgZCYyqkIwoRfNyAcwd28DrnkjUkJG
	77KtRLMI4BGxolie20BSbypgsZBaFYlMNNVnuY7+X7iQlAYRDg/VMb3FPTrJ5he2Oduh
	ABatwkHdJ0aAJpyDxSGHKnBYtE8O4Be7mjy8lKVbvZMtE/Xww6Go268jz76eIiMkMRh8
	2efw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc;
	bh=x2dKbX1cRjwrjh4eoiFDTuYMs1A54WbDhlZhkOTXFQY=;
	b=TJznGR9RqTDCMvCn/JUTa1Yahreupc7s89571XGQmyqxkqA0Rwydkc0dUoBgmGBixO
	AvYo1F0nu0/U7etHphbQfxiD9yiqsLNDXD8JnWXo/nyyq627PH+thjQlxrV6IBikd9MO
	WerV1gwanwu+A5hOe9GV7qbRBtfVvRBqvlbGd8me0vhzN9AGSOHd9qA7KgztCyVsBZQM
	6xV5aB7mg4JCQUPOIZ3RQpUuF8dnDgkcWmoGMbjsVmT4yY1unZjfpvoayxCk2jiHHnGR
	14AygSvT0v6jk1fIJmrhRsOKdhVs+Z7t8RnlR6PoYrXfefH/enHLFt1J30TLcWN29eB0
	p6Sw==
X-Gm-Message-State: AMke39mf16fi5RJ/yfw4GlOFwcKjVZL/K6nOilREw4w/5Phj4AoNCO3jaK7BM6JwbiYOGmrxgHa1HEoPNEihpA==
X-Received: by 10.223.161.213 with SMTP id v21mr25295952wrv.144.1489401339548; 
	Mon, 13 Mar 2017 03:35:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.92.193 with HTTP; Mon, 13 Mar 2017 03:35:38 -0700 (PDT)
Received: by 10.28.92.193 with HTTP; Mon, 13 Mar 2017 03:35:38 -0700 (PDT)
In-Reply-To: <CANN4kmc1R8t66Gja_fNKMHTRpo41Rpt7V+OeAW8dLBOtFdAzQw@mail.gmail.com>
References: <OUzy7vvSKdJW7OCcCNCbaVDT-hJcf7Fy3fxEi_z6AmBC3VY0dGZpSBOGxRs-fVE-CfOVToCjjwB-meqejkb4VXYAGu0HHPTzNFhomEhgVpk=@protonmail.ch>
	<CANN4kmc1R8t66Gja_fNKMHTRpo41Rpt7V+OeAW8dLBOtFdAzQw@mail.gmail.com>
From: David Vorick <david.vorick@gmail.com>
Date: Mon, 13 Mar 2017 06:35:38 -0400
Message-ID: <CAFVRnyqAtNLqd=a53yQovjFBzY6YXmc6jpXNYYUKouzdSksBBQ@mail.gmail.com>
To: Nick ODell <nickodell@gmail.com>, 
	Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary=f403045f21eac5a7d9054a9a457a
X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	HTML_OBFUSCATE_05_10, 
	RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: Re: [bitcoin-dev] Flag day activation of segwit
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
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, 13 Mar 2017 10:35:43 -0000

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

That's simply a 51% attack choosing to censor transactions. We could do
that today, ban all transactions that aren't approved by the PBoC.

You respond to that with a PoW hardfork, or by finding some way to prop up
/ subsidize non-censorship miners.

On Mar 13, 2017 5:59 AM, "Nick ODell via bitcoin-dev" <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> The problem with modifying Bitcoin to work around community norms is that
> it's a two-way street. Other people can do it too.
>
> Let me propose a counter-fork, or a "Double UASF." This is also a BIP9
> fork, and it uses, say, bit 2. starttime is 1489449600, and the end time =
is
> 1506812400. It enforces every rule that UASF enforces, plus one additiona=
l
> rule. If 60% of blocks in any retargeting period signal for Double UASF,
> any descendant block that creates or spends a segregated witness output i=
s
> invalid.
>
> Double UASF signaling never coincides with UASF signaling, because the
> signaling periods don't overlap. Full nodes happily validate the chain,
> because Double UASF doesn't break any rules; it just adds new ones. Miner=
s
> who adopt Double UASF don't need to understand segwit, because all segwit
> transactions are banned. Miners don't need to commit to a wtxid structure=
,
> either. Per BIP 141, "If all transactions in a block do not have witness
> data, the commitment is optional." Segwit is activated, but useless. Mine=
rs
> who *do* adopt segwit will lose money, as their blocks are orphaned.
>
> Thanks,
> --Nick
>
> On Sun, Mar 12, 2017 at 9:50 AM, shaolinfry via bitcoin-dev <
> bitcoin-dev@lists.linuxfoundation.org> wrote:
>
>> I recently posted about so called "user activated soft forks" and
>> received a lot of feedback. Much of this was how such methodologies coul=
d
>> be applied to segwit which appears to have fallen under the miner veto
>> category I explained in my original proposal, where there is apparently =
a
>> lot of support for the proposal from the economy, but a few mining pools
>> are vetoing the activation.
>>
>> It turns out Bitcoin already used flag day activation for P2SH[1
>> <https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283=
>],
>> a soft fork which is remarkably similar to segwit. The disadvantage of a
>> UASF for segwit is there is an existing deployment. A UASF would require
>> another wide upgrade cycle (from what I can see, around 80% of existing
>> nodes have upgraded from pre-witness, to NODE_WITNESS capability[2
>> <http://luke.dashjr.org/programs/bitcoin/files/charts/services.html>][3
>> <https://www.reddit.com/r/Bitcoin/comments/5yyqt1/evidence_of_widespread=
_segwit_support_near50_of/>].
>> While absolute node count is meaningless, the uprgrade trend from versio=
n
>> to version seems significant.
>>
>> Also it is quite clear a substantial portion of the ecosystem industry
>> has put in time and resources into segwit adoption, in the form of
>> upgrading wallet code, updating libraries and various other integration
>> work that requires significant time and money. Further more, others have
>> built systems that rely on segwit, having put significant engineering
>> resources into developing systems that require segwit - such as several
>> lightning network system. This is much more significant social proof tha=
n
>> running a node.
>>
>> The delayed activation of segwit is also holding back a raft protocol of
>> innovations such as MAST, Covenants, Schnorr signature schemes and
>> signature aggregation and other script innovations of which, much of the
>> development work is already done.
>>
>> A better option would be to release code that causes the existing segwit
>> deployment to activate without requiring a completely new deployment nor
>> subject to hash power veto. This could be achieved if the economic major=
ity
>> agree to run code that rejects non-signalling segwit blocks. Then from t=
he
>> perspective of all existing witness nodes, miners trigger the BIP9
>> activation. Such a rule could come into effect 4-6 weeks before the BIP9
>> timeout. If a large part of the economic majority publicly say that they
>> will adopt this new client, miners will have to signal bip9 segwit
>> activation in order for their blocks to be valid.
>>
>> I have drafted a BIP proposal so the community may discuss
>> https://gist.github.com/shaolinfry/743157b0b1ee14e1ddc95031f1057e4c (ful=
l
>> text below).
>>
>> References:
>> [1]: https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/
>> main.cpp#L1281-L1283
>> [2]: http://luke.dashjr.org/programs/bitcoin/files/charts/services.html
>> [3]: https://www.reddit.com/r/Bitcoin/comments/5yyqt1/eviden
>> ce_of_widespread_segwit_support_near50_of/
>>
>> Proposal text:
>>
>> <pre>
>>   BIP: bip-segwit-flagday
>>   Title: Flag day activation for segwit deployment
>>   Author: Shaolin Fry <shaolinfry@protonmail.ch>
>>   Comments-Summary: No comments yet.
>>   Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-????
>>   Status: Draft
>>   Type: Informational
>>   Created: 2017-03-12
>>   License: BSD-3-Clause
>>            CC0-1.0
>> </pre>
>>
>> =3D=3DAbstract=3D=3D
>>
>> This document specifies a BIP16 like soft fork flag day activation of th=
e segregated witness BIP9 deployment known as "segwit".
>>
>> =3D=3DDefinitions=3D=3D
>>
>> "existing segwit deployment" refer to the BIP9 "segwit" deployment using=
 bit 1, between November 15th 2016 and November 15th 2017 to activate BIP14=
1, BIP143 and BIP147.
>>
>> =3D=3DMotivation=3D=3D
>>
>> Cause the mandatory activation of the existing segwit deployment before =
the end of midnight November 15th 2017.
>>
>> =3D=3DSpecification=3D=3D
>>
>> All times are specified according to median past time.
>>
>> This BIP will be activate between midnight October 1st 2017 (epoch time =
1538352000) and midnight November 15th 2017 (epoch time 1510704000) if the =
existing segwit deployment is not activated before epoch time 1538352000. T=
his BIP will cease to be active when the existing segwit deployment activat=
es.
>>
>> While this BIP is active, all blocks must set the nVersion header top 3 =
bits to 001 together with bit field (1<<1) (according to the existing segwi=
t deployment). Blocks that do not signal as required will be rejected.
>>
>> =3D=3D=3D Reference implementation =3D=3D=3D
>>
>> <pre>
>> // mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017 in=
clusive
>> if (pindex->GetMedianTimePast() >=3D 1538352000 && pindex->GetMedianTime=
Past() <=3D 1510704000 && !IsWitnessEnabled(pindex->pprev, chainparams.GetC=
onsensus())) {
>>     if (!((pindex->nVersion & VERSIONBITS_TOP_MASK) =3D=3D VERSIONBITS_T=
OP_BITS) && (pindex->nVersion & VersionBitsMask(params, Consensus::DEPLOYME=
NT_SEGWIT)) !=3D 0) {
>>         return state.DoS(2, error("ConnectBlock(): relayed block must si=
gnal for segwit, please upgrade"), REJECT_INVALID, "bad-no-segwit");
>>     }
>> }
>> </pre>
>>
>> =3D=3DBackwards Compatibility=3D=3D
>>
>> This deployment is compatible with the existing "segwit" bit 1 deploymen=
t scheduled between midnight November 15th, 2016 and midnight November 15th=
, 2017.
>>
>> =3D=3DRationale=3D=3D
>>
>> Historically, the P2SH soft fork (BIP16) was activated using a predeterm=
ined flag day where nodes began enforcing the new rules. P2SH was successfu=
lly activated with relatively few issues
>>
>> By orphaning non-signalling blocks during the last month of the BIP9 bit=
 1 "segwit" deployment, this BIP can cause the existing "segwit" deployment=
 to activate without needing to release a new deployment.
>>
>> =3D=3DReferences=3D=3D
>>
>> [https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283=
 P2SH flag day activation].
>>
>> =3D=3DCopyright=3D=3D
>>
>> This document is placed in the public domain.
>>
>>
>>
>>
>> _______________________________________________
>> 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
>
>

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

<div dir=3D"auto">That&#39;s simply a 51% attack choosing to censor transac=
tions. We could do that today, ban all transactions that aren&#39;t approve=
d by the PBoC.<div dir=3D"auto"><br></div><div dir=3D"auto">You respond to =
that with a PoW hardfork, or by finding some way to prop up / subsidize non=
-censorship miners.</div></div><div class=3D"gmail_extra"><br><div class=3D=
"gmail_quote">On Mar 13, 2017 5:59 AM, &quot;Nick ODell via bitcoin-dev&quo=
t; &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev=
@lists.linuxfoundation.org</a>&gt; wrote:<br type=3D"attribution"><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex"><div dir=3D"ltr"><div><div>The problem with modifying=
 Bitcoin to work around community norms is that it&#39;s a two-way street. =
Other people can do it too.</div><div><br></div><div>Let me propose a count=
er-fork, or a &quot;Double UASF.&quot; This is also a BIP9 fork, and it use=
s, say, bit 2. starttime is 1489449600, and the end time is 1506812400. It =
enforces every rule that UASF enforces, plus one additional rule. If 60% of=
 blocks in any retargeting period signal for Double UASF, any descendant bl=
ock that creates or spends a segregated witness output is invalid.</div><di=
v><br></div><div>Double UASF signaling never coincides with UASF signaling,=
 because the signaling periods don&#39;t overlap. Full nodes happily valida=
te the chain, because Double UASF doesn&#39;t break any rules; it just adds=
 new ones. Miners who adopt Double UASF don&#39;t need to understand segwit=
, because all segwit transactions are banned. Miners don&#39;t need to comm=
it to a wtxid structure, either. Per BIP 141, &quot;If all transactions in =
a block do not have witness data, the commitment is optional.&quot; Segwit =
is activated, but useless. Miners who *do* adopt segwit will lose money, as=
 their blocks are orphaned.</div><div><br></div><div>Thanks,</div><div>--Ni=
ck</div></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quot=
e">On Sun, Mar 12, 2017 at 9:50 AM, shaolinfry via bitcoin-dev <span dir=3D=
"ltr">&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=
=3D"_blank">bitcoin-dev@lists.<wbr>linuxfoundation.org</a>&gt;</span> wrote=
:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><div style=3D"color:rgb(85,85,85);font-=
family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px=
;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;f=
ont-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(=
255,255,255)">I recently posted about so called &quot;user activated soft f=
orks&quot; and received a lot of feedback. Much of this was how such method=
ologies could be applied to segwit which appears to have fallen under the m=
iner veto category I explained in my original proposal, where there is appa=
rently a lot of support for the proposal from the economy, but a few mining=
 pools are vetoing the activation.<br></div><div style=3D"color:rgb(85,85,8=
5);font-family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-s=
ize:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:=
normal;font-weight:normal;letter-spacing:normal;text-align:start;text-inden=
t:0px;text-transform:none;white-space:normal;word-spacing:0px;background-co=
lor:rgb(255,255,255)"><br></div><div style=3D"color:rgb(85,85,85);font-fami=
ly:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;fon=
t-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-=
weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-t=
ransform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,=
255,255)">It turns out Bitcoin already used flag day activation for P2SH[<a=
 rel=3D"noreferrer nofollow noopener" title=3D"1" href=3D"https://github.co=
m/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283" target=3D"_blank">1=
</a>], a soft fork which is remarkably similar to segwit. The disadvantage =
of a UASF for segwit is there is an existing deployment. A=C2=A0UASF would =
require another wide upgrade cycle (from what I can see, around 80% of exis=
ting nodes have upgraded from pre-witness, to NODE_WITNESS capability[<a re=
l=3D"noreferrer nofollow noopener" title=3D"2" href=3D"http://luke.dashjr.o=
rg/programs/bitcoin/files/charts/services.html" target=3D"_blank">2</a>][<a=
 rel=3D"noreferrer nofollow noopener" title=3D"3" href=3D"https://www.reddi=
t.com/r/Bitcoin/comments/5yyqt1/evidence_of_widespread_segwit_support_near5=
0_of/" target=3D"_blank">3</a>]. While absolute node count is meaningless, =
the uprgrade trend from version to version seems significant.<br></div><div=
 style=3D"color:rgb(85,85,85);font-family:Arial,&quot;Helvetica Neue&quot;,=
Helvetica,sans-serif;font-size:14px;font-style:normal;font-variant-ligature=
s:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;=
text-align:start;text-indent:0px;text-transform:none;white-space:normal;wor=
d-spacing:0px;background-color:rgb(255,255,255)"><br></div><div style=3D"co=
lor:rgb(85,85,85);font-family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sa=
ns-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;fon=
t-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:s=
tart;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x;background-color:rgb(255,255,255)">Also it is quite clear a substantial p=
ortion of the ecosystem industry has put in time and resources into segwit =
adoption, in the form of upgrading wallet code, updating libraries and vari=
ous other integration work that requires significant time and money. Furthe=
r more, others have built systems that rely on segwit, having put significa=
nt engineering resources into developing systems that require segwit - such=
 as several lightning network system. This is much more significant social =
proof than running a node.<br></div><div style=3D"color:rgb(85,85,85);font-=
family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px=
;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;f=
ont-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(=
255,255,255)"><br></div><div style=3D"color:rgb(85,85,85);font-family:Arial=
,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:=
normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:n=
ormal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform=
:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)=
">The delayed activation of segwit is also holding back a raft protocol of =
innovations such as MAST, Covenants, Schnorr signature schemes and signatur=
e aggregation and other script innovations of which, much of the developmen=
t work is already done.<br></div><div style=3D"color:rgb(85,85,85);font-fam=
ily:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;fo=
nt-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font=
-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-=
transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255=
,255,255)"><br></div><div style=3D"color:rgb(85,85,85);font-family:Arial,&q=
uot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:nor=
mal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:norm=
al;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">A=
 better option would be to release code that causes the existing segwit dep=
loyment to activate without requiring a completely new deployment nor subje=
ct to hash power veto. This could be achieved if the economic majority agre=
e to run code that rejects non-signalling segwit blocks. Then from the pers=
pective of all existing witness nodes, miners trigger the BIP9 activation. =
Such a rule could come into effect 4-6 weeks before the BIP9 timeout. If a =
large part of the economic majority publicly say that they will adopt this =
new client, miners will have to signal bip9 segwit activation in order for =
their blocks to be valid.<br></div><div style=3D"color:rgb(85,85,85);font-f=
amily:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;=
font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;fo=
nt-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;tex=
t-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(2=
55,255,255)"><br></div><div style=3D"color:rgb(85,85,85);font-family:Arial,=
&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:n=
ormal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:no=
rmal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:=
none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)"=
>I have drafted a BIP proposal so the community may discuss<span class=3D"m=
_-4531826650403942488m_-7504212461893498665Apple-converted-space">=C2=A0</s=
pan><a href=3D"https://gist.github.com/shaolinfry/743157b0b1ee14e1ddc95031f=
1057e4c" rel=3D"noreferrer nofollow noopener" target=3D"_blank">https://gis=
t.github.co<wbr>m/shaolinfry/743157b0b1ee14e1d<wbr>dc95031f1057e4c</a>=C2=
=A0(full text below).<br></div><div style=3D"color:rgb(85,85,85);font-famil=
y:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font=
-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-w=
eight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-tr=
ansform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,2=
55,255)"><br></div><div style=3D"color:rgb(85,85,85);font-family:Arial,&quo=
t;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:norma=
l;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:normal=
;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">Ref=
erences:<br></div><div style=3D"color:rgb(85,85,85);font-family:Arial,&quot=
;Helvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:normal=
;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:normal;=
letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">[1]:=
=C2=A0<a href=3D"https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cp=
p#L1281-L1283" rel=3D"noreferrer nofollow noopener" target=3D"_blank">https=
://github.com/bitcoi<wbr>n/bitcoin/blob/v0.6.0/src/<wbr>main.cpp#L1281-L128=
3</a><br></div><div style=3D"color:rgb(85,85,85);font-family:Arial,&quot;He=
lvetica Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:normal;fo=
nt-variant-ligatures:normal;font-variant-caps:normal;font-weight:normal;let=
ter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;whi=
te-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">[2]:=C2=
=A0<a href=3D"http://luke.dashjr.org/programs/bitcoin/files/charts/services=
.html" rel=3D"noreferrer nofollow noopener" target=3D"_blank">http://luke.d=
ashjr.org/pr<wbr>ograms/bitcoin/files/charts/se<wbr>rvices.html</a><br></di=
v><div style=3D"color:rgb(85,85,85);font-family:Arial,&quot;Helvetica Neue&=
quot;,Helvetica,sans-serif;font-size:14px;font-style:normal;font-variant-li=
gatures:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:n=
ormal;text-align:start;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px;background-color:rgb(255,255,255)">[3]:=C2=A0<a href=3D=
"https://www.reddit.com/r/Bitcoin/comments/5yyqt1/evidence_of_widespread_se=
gwit_support_near50_of/" rel=3D"noreferrer nofollow noopener" target=3D"_bl=
ank">https://www.reddit.com/r/<wbr>Bitcoin/comments/5yyqt1/eviden<wbr>ce_of=
_widespread_segwit_suppor<wbr>t_near50_of/</a><br></div><div style=3D"color=
:rgb(85,85,85);font-family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-=
serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-v=
ariant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:star=
t;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;b=
ackground-color:rgb(255,255,255)"><br></div><div style=3D"color:rgb(85,85,8=
5);font-family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font-s=
ize:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:=
normal;font-weight:normal;letter-spacing:normal;text-align:start;text-inden=
t:0px;text-transform:none;white-space:normal;word-spacing:0px;background-co=
lor:rgb(255,255,255)">Proposal text:<br></div><div style=3D"color:rgb(85,85=
,85);font-family:Arial,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;font=
-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-cap=
s:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-ind=
ent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-=
color:rgb(255,255,255)"><br></div><pre style=3D"color:rgb(0,0,0);font-style=
:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:=
normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transfor=
m:none;word-spacing:0px;word-wrap:break-word;white-space:pre-wrap">&lt;pre&=
gt;
  BIP: bip-segwit-flagday
  Title: Flag day activation for segwit deployment
  Author: Shaolin Fry &lt;<a href=3D"mailto:shaolinfry@protonmail.ch" targe=
t=3D"_blank">shaolinfry@protonmail.ch</a>&gt;
  Comments-Summary: No comments yet.
  Comments-URI: <a href=3D"https://github.com/bitcoin/bips/wiki/Comments:BI=
P-" target=3D"_blank">https://github.com/bitcoin/bip<wbr>s/wiki/Comments:BI=
P-</a>????
  Status: Draft
  Type: Informational
  Created: 2017-03-12
  License: BSD-3-Clause
           CC0-1.0
&lt;/pre&gt;

=3D=3DAbstract=3D=3D

This document specifies a BIP16 like soft fork flag day activation of the s=
egregated witness BIP9 deployment known as &quot;segwit&quot;.

=3D=3DDefinitions=3D=3D

&quot;existing segwit deployment&quot; refer to the BIP9 &quot;segwit&quot;=
 deployment using bit 1, between November 15th 2016 and November 15th 2017 =
to activate BIP141, BIP143 and BIP147.

=3D=3DMotivation=3D=3D

Cause the mandatory activation of the existing segwit deployment before the=
 end of midnight November 15th 2017.

=3D=3DSpecification=3D=3D

All times are specified according to median past time.

This BIP will be activate between midnight October 1st 2017 (epoch time 153=
8352000) and midnight November 15th 2017 (epoch time 1510704000) if the exi=
sting segwit deployment is not activated before epoch time 1538352000. This=
 BIP will cease to be active when the existing segwit deployment activates.

While this BIP is active, all blocks must set the nVersion header top 3 bit=
s to 001 together with bit field (1&lt;&lt;1) (according to the existing se=
gwit deployment). Blocks that do not signal as required will be rejected.

=3D=3D=3D Reference implementation =3D=3D=3D

&lt;pre&gt;
// mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017 inclu=
sive
if (pindex-&gt;GetMedianTimePast() &gt;=3D 1538352000 &amp;&amp; pindex-&gt=
;GetMedianTimePast() &lt;=3D 1510704000 &amp;&amp; !IsWitnessEnabled(pindex=
-&gt;ppre<wbr>v, chainparams.GetConsensus())) {
    if (!((pindex-&gt;nVersion &amp; VERSIONBITS_TOP_MASK) =3D=3D VERSIONBI=
TS_TOP_BITS) &amp;&amp; (pindex-&gt;nVersion &amp; VersionBitsMask(params, =
Consensus::DEPLOYMENT_SEGWIT)) !=3D 0) {
        return state.DoS(2, error(&quot;ConnectBlock(): relayed block must =
signal for segwit, please upgrade&quot;), REJECT_INVALID, &quot;bad-no-segw=
it&quot;);
    }
}
&lt;/pre&gt;

=3D=3DBackwards Compatibility=3D=3D

This deployment is compatible with the existing &quot;segwit&quot; bit 1 de=
ployment scheduled between midnight November 15th, 2016 and midnight Novemb=
er 15th, 2017.

=3D=3DRationale=3D=3D

Historically, the P2SH soft fork (BIP16) was activated using a predetermine=
d flag day where nodes began enforcing the new rules. P2SH was successfully=
 activated with relatively few issues

By orphaning non-signalling blocks during the last month of the BIP9 bit 1 =
&quot;segwit&quot; deployment, this BIP can cause the existing &quot;segwit=
&quot; deployment to activate without needing to release a new deployment.

=3D=3DReferences=3D=3D

[<a href=3D"https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L12=
81-L1283" target=3D"_blank">https://github.com/bitcoin/bi<wbr>tcoin/blob/v0=
.6.0/src/main.cpp<wbr>#L1281-L1283</a> P2SH flag day activation].

=3D=3DCopyright=3D=3D

This document is placed in the public domain.
<br></pre><div style=3D"color:rgb(85,85,85);font-family:Arial,&quot;Helveti=
ca Neue&quot;,Helvetica,sans-serif;font-size:14px;font-style:normal;font-va=
riant-ligatures:normal;font-variant-caps:normal;font-weight:normal;letter-s=
pacing:normal;text-align:start;text-indent:0px;text-transform:none;white-sp=
ace:normal;word-spacing:0px;background-color:rgb(255,255,255)"><br></div><d=
iv><br></div><br>______________________________<wbr>_________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
bitcoin-dev@lists.linuxfoundat<wbr>ion.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org=
/mailman/listinfo/bitcoin-d<wbr>ev</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
<wbr>linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org=
/mailman/listinfo/bitcoin-<wbr>dev</a><br>
<br></blockquote></div></div>

--f403045f21eac5a7d9054a9a457a--