summaryrefslogtreecommitdiff
path: root/9b/53b010aa29ebb0c68e836be7fa04949ea4429f
blob: 183f4e323fcd238f27af57eb9ec630a17a1c2fa1 (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
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
	helo=mx.sourceforge.net)
	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <voisine@gmail.com>) id 1YqqzJ-0001PA-Sw
	for bitcoin-development@lists.sourceforge.net;
	Fri, 08 May 2015 22:43:21 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.192.44 as permitted sender)
	client-ip=209.85.192.44; envelope-from=voisine@gmail.com;
	helo=mail-qg0-f44.google.com; 
Received: from mail-qg0-f44.google.com ([209.85.192.44])
	by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1YqqzH-0008Tw-Ps
	for bitcoin-development@lists.sourceforge.net;
	Fri, 08 May 2015 22:43:21 +0000
Received: by qgej70 with SMTP id j70so43586859qge.2
	for <bitcoin-development@lists.sourceforge.net>;
	Fri, 08 May 2015 15:43:14 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.140.236.73 with SMTP id h70mr422611qhc.20.1431124994342;
	Fri, 08 May 2015 15:43:14 -0700 (PDT)
Received: by 10.140.91.37 with HTTP; Fri, 8 May 2015 15:43:14 -0700 (PDT)
In-Reply-To: <CAOG=w-szbLgc1jLpkE_uMa3bkFTi-RiBEaQ6Y-u5aKLBC2HvUg@mail.gmail.com>
References: <16096345.A1MpJQQkRW@crushinator>
	<CAOG=w-szbLgc1jLpkE_uMa3bkFTi-RiBEaQ6Y-u5aKLBC2HvUg@mail.gmail.com>
Date: Fri, 8 May 2015 15:43:14 -0700
Message-ID: <CACq0ZD6hkyU0ABmM6FDKxTszjYk=5zrhkWn2-9RAtzcbyydokg@mail.gmail.com>
From: Aaron Voisine <voisine@gmail.com>
To: Mark Friedenbach <mark@friedenbach.org>
Content-Type: multipart/alternative; boundary=001a11359476eac451051599c02c
X-Spam-Score: 0.8 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(voisine[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
	1.4 AWL AWL: Adjusted score from AWL reputation of From: address
X-Headers-End: 1YqqzH-0008Tw-Ps
Cc: Bitcoin Development <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Proposed alternatives to the 20MB step
	function
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Fri, 08 May 2015 22:43:21 -0000

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

This is a clever way to tie block size to fees.

I would just like to point out though that it still fundamentally is using
hard block size limits to enforce scarcity. Transactions with below market
fees will hang in limbo for days and fail, instead of failing immediately
by not propagating, or seeing degraded, long confirmation times followed by
eventual success.


Aaron Voisine
co-founder and CEO
breadwallet.com

On Fri, May 8, 2015 at 1:33 PM, Mark Friedenbach <mark@friedenbach.org>
wrote:

> It is my professional opinion that raising the block size by merely
> adjusting a constant without any sort of feedback mechanism would be a
> dangerous and foolhardy thing to do. We are custodians of a multi-billion
> dollar asset, and it falls upon us to weigh the consequences of our own
> actions against the combined value of the entire bitcoin ecosystem. Ideally
> we would take no action for which we are not absolutely certain of the
> ramifications, with the information that can be made available to us. But
> of course that is not always possible: there are unknown-unknowns, time
> pressures, and known-unknowns where information has too high a marginal
> cost. So where certainty is unobtainable, we must instead hedge against
> unwanted outcomes.
>
> The proposal to raise the block size now by redefining a constant carries
> with it risk associated with infrastructure scaling, centralization
> pressures, and delaying the necessary development of a constraint-based fee
> economy. It also simply kicks the can down the road in settling these
> issues because a larger but realistic hard limit must still exist, meaning
> a future hard fork may still be required.
>
> But whatever new hard limit is chosen, there is also a real possibility
> that it may be too high. The standard response is that it is a soft-fork
> change to impose a lower block size limit, which miners could do with a
> minimal amount of coordination. This is however undermined by the
> unfortunate reality that so many mining operations are absentee-run
> businesses, or run by individuals without a strong background in bitcoin
> protocol policy, or with interests which are not well aligned with other
> users or holders of bitcoin. We cannot rely on miners being vigilant about
> issues that develop, as they develop, or able to respond in the appropriate
> fashion that someone with full domain knowledge and an objective
> perspective would.
>
> The alternative then is to have some sort of dynamic block size limit
> controller, and ideally one which applies a cost to raising the block size
> in some way the preserves the decentralization and/or long-term stability
> features that we care about. I will now describe one such proposal:
>
>   * For each block, the miner is allowed to select a different difficulty
> (nBits) within a certain range, e.g. +/- 25% of the expected difficulty,
> and this miner-selected difficulty is used for the proof of work check. In
> addition to adjusting the hashcash target, selecting a different difficulty
> also raises or lowers the maximum block size for that block by a function
> of the difference in difficulty. So increasing the difficulty of the block
> by an additional 25% raises the block limit for that block from 100% of the
> current limit to 125%, and lowering the difficulty by 10% would also lower
> the maximum block size for that block from 100% to 90% of the current
> limit. For simplicity I will assume a linear identity transform as the
> function, but a quadratic or other function with compounding marginal cost
> may be preferred.
>
>   * The default maximum block size limit is then adjusted at regular
> intervals. For simplicity I will assume an adjustment at the end of each
> 2016 block interval, at the same time that difficulty is adjusted, but
> there is no reason these have to be aligned. The adjustment algorithm
> itself is either the selection of the median, or perhaps some sort of
> weighted average that respects the "middle majority." There would of course
> be limits on how quickly the block size limit can adjusted in any one
> period, just as there are min/max limits on the difficulty adjustment.
>
>   * To prevent perverse mining incentives, the original difficulty without
> adjustment is used in the aggregate work calculations for selecting the
> most-work chain, and the allowable miner-selected adjustment to difficulty
> would have to be tightly constrained.
>
> These rules create an incentive environment where raising the block size
> has a real cost associated with it: a more difficult hashcash target for
> the same subsidy reward. For rational miners that cost must be
> counter-balanced by additional fees provided in the larger block. This
> allows block size to increase, but only within the confines of a
> self-supporting fee economy.
>
> When the subsidy goes away or is reduced to an insignificant fraction of
> the block reward, this incentive structure goes away. Hopefully at that
> time we would have sufficient information to soft-fork set a hard block
> size maximum. But in the mean time, the block size limit controller
> constrains the maximum allowed block size to be within a range supported by
> fees on the network, providing an emergency relief valve that we can be
> assured will only be used at significant cost.
>
> Mark Friedenbach
>
> * There has over time been various discussions on the bitcointalk forums
> about dynamically adjusting block size limits. The true origin of the idea
> is unclear at this time (citations would be appreciated!) but a form of it
> was implemented in Bytecoin / Monero using subsidy burning to increase the
> block size. That approach has various limitations. These were corrected in
> Greg Maxwell's suggestion to adjust the difficulty/nBits field directly,
> which also has the added benefit of providing incentive for bidirectional
> movement during the subsidy period. The description in this email and any
> errors are my own.
>
> On Fri, May 8, 2015 at 12:20 AM, Matt Whitlock <bip@mattwhitlock.name>
> wrote:
>
>> Between all the flames on this list, several ideas were raised that did
>> not get much attention. I hereby resubmit these ideas for consideration and
>> discussion.
>>
>> - Perhaps the hard block size limit should be a function of the actual
>> block sizes over some trailing sampling period. For example, take the
>> median block size among the most recent 2016 blocks and multiply it by 1.5.
>> This allows Bitcoin to scale up gradually and organically, rather than
>> having human beings guessing at what is an appropriate limit.
>>
>> - Perhaps the hard block size limit should be determined by a vote of the
>> miners. Each miner could embed a desired block size limit in the coinbase
>> transactions of the blocks it publishes. The effective hard block size
>> limit would be that size having the greatest number of votes within a
>> sliding window of most recent blocks.
>>
>> - Perhaps the hard block size limit should be a function of block-chain
>> length, so that it can scale up smoothly rather than jumping immediately to
>> 20 MB. This function could be linear (anticipating a breakdown of Moore's
>> Law) or quadratic.
>>
>> I would be in support of any of the above, but I do not support Mike
>> Hearn's proposed jump to 20 MB. Hearn's proposal kicks the can down the
>> road without actually solving the problem, and it does so in a
>> controversial (step function) way.
>>
>>
>> ------------------------------------------------------------------------------
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>> Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>> Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

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

<div dir=3D"ltr">This is a clever way to tie block size to fees.<div><br></=
div><div>I would just like to point out though that it still fundamentally =
is using hard block size limits to enforce scarcity. Transactions with belo=
w market fees will hang in limbo for days and fail, instead of failing imme=
diately by not propagating, or seeing degraded, long confirmation times fol=
lowed by eventual success.</div></div><div class=3D"gmail_extra"><br clear=
=3D"all"><div><div class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=
=3D"ltr"><div><br>Aaron Voisine</div><div>co-founder and CEO<br><a href=3D"=
http://breadwallet.com" target=3D"_blank">breadwallet.com</a></div></div></=
div></div></div></div>
<br><div class=3D"gmail_quote">On Fri, May 8, 2015 at 1:33 PM, Mark Frieden=
bach <span dir=3D"ltr">&lt;<a href=3D"mailto:mark@friedenbach.org" target=
=3D"_blank">mark@friedenbach.org</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr"><div>It is my professional opinion that rais=
ing the block size by merely adjusting a constant without any sort of feedb=
ack mechanism would be a dangerous and foolhardy thing to do. We are custod=
ians of a multi-billion dollar asset, and it falls upon us to weigh the con=
sequences of our own actions against the combined value of the entire bitco=
in ecosystem. Ideally we would take no action for which we are not absolute=
ly certain of the ramifications, with the information that can be made avai=
lable to us. But of course that is not always possible: there are unknown-u=
nknowns, time pressures, and known-unknowns where information has too high =
a marginal cost. So where certainty is unobtainable, we must instead hedge =
against unwanted outcomes.<br><br>The proposal to raise the block size now =
by redefining a constant carries with it risk associated with infrastructur=
e scaling, centralization pressures, and delaying the necessary development=
 of a constraint-based fee economy. It also simply kicks the can down the r=
oad in settling these issues because a larger but realistic hard limit must=
 still exist, meaning a future hard fork may still be required.<br><br>But =
whatever new hard limit is chosen, there is also a real possibility that it=
 may be too high. The standard response is that it is a soft-fork change to=
 impose a lower block size limit, which miners could do with a minimal amou=
nt of coordination. This is however undermined by the unfortunate reality t=
hat so many mining operations are absentee-run businesses, or run by indivi=
duals without a strong background in bitcoin protocol policy, or with inter=
ests which are not well aligned with other users or holders of bitcoin. We =
cannot rely on miners being vigilant about issues that develop, as they dev=
elop, or able to respond in the appropriate fashion that someone with full =
domain knowledge and an objective perspective would.<br><br>The alternative=
 then is to have some sort of dynamic block size limit controller, and idea=
lly one which applies a cost to raising the block size in some way the pres=
erves the decentralization and/or long-term stability features that we care=
 about. I will now describe one such proposal:<br><br>=C2=A0 * For each blo=
ck, the miner is allowed to select a different difficulty (nBits) within a =
certain range, e.g. +/- 25% of the expected difficulty, and this miner-sele=
cted difficulty is used for the proof of work check. In addition to adjusti=
ng the hashcash target, selecting a different difficulty also raises or low=
ers the maximum block size for that block by a function of the difference i=
n difficulty. So increasing the difficulty of the block by an additional 25=
% raises the block limit for that block from 100% of the current limit to 1=
25%, and lowering the difficulty by 10% would also lower the maximum block =
size for that block from 100% to 90% of the current limit. For simplicity I=
 will assume a linear identity transform as the function, but a quadratic o=
r other function with compounding marginal cost may be preferred.<br><br>=
=C2=A0 * The default maximum block size limit is then adjusted at regular i=
ntervals. For simplicity I will assume an adjustment at the end of each 201=
6 block interval, at the same time that difficulty is adjusted, but there i=
s no reason these have to be aligned. The adjustment algorithm itself is ei=
ther the selection of the median, or perhaps some sort of weighted average =
that respects the &quot;middle majority.&quot; There would of course be lim=
its on how quickly the block size limit can adjusted in any one period, jus=
t as there are min/max limits on the difficulty adjustment.<br><br>=C2=A0 *=
 To prevent perverse mining incentives, the original difficulty without adj=
ustment is used in the aggregate work calculations for selecting the most-w=
ork chain, and the allowable miner-selected adjustment to difficulty would =
have to be tightly constrained.<br><br>These rules create an incentive envi=
ronment where raising the block size has a real cost associated with it: a =
more difficult hashcash target for the same subsidy reward. For rational mi=
ners that cost must be counter-balanced by additional fees provided in the =
larger block. This allows block size to increase, but only within the confi=
nes of a self-supporting fee economy.<br><br>When the subsidy goes away or =
is reduced to an insignificant fraction of the block reward, this incentive=
 structure goes away. Hopefully at that time we would have sufficient infor=
mation to soft-fork set a hard block size maximum. But in the mean time, th=
e block size limit controller constrains the maximum allowed block size to =
be within a range supported by fees on the network, providing an emergency =
relief valve that we can be assured will only be used at significant cost.<=
br><br>Mark Friedenbach<br><br>* There has over time been various discussio=
ns on the bitcointalk forums about dynamically adjusting block size limits.=
 The true origin of the idea is unclear at this time (citations would be ap=
preciated!) but a form of it was implemented in Bytecoin / Monero using sub=
sidy burning to increase the block size. That approach has various limitati=
ons. These were corrected in Greg Maxwell&#39;s suggestion to adjust the di=
fficulty/nBits field directly, which also has the added benefit of providin=
g incentive for bidirectional movement during the subsidy period. The descr=
iption in this email and any errors are my own.<br></div></div><div class=
=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On Fri, May 8, 2015 at 12:20 AM, Matt Whitlock <span dir=3D"lt=
r">&lt;<a href=3D"mailto:bip@mattwhitlock.name" target=3D"_blank">bip@mattw=
hitlock.name</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Betwee=
n all the flames on this list, several ideas were raised that did not get m=
uch attention. I hereby resubmit these ideas for consideration and discussi=
on.<br>
<br>
- Perhaps the hard block size limit should be a function of the actual bloc=
k sizes over some trailing sampling period. For example, take the median bl=
ock size among the most recent 2016 blocks and multiply it by 1.5. This all=
ows Bitcoin to scale up gradually and organically, rather than having human=
 beings guessing at what is an appropriate limit.<br>
<br>
- Perhaps the hard block size limit should be determined by a vote of the m=
iners. Each miner could embed a desired block size limit in the coinbase tr=
ansactions of the blocks it publishes. The effective hard block size limit =
would be that size having the greatest number of votes within a sliding win=
dow of most recent blocks.<br>
<br>
- Perhaps the hard block size limit should be a function of block-chain len=
gth, so that it can scale up smoothly rather than jumping immediately to 20=
 MB. This function could be linear (anticipating a breakdown of Moore&#39;s=
 Law) or quadratic.<br>
<br>
I would be in support of any of the above, but I do not support Mike Hearn&=
#39;s proposed jump to 20 MB. Hearn&#39;s proposal kicks the can down the r=
oad without actually solving the problem, and it does so in a controversial=
 (step function) way.<br>
<br>
---------------------------------------------------------------------------=
---<br>
One dashboard for servers and applications across Physical-Virtual-Cloud<br=
>
Widest out-of-the-box monitoring support with 50+ applications<br>
Performance metrics, stats and reports that give you Actionable Insights<br=
>
Deep dive visibility with transaction tracing using APM Insight.<br>
<a href=3D"http://ad.doubleclick.net/ddm/clk/290420510;117567292;y" target=
=3D"_blank">http://ad.doubleclick.net/ddm/clk/290420510;117567292;y</a><br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net" target=3D"_bla=
nk">Bitcoin-development@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
</blockquote></div><br></div>
</div></div><br>-----------------------------------------------------------=
-------------------<br>
One dashboard for servers and applications across Physical-Virtual-Cloud<br=
>
Widest out-of-the-box monitoring support with 50+ applications<br>
Performance metrics, stats and reports that give you Actionable Insights<br=
>
Deep dive visibility with transaction tracing using APM Insight.<br>
<a href=3D"http://ad.doubleclick.net/ddm/clk/290420510;117567292;y" target=
=3D"_blank">http://ad.doubleclick.net/ddm/clk/290420510;117567292;y</a><br>=
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div><br></div>

--001a11359476eac451051599c02c--