summaryrefslogtreecommitdiff
path: root/19/ea13dd41429a1603a3a731d0d0029363cf3647
blob: f227378981c24e913dfc8fd2fc0da8f126a2e680 (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
Return-Path: <marcel@jamin.net>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id ECB46F24
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 17 Dec 2015 06:14:15 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-yk0-f169.google.com (mail-yk0-f169.google.com
	[209.85.160.169])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 26FD4187
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 17 Dec 2015 06:14:14 +0000 (UTC)
Received: by mail-yk0-f169.google.com with SMTP id p130so7729468yka.1
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 16 Dec 2015 22:14:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=jamin-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=b/ZmxedelryTBgJIxuViVKk3QYVYOesk2eok9xghdl0=;
	b=wkU3PNWLaxBfC5NlzV+AuHNs6WQ0V7/Yiihv8rT61gDj/Aot9TupLd/WpnsJC5OLOQ
	7HVfa6gCArUiy93Yl0IPiKa42+Ybrw/RG873wQ3uxOLquvX78l1fm9Ux6CgJGSkNcZL9
	hd26fBTE7vpaZ7FwgEqKfswiClM6nDYj5tGM7UJxavF1EqHU2wP3RdiaW70fcN/t5KkZ
	KckqwP4panr8At2UbKaB4h/II2vngnBkvxA+Z6VJuR+rKFMX0qvD6M/4gGadkYp8HnWH
	HHYK+pzEoXbWJJc5eiWV1WYHDSktIvhhnC+n/wrNxCWp/i8aWUU9PLfMj8h0ibn30zR3
	t/ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=b/ZmxedelryTBgJIxuViVKk3QYVYOesk2eok9xghdl0=;
	b=VBaVcQ81s9v9OHG3IVh7HekwfazVS1uvDekyTLGKUQWugDslM7YkzhEHmsnV8ECcZi
	lsZk97u2SCcHW/cwYFj2SsGEkvudCYbZxGYZBk5mWj3htNvAOWapRZp49mA0oQAB7jKu
	ZqSWv088vHiOCyYABEYhX9/Qax39wWq9xvxVk4uUI1pQoj7FatJI8K934M926CK7UpDS
	1s8Tnzp8zgZGHWyqARHXb5avdZ4MZ7SvSS8I1DxijL+n7ZHyoMFPIj+P7BNJP5xWYF7X
	iBgc+uqEdnJG+bdIQwtthrgFWOgt5Tap3RIqBoUagmwcpqZyMwKcS9xSLlhGEAPR1IGj
	Pcfw==
X-Gm-Message-State: ALoCoQkRAMTNs10sEwkaGH2FWoCbhxNUUvjFU/zKDFuf63ExTPKOeDx+l4j/dPdPNmVY3R5iGvO235ZPIoGD5iUZ69TNRq49Dw==
MIME-Version: 1.0
X-Received: by 10.129.95.6 with SMTP id t6mr12366258ywb.113.1450332853247;
	Wed, 16 Dec 2015 22:14:13 -0800 (PST)
Received: by 10.129.30.201 with HTTP; Wed, 16 Dec 2015 22:14:13 -0800 (PST)
In-Reply-To: <49257841-66C8-4EF7-980B-73DC604CA591@mattcorallo.com>
References: <CADm_WcYWh5EnBCzQQVc04sf-0seh2zrmc+5dH8Z-Bo78jhPnfA@mail.gmail.com>
	<49257841-66C8-4EF7-980B-73DC604CA591@mattcorallo.com>
Date: Thu, 17 Dec 2015 07:14:13 +0100
Message-ID: <CAAUq486TDe4eRZMFYx4gkmHDU4sCEeoBZqN-MVsdFbsM9rQ6TQ@mail.gmail.com>
From: Marcel Jamin <marcel@jamin.net>
To: Matt Corallo <lf-lists@mattcorallo.com>
Content-Type: multipart/alternative; boundary=001a1147e4468655cf052711ee26
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,HTML_MESSAGE,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Thu, 17 Dec 2015 12:28:07 +0000
Cc: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Segregated Witness in the context of Scaling
	Bitcoin
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Dec 2015 06:14:16 -0000

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

Maybe we should first gather concrete estimates about and roughly agree on

- how long SW (SF) development will probably take

- how long the ecosystem needs to prepare for a hardfork (SW (HF) or a
simple can kicking block size increase)

Opinions differ wildly from what it looks like, but maybe we can get to
estimates that the majority here can accept.

---

Personally, I think that the disclaimer "Bitcoin is an experiment" is
pervasive. It's still a pre-release, even with a $6bn vote of confidence.
If you don't follow developments in this phase, don't upgrade and then have
an elevated risk of losing money by getting scammed, then that's a little
bit your fault. I'd absolutely support a change in mentality on that once
1.0.0 arrives, but until then is bitcoin a work-in-progress experiment and
a high risk investment.

A planned hard-fork is an experiment that needs to be run anyway. When do
we want to do that, if not now?


2015-12-16 21:50 GMT+01:00 Matt Corallo via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org>:

> A large part of your argument is that SW will take longer to deploy than a
> hard fork, but I completely disagree. Though I do not agree with some
> people claiming we can deploy SW significantly faster than a hard fork,
> once the code is ready (probably a six month affair) we can get it deployed
> very quickly. It's true the ecosystem may take some time to upgrade, but I
> see that as a feature, not a bug - we can build up some fee pressure with
> an immediate release valve available for people to use if they want to pay
> fewer fees.
>
> On the other hand, a hard fork, while simpler for the ecosystem to upgrade
> to, is a 1-2 year affair (after the code is shipped, so at least 1.5-2.5
> from today if we all put off heads down and work). One thing that has
> concerned me greatly through this whole debate is how quickly people seem
> to think we can roll out a hard fork. Go look at the distribution of node
> versions on the network today and work backwards to get nearly every node
> upgraded... Even with a year between fork-version-release and
> fork-activation, we'd still kill a bunch of nodes and instead of reducing
> their security model, lead them to be outright robbed.
>
> On December 16, 2015 12:38:30 PM PST, Jeff Garzik via bitcoin-dev <
> bitcoin-dev@lists.linuxfoundation.org> wrote:
>>
>>
>> 1. Summary
>>
>> Segregated Witness (SegWitness, SW) is being presented in the context of
>> Scaling Bitcoin.  It has useful attributes, notably addressing a major
>> malleability vector, but is not a short term scaling solution.
>>
>>
>> 2. Definitions
>>
>> Import Fee Event, ECE, TFM, FFM from previous email.
>>
>> Older clients - Any software not upgraded to SW
>>
>> Newer clients - Upgraded, SW aware software
>>
>>
>> Block size - refers to the core block economic resource limit ed by
>> MAX_BLOCK_SIZE.  Witness data (or extension block data) is excluded.
>> Requires a hard fork to change.
>>
>> Core block - Current bitcoin block, with upper bound MAX_BLOCK_SIZE.  Not
>> changed by SW.
>>
>>
>> Extended transaction - Newer, upgraded version of transaction data format.
>>
>> Extended block - Newer, upgraded version of block data format.
>>
>>
>> EBS - Extended block size.  Block size seen by newer clients.
>>
>>
>> 3. Context of analysis
>>
>> One proposal presents SW *in lieu of* a hard fork block size increase.
>> This email focuses directly on that.
>>
>> Useful features outside block size context, such as anti-malleability or
>> fraud proof features, are not covered in depth.
>>
>>
>> 4.1.  Observations on data structure formats and views
>>
>> SW creates two *views* of each transaction and block.  SW has blocks and
>> extended blocks.  Similarly, there exists transactions and extended
>> transactions.
>>
>> This view is rendered to clients depending on compatibility level.  Newer
>> clients see extended blocks and extended transactions.  Older clients see
>> blocks (limit 1M), and do not see extended blocks.  Older clients see
>> upgraded transactions as unsigned, anyone-can-pay transactions.
>>
>> Each extended transaction exists in two states, one unsigned and one
>> signed, each of which passes validation as a valid bitcoin transaction.
>>
>>
>> 4.2.  Observations on behavior of older transaction creation
>>
>> Transactions created by older clients will not use the extended
>> transaction format.  All data is stored the standard 1M block as today.
>>
>>
>> 4.3.  Observations on new block economic model
>>
>> SW complicates block economics by creating two separate, supply limited
>> resources.
>>
>> The core block economic resource is heavily contended.  Older clients use
>> core blocks exclusively.  Newer clients use core block s more
>> conservatively, storing as much data as possible in extended blocks.
>>
>> The extended block economic resource is less heavily contended, though
>> that of course grows over time as clients upgrade.
>>
>> Because core blocks are more heavily contended, it is presumed that older
>> clients will pay a higher fee than newer clients (subject to elasticity
>> etc.).
>>
>>
>> 5.1.  Problem:  Pace of roll-out will be slow - Whole Ecosystem must be
>> considered.
>>
>> The current apparent proposal is to roll out Segregated Witness as a soft
>> fork, and keep block size at 1M.
>>
>> The roll-out pace cannot simply be judged by soft fork speed - which is
>> months at best.  Analysis must the layers above:  Updating bitcoin-core
>> (JS) and bitcoinj (Java), and then the timelines to roll out those updates
>> to apps, and then the timeline to update those apps to create extended
>> transactions.
>>
>> Overall, wallet software and programmer libraries must be upgraded to
>> make use of this new format, adding many more months (12+ in some stacks)
>> to the roll out timeline.  In the meantime, clients continue to contend
>> entirely for core block space.
>>
>>
>> 5.2.  Problem:   Hard fork to bigger block size Just Works(tm) with most
>> software, unlike SW.
>>
>> A simple hard fork such as BIP 102 is automatically compatible with the
>> vast range of today's ecosystem software.
>>
>> SW requires merchants to upgrade almost immediately, requires wallet and
>> other peripheral software upgrades to make use of.  Other updates are
>> opt-in and occur more slowly.  BIP 70 processors need some updates.
>>
>> The number of LOC that must change for BIP 102 is very small, and the
>> problem domain well known, versus SW.
>>
>>
>> 5.3.  Problem:   Due to pace, Fee Event not forestalled.
>>
>> Even presuming SW is merged into Bitcoin Core tomorrow, this does not
>> address the risk of a Fee Event and associated Economic Change in the
>> coming months.
>>
>>
>> 5.4.  Problem:   More complex economic policy, new game theory, new
>> bidding structure risks.
>>
>> Splitting blocks into two pieces, each with separate and distinct
>> behaviors and resource values, creates *two fee markets.*
>>
>> Having two pricing strata within each block has certainly feasible - that
>> is the current mining policy of (1) fee/KB followed by (2) priority/age.
>>
>> Valuable or not - e.g. incentivizing older clients to upgrade - the fact
>> remains that SW creates a more-complex bidding structure by creating a
>> second economic resource.
>>
>> *This is clearly a change to a new economic policy* with standard risks
>> associated with that.  Will that induce an Economic C hange Event (see def
>> last email)?  *Unlikely*, due to slow rollout pace.
>>
>>
>> 5.5.  Problem:  Current SW mining algorithm needs improvement
>>
>> Current SW block template maker does a reasonable job, but makes some
>> naive assumptions about the fee market across an entire extended block.
>> This is a mismatch with the economic reality (just described).
>>
>> 5.6.   Problem:  New, under-analyzed attack surfaces
>>
>> Less significant and fundamental but still worth noting.
>>
>> This is not a fundamental SW problem, but simply standard complexity risk
>> factors:  splitting the signatures away from transactions, and creating a
>> new apparently-unsigned version of the transaction opens t he possibility
>> of some network attacks which cause some clients to degrade down from
>> extended block to core block mode temporarily.
>>
>> There is a chance of a failure mode that fools older clients into
>> thinking fraudulent data is valid (judgement: unlikely vis hashpower but
>> not impossible)
>>
>> 6. Conclusions and recommendations
>>
>> It seems unlikely that SW provides scaling in the short term, and SW
>> introduces new economics complexities.
>>
>> A "short term bump" hard fork block size increase addresses economic and
>> ecosystem risks that SW does not.
>>
>> Bump + SW should proce ed in parallel, independent tracks, as orthogonal
>> issues.
>>
>>
>> 7. Appendix - Other SW comments
>>
>> Hard forks provide much stronger validation, and ensure the network
>> operates at a fully trustless level.
>>
>> SW hard fork is preferred, versus soft fork.  Soft forking SW places a
>> huge amount of trust on miners to validate transaction signatures, versus
>> the rest of the network, as the network slowly upgrades to newer clients.
>>
>> An SW hard fork could also add several zero-filled placeholders in a
>> merkle tree for future use.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------
>>
>> 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
>
>

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

<div dir=3D"ltr">Maybe we should first gather concrete estimates about and =
roughly agree on<div><br></div><div>- how long SW (SF) development will pro=
bably take</div><div><br></div><div>- how long the ecosystem needs to prepa=
re for a hardfork (SW (HF) or a simple can kicking block size increase)</di=
v><div><br></div><div>Opinions differ wildly from what it looks like, but m=
aybe we can get to estimates that the majority here can accept.</div><div><=
br></div><div>---</div><div><br></div><div>Personally, I think that the dis=
claimer &quot;Bitcoin is an experiment&quot; is pervasive. It&#39;s still a=
 pre-release, even with a $6bn vote of confidence. If you don&#39;t follow =
developments in this phase, don&#39;t upgrade and then have an elevated ris=
k of losing money by getting scammed, then that&#39;s a little bit your fau=
lt. I&#39;d absolutely support a change in mentality on that once 1.0.0 arr=
ives, but until then is bitcoin a work-in-progress experiment and a high ri=
sk investment.</div><div><br></div><div>A planned hard-fork is an experimen=
t that needs to be run anyway. When do we want to do that, if not now?</div=
><div><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">2015-12=
-16 21:50 GMT+01:00 Matt Corallo via bitcoin-dev <span dir=3D"ltr">&lt;<a h=
ref=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">bitc=
oin-dev@lists.linuxfoundation.org</a>&gt;</span>:<br><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex"><div>A large part of your argument is that SW will take longer to =
deploy than a hard fork, but I completely disagree. Though I do not agree w=
ith some people claiming we can deploy SW significantly faster than a hard =
fork, once the code is ready (probably a six month affair) we can get it de=
ployed very quickly. It&#39;s true the ecosystem may take some time to upgr=
ade, but I see that as a feature, not a bug - we can build up some fee pres=
sure with an immediate release valve available for people to use if they wa=
nt to pay fewer fees.<br>
<br>
On the other hand, a hard fork, while simpler for the ecosystem to upgrade =
to, is a  1-2 year affair (after the code is shipped, so at least 1.5-2.5 f=
rom today if we all put off heads down and work). One thing that has concer=
ned me greatly through this whole debate is how quickly people seem to thin=
k we can roll out a hard fork. Go look at the distribution of node versions=
 on the network today and work backwards to get nearly every node upgraded.=
.. Even with a year between fork-version-release and fork-activation, we&#3=
9;d still kill a bunch of nodes and instead of reducing their security mode=
l, lead them to be outright robbed.<br><br><div class=3D"gmail_quote">On De=
cember 16, 2015 12:38:30 PM PST, Jeff Garzik via bitcoin-dev &lt;<a href=3D=
"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">bitcoin-de=
v@lists.linuxfoundation.org</a>&gt; wrote:<blockquote class=3D"gmail_quote"=
 style=3D"margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);p=
adding-left:1ex">
<div dir=3D"ltr"><br><div>1. Summary</div><div><br></div><blockquote style=
=3D"margin:0 0 0 40px;border:none;padding:0px"><div>Segregated Witness (Seg=
Witness, SW) is being presented in the context of Scaling Bitcoin.=C2=A0 It=
 has useful attributes, notably addressing a major malleability vector, but=
 is not a short term scaling solution.</div></blockquote><div><br></div><di=
v>2. Definitions</div><div><br></div><blockquote style=3D"margin:0 0 0 40px=
;border:none;padding:0px"><div>Import Fee Event, ECE, TFM, FFM from previou=
s email.</div><div><br></div></blockquote><blockquote style=3D"margin:0 0 0=
 40px;border:none;padding:0px"><div>Older clients - Any software not upgrad=
ed to SW</div><div><br></div></blockquote><blockquote style=3D"margin:0 0 0=
 40px;border:none;padding:0px"><div>Newer clients - Upgraded, SW aware soft=
ware</div></blockquote><blockquote style=3D"margin:0 0 0 40px;border:none;p=
adding:0px"><div><br></div><div>Block size - refers to the core block econo=
mic resource limit
 ed by
MAX_BLOCK_SIZE.=C2=A0 Witness data (or extension block data) is excluded.=
=C2=A0 Requires a hard fork to change.</div><div><br></div></blockquote><bl=
ockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>Core bloc=
k - Current bitcoin block, with upper bound MAX_BLOCK_SIZE.=C2=A0 Not chang=
ed by SW.</div></blockquote><blockquote style=3D"margin:0 0 0 40px;border:n=
one;padding:0px"><div><br></div></blockquote><blockquote style=3D"margin:0 =
0 0 40px;border:none;padding:0px"><div>Extended transaction - Newer, upgrad=
ed version of transaction data format.</div><div><br></div></blockquote><bl=
ockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>Extended =
block - Newer, upgraded version of block data format.</div></blockquote><bl=
ockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div><br></div=
><div>EBS - Extended block size.=C2=A0 Block size seen by newer clients.</d=
iv></blockquote><div><br></div><div>3. Context of analysis</div><div><br></=
div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>On=
e proposal presents SW <i>in lieu of</i>=C2=A0a hard fork block size increa=
se.=C2=A0 This email focuses directly on that.</div><div><br></div></blockq=
uote><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>U=
seful features outside block size context, such as anti-malleability or fra=
ud proof features, are not covered in depth.</div></blockquote><div><br></d=
iv><div>4.1.=C2=A0 Observations on data structure formats and views</div><d=
iv><br></div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px=
">SW creates two <i>views</i>=C2=A0of each transaction and block.=C2=A0 SW =
has blocks and extended blocks.=C2=A0 Similarly, there exists transactions =
and extended transactions.<br><br>This view is rendered to clients dependin=
g on compatibility level.=C2=A0 Newer clients see extended blocks and exten=
ded transactions.=C2=A0 Older clients see blocks (limit 1M), and do not see=
 extended blocks.=C2=A0 Older clients see upgraded transactions as unsigned=
,
anyone-can-pay transactions.<br><br>Each extended transaction exists in two=
 states, one unsigned and one signed, each of which passes validation as a =
valid bitcoin transaction.<br></blockquote><div><br></div>4.2.=C2=A0 Observ=
ations on behavior of older transaction creation<div><br></div><blockquote =
style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>Transactions creat=
ed by older clients will not use the extended transaction format.=C2=A0 All=
 data is stored the standard 1M block as today.</div></blockquote><div><br>=
</div><div>4.3.=C2=A0 Observations on new block economic model</div><div><b=
r></div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><di=
v>SW complicates block economics by creating two separate, supply limited r=
esources.</div><div><br></div></blockquote><blockquote style=3D"margin:0 0 =
0 40px;border:none;padding:0px"><div>The core block economic resource is he=
avily contended.=C2=A0 Older clients use core blocks exclusively.=C2=A0 New=
er clients use core block
 s more
conservatively, storing as much data as possible in extended blocks.</div><=
div><br></div></blockquote><blockquote style=3D"margin:0 0 0 40px;border:no=
ne;padding:0px"><div>The extended block economic resource is less heavily c=
ontended, though that of course grows over time as clients upgrade.</div><d=
iv><br></div></blockquote><blockquote style=3D"margin:0 0 0 40px;border:non=
e;padding:0px">Because core blocks are more heavily contended, it is presum=
ed that older clients will pay a higher fee than newer clients (subject to =
elasticity etc.).<br></blockquote><div><br></div>5.1.=C2=A0 Problem: =C2=A0=
Pace of roll-out will be slow - Whole Ecosystem must be considered.<div><br=
></div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div=
>The current apparent proposal is to roll out Segregated Witness as a soft =
fork, and keep block size at 1M.</div><div><br></div></blockquote><blockquo=
te style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>The roll-out pa=
ce cannot simply be
  judged
by soft fork speed - which is months at best.=C2=A0 Analysis must the layer=
s above: =C2=A0Updating bitcoin-core (JS) and bitcoinj (Java), and then the=
 timelines to roll out those updates to apps, and then the timeline to upda=
te those apps to create extended transactions.</div><div><br></div></blockq=
uote><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>O=
verall, wallet software and programmer libraries must be upgraded to make u=
se of this new format, adding many more months (12+ in some stacks) to the =
roll out timeline.=C2=A0 In the meantime, clients continue to contend entir=
ely for core block space.</div></blockquote><div><br></div><div>5.2.=C2=A0 =
Problem: =C2=A0 Hard fork to bigger block size Just Works(tm) with most sof=
tware, unlike SW.</div><div><br></div><blockquote style=3D"margin:0 0 0 40p=
x;border:none;padding:0px"><div>A simple hard fork such as BIP 102 is autom=
atically compatible with the vast range of today&#39;s ecosystem software.<=
/div><div><br></div></blockquote><blockquote style=3D"margin:0 0 0 40px;bor=
der:none;padding:0px"><div>SW requires merchants to upgrade almost immediat=
ely, requires wallet and other peripheral software upgrades to make use of.=
=C2=A0 Other updates are opt-in and occur more slowly.=C2=A0 BIP 70 process=
ors need some updates.</div><div><br></div></blockquote><blockquote style=
=3D"margin:0 0 0 40px;border:none;padding:0px"><div>The number of LOC that =
must change for BIP 102 is very small, and the problem domain well known, v=
ersus SW.</div></blockquote><div><br></div>5.3.=C2=A0 Problem: =C2=A0 Due t=
o pace, Fee Event not forestalled.<div><br></div><blockquote style=3D"margi=
n:0 0 0 40px;border:none;padding:0px">Even presuming SW is merged into Bitc=
oin Core tomorrow, this does not address the risk of a Fee Event and associ=
ated Economic Change in the coming months.</blockquote><div><div><br></div>=
<div>5.4.=C2=A0 Problem: =C2=A0 More complex economic policy, new game theo=
ry, new bidding structure risks.</div><div><br></div></div><blockquote styl=
e=3D"margin:0 0 0 40px;border:none;padding:0px"><div><div>Splitting blocks =
into two pieces, each with separate and distinct behaviors and resource val=
ues, creates <i>two fee markets.</i></div></div><div><i><br></i></div></blo=
ckquote><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><di=
v>Having two pricing strata within each block has certainly feasible - that=
 is the current mining policy of (1) fee/KB followed by (2) priority/age.</=
div><div><br></div></blockquote><blockquote style=3D"margin:0 0 0 40px;bord=
er:none;padding:0px"><div>Valuable or not - e.g. incentivizing older client=
s to upgrade - the fact remains that SW creates a more-complex bidding stru=
cture by creating a second economic resource.</div><div><b><br></b></div></=
blockquote><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px">=
<div><b>This is clearly a change to a new economic policy</b>=C2=A0with sta=
ndard risks associated with that.=C2=A0 Will that induce an Economic C
 hange
Event (see def last email)? =C2=A0<b>Unlikely</b>, due to slow rollout pace=
.</div></blockquote><br>5.5.=C2=A0 Problem: =C2=A0Current SW mining algorit=
hm needs improvement<div><br></div><blockquote style=3D"margin:0 0 0 40px;b=
order:none;padding:0px"><div>Current SW block template maker does a reasona=
ble job, but makes some naive assumptions about the fee market across an en=
tire extended block.=C2=A0 This is a mismatch with the economic reality (ju=
st described).</div><div><br></div></blockquote>5.6. =C2=A0 Problem: =C2=A0=
New, under-analyzed attack surfaces<div><br></div><blockquote style=3D"marg=
in:0 0 0 40px;border:none;padding:0px"><div>Less significant and fundamenta=
l but still worth noting.</div><div><br></div></blockquote><blockquote styl=
e=3D"margin:0 0 0 40px;border:none;padding:0px"><div>This is not a fundamen=
tal SW problem, but simply standard complexity risk factors: =C2=A0splittin=
g the signatures away from transactions, and creating a new apparently-unsi=
gned version of the transaction opens t
 he
possibility of some network attacks which cause some clients to degrade dow=
n from extended block to core block mode temporarily.</div><div><br></div><=
/blockquote><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"=
><div>There is a chance of a failure mode that fools older clients into thi=
nking fraudulent data is valid (judgement: unlikely vis hashpower but not i=
mpossible)</div><div><br></div></blockquote>6. Conclusions and recommendati=
ons<div><br></div><blockquote style=3D"margin:0 0 0 40px;border:none;paddin=
g:0px"><div>It seems unlikely that SW provides scaling in the short term, a=
nd SW introduces new economics complexities.</div><div><br></div></blockquo=
te><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>A &=
quot;short term bump&quot; hard fork block size increase addresses economic=
 and ecosystem risks that SW does not.</div><div><br></div></blockquote><bl=
ockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>Bump + SW=
 should proce
 ed in
parallel, independent tracks, as orthogonal issues.</div></blockquote><div>=
<br></div>7. Appendix - Other SW comments<div><br></div><blockquote style=
=3D"margin:0 0 0 40px;border:none;padding:0px">Hard forks provide much stro=
nger validation, and ensure the network operates at a fully trustless level=
.<br><br>SW hard fork is preferred, versus soft fork.=C2=A0 Soft forking SW=
 places a huge amount of trust on miners to validate transaction signatures=
, versus the rest of the network, as the network slowly upgrades to newer c=
lients.<br><br></blockquote><blockquote style=3D"margin:0 0 0 40px;border:n=
one;padding:0px">An SW hard fork could also add several zero-filled placeho=
lders in a merkle tree for future use.</blockquote><br><blockquote style=3D=
"margin:0 0 0 40px;border:none;padding:0px"></blockquote><br><blockquote st=
yle=3D"margin:0 0 0 40px;border:none;padding:0px"><br></blockquote><div><di=
v><div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div=
><br></div><div><br></div></blockquote><div><blockquote style=3D"margin:0 0=
 0 40px;border:none;padding:0px"><div><br></div><div><br></div></blockquote=
><div><blockquote style=3D"margin:0 0 0 40px;border:none;padding:0px"><div>=
<br></div></blockquote><div><blockquote style=3D"margin:0 0 0 40px;border:n=
one;padding:0px"><div><br></div></blockquote><blockquote style=3D"margin:0 =
0 0 40px;border:none;padding:0px"><div><br></div><div><br></div></blockquot=
e><div><div><br></div></div></div></div></div></div></div></div></div>
<p style=3D"margin-top:2.5em;margin-bottom:1em;border-bottom:1px solid #000=
"></p><pre><hr><br>bitcoin-dev mailing list<br><a href=3D"mailto:bitcoin-de=
v@lists.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfound=
ation.org</a><br><a href=3D"https://lists.linuxfoundation.org/mailman/listi=
nfo/bitcoin-dev" target=3D"_blank">https://lists.linuxfoundation.org/mailma=
n/listinfo/bitcoin-dev</a><br></pre></blockquote></div></div><br>__________=
_____________________________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
man/listinfo/bitcoin-dev</a><br>
<br></blockquote></div><br></div></div></div>

--001a1147e4468655cf052711ee26--