summaryrefslogtreecommitdiff
path: root/c7/f3e43391d1e829694324325b0df5724441b3a6
blob: 54893fc1c9e2d44e03350b65c8b1477d8b80e89d (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
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
Return-Path: <earonesty@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 164919C
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri,  2 Jun 2017 20:04:20 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-qt0-f170.google.com (mail-qt0-f170.google.com
	[209.85.216.170])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id DB7DE18F
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri,  2 Jun 2017 20:04:17 +0000 (UTC)
Received: by mail-qt0-f170.google.com with SMTP id f55so67274127qta.3
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 02 Jun 2017 13:04:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=mime-version:sender:in-reply-to:references:from:date:message-id
	:subject:to; bh=hWq5q8P8segB56bKIjcTezaHxhFFUlx+ckV61P39DoM=;
	b=u4USoDuhuh3ViHOm5T1IHCPSZXZE7iCQ/7x9D71tGqDJ+nFkANj2zRjFKrbgqlltH7
	KBCm+96slyii8KU/+ELsLrpQu+BwSGQtHC8H3Aiq8yWuKS77VmtWxOaWK2LJGzd2b5NZ
	ZrYNsewzoYjR/OPC2GGuzxIsVMruIwTprT02xH35EmF95OXXbIR5OFGC2h01/PezsKdj
	7Y7+EYKL0OjnFwEOcsbEVDI/r5bocY5sMih3GxABMrV36KrKJyP4+mTa/s+pLhZl05Jn
	GPcjDQHSpQ6zpcdSw6L1Vz+PgqnhXLzhaS5vb4hor7eK2DvYycmchLnP+tPSl3a+cvGo
	oAeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
	:date:message-id:subject:to;
	bh=hWq5q8P8segB56bKIjcTezaHxhFFUlx+ckV61P39DoM=;
	b=cON/18fSE3RTQhGNfIAiZJiePaicIxRYWeydoGDLuL7JNsRfW/mGVte/ugAPXz8cM2
	tFyQ8du+SZ3Xa72Po1+7J9mEkdSTbctAzD3LYXgD+pbZ/D2pCC8WsLS3/CVtcWCC+tb1
	Ro/VDCeW1+h5Cdy6wxwVKKrBrFOH0qG0dlP7SbKklalIP/Ds+/VjdmXXu9drJQrdcIfZ
	Lnn3VplbMoSSsZourmJqU1dkAc48xpMNrzeOv8pcspsyFfVsthFXx46HGQuL9S0MqCo1
	0C8qkiMqUh5gFEL6UVAIg2Fwyi6FwZfa1eqnN6JvnVq0ZBHbgu3zaqOEe9M6A52qAr4B
	D8rA==
X-Gm-Message-State: AODbwcAKelpIX0Gkkxx4xn3xHR0SRBzLvJN1qWNhhgvgKmhcDYYW2yDF
	uZzfhWRoH+w2HwX6LRzlJxOusaRUIQ==
X-Received: by 10.237.53.205 with SMTP id d13mr9901520qte.46.1496433856968;
	Fri, 02 Jun 2017 13:04:16 -0700 (PDT)
MIME-Version: 1.0
Sender: earonesty@gmail.com
Received: by 10.237.48.102 with HTTP; Fri, 2 Jun 2017 13:04:16 -0700 (PDT)
In-Reply-To: <CAAWeQ5ebqmmGcYHtoizKa6FXYyvyPSBM09kpzeGOEqJj4=ERZg@mail.gmail.com>
References: <CAKzdR-oN6tGvGSb04_awCf=Jsf3wgKJN5xUhCr8G2D2W9YgJww@mail.gmail.com>
	<1CF1FD5D-8D29-4783-823F-B3F588D5C5CE@mattcorallo.com>
	<CAKzdR-o0_CK1RPDKSV869Tk5JCo9KOmEoAyXYRAOphu00K8KkQ@mail.gmail.com>
	<CAAWeQ5ebqmmGcYHtoizKa6FXYyvyPSBM09kpzeGOEqJj4=ERZg@mail.gmail.com>
From: Erik Aronesty <erik@q32.com>
Date: Fri, 2 Jun 2017 16:04:16 -0400
X-Google-Sender-Auth: mCTGBCPnQxyCMx4Zl85V5XY73Fw
Message-ID: <CAJowKgLA94HirOrEJ7MMtxdLVYFNXV1aB5j=W+bGyckubV1xhw@mail.gmail.com>
To: Samson Mow <samson.mow@gmail.com>, 
	Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="001a11c10d14797e840550ffa8a4"
X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE,
	RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Fri, 02 Jun 2017 21:26:41 +0000
Subject: Re: [bitcoin-dev] Segwit2Mb - combined soft/hard fork - Request For
	Comments
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: Fri, 02 Jun 2017 20:04:20 -0000

--001a11c10d14797e840550ffa8a4
Content-Type: text/plain; charset="UTF-8"

From me to you ...this proposal doesn't lock in anything.   We could just
merge it with some small pushback - allow segwit to activate in Aug, then
"upgrade" the hard fork to be "spoonet in 18 months" instead.

On Fri, Mar 31, 2017 at 11:03 PM, Samson Mow via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> A compromise for the sake of compromise doesn't merit technical
> discussions. There are no benefits to be gained from a 2MB hard-fork at
> this time and it would impose an unnecessary cost to the ecosystem for
> testing and implementation.
>
> On Fri, Mar 31, 2017 at 3:13 PM, Sergio Demian Lerner via bitcoin-dev <
> bitcoin-dev@lists.linuxfoundation.org> wrote:
>
>>
>>
>> On Fri, Mar 31, 2017 at 6:22 PM, Matt Corallo <lf-lists@mattcorallo.com>
>> wrote:
>>
>>> Hey Sergio,
>>>
>>> You appear to have ignored the last two years of Bitcoin hardfork
>>> research and understanding, recycling instead BIP 102 from 2015. There
>>> are many proposals which have pushed the state of hard fork research
>>> much further since then, and you may wish to read some of the posts on
>>> this mailing list listed at https://bitcoinhardforkresearch.github.io/
>>> and make further edits based on what you learn.
>>
>>
>> I've read every proposal that was published in the last two years and the
>> choice for NOT implementing any of the super cool research you cite is
>> intentional.
>>
>> We're in a deadlock and it seems we can't go forward adding more
>> functionality to segwit without the community approval (which include
>> miners). This is obvious to me.Then we have to go back.
>>
>> If this last resort solution is merged, we could go back to discuss
>> improvements with the
>>
>> Your goal of "avoid
>>> technical changes" appears to not have any basis outside of perceived
>>> compromise for compromise sake, only making such a hardfork riskier
>>> instead.
>>>
>>> You're are totally correct. It's a compromise for the compromise sake. I
>> couldn't have expressed it more clearly. However the only "riskier" element
>> is the hard forking date. We can move the date forward.
>>
>>
>>> At a minimum, in terms of pure technical changes, you should probably
>>> consider (probably among others):
>>>
>> a) Utilizing the "hard fork signaling bit" in the nVersion of the block.
>>>
>>
>> This I could consider, as it requires probably a single line of code.
>> Which BIP specifies this?
>>
>>
>>> b) Either limiting non-SegWit transactions in some way to fix the n**2
>>> sighash and FindAndDelete runtime and memory usage issues or fix them by
>>> utilizing the new sighash type which many wallets and projects have
>>> already implemented for SegWit in the spending of non-SegWit outputs.
>>>
>>
>> The Seghash problem has already been addressed by limiting the maximum
>> size of a transaction to 1 Mb.
>> The FindAndDelete problem has already been solved by the Core Developers,
>> so we don't have to worry about it anymore.
>>
>>
>>> c) Your really should have replay protection in any HF.
>>
>>
>> We could add a simple protection, although if we reach community
>> consensus and 95% of hashing power, does we really need to? Can the old
>> chain still be alive?
>> If more people ask for replay protection, I will merge Spoonet scheme or
>> develop the minimum possible replay protection (a simple signaling bit in
>> transaction version)
>>
>>
>>> d) You may wish to consider the possibility of tweaking the witness
>>> discount and possibly discounting other parts of the input - SegWit went
>>> a long ways towards making removal of elements from the UTXO set cheaper
>>> than adding them, but didn't quite get there, you should probably finish
>>> that job. This also provides additional tuneable parameters to allow you
>>> to increase the block size while not having a blowup in the worst-case
>>> block size.
>>>
>>
>> That is an interesting economic change and would be out of the scope of
>> segwit2mb.
>>
>>
>>> e) Additional commitments at the top of the merkle root - both for
>>> SegWit transactions and as additional space for merged mining and other
>>> commitments which we may wish to add in the future, this should likely
>>> be implemented an "additional header" ala Johnson Lau's Spoonnet
>>> proposal.
>>>
>>> That is an interesting technical improvement that is out of the scope of
>> segwit2mb.
>> We can keep discussing spoonet while we merge segwit2mb, as spoonnet
>> includes most of technical innovations.
>>
>>
>>> Additionally, I think your parameters here pose very significant risk to
>>> the Bitcoin ecosystem broadly.
>>>
>>> a) Activating a hard fork with less than 18/24 months (and even then...)
>>> from a fully-audited and supported release of full node software to
>>> activation date poses significant risks to many large software projects
>>> and users. I've repeatedly received feedback from various folks that a
>>> year or more is likely required in any hard fork to limit this risk, and
>>> limited pushback on that given the large increase which SegWit provides
>>> itself buying a ton of time.
>>>
>>> The feedback I received is slightly different from your feedback. Many
>> company CTOs have expressed that one year for a Bitcoin hard-fork was
>> period they could schedule a secure upgrade.
>>
>>
>>
>>> b) Having a significant discontinuity in block size increase only serves
>>> to confuse and mislead users and businesses, forcing them to rapidly
>>> adapt to a Bitcoin which changed overnight both by hardforking, and by
>>> fees changing suddenly. Instead, having the hard fork activate technical
>>> changes, and then slowly increasing the block size over the following
>>> several years keeps things nice and continuous and also keeps us from
>>> having to revisit ye old blocksize debate again six months after
>>> activation.
>>>
>>> This is something worth considering. There is the old Pieter BIP103
>> proposal has good parameters (17.7% per year).
>>
>> c) You should likely consider the effect of the many technological
>>> innovations coming down the pipe in the coming months. Technologies like
>>> Lightning, TumbleBit, and even your own RootStock could significantly
>>> reduce fee pressure as transactions move to much faster and more
>>> featureful systems.
>>>
>>> RSK sidechain team would have to take very tough decisions if Bitcoin
>> splits, as RSK platform cannot be pegged to two different cryptocurrencies.
>> We could launch two platforms, but RSK value proposition is "supporting the
>> advance of Bitcoin, the cryptocurrecy with highest network effect". You
>> understand that if Bitcoin splits Bitcoin BTC/BTU separately may cease to
>> be the cryptocurrencies with higher volume/market cap/network effect.
>>
>> Therefore all RSK people that I talked too would prefer to avoid a split
>> at all cost, reather that to be the winners of the scaling war.
>>
>>
>>
>>> On March 31, 2017 5:09:18 PM EDT, Sergio Demian Lerner via bitcoin-dev <
>>> bitcoin-dev@lists.linuxfoundation.org> wrote:
>>> >Hi everyone,
>>> >
>>> >Segwit2Mb is the project to merge into Bitcoin a minimal patch that
>>> >aims to
>>> >untangle the current conflict between different political positions
>>> >regarding segwit activation vs. an increase of the on-chain blockchain
>>> >space through a standard block size increase. It is not a new solution,
>>> >but
>>> >it should be seen more as a least common denominator.
>>> >
>>> >Segwit2Mb combines segwit as it is today in Bitcoin 0.14+ with a 2MB
>>> >block
>>> >size hard-fork activated ONLY if segwit activates (95% of miners
>>> >signaling), but at a fixed future date.
>>> >
>>> >The sole objective of this proposal is to re-unite the Bitcoin
>>> >community
>>> >and avoid a cryptocurrency split. Segwit2Mb does not aim to be best
>>> >possible technical solution to solve Bitcoin technical limitations.
>>> >However, this proposal does not imply a compromise to the future
>>> >scalability or decentralization of Bitcoin, as a small increase in
>>> >block
>>> >size has been proven by several core and non-core developers not to
>>> >affect
>>> >Bitcoin value propositions.
>>> >
>>> >In the worst case, a 2X block size increase has much lower economic
>>> >impact
>>> >than the last bitcoin halving (<10%), which succeeded without problem.
>>> >
>>> >On the other side, Segwit2Mb primary goal is to be minimalistic: in
>>> >this
>>> >patch some choices have been made to reduce the number of lines
>>> >modified in
>>> >the current Bitcoin Core state (master branch), instead of implementing
>>> >the
>>> >most elegant solution. This is because I want to reduce the time it
>>> >takes
>>> >for core programmers and reviewers to check the correctness of the
>>> >code,
>>> >and to report and correct bugs.
>>> >
>>> >The patch was built by forking the master branch of Bitcoin Core,
>>> >mixing a
>>> >few lines of code from Jeff Garzik's BIP102,  and defining a second
>>> >versionbits activation bit (bit 2) for the combined activation.
>>> >
>>> >The combined activation of segwit and 2Mb hard-fork nVersion bit is 2
>>> >(DEPLOYMENT_SEGWIT_AND_2MB_BLOCKS).
>>> >
>>> >This means that segwit can still be activated without the 2MB hard-fork
>>> >by
>>> >signaling bit 1 in nVersion  (DEPLOYMENT_SEGWIT).
>>> >
>>> >The tentative lock-in and hard-fork dates are the following:
>>> >
>>> >Bit 2 signaling StartTime = 1493424000; // April 29th, 2017
>>> >
>>> >Bit 2 signaling Timeout = 1503964800; // August 29th, 2017
>>> >
>>> >HardForkTime = 1513209600; // Thu, 14 Dec 2017 00:00:00 GMT
>>> >
>>> >
>>> >The hard-fork is conditional to 95% of the hashing power has approved
>>> >the
>>> >segwit2mb soft-fork and the segwit soft-fork has been activated (which
>>> >should occur 2016 blocks after its lock-in time)
>>> >
>>> >For more information on how soft-forks are signaled and activated, see
>>> >https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki
>>> >
>>> >This means that segwit would be activated before 2Mb: this is
>>> >inevitable,
>>> >as versionbits have been designed to have fixed activation periods and
>>> >thresholds for all bits. Making segwit and 2Mb fork activate together
>>> >at a
>>> >delayed date would have required a major re-write of this code, which
>>> >would
>>> >contradict the premise of creating a minimalistic patch. However, once
>>> >segwit is activated, the hard-fork is unavoidable.
>>> >
>>> >Although I have coded a first version of the segwit2mb patch (which
>>> >modifies 120 lines of code, and adds 220 lines of testing code), I
>>> >would
>>> >prefer to wait to publish the source code until more comments have been
>>> >received from the community.
>>> >
>>> >To prevent worsening block verification time because of the O(N^2)
>>> >hashing
>>> >problem, the simple restriction that transactions cannot be larger than
>>> >1Mb
>>> >has been kept. Therefore the worse-case of block verification time has
>>> >only
>>> >doubled.
>>> >
>>> >Regarding the hard-fork activation date, I want to give enough time to
>>> >all
>>> >active economic nodes to upgrade. As of Fri Mar 31 2017,
>>> >https://bitnodes.21.co/nodes/ reports that 6332 out of 6955 nodes (91%)
>>> >have upgraded to post 0.12 versions. Upgrade to post 0.12 versions can
>>> >be
>>> >used to identify economic active nodes, because in the 0.12 release
>>> >dynamic
>>> >fees were introduced, and currently no Bitcoin automatic payment system
>>> >can
>>> >operate without automatic discovery of the current fee rate. A pre-0.12
>>> >would require constant manual intervention.
>>> >Therefore I conclude that no more than 91% of the network nodes
>>> >reported by
>>> >bitnodes are active economic nodes.
>>> >
>>> >As Bitcoin Core 0.12 was released on February 2016, the time for this
>>> >91%
>>> >to upgrade has been around one year (under a moderate pressure of
>>> >operational problems with unconfirmed transactions).
>>> >Therefore we can expect a similar or lower time to upgrade for a
>>> >hard-fork,
>>> >after developers have discussed and approved the patch, and it has been
>>> >reviewed and merged and 95% of the hashing power has signaled for it
>>> >(the
>>> >pressure not to upgrade being a complete halt of the operations).
>>> >However I
>>> >suggest that we discuss the hard-fork date and delay it if there is a
>>> >real
>>> >need to.
>>> >
>>> >Currently time works against the Bitcoin community, and so is delaying
>>> >a
>>> >compromise solution. Most of the community agree that halting the
>>> >innovation for several years is a very bad option.
>>> >
>>> >After the comments collected by the community, a BIP will be written
>>> >describing the resulting proposal details.
>>> >
>>> >If segwit2mb locks-in, before hard-fork occurs all bitcoin nodes should
>>> >be
>>> >updated to a Segwit2Mb enabled node to prevent them to be forked-away
>>> >in a
>>> >chain with almost no hashing-power.
>>> >
>>> >The proof of concept patch was made for Bitcoin Core but should be
>>> >easily
>>> >ported to other Bitcoin protocol implementations that already support
>>> >versionbits. Lightweight (SPV) wallets should not be affected as they
>>> >generally do not check the block size.
>>> >
>>> >I personally want to see the Lightning Network in action this year, use
>>> >the
>>> >non-malleability features in segwit, see the community discussing other
>>> >exciting soft-forks in the scaling roadmap, Schnorr sigs, drivechains
>>> >and
>>> >MAST.
>>> >
>>> >I want to see miners, developers and industry side-by-side pushing
>>> >Bitcoin
>>> >forward, to increase the value of Bitcoin and prevent high transaction
>>> >fees
>>> >to put out of business use-cases that could have high positive social
>>> >impact.
>>> >
>>> >I believe in the strength of a unified Bitcoin community. If you're a
>>> >developer, please give your opinion, suggest changes, audit it, and
>>> >take a
>>> >stand with me to unlock the current Bitcoin deadlock.
>>> >
>>> >Contributions to the segwit2mb project are welcomed and awaited. The
>>> >only
>>> >limitation is to stick to the principle that the patch should be as
>>> >simple
>>> >to audit as possible. As an example, I wouldn't feel confident if the
>>> >patch
>>> >modified more than ~150 lines of code.
>>> >
>>> >Improvements unrelated to a 2 Mb increase or segwit, as beneficial as
>>> >it
>>> >may be to Bitcoin, should not be part of segwit2Mb.
>>> >
>>> >This proposal should not prevent other consensus proposals to be
>>> >simultaneously merged: segwit2mb is a last resort solution in case we
>>> >can
>>> >not reach consensus on anything better.
>>> >
>>> >Again, the proposal is only a starting point: community feedback is
>>> >expected and welcomed.
>>> >
>>> >Regards,
>>> >Sergio Demian Lerner
>>>
>>
>>
>> _______________________________________________
>> 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
>
>

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

<div dir=3D"ltr">From me to you ...this proposal doesn&#39;t lock in anythi=
ng. =C2=A0 We could just merge it with some small pushback - allow segwit t=
o activate in Aug, then &quot;upgrade&quot; the hard fork to be &quot;spoon=
et in 18 months&quot; instead.</div><div class=3D"gmail_extra"><br><div cla=
ss=3D"gmail_quote">On Fri, Mar 31, 2017 at 11:03 PM, Samson Mow via bitcoin=
-dev <span dir=3D"ltr">&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundat=
ion.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt;</s=
pan> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">A compromise=
 for the sake of compromise doesn&#39;t merit technical discussions. There =
are no benefits to be gained from a 2MB hard-fork at this time and it would=
 impose an unnecessary cost to the ecosystem for testing and implementation=
.</div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"><div><div =
class=3D"h5">On Fri, Mar 31, 2017 at 3:13 PM, Sergio Demian Lerner via bitc=
oin-dev <span dir=3D"ltr">&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoun=
dation.org" target=3D"_blank">bitcoin-dev@lists.<wbr>linuxfoundation.org</a=
>&gt;</span> wrote:<br></div></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><di=
v class=3D"h5"><div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div cla=
ss=3D"gmail_quote"><span>On Fri, Mar 31, 2017 at 6:22 PM, Matt Corallo <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:lf-lists@mattcorallo.com" target=3D"_bl=
ank">lf-lists@mattcorallo.com</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">Hey Sergio,<br>
<br>
You appear to have ignored the last two years of Bitcoin hardfork<br>
research and understanding, recycling instead BIP 102 from 2015. There<br>
are many proposals which have pushed the state of hard fork research<br>
much further since then, and you may wish to read some of the posts on<br>
this mailing list listed at <a href=3D"https://bitcoinhardforkresearch.gith=
ub.io/" rel=3D"noreferrer" target=3D"_blank">https://bitcoinhardforkresearc=
<wbr>h.github.io/</a><br>
and make further edits based on what you learn. </blockquote><div><br></div=
></span><div>I&#39;ve read every proposal that was published in the last tw=
o years and the choice for NOT implementing any of the super cool research =
you cite is intentional.</div><div><br></div><div>We&#39;re in a deadlock a=
nd it seems we can&#39;t go forward adding more functionality to segwit wit=
hout the community approval (which include miners). This is obvious to me.T=
hen we have to go back.=C2=A0</div><div>=C2=A0</div><div>If this last resor=
t solution is merged, we could go back to discuss improvements with the=C2=
=A0</div><span><div><br></div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:=
1ex">Your goal of &quot;avoid<br>
technical changes&quot; appears to not have any basis outside of perceived<=
br>
compromise for compromise sake, only making such a hardfork riskier<br>
instead.<br>
<br></blockquote></span><div>You&#39;re are totally correct. It&#39;s a com=
promise for the compromise sake. I couldn&#39;t have expressed it more clea=
rly. However the only &quot;riskier&quot; element is the hard forking date.=
 We can move the date forward.</div><span><div>=C2=A0</div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">
At a minimum, in terms of pure technical changes, you should probably<br>
consider (probably among others):=C2=A0<br></blockquote><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">
a) Utilizing the &quot;hard fork signaling bit&quot; in the nVersion of the=
 block.<br></blockquote><div><br></div></span><div>This I could consider, a=
s it requires probably a single line of code. Which BIP specifies this?</di=
v><span><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">
b) Either limiting non-SegWit transactions in some way to fix the n**2<br>
sighash and FindAndDelete runtime and memory usage issues or fix them by<br=
>
utilizing the new sighash type which many wallets and projects have<br>
already implemented for SegWit in the spending of non-SegWit outputs.<br></=
blockquote><div><br></div></span><div>The Seghash problem has already been =
addressed by limiting the maximum size of a transaction to 1 Mb.</div><div>=
The FindAndDelete problem has already been solved by the Core Developers, s=
o we don&#39;t have to worry about it anymore.</div><span><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">
c) Your really should have replay protection in any HF. </blockquote><div><=
br></div></span><div>We could add a simple protection, although if we reach=
 community consensus and 95% of hashing power, does we really need to? Can =
the old chain still be alive?</div><div>If more people ask for replay prote=
ction, I will merge Spoonet scheme or develop the minimum possible replay p=
rotection (a simple signaling bit in transaction version)=C2=A0</div><span>=
<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">
d) You may wish to consider the possibility of tweaking the witness<br>
discount and possibly discounting other parts of the input - SegWit went<br=
>
a long ways towards making removal of elements from the UTXO set cheaper<br=
>
than adding them, but didn&#39;t quite get there, you should probably finis=
h<br>
that job. This also provides additional tuneable parameters to allow you<br=
>
to increase the block size while not having a blowup in the worst-case<br>
block size.<br></blockquote><div><br></div></span><div>That is an interesti=
ng economic change and would be out of the scope of segwit2mb.</div><span><=
div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
e) Additional commitments at the top of the merkle root - both for<br>
SegWit transactions and as additional space for merged mining and other<br>
commitments which we may wish to add in the future, this should likely<br>
be implemented an &quot;additional header&quot; ala Johnson Lau&#39;s Spoon=
net proposal.<br>
<br></blockquote></span><div>That is an interesting technical improvement t=
hat is out of the scope of segwit2mb.</div><div>We can keep discussing spoo=
net while we merge segwit2mb, as spoonnet includes most of technical innova=
tions.</div><span><div>=C2=A0=C2=A0=C2=A0</div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">
Additionally, I think your parameters here pose very significant risk to<br=
>
the Bitcoin ecosystem broadly.<br>
<br>
a) Activating a hard fork with less than 18/24 months (and even then...)<br=
>
from a fully-audited and supported release of full node software to<br>
activation date poses significant risks to many large software projects<br>
and users. I&#39;ve repeatedly received feedback from various folks that a<=
br>
year or more is likely required in any hard fork to limit this risk, and<br=
>
limited pushback on that given the large increase which SegWit provides<br>
itself buying a ton of time.<br>
<br></blockquote></span><div>The feedback I received is slightly different =
from your feedback. Many company CTOs have expressed that one year for a Bi=
tcoin hard-fork was period they could schedule a secure upgrade.</div><span=
><div><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">
b) Having a significant discontinuity in block size increase only serves<br=
>
to confuse and mislead users and businesses, forcing them to rapidly<br>
adapt to a Bitcoin which changed overnight both by hardforking, and by<br>
fees changing suddenly. Instead, having the hard fork activate technical<br=
>
changes, and then slowly increasing the block size over the following<br>
several years keeps things nice and continuous and also keeps us from<br>
having to revisit ye old blocksize debate again six months after activation=
.<br>
<br></blockquote></span><div>This is something worth considering. There is =
the old Pieter BIP103 proposal has good parameters=C2=A0(17.7% per year).</=
div><span><div><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">
c) You should likely consider the effect of the many technological<br>
innovations coming down the pipe in the coming months. Technologies like<br=
>
Lightning, TumbleBit, and even your own RootStock could significantly<br>
reduce fee pressure as transactions move to much faster and more<br>
featureful systems.<br>
<br></blockquote></span><div>RSK sidechain team would have to take very tou=
gh decisions if Bitcoin splits, as RSK platform cannot be pegged to two dif=
ferent cryptocurrencies. We could launch two platforms, but RSK value propo=
sition is &quot;supporting the advance of Bitcoin, the cryptocurrecy with h=
ighest network effect&quot;. You understand that if Bitcoin splits Bitcoin =
BTC/BTU separately may cease to be the cryptocurrencies with higher volume/=
market cap/network effect.</div><div><br></div><div>Therefore all RSK peopl=
e that I talked too would prefer to avoid a split at all cost, reather that=
 to be the winners of the scaling war. =C2=A0</div><div><div class=3D"m_208=
3447714194740085h5"><div>=C2=A0</div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div class=3D"m_2083447714194740085m_-2847113005=
308011554gmail-HOEnZb"><div class=3D"m_2083447714194740085m_-28471130053080=
11554gmail-h5">
<br>
On March 31, 2017 5:09:18 PM EDT, Sergio Demian Lerner via bitcoin-dev &lt;=
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
bitcoin-dev@lists.linuxfounda<wbr>tion.org</a>&gt; wrote:<br>
&gt;Hi everyone,<br>
&gt;<br>
&gt;Segwit2Mb is the project to merge into Bitcoin a minimal patch that<br>
&gt;aims to<br>
&gt;untangle the current conflict between different political positions<br>
&gt;regarding segwit activation vs. an increase of the on-chain blockchain<=
br>
&gt;space through a standard block size increase. It is not a new solution,=
<br>
&gt;but<br>
&gt;it should be seen more as a least common denominator.<br>
&gt;<br>
&gt;Segwit2Mb combines segwit as it is today in Bitcoin 0.14+ with a 2MB<br=
>
&gt;block<br>
&gt;size hard-fork activated ONLY if segwit activates (95% of miners<br>
&gt;signaling), but at a fixed future date.<br>
&gt;<br>
&gt;The sole objective of this proposal is to re-unite the Bitcoin<br>
&gt;community<br>
&gt;and avoid a cryptocurrency split. Segwit2Mb does not aim to be best<br>
&gt;possible technical solution to solve Bitcoin technical limitations.<br>
&gt;However, this proposal does not imply a compromise to the future<br>
&gt;scalability or decentralization of Bitcoin, as a small increase in<br>
&gt;block<br>
&gt;size has been proven by several core and non-core developers not to<br>
&gt;affect<br>
&gt;Bitcoin value propositions.<br>
&gt;<br>
&gt;In the worst case, a 2X block size increase has much lower economic<br>
&gt;impact<br>
&gt;than the last bitcoin halving (&lt;10%), which succeeded without proble=
m.<br>
&gt;<br>
&gt;On the other side, Segwit2Mb primary goal is to be minimalistic: in<br>
&gt;this<br>
&gt;patch some choices have been made to reduce the number of lines<br>
&gt;modified in<br>
&gt;the current Bitcoin Core state (master branch), instead of implementing=
<br>
&gt;the<br>
&gt;most elegant solution. This is because I want to reduce the time it<br>
&gt;takes<br>
&gt;for core programmers and reviewers to check the correctness of the<br>
&gt;code,<br>
&gt;and to report and correct bugs.<br>
&gt;<br>
&gt;The patch was built by forking the master branch of Bitcoin Core,<br>
&gt;mixing a<br>
&gt;few lines of code from Jeff Garzik&#39;s BIP102,=C2=A0 and defining a s=
econd<br>
&gt;versionbits activation bit (bit 2) for the combined activation.<br>
&gt;<br>
&gt;The combined activation of segwit and 2Mb hard-fork nVersion bit is 2<b=
r>
&gt;(DEPLOYMENT_SEGWIT_AND_2MB_BL<wbr>OCKS).<br>
&gt;<br>
&gt;This means that segwit can still be activated without the 2MB hard-fork=
<br>
&gt;by<br>
&gt;signaling bit 1 in nVersion=C2=A0 (DEPLOYMENT_SEGWIT).<br>
&gt;<br>
&gt;The tentative lock-in and hard-fork dates are the following:<br>
&gt;<br>
&gt;Bit 2 signaling StartTime =3D 1493424000; // April 29th, 2017<br>
&gt;<br>
&gt;Bit 2 signaling Timeout =3D 1503964800; // August 29th, 2017<br>
&gt;<br>
&gt;HardForkTime =3D 1513209600; // Thu, 14 Dec 2017 00:00:00 GMT<br>
&gt;<br>
&gt;<br>
&gt;The hard-fork is conditional to 95% of the hashing power has approved<b=
r>
&gt;the<br>
&gt;segwit2mb soft-fork and the segwit soft-fork has been activated (which<=
br>
&gt;should occur 2016 blocks after its lock-in time)<br>
&gt;<br>
&gt;For more information on how soft-forks are signaled and activated, see<=
br>
&gt;<a href=3D"https://github.com/bitcoin/bips/blob/master/bip-0009.mediawi=
ki" rel=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/bi<wbr>=
ps/blob/master/bip-0009.mediaw<wbr>iki</a><br>
&gt;<br>
&gt;This means that segwit would be activated before 2Mb: this is<br>
&gt;inevitable,<br>
&gt;as versionbits have been designed to have fixed activation periods and<=
br>
&gt;thresholds for all bits. Making segwit and 2Mb fork activate together<b=
r>
&gt;at a<br>
&gt;delayed date would have required a major re-write of this code, which<b=
r>
&gt;would<br>
&gt;contradict the premise of creating a minimalistic patch. However, once<=
br>
&gt;segwit is activated, the hard-fork is unavoidable.<br>
&gt;<br>
&gt;Although I have coded a first version of the segwit2mb patch (which<br>
&gt;modifies 120 lines of code, and adds 220 lines of testing code), I<br>
&gt;would<br>
&gt;prefer to wait to publish the source code until more comments have been=
<br>
&gt;received from the community.<br>
&gt;<br>
&gt;To prevent worsening block verification time because of the O(N^2)<br>
&gt;hashing<br>
&gt;problem, the simple restriction that transactions cannot be larger than=
<br>
&gt;1Mb<br>
&gt;has been kept. Therefore the worse-case of block verification time has<=
br>
&gt;only<br>
&gt;doubled.<br>
&gt;<br>
&gt;Regarding the hard-fork activation date, I want to give enough time to<=
br>
&gt;all<br>
&gt;active economic nodes to upgrade. As of Fri Mar 31 2017,<br>
&gt;<a href=3D"https://bitnodes.21.co/nodes/" rel=3D"noreferrer" target=3D"=
_blank">https://bitnodes.21.co/nodes/</a> reports that 6332 out of 6955 nod=
es (91%)<br>
&gt;have upgraded to post 0.12 versions. Upgrade to post 0.12 versions can<=
br>
&gt;be<br>
&gt;used to identify economic active nodes, because in the 0.12 release<br>
&gt;dynamic<br>
&gt;fees were introduced, and currently no Bitcoin automatic payment system=
<br>
&gt;can<br>
&gt;operate without automatic discovery of the current fee rate. A pre-0.12=
<br>
&gt;would require constant manual intervention.<br>
&gt;Therefore I conclude that no more than 91% of the network nodes<br>
&gt;reported by<br>
&gt;bitnodes are active economic nodes.<br>
&gt;<br>
&gt;As Bitcoin Core 0.12 was released on February 2016, the time for this<b=
r>
&gt;91%<br>
&gt;to upgrade has been around one year (under a moderate pressure of<br>
&gt;operational problems with unconfirmed transactions).<br>
&gt;Therefore we can expect a similar or lower time to upgrade for a<br>
&gt;hard-fork,<br>
&gt;after developers have discussed and approved the patch, and it has been=
<br>
&gt;reviewed and merged and 95% of the hashing power has signaled for it<br=
>
&gt;(the<br>
&gt;pressure not to upgrade being a complete halt of the operations).<br>
&gt;However I<br>
&gt;suggest that we discuss the hard-fork date and delay it if there is a<b=
r>
&gt;real<br>
&gt;need to.<br>
&gt;<br>
&gt;Currently time works against the Bitcoin community, and so is delaying<=
br>
&gt;a<br>
&gt;compromise solution. Most of the community agree that halting the<br>
&gt;innovation for several years is a very bad option.<br>
&gt;<br>
&gt;After the comments collected by the community, a BIP will be written<br=
>
&gt;describing the resulting proposal details.<br>
&gt;<br>
&gt;If segwit2mb locks-in, before hard-fork occurs all bitcoin nodes should=
<br>
&gt;be<br>
&gt;updated to a Segwit2Mb enabled node to prevent them to be forked-away<b=
r>
&gt;in a<br>
&gt;chain with almost no hashing-power.<br>
&gt;<br>
&gt;The proof of concept patch was made for Bitcoin Core but should be<br>
&gt;easily<br>
&gt;ported to other Bitcoin protocol implementations that already support<b=
r>
&gt;versionbits. Lightweight (SPV) wallets should not be affected as they<b=
r>
&gt;generally do not check the block size.<br>
&gt;<br>
&gt;I personally want to see the Lightning Network in action this year, use=
<br>
&gt;the<br>
&gt;non-malleability features in segwit, see the community discussing other=
<br>
&gt;exciting soft-forks in the scaling roadmap, Schnorr sigs, drivechains<b=
r>
&gt;and<br>
&gt;MAST.<br>
&gt;<br>
&gt;I want to see miners, developers and industry side-by-side pushing<br>
&gt;Bitcoin<br>
&gt;forward, to increase the value of Bitcoin and prevent high transaction<=
br>
&gt;fees<br>
&gt;to put out of business use-cases that could have high positive social<b=
r>
&gt;impact.<br>
&gt;<br>
&gt;I believe in the strength of a unified Bitcoin community. If you&#39;re=
 a<br>
&gt;developer, please give your opinion, suggest changes, audit it, and<br>
&gt;take a<br>
&gt;stand with me to unlock the current Bitcoin deadlock.<br>
&gt;<br>
&gt;Contributions to the segwit2mb project are welcomed and awaited. The<br=
>
&gt;only<br>
&gt;limitation is to stick to the principle that the patch should be as<br>
&gt;simple<br>
&gt;to audit as possible. As an example, I wouldn&#39;t feel confident if t=
he<br>
&gt;patch<br>
&gt;modified more than ~150 lines of code.<br>
&gt;<br>
&gt;Improvements unrelated to a 2 Mb increase or segwit, as beneficial as<b=
r>
&gt;it<br>
&gt;may be to Bitcoin, should not be part of segwit2Mb.<br>
&gt;<br>
&gt;This proposal should not prevent other consensus proposals to be<br>
&gt;simultaneously merged: segwit2mb is a last resort solution in case we<b=
r>
&gt;can<br>
&gt;not reach consensus on anything better.<br>
&gt;<br>
&gt;Again, the proposal is only a starting point: community feedback is<br>
&gt;expected and welcomed.<br>
&gt;<br>
&gt;Regards,<br>
&gt;Sergio Demian Lerner<br>
</div></div></blockquote></div></div></div><br></div></div>
<br></div></div><span class=3D"">______________________________<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></span></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><br></div>

--001a11c10d14797e840550ffa8a4--