summaryrefslogtreecommitdiff
path: root/23/fe18d5e1337122c464f92d8da8d28d93754e2f
blob: 83252e217f0cad16fa80d2b58d3e053f16cdba54 (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
Return-Path: <elliot.olds@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 4CEBE7AE
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 12 Aug 2015 03:35:45 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-io0-f172.google.com (mail-io0-f172.google.com
	[209.85.223.172])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 2F12010D
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 12 Aug 2015 03:35:44 +0000 (UTC)
Received: by iodt126 with SMTP id t126so7947553iod.2
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 11 Aug 2015 20:35:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=SirAW88wbqm56iFaYbYh+GDYxKR4Ti7ngT/qAJ4HA3E=;
	b=t7SgjqHjX8BAWeUmy8PS4coeY5T0cF0hjZRWdq52v1u7Quyv3JEKdsyxuE852IafLF
	vlDRwRogTVfch0EL+LVDtRv051G8N3KP3v0Vs5z+ke3uNhHaFgOpRbTLfrWAWjDcPPUA
	c7J1kxQJNXpGTEylfexl+k/aGfW1bOYUhWN4ffSqcS/SBo4S494Xb/QgKGKFlOzJs7LI
	X4JCZ6SqXrHfnatbU6ioSpD7tAjuQg7Hmz/fhiuKwPGYVVJpPN4GKwkPBBScQjXkUwTb
	aZ9k5o/DxtNKHEdsQBzdBPQ9U23YczgQ8rkkYyckNqiR1absl0NObpx1mzCKtVxhrWg2
	gR3w==
MIME-Version: 1.0
X-Received: by 10.107.134.94 with SMTP id i91mr31920998iod.162.1439350543596; 
	Tue, 11 Aug 2015 20:35:43 -0700 (PDT)
Received: by 10.79.97.135 with HTTP; Tue, 11 Aug 2015 20:35:43 -0700 (PDT)
In-Reply-To: <CAPg+sBgtVwgf4BBv6SDR_L1oaED9Cx3onC1FZbT+PX1rD2fSEA@mail.gmail.com>
References: <CABsx9T16fH+56isq95m4+QWsKwP==tf75ep8ghnEcBoV4OtZJA@mail.gmail.com>
	<CABm2gDpwMQzju+Gsoe3qMi60MPr7OAiSuigy3RdA1xh-SwFzbw@mail.gmail.com>
	<CABm2gDoz4NMEQuQj6UHCYYCwihZrEC4Az8xDvTBwiZDf9eQ7-w@mail.gmail.com>
	<8181630.GdAj0CPZYc@coldstorage>
	<CABm2gDp2svO2G5bHs5AcjjN8dmP6P5nv0xriWez-pvzs2oBL5w@mail.gmail.com>
	<CALgxB7sQM5ObxyxDiN_BOyJrgsgfQ6PAtJi52dJENfWCRKywWg@mail.gmail.com>
	<CABm2gDq+2mXEN2hZY6_JYXAJX=Wxrxr6jm86P6g2YD4zzy-=Nw@mail.gmail.com>
	<CALgxB7sLsod9Kb-pwxGwCtPpWXsUusDE1nJ7p4nbFMG8mDWFtg@mail.gmail.com>
	<CAPg+sBjGVk1jHraLZTroRneL6L1HxZ-bTGaLNwakcDSDDHqauA@mail.gmail.com>
	<CALgxB7unOhWjoCcvGoCqzMnzwTL8XdJWt18kdiDSEeJ_cuiHqg@mail.gmail.com>
	<CALqxMTFfUdMuNsNnx-B+SPq7HvQyA+NkvFHGVYPiFHn-ZipVJw@mail.gmail.com>
	<CALgxB7vcQpPFcFYX72hkYuE8Da9saKKvSNWdh1m1dCvCCcwA=Q@mail.gmail.com>
	<CAPg+sBgtVwgf4BBv6SDR_L1oaED9Cx3onC1FZbT+PX1rD2fSEA@mail.gmail.com>
Date: Tue, 11 Aug 2015 20:35:43 -0700
Message-ID: <CA+BnGuF_pNrmvqVzdficuGWO7RF8ROa2W4YDkYXCL6ODWE4k=Q@mail.gmail.com>
From: Elliot Olds <elliot.olds@gmail.com>
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary=001a113ec89cdbc2b4051d14e921
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,LOTS_OF_MONEY,
	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
Subject: Re: [bitcoin-dev] Fees and the block-finding process
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: Wed, 12 Aug 2015 03:35:45 -0000

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

On Tue, Aug 11, 2015 at 2:51 PM, Pieter Wuille via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> On Tue, Aug 11, 2015 at 11:35 PM, Michael Naber <mickeybob@gmail.com>
> wrote:
>
>> Bitcoin would be better money than current money even if it were a bit
>> more expensive to transact, simply because of its other great
>> characteristics (trustlessness, limited supply, etc). However... it is not
>> better than something else sharing all those same characteristics but which
>> is also less expensive. The best money will win, and if Bitcoin doesn't
>> increase capacity then it won't remain the best.
>>
>
> If it is less expensive, it is harder to be reliable (because it's easier
> for a sudden new use case to outbid the available space), which is less
> useful for a payment mechanism.
>

It depends on which use case's reliability that you focus on. For any
specific use case of Bitcoin, that use case will be more reliable with a
larger block size (ignoring centralization effects).

The effect that I think you're talking about is that with lower fees, some
use cases will exist that otherwise wouldn't have been possible with higher
fees / smaller blocks, and these "low fee only" use cases will not be as
reliable as the use cases you'd see with high fees. But that puts you in a
position or arguing that it's better that low fee use cases never exist at
all, than existing at some high risk of being priced out eventually. Do we
know with high confidence how high tx fees will be in the future? Should it
be up to us discourage low fee use cases from being tried, because we think
the risk that they'll later be priced out is too great? Shouldn't we let
the people developing those use cases make that call? Maybe they don't mind
the unreliability. Maybe it's worth it to them if their use case only lasts
for a few months.

The important point to note is that the reliability of a use case is
determined by the fees that people are willing to pay for that use case,
not the fees that are actually paid. If big banks are willing to pay $1 /
tx for some use case right now, but they only need 200 of these txns per
block, then they might be paying only 5 cents / tx because no one is
forcing them to pay more. The fact that they're only paying 5 cents / tx
now doesn't make them any more vulnerable to new use cases than if they
were paying $1 / tx now. If a new use case started bidding up tx fees, the
banks would just increase their tx fees as high as they needed to (up to
$1).

The reason that larger block sizes increase reliability for any given use
case is that (a) You will never be priced out of blocks by a use case that
is only willing to pay lower fees than you. This is true regardless of the
block size. At worst they'll just force you to pay more in fees and lose
some of your consumer surplus. (b) If a use case is willing to pay higher
fees than you, then they're basically stepping ahead of you in line for
block space and pushing you closer to the edge of not being included in
blocks. The more space that exists between your use case and the marginal
use cases that are just barely getting included in blocks, the less
vulnerable you are to getting pushed out of blocks by new use cases.

If this is tricky to understand, here's an example that will make it clear:

Assume blocks can hold 2000 txns per MB. Before the new use case is
discovered, demand looks like this:

500 txns will pay $1 fees
1000 txns will pay 50 cent fees
2000 txns will pay 5 cent fees
8000 txns will pay 2 cent fees
15,000 txns will pay 1 cent fees.
100,000 txns will pay 0.01 cent fees.

So at a block size of 1MB, fees are 5 cents and user surplus is $925 per
block ($0.95 * 500 + 0.45 * 1000).
At a block size of 8 MB, fees are 1 cent and user surplus is $1,145 per
block ($0.99 * 500 + 0.49 * 1000 + $0.04 * 2000 + $0.01 * 8000).

Now a new use case comes into play and this is added to demand:

3000 txns will pay $5 / tx

That demand changes the scenarios like such:

At 1 MB fees jump to $5, user surplus is $0, and the $925 of value the
previous users were getting is lost. All existing use cases are priced out,
because there wasn't enough room in the blocks to accommodate them plus
this new use case.

At 8 MB, fees would stay at 1 cent, user surplus would be $16,115, and $0
in value would be lost (3000 users who were paying 1 cent for txns that
they valued only at 1 cent would stop making txns). All use cases
corresponding to the txns that were willing to pay at least 2 cents are
still viable, because there was enough space in blocks to accommodate them
plus the 3000 new high fee txns.

Let's say you're running the service that represents the 2000 txns willing
to pay 5 cents each on the demand curve specified above. Let's say you're
worried about being priced out of blocks. Which situation do you want to be
in, the one with 1 MB blocks or 8 MB blocks? It's pretty clear that your
best chance to remain viable is with larger blocks.

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

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On T=
ue, Aug 11, 2015 at 2:51 PM, Pieter Wuille via bitcoin-dev <span dir=3D"ltr=
">&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_b=
lank">bitcoin-dev@lists.linuxfoundation.org</a>&gt;</span> wrote:<br><block=
quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"ltr"><span>On Tue, Aug 11, 2015 at 11:=
35 PM, Michael Naber <span dir=3D"ltr">&lt;<a href=3D"mailto:mickeybob@gmai=
l.com" target=3D"_blank">mickeybob@gmail.com</a>&gt;</span> wrote:<br></spa=
n><div class=3D"gmail_extra"><div class=3D"gmail_quote"><span><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex"><div dir=3D"ltr">Bitcoin would be better money than curre=
nt money even if it were a bit more expensive to transact, simply because o=
f its other great characteristics (trustlessness, limited supply, etc). How=
ever... it is not better than something else sharing all those same charact=
eristics but which is also less expensive. The best money will win, and if =
Bitcoin doesn&#39;t increase capacity then it won&#39;t remain the best.<br=
></div></blockquote><div><br></div></span><div>If it is less expensive, it =
is harder to be reliable (because it&#39;s easier for a sudden new use case=
 to outbid the available space), which is less useful for a payment mechani=
sm.<br></div></div></div></div></blockquote><div><br></div><div>It depends =
on which use case&#39;s reliability that you focus on. For any specific use=
 case of Bitcoin, that use case will be more reliable with a larger block s=
ize (ignoring centralization effects).=C2=A0</div><div><br></div><div>The e=
ffect that I think you&#39;re talking about is that with lower fees, some u=
se cases will exist that otherwise wouldn&#39;t have been possible with hig=
her fees / smaller blocks, and these &quot;low fee only&quot; use cases wil=
l not be as reliable as the use cases you&#39;d see with high fees. But tha=
t puts you in a position or arguing that it&#39;s better that low fee use c=
ases never exist at all, than existing at some high risk of being priced ou=
t eventually. Do we know with high confidence how high tx fees will be in t=
he future? Should it be up to us discourage low fee use cases from being tr=
ied, because we think the risk that they&#39;ll later be priced out is too =
great? Shouldn&#39;t we let the people developing those use cases make that=
 call? Maybe they don&#39;t mind the unreliability. Maybe it&#39;s worth it=
 to them if their use case only lasts for a few months.</div><div><br></div=
><div>The important point to note is that the reliability of a use case is =
determined by the fees that people are willing to pay for that use case, no=
t the fees that are actually paid. If big banks are willing to pay $1 / tx =
for some use case right now, but they only need 200 of these txns per block=
, then they might be paying only 5 cents / tx because no one is forcing the=
m to pay more. The fact that they&#39;re only paying 5 cents / tx now doesn=
&#39;t make them any more vulnerable to new use cases than if they were pay=
ing $1 / tx now. If a new use case started bidding up tx fees, the banks wo=
uld just increase their tx fees as high as they needed to (up to $1).=C2=A0=
</div><div><br></div><div>The reason that larger block sizes increase relia=
bility for any given use case is that (a) You will never be priced out of b=
locks by a use case that is only willing to pay lower fees than you. This i=
s true regardless of the block size. At worst they&#39;ll just force you to=
 pay more in fees and lose some of your consumer surplus. (b) If a use case=
 is willing to pay higher fees than you, then they&#39;re basically steppin=
g ahead of you in line for block space and pushing you closer to the edge o=
f not being included in blocks. The more space that exists between your use=
 case and the marginal use cases that are just barely getting included in b=
locks, the less vulnerable you are to getting pushed out of blocks by new u=
se cases.=C2=A0</div><div><br></div><div>If this is tricky to understand, h=
ere&#39;s an example that will make it clear:</div><div><br></div><div>Assu=
me blocks can hold 2000 txns per MB. Before the new use case is discovered,=
 demand looks like this:=C2=A0</div><div><br></div><div>500 txns will pay $=
1 fees</div><div>1000 txns will pay 50 cent fees</div><div>2000 txns will p=
ay 5 cent fees</div><div>8000 txns will pay 2 cent fees</div><div>15,000 tx=
ns will pay 1 cent fees.</div><div>100,000 txns will pay 0.01 cent fees.</d=
iv><div><br></div><div>So at a block size of 1MB, fees are 5 cents and user=
 surplus is $925 per block ($0.95 * 500 + 0.45 * 1000).</div><div>At a bloc=
k size of 8 MB, fees are 1 cent and user surplus is $1,145 per block ($0.99=
 * 500 + 0.49 * 1000 + $0.04 * 2000 + $0.01 * 8000).</div><div><br></div><d=
iv>Now a new use case comes into play and this is added to demand:</div><di=
v><br></div><div>3000 txns will pay $5 / tx</div><div><br></div><div>That d=
emand changes the scenarios like such:</div><div><br></div><div>At 1 MB fee=
s jump to $5, user surplus is $0, and the $925 of value the previous users =
were getting is lost. All existing use cases are priced out, because there =
wasn&#39;t enough room in the blocks to accommodate them plus this new use =
case.</div><div><br></div><div>At 8 MB, fees would stay at 1 cent, user sur=
plus would be $16,115, and $0 in value would be lost (3000 users who were p=
aying 1 cent for txns that they valued only at 1 cent would stop making txn=
s). All use cases corresponding to the txns that were willing to pay at lea=
st 2 cents are still viable, because there was enough space in blocks to ac=
commodate them plus the 3000 new high fee txns.</div><div><br></div><div>Le=
t&#39;s say you&#39;re running the service that represents the 2000 txns wi=
lling to pay 5 cents each on the demand curve specified above. Let&#39;s sa=
y you&#39;re worried about being priced out of blocks. Which situation do y=
ou want to be in, the one with 1 MB blocks or 8 MB blocks? It&#39;s pretty =
clear that your best chance to remain viable is with larger blocks.</div><d=
iv><br></div><div>=C2=A0<br></div></div></div></div>

--001a113ec89cdbc2b4051d14e921--