summaryrefslogtreecommitdiff
path: root/8d/0fb439a299de0bb941734128289378effe7f12
blob: a3e2ecaec355a81fca7dea915e12fdb74d6b66af (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
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <voisine@gmail.com>) id 1YyOLr-000892-6u
	for bitcoin-development@lists.sourceforge.net;
	Fri, 29 May 2015 17:45:47 +0000
Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.220.171 as permitted sender)
	client-ip=209.85.220.171; envelope-from=voisine@gmail.com;
	helo=mail-qk0-f171.google.com; 
Received: from mail-qk0-f171.google.com ([209.85.220.171])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1YyOLp-00081N-OI
	for bitcoin-development@lists.sourceforge.net;
	Fri, 29 May 2015 17:45:47 +0000
Received: by qkhg32 with SMTP id g32so49120272qkh.0
	for <bitcoin-development@lists.sourceforge.net>;
	Fri, 29 May 2015 10:45:40 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.140.97.136 with SMTP id m8mr11001657qge.32.1432921540202;
	Fri, 29 May 2015 10:45:40 -0700 (PDT)
Received: by 10.140.91.37 with HTTP; Fri, 29 May 2015 10:45:39 -0700 (PDT)
In-Reply-To: <CABsx9T3-zxCAagAS0megd06xvG5n-3tUL9NUK9TT3vt7XNL9Tg@mail.gmail.com>
References: <16096345.A1MpJQQkRW@crushinator>
	<CABsx9T3-zxCAagAS0megd06xvG5n-3tUL9NUK9TT3vt7XNL9Tg@mail.gmail.com>
Date: Fri, 29 May 2015 10:45:39 -0700
Message-ID: <CACq0ZD7hQGsR+-AORrjMYBzLzW80goKAsUEKf_GPfyL5bXN5iA@mail.gmail.com>
From: Aaron Voisine <voisine@gmail.com>
To: Gavin Andresen <gavinandresen@gmail.com>
Content-Type: multipart/alternative; boundary=001a113a5d5265159105173c0b29
X-Spam-Score: -0.6 (/)
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
X-Headers-End: 1YyOLp-00081N-OI
Cc: Bitcoin Dev <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, 29 May 2015 17:45:47 -0000

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

> miners would definitely be squeezing out transactions / putting pressure
to increase transaction fees

I'd just like to re-iterate that transactions getting "squeezed out"
(failure after a lengthy period of uncertainty) is a radical change from
the current behavior of the network. There are plenty of avenues to create
fee pressure without resorting to such a drastic change in how the network
works today.


Aaron Voisine
co-founder and CEO
breadwallet.com

On Thu, May 28, 2015 at 8:53 AM, Gavin Andresen <gavinandresen@gmail.com>
wrote:

> On Fri, May 8, 2015 at 3: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.
>>
>
> A lot of people like this idea, or something like it. It is nice and
> simple, which is really important for consensus-critical code.
>
> With this rule in place, I believe there would be more "fee pressure"
> (miners would be creating smaller blocks) today. I created a couple of
> histograms of block sizes to infer what policy miners are ACTUALLY
> following today with respect to block size:
>
> Last 1,000 blocks:
>   http://bitcoincore.org/~gavin/sizes_last1000.html
>
> Notice a big spike at 750K -- the default size for Bitcoin Core.
> This graph might be misleading, because transaction volume or fees might
> not be high enough over the last few days to fill blocks to whatever limit
> miners are willing to mine.
>
> So I graphed a time when (according to statoshi.info) there WERE a lot of
> transactions waiting to be confirmed:
>    http://bitcoincore.org/~gavin/sizes_357511.html
>
> That might also be misleading, because it is possible there were a lot of
> transactions waiting to be confirmed because miners who choose to create
> small blocks got lucky and found more blocks than normal.  In fact, it
> looks like that is what happened: more smaller-than-normal blocks were
> found, and the memory pool backed up.
>
> So: what if we had a dynamic maximum size limit based on recent history?
>
> The average block size is about 400K, so a 1.5x rule would make the max
> block size 600K; miners would definitely be squeezing out transactions /
> putting pressure to increase transaction fees. Even a 2x rule (implying
> 800K max blocks) would, today, be squeezing out transactions / putting
> pressure to increase fees.
>
> Using a median size instead of an average means the size can increase or
> decrease more quickly. For example, imagine the rule is "median of last
> 2016 blocks" and 49% of miners are producing 0-size blocks and 51% are
> producing max-size blocks. The median is max-size, so the 51% have total
> control over making blocks bigger.  Swap the roles, and the median is
> min-size.
>
> Because of that, I think using an average is better-- it means the max
> size will change (up or down) more slowly.
>
> I also think 2016 blocks is too long, because transaction volumes change
> quicker than that. An average over 144 blocks (last 24 hours) would be
> better able to handle increased transaction volume around major holidays,
> and would also be able to react more quickly if an economically irrational
> attacker attempted to flood the network with fee-paying transactions.
>
> So my straw-man proposal would be:  max size 2x average size over last 144
> blocks, calculated at every block.
>
> There are a couple of other changes I'd pair with that consensus change:
>
> + Make the default mining policy for Bitcoin Core neutral-- have its
> target block size be the average size, so miners that don't care will "go
> along with the people who do care."
>
> + Use something like Greg's formula for size instead of bytes-on-the-wire,
> to discourage bloating the UTXO set.
>
>
> ---------
>
> When I've proposed (privately, to the other core committers) some dynamic
> algorithm the objection has been "but that gives miners complete control
> over the max block size."
>
> I think that worry is unjustified right now-- certainly, until we have
> size-independent new block propagation there is an incentive for miners to
> keep their blocks small, and we see miners creating small blocks even when
> there are fee-paying transactions waiting to be confirmed.
>
> I don't even think it will be a problem if/when we do have
> size-independent new block propagation, because I think the combination of
> the random timing of block-finding plus a dynamic limit as described above
> will create a healthy system.
>
> If I'm wrong, then it seems to me the miners will have a very strong
> incentive to, collectively, impose whatever rules are necessary (maybe a
> soft-fork to put a hard cap on block size) to make the system healthy again.
>
>
> --
> --
> Gavin Andresen
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

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

<div dir=3D"ltr"><span style=3D"font-size:13px">&gt; miners would definitel=
y be squeezing out transactions / putting pressure to increase transaction =
fees</span><br><div><span style=3D"font-size:13px"><br></span></div><div>I&=
#39;d just like to re-iterate that transactions getting &quot;squeezed out&=
quot; (failure after a lengthy period of uncertainty) is a radical change f=
rom the current behavior of the network. There are plenty of avenues to cre=
ate fee=C2=A0pressure without resorting to such a drastic change in how the=
 network works today.</div></div><div class=3D"gmail_extra"><br clear=3D"al=
l"><div><div class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"lt=
r"><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 Thu, May 28, 2015 at 8:53 AM, Gavin Andre=
sen <span dir=3D"ltr">&lt;<a href=3D"mailto:gavinandresen@gmail.com" target=
=3D"_blank">gavinandresen@gmail.com</a>&gt;</span> wrote:<br><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"=
gmail_quote"><span class=3D"">On Fri, May 8, 2015 at 3:20 AM, Matt Whitlock=
 <span dir=3D"ltr">&lt;<a href=3D"mailto:bip@mattwhitlock.name" target=3D"_=
blank">bip@mattwhitlock.name</a>&gt;</span> wrote:<br><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border=
-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Betw=
een all the flames on this list, several ideas were raised that did not get=
 much attention. I hereby resubmit these ideas for consideration and discus=
sion.<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></blockquote><div><br>=
</div></span><div>A lot of people like this idea, or something like it. It =
is nice and simple, which is really important for consensus-critical code.<=
/div><div><br></div><div>With this rule in place, I believe there would be =
more &quot;fee pressure&quot; (miners would be creating smaller blocks) tod=
ay. I created a couple of histograms of block sizes to infer what policy mi=
ners are ACTUALLY following today with respect to block size:</div><div><br=
></div><div>Last 1,000 blocks:</div><div>=C2=A0=C2=A0<a href=3D"http://bitc=
oincore.org/~gavin/sizes_last1000.html" target=3D"_blank">http://bitcoincor=
e.org/~gavin/sizes_last1000.html</a></div><div><br></div><div>Notice a big =
spike at 750K -- the default size for Bitcoin Core.</div><div>This graph mi=
ght be misleading, because transaction volume or fees might not be high eno=
ugh over the last few days to fill blocks to whatever limit miners are will=
ing to mine.<br></div><div><br></div><div>So I graphed a time when (accordi=
ng to <a href=3D"http://statoshi.info" target=3D"_blank">statoshi.info</a>)=
 there WERE a lot of transactions waiting to be confirmed:</div><div>=C2=A0=
 =C2=A0<a href=3D"http://bitcoincore.org/~gavin/sizes_357511.html" target=
=3D"_blank">http://bitcoincore.org/~gavin/sizes_357511.html</a></div><div><=
br></div><div>That might also be misleading, because it is possible there w=
ere a lot of transactions waiting to be confirmed because miners who choose=
 to create small blocks got lucky and found more blocks than normal.=C2=A0 =
In fact, it looks like that is what happened: more smaller-than-normal bloc=
ks were found, and the memory pool backed up.</div><div><br></div><div>So: =
what if we had a dynamic maximum size limit based on recent history?</div><=
div><br></div><div>The average block size is about 400K, so a 1.5x rule wou=
ld make the max block size 600K; miners would definitely be squeezing out t=
ransactions / putting pressure to increase transaction fees. Even a 2x rule=
 (implying 800K max blocks) would, today, be squeezing out transactions / p=
utting pressure to increase fees.</div><div><br></div><div>Using a median s=
ize instead of an average means the size can increase or decrease more quic=
kly. For example, imagine the rule is &quot;median of last 2016 blocks&quot=
; and 49% of miners are producing 0-size blocks and 51% are producing max-s=
ize blocks. The median is max-size, so the 51% have total control over maki=
ng blocks bigger.=C2=A0 Swap the roles, and the median is min-size.</div><d=
iv><br></div><div>Because of that, I think using an average is better-- it =
means the max size will change (up or down) more slowly.</div><div><br></di=
v><div>I also think 2016 blocks is too long, because transaction volumes ch=
ange quicker than that. An average over 144 blocks (last 24 hours) would be=
 better able to handle increased transaction volume around major holidays, =
and would also be able to react more quickly if an economically irrational =
attacker attempted to flood the network with fee-paying transactions.</div>=
<div><br></div><div>So my straw-man proposal would be: =C2=A0max size 2x av=
erage size over last 144 blocks, calculated at every block.</div><div><br><=
/div><div>There are a couple of other changes I&#39;d pair with that consen=
sus change:</div><div><br></div><div>+ Make the default mining policy for B=
itcoin Core neutral-- have its target block size be the average size, so mi=
ners that don&#39;t care will &quot;go along with the people who do care.&q=
uot;</div><div><br></div><div>+ Use something like Greg&#39;s formula for s=
ize instead of bytes-on-the-wire, to discourage bloating the UTXO set.</div=
><div><br></div><div><br></div><div>---------</div><div><br></div><div>When=
 I&#39;ve proposed (privately, to the other core committers) some dynamic a=
lgorithm the objection has been &quot;but that gives miners complete contro=
l over the max block size.&quot;</div><div><br></div><div>I think that worr=
y is unjustified right now-- certainly, until we have size-independent new =
block propagation there is an incentive for miners to keep their blocks sma=
ll, and we see miners creating small blocks even when there are fee-paying =
transactions waiting to be confirmed.</div><div><br></div><div>I don&#39;t =
even think it will be a problem if/when we do have size-independent new blo=
ck propagation, because I think the combination of the random timing of blo=
ck-finding plus a dynamic limit as described above will create a healthy sy=
stem.</div><div><br></div><div>If I&#39;m wrong, then it seems to me the mi=
ners will have a very strong incentive to, collectively, impose whatever ru=
les are necessary (maybe a soft-fork to put a hard cap on block size) to ma=
ke the system healthy again.</div></div><span class=3D"HOEnZb"><font color=
=3D"#888888"><div><br></div><div><br></div>-- <br><div>--<br>Gavin Andresen=
<br></div><div><br></div>
</font></span></div></div>
<br>-----------------------------------------------------------------------=
-------<br>
<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>

--001a113a5d5265159105173c0b29--