summaryrefslogtreecommitdiff
path: root/30/a942491220b3b37a4b1e2a0a44e4c36ca18cf2
blob: 71a64c2b4e1bedae24841feaf83b84f26c2acaa1 (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
Return-Path: <willtech@live.com.au>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 2E228AE7
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sun, 24 Dec 2017 01:13:33 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from APC01-SG2-obe.outbound.protection.outlook.com
	(mail-oln040092253062.outbound.protection.outlook.com [40.92.253.62])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id F0EC1174
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sun, 24 Dec 2017 01:13:30 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; 
	h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
	bh=mwRUlDDWx3667kNGKJZqrErN9wCWjU7YV203nDsadLs=;
	b=JKapyBfUa5ykRd+odGssfBySJnKLU6DCr6Z1FuJ0Pdy7SNn/CGaCznw/Sy1aw3JxDVefCTfa3jwFVjll9u/O1/8HP0tbEA4qtc3uo7YNRWJInlhYMGpN/LLCxDI0sEJDFWf6V0IyeS1FEsO+RitmX3iR99spNLXu5Pxa2itiuC8l9FYPIlORNkmO39O13PAhtHSm3xqoeDzA2DBmmSVN97kA70TfzLtwBphlv81zDIO+4qzB32y9VbVqegEv/598cPXnjHkszHCj+Cv2QcMEAvk5uV2qtpiyw4ZTlti8iu2pOfvkDyx8VuaH4nKSa3AuEoLx+xTAoS9JCu4dl+ahiA==
Received: from PU1APC01FT008.eop-APC01.prod.protection.outlook.com
	(10.152.252.53) by PU1APC01HT085.eop-APC01.prod.protection.outlook.com
	(10.152.253.150) with Microsoft SMTP Server (version=TLS1_2,
	cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.302.6;
	Sun, 24 Dec 2017 01:13:28 +0000
Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM (10.152.252.53) by
	PU1APC01FT008.mail.protection.outlook.com (10.152.252.66) with
	Microsoft SMTP Server (version=TLS1_2,
	cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
	15.20.302.6 via Frontend Transport; Sun, 24 Dec 2017 01:13:28 +0000
Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) by
	PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) with mapi id
	15.20.0345.013; Sun, 24 Dec 2017 01:13:28 +0000
From: Damian Williamson <willtech@live.com.au>
To: oscar <petdog@gmail.com>, Bitcoin Protocol Discussion
	<bitcoin-dev@lists.linuxfoundation.org>
Thread-Topic: [bitcoin-dev] what do you think about having a maximum fee rate?
Thread-Index: AQHTeza7OWiHP2TEfkWP1Y7oJ/WS7KNRr4Vn
Date: Sun, 24 Dec 2017 01:13:27 +0000
Message-ID: <PS2P216MB0179A68450E8AA5E4E77915B9D000@PS2P216MB0179.KORP216.PROD.OUTLOOK.COM>
References: <CAMjoVH+5W+1pO2bJSPNr20sGJDVvwrKS85KZZYsSdXjSL65jLA@mail.gmail.com>
In-Reply-To: <CAMjoVH+5W+1pO2bJSPNr20sGJDVvwrKS85KZZYsSdXjSL65jLA@mail.gmail.com>
Accept-Language: en-AU, en-US
Content-Language: en-AU
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-incomingtopheadermarker: OriginalChecksum:BCBE1F20305B852C6776BB1E93996D15F66796720C9BBBC62414D0429C860702;
	UpperCasedChecksum:77F2AB4B79F48440C3E29A889C92C011C13D044EC5066706E49650F026BC7D88;
	SizeAsReceived:7111; Count:46
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [laQSetuVmQSVFhMK5zxg/mG71EgosrdF]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; PU1APC01HT085;
	6:gEBXZyeMDh89UEgDs/pPR8Hkp7ol/lz2D6aYgQ9z7XgR9HJcN9dM+675h+7lGjZVoTzlOr8zcDt/oLQp7/VxH9Aor9swiwooaVVXO9Op/2Xs1zyI3NV7X6SiCJyOHd9nI6Njj/wrpPtMppHuz7GiLCH+KZz+y9a9yDpE7eR0afWxvKy5ajaoHdmm+A4NSckm22zlmpFeOEzQRbLqIAogmVNZ3f8eJ1gJE/hIwunPXziZMbeIa6QsAtOJVF/5QeicjCR4fqk9AhNmNiqo3WCX/UA8JuJh9GAixId2VQe4Nph53+6502ncGp15OWJRnhNd6iZJ3+4cn/FcOpUvr56zW5a4+D6wHbkHdouZ4sYQ1R4=;
	5:D0bfmRxHIq4G/3OC7yPDMtNtVrm3q9VYDQcIefhYsk0iBUz88O1J18Ily4GwG48eKWmaairox9xmOtPZfwuIwq1BCPOgr8pZJ1Agu3Ajw8rlJmn5QVMDpN+fNPhisfHj6QW/Aw44pKTii4dlk8JVUO5adWJ108zUO/Odz/RIjfM=;
	24:xZc44u//AfEsOsPVmUzNyJatHYXWxWCJ0OmLY2NN97tgqR1gHfMLPWkZuJufNyJxY8tkKQES+xRjowDhtwq+uuPRCj8d0+DDlg0YQGEAJqY=;
	7:9nJCMxDzHivldi6yCqwyuZD3LTFqgzXUTWRfmFfUdy7FAhzSDHyrdNZ66Y8dlkSMfKVw5CpDLfKRZxCtO9qI5e6kJAh02gpMa0YMZbeRZgGM5xG/B8m42gY2EDPIhqhkM6ermf1lWskIR8vmTVVCiUsjdm8tJ/UTDrwDCIJKfwj2Ffgo0XGqs6cIbWY4y45mYUcdsI4lYIxA8vZW6vpvbnq0SNWn1kdqpSMYnfo9lvqwdOWSK2U8kSeUemq+31Xu
x-incomingheadercount: 46
x-eopattributedmessage: 0
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
	RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045);
	SRVR:PU1APC01HT085; 
x-ms-traffictypediagnostic: PU1APC01HT085:
x-ms-office365-filtering-correlation-id: 2728411f-aff0-4284-a6ac-08d54a6b8a03
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031);
	SRVR:PU1APC01HT085; BCL:0; PCL:0;
	RULEID:(100000803101)(100110400095); SRVR:PU1APC01HT085; 
x-forefront-prvs: 05315CBE52
x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT;
	SFP:1901; SCL:1; SRVR:PU1APC01HT085;
	H:PS2P216MB0179.KORP216.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative;
	boundary="_000_PS2P216MB0179A68450E8AA5E4E77915B9D000PS2P216MB0179KORP_"
MIME-Version: 1.0
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2728411f-aff0-4284-a6ac-08d54a6b8a03
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Dec 2017 01:13:27.8994 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PU1APC01HT085
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, HTML_MESSAGE, RCVD_IN_DNSWL_NONE,
	T_REMOTE_IMAGE 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: Sun, 24 Dec 2017 04:28:49 +0000
Subject: [bitcoin-dev]  what do you think about having a maximum fee rate?
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: Sun, 24 Dec 2017 01:13:33 -0000

--_000_PS2P216MB0179A68450E8AA5E4E77915B9D000PS2P216MB0179KORP_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

If all transactions pay the proposed max then fee there are still going to =
be an awful lot of never confirming transactions once the transaction bandw=
idth limit is surpassed, as I suppose that it roughly is now:

https://bitinfocharts.com/comparison/bitcoin-transactions.html


This is what I have been working on as an alternative:

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-December/01537=
1.html


There is a previous thread, linked later on in the linked thread.


Regards,

Damian Williamson


________________________________
From: bitcoin-dev-bounces@lists.linuxfoundation.org <bitcoin-dev-bounces@li=
sts.linuxfoundation.org> on behalf of oscar via bitcoin-dev <bitcoin-dev@li=
sts.linuxfoundation.org>
Sent: Friday, 22 December 2017 7:26:12 PM
To: bitcoin-dev@lists.linuxfoundation.org
Subject: [bitcoin-dev] what do you think about having a maximum fee rate?

Hello,
I'm not a bitcoin developer, but I'd like to receive feedback on what
I think is a serious problem. Hope I'm not wasting your time.
I'm also sure this was already discussed, but google doesn't give me
any good result.

Let me explain: I think that the current incentive system doesn't
really align with the way miners are distributed (not very
decentralized, due to pools and huge asic producers).
I think big miners are incentivized to spam the network with low(ish)
fee transactions, thereby forcing regular users into paying extremely
high fees to be able to get their transactions confirmed.

Obviously this is the result of insufficient mining decentralization,
but as I will try to show, such an attack could be profitable even if
you are controlling just 5-10% of the hashing power, which could
always be easy for a big player and with some collusion.

Let's look at some numbers: https://i.imgur.com/sCn4eDG.png

[https://i.imgur.com/sCn4eDG.png]


These are 10 blocks mined yesterday, and they all have rewards hugely
exceeding the normal 12.5 mining output. Even taking the lowest value
of 20, it's a nice 60% extra profit for the miner. Let's say you
control 10% of the hashing power, and you spam enough transactions to
fill 144 blocks (1 day's worth) at 50 satoshi/byte, losing just 72 BTC
in fees.

(blocksize-in-bytes * fee-per-byte * Nblocks)/satoshis-in-btc =3D> (1e6
* 50 * 144)/1e8 =3D> 72

At the same time you will discover about 144*0.1=3D14.4 blocks per day.
Assuming the situation we see in the previous screenshot is what
happens when you have a mempool bigger than one day's worth of blocks,
you would get 20-12.5=3D7.5 extra BTC per block, which is 14.4*7.5=3D108
BTC, given your investment of 72 to spam the mempool. 32 btc extra
profit.

The big assumption here is that spamming 1 day of backlog in the
50satoshi/b range will get people to compete enough to push 7.5 btc of
fees in each block, but:

* https://jochen-hoenicke.de/queue/#30d this seems to confirm that
[https://jochen-hoenicke.de/queue/mempool-20170608.png]<https://jochen-hoen=
icke.de/queue/#30d>

Johoe's Mempool Size Statistics - jochen-hoenicke.de/queue<https://jochen-h=
oenicke.de/queue/#30d>
jochen-hoenicke.de
This page displays the number and size of the unconfirmed bitcoin transacti=
ons, also known as the transactions in the mempool. It gives a real-time vi=
ew and shows how ...


about half the mempool is in the 50satoshi/b range or less.
* https://blockchain.info/pools there are miners that control more than 10%
Bitcoin Hashrate Distribution - Blockchain.info<https://blockchain.info/poo=
ls>
blockchain.info
A pie chart showing the hashrate distribution between the major bitcoin min=
ing pools - Blockchain


* if you get enough new real transactions, it's not necessary to spam
a full 144 blocks worth each day, probably just ~50 would be enough,
cutting the spam cost substantially
* other miners could be playing the same game, helping you spam and
further reduce the costs of the attack
* you actually get 10% of the fees back by avoiding mining your spam
transactions in your own blocks
* most of the spam transactions won't actually end up in blocks if
there is enough pressure coming from real usage

This seems to indicate that you would actually get much higher profit
margins than my estimates. **PLEASE** correct me if my calculations or
my assumptions are wrong.

You might also say that doing this would force users out of the
system, decreasing the value of btc and disincentivizing miners from
continuing. On the other hand, a backlogged mempool could create the
impression of high(er) usage and increase scarcity by slowing down
movements, which could actually push the price upwards.

Of course, it's impossible to prove that this is happening. But the
fact that it is profitable makes me believe that it is happening.

I see some solutions to this, all with their own downsides:

- increasing block size every time there is sustained pressure
this attack wouldn't work, but the downsides have already been
discussed to death.

- change POW
Not clear it would fix this, aside from stimulating terrible
infighting. Controlling 5 to 10% of the hashing power seems too easy,
and I don't think it would be practical to change pow every time that
happens, as it would prevent the development of a solid POW support.

- protocol level MAX transaction fee
I personally think this would totally invalidate the attack by making
the spam more expensive than the fees you would recover.
There already is a minimum fee accepted by the nodes, at 1 satoshi per
byte. The maximum fee could be N times the minimum, maybe 100-200.
Meaning a maximum of 1-2btc in total fee rewards when the block size
is 1mb. Of course the actual values need more analysis, but 2btc -
together with the deflationary structure - seems enough to continue
motivating miners, without giving unfair advantage.

Yes, this would make it impossible to spend your way out of a
congested mempool. But if the mempool stays congested after this
change, you could have a bigger confidence that it's coming from real
usage or from someone willfully burning money, making a block size
increase much more justified.

Hope to hear your opinion,
have a nice day.

oscar
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
bitcoin-dev Info Page - Linux Foundation<https://lists.linuxfoundation.org/=
mailman/listinfo/bitcoin-dev>
lists.linuxfoundation.org
Bitcoin development and protocol discussion. This list is lightly moderated=
. - No offensive posts, no personal attacks. - Posts must concern developme=
nt of bitcoin ...



--_000_PS2P216MB0179A68450E8AA5E4E77915B9D000PS2P216MB0179KORP_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"><!-- P {margin-top:0;margi=
n-bottom:0;} --></style>
</head>
<body dir=3D"ltr">
<div id=3D"divtagdefaultwrapper" style=3D"font-size:12pt;color:#000000;font=
-family:Calibri,Helvetica,sans-serif;" dir=3D"ltr">
<div id=3D"divtagdefaultwrapper" style=3D"font-size: 12pt; color: rgb(0, 0,=
 0); font-family: Calibri,Helvetica,sans-serif,&quot;EmojiFont&quot;,&quot;=
Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Seg=
oe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;" dir=3D"ltr">
<p style=3D"margin-top:0;margin-bottom:0">If all transactions pay the propo=
sed max then fee there are still going to be an awful lot of never confirmi=
ng transactions once the transaction bandwidth limit is surpassed, as I sup=
pose that it roughly is now:</p>
<p style=3D"margin-top:0;margin-bottom:0"><a href=3D"https://bitinfocharts.=
com/comparison/bitcoin-transactions.html" class=3D"OWAAutoLink" id=3D"LPlnk=
510700" previewremoved=3D"true">https://bitinfocharts.com/comparison/bitcoi=
n-transactions.html</a><br>
</p>
<p style=3D"margin-top:0;margin-bottom:0"><br>
</p>
<p style=3D"margin-top:0;margin-bottom:0">This is what I have been working =
on as an alternative:</p>
<p style=3D"margin-top:0;margin-bottom:0"><a href=3D"https://lists.linuxfou=
ndation.org/pipermail/bitcoin-dev/2017-December/015371.html" class=3D"OWAAu=
toLink" id=3D"LPlnk273833" previewremoved=3D"true">https://lists.linuxfound=
ation.org/pipermail/bitcoin-dev/2017-December/015371.html</a><br>
</p>
<p style=3D"margin-top:0;margin-bottom:0"><br>
</p>
<p style=3D"margin-top:0;margin-bottom:0">There is a previous thread, linke=
d later on in the linked thread.</p>
<p style=3D"margin-top:0;margin-bottom:0"><br>
</p>
<p style=3D"margin-top:0;margin-bottom:0">Regards,</p>
<p style=3D"margin-top:0;margin-bottom:0">Damian Williamson<br>
</p>
<p style=3D"margin-top:0;margin-bottom:0"><br>
</p>
</div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> bitcoin-dev-bounces=
@lists.linuxfoundation.org &lt;bitcoin-dev-bounces@lists.linuxfoundation.or=
g&gt; on behalf of oscar via bitcoin-dev &lt;bitcoin-dev@lists.linuxfoundat=
ion.org&gt;<br>
<b>Sent:</b> Friday, 22 December 2017 7:26:12 PM<br>
<b>To:</b> bitcoin-dev@lists.linuxfoundation.org<br>
<b>Subject:</b> [bitcoin-dev] what do you think about having a maximum fee =
rate?</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">Hello,<br>
I'm not a bitcoin developer, but I'd like to receive feedback on what<br>
I think is a serious problem. Hope I'm not wasting your time.<br>
I'm also sure this was already discussed, but google doesn't give me<br>
any good result.<br>
<br>
Let me explain: I think that the current incentive system doesn't<br>
really align with the way miners are distributed (not very<br>
decentralized, due to pools and huge asic producers).<br>
I think big miners are incentivized to spam the network with low(ish)<br>
fee transactions, thereby forcing regular users into paying extremely<br>
high fees to be able to get their transactions confirmed.<br>
<br>
Obviously this is the result of insufficient mining decentralization,<br>
but as I will try to show, such an attack could be profitable even if<br>
you are controlling just 5-10% of the hashing power, which could<br>
always be easy for a big player and with some collusion.<br>
<br>
Let's look at some numbers: <a href=3D"https://i.imgur.com/sCn4eDG.png" id=
=3D"LPlnk393353" previewremoved=3D"true">
https://i.imgur.com/sCn4eDG.png</a>
<p><img style=3D"max-width: 99.9%;" src=3D"https://i.imgur.com/sCn4eDG.png"=
></p>
<br>
<br>
These are 10 blocks mined yesterday, and they all have rewards hugely<br>
exceeding the normal 12.5 mining output. Even taking the lowest value<br>
of 20, it's a nice 60% extra profit for the miner. Let's say you<br>
control 10% of the hashing power, and you spam enough transactions to<br>
fill 144 blocks (1 day's worth) at 50 satoshi/byte, losing just 72 BTC<br>
in fees.<br>
<br>
(blocksize-in-bytes * fee-per-byte * Nblocks)/satoshis-in-btc =3D&gt; (1e6<=
br>
* 50 * 144)/1e8 =3D&gt; 72<br>
<br>
At the same time you will discover about 144*0.1=3D14.4 blocks per day.<br>
Assuming the situation we see in the previous screenshot is what<br>
happens when you have a mempool bigger than one day's worth of blocks,<br>
you would get 20-12.5=3D7.5 extra BTC per block, which is 14.4*7.5=3D108<br=
>
BTC, given your investment of 72 to spam the mempool. 32 btc extra<br>
profit.<br>
<br>
The big assumption here is that spamming 1 day of backlog in the<br>
50satoshi/b range will get people to compete enough to push 7.5 btc of<br>
fees in each block, but:<br>
<br>
* <a href=3D"https://jochen-hoenicke.de/queue/#30d" id=3D"LPlnk430045" prev=
iewremoved=3D"true">
https://jochen-hoenicke.de/queue/#30d</a> this seems to confirm that
<div id=3D"LPBorder_GT_15140779397770.3370722298189792" style=3D"margin-bot=
tom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id=3D"LPContainer_15140779397600.981043184722609" style=3D"width: 90=
%; background-color: rgb(255, 255, 255); position: relative; overflow: auto=
; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1p=
x dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);"=
 role=3D"presentation" cellspacing=3D"0">
<tbody>
<tr style=3D"border-spacing: 0px;" valign=3D"top">
<td id=3D"ImageCell_15140779397620.8358455764708478" style=3D"width: 250px;=
 position: relative; display: table-cell; padding-right: 20px;" colspan=3D"=
1">
<div id=3D"LPImageContainer_15140779397620.8360449435905588" style=3D"backg=
round-color: rgb(255, 255, 255); height: 117px; position: relative; margin:=
 auto; display: table; width: 250px;">
<a id=3D"LPImageAnchor_15140779397650.17763851886409165" style=3D"display: =
table-cell; text-align: center;" href=3D"https://jochen-hoenicke.de/queue/#=
30d" target=3D"_blank"><img style=3D"display: inline-block; max-width: 250p=
x; max-height: 250px; height: 117px; width: 250px; border-width: 0px; verti=
cal-align: bottom;" id=3D"LPThumbnailImageID_15140779397650.750990300964748=
6" width=3D"250" height=3D"117" src=3D"https://jochen-hoenicke.de/queue/mem=
pool-20170608.png"></a></div>
</td>
<td id=3D"TextCell_15140779397660.6804985477247634" style=3D"vertical-align=
: top; position: relative; padding: 0px; display: table-cell;" colspan=3D"2=
">
<div id=3D"LPRemovePreviewContainer_15140779397660.19451545027346695"></div=
>
<div id=3D"LPExpandDescriptionContainer_15140779397660.07708697508127627"><=
/div>
<div id=3D"LPTitle_15140779397660.006002973022620095" style=3D"top: 0px; co=
lor: rgb(0, 120, 215); font-weight: 400; font-size: 21px; font-family: &quo=
t;wf_segoe-ui_light&quot;,&quot;Segoe UI Light&quot;,&quot;Segoe WP Light&q=
uot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans-serif; lin=
e-height: 21px;">
<a id=3D"LPUrlAnchor_15140779397670.5020064760957874" style=3D"text-decorat=
ion: none;" href=3D"https://jochen-hoenicke.de/queue/#30d" target=3D"_blank=
">Johoe's Mempool Size Statistics - jochen-hoenicke.de/queue</a></div>
<div id=3D"LPMetadata_15140779397680.9085170575351131" style=3D"margin: 10p=
x 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot=
;wf_segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,=
Arial,sans-serif; font-size: 14px; line-height: 14px;">
jochen-hoenicke.de</div>
<div id=3D"LPDescription_15140779397690.7955075301785695" style=3D"display:=
 block; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot;wf_=
segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Aria=
l,sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overfl=
ow: hidden;" altdesc=3D"This server has a mempool limit of 500 MB. The memp=
ool is currently full and low fee transactions are evicted. =0A=
This page displays the number and size of the unconfirmed bitcoin transacti=
ons, also known as the transactions in the mempool. It gives a real-time vi=
ew and shows how the mempool evolves over the time.&lt;br/&gt;&lt;br/&gt;Th=
e transactions are colored by the amount of fee they pay per byte. The data=
 is generated from my full node and is updated every minute. Note that in b=
itcoin there is no global mempool; every node keeps its own set of unconfir=
med transactions that it has seen. The mempool is also cleared when I reboo=
t my node.&lt;br/&gt;&lt;br/&gt;The data is separated into different fee le=
vels given in satoshi per bytes. The lowest colored stripe is for transacti=
ons that pay the lowest fee. Higher fee transactions are stacked on top of =
it. Since miners prefer high fee transactions, a new block usually only rem=
oves the top 1000 kB from the queue.">
This page displays the number and size of the unconfirmed bitcoin transacti=
ons, also known as the transactions in the mempool. It gives a real-time vi=
ew and shows how ...</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
about half the mempool is in the 50satoshi/b range or less.<br>
* <a href=3D"https://blockchain.info/pools" id=3D"LPlnk885015" previewremov=
ed=3D"true">
https://blockchain.info/pools</a> there are miners that control more than 1=
0%
<div id=3D"LPBorder_GT_15140779717770.7357731221258164" style=3D"margin-bot=
tom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id=3D"LPContainer_15140779717690.5380671833139536" style=3D"width: 9=
0%; background-color: rgb(255, 255, 255); position: relative; overflow: aut=
o; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1=
px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);=
" role=3D"presentation" cellspacing=3D"0">
<tbody>
<tr style=3D"border-spacing: 0px;" valign=3D"top">
<td id=3D"TextCell_15140779717700.9245115839792243" style=3D"vertical-align=
: top; position: relative; padding: 0px; display: table-cell;" colspan=3D"2=
">
<div id=3D"LPRemovePreviewContainer_15140779717700.9573351890057202"></div>
<div id=3D"LPExpandDescriptionContainer_15140779717700.8834056602335468"></=
div>
<div id=3D"LPTitle_15140779717700.5524442635790349" style=3D"top: 0px; colo=
r: rgb(0, 120, 215); font-weight: 400; font-size: 21px; font-family: &quot;=
wf_segoe-ui_light&quot;,&quot;Segoe UI Light&quot;,&quot;Segoe WP Light&quo=
t;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans-serif; line-=
height: 21px;">
<a id=3D"LPUrlAnchor_15140779717710.8920784365342228" style=3D"text-decorat=
ion: none;" href=3D"https://blockchain.info/pools" target=3D"_blank">Bitcoi=
n Hashrate Distribution - Blockchain.info</a></div>
<div id=3D"LPMetadata_15140779717710.701833965588494" style=3D"margin: 10px=
 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot;=
wf_segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,A=
rial,sans-serif; font-size: 14px; line-height: 14px;">
blockchain.info</div>
<div id=3D"LPDescription_15140779717720.47547707574858455" style=3D"display=
: block; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot;wf=
_segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Ari=
al,sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overf=
low: hidden;" altdesc=3D"The graph below shows the market share of the most=
 popular bitcoin mining pools. It should only be used as a rough estimate a=
nd for various reasons will not be 100% accurate. A large portion of Unknow=
n blocks does not mean an attack on the network, it simply means we have be=
en unable to determine the origin.">
A pie chart showing the hashrate distribution between the major bitcoin min=
ing pools - Blockchain</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
* if you get enough new real transactions, it's not necessary to spam<br>
a full 144 blocks worth each day, probably just ~50 would be enough,<br>
cutting the spam cost substantially<br>
* other miners could be playing the same game, helping you spam and<br>
further reduce the costs of the attack<br>
* you actually get 10% of the fees back by avoiding mining your spam<br>
transactions in your own blocks<br>
* most of the spam transactions won't actually end up in blocks if<br>
there is enough pressure coming from real usage<br>
<br>
This seems to indicate that you would actually get much higher profit<br>
margins than my estimates. **PLEASE** correct me if my calculations or<br>
my assumptions are wrong.<br>
<br>
You might also say that doing this would force users out of the<br>
system, decreasing the value of btc and disincentivizing miners from<br>
continuing. On the other hand, a backlogged mempool could create the<br>
impression of high(er) usage and increase scarcity by slowing down<br>
movements, which could actually push the price upwards.<br>
<br>
Of course, it's impossible to prove that this is happening. But the<br>
fact that it is profitable makes me believe that it is happening.<br>
<br>
I see some solutions to this, all with their own downsides:<br>
<br>
- increasing block size every time there is sustained pressure<br>
this attack wouldn't work, but the downsides have already been<br>
discussed to death.<br>
<br>
- change POW<br>
Not clear it would fix this, aside from stimulating terrible<br>
infighting. Controlling 5 to 10% of the hashing power seems too easy,<br>
and I don't think it would be practical to change pow every time that<br>
happens, as it would prevent the development of a solid POW support.<br>
<br>
- protocol level MAX transaction fee<br>
I personally think this would totally invalidate the attack by making<br>
the spam more expensive than the fees you would recover.<br>
There already is a minimum fee accepted by the nodes, at 1 satoshi per<br>
byte. The maximum fee could be N times the minimum, maybe 100-200.<br>
Meaning a maximum of 1-2btc in total fee rewards when the block size<br>
is 1mb. Of course the actual values need more analysis, but 2btc -<br>
together with the deflationary structure - seems enough to continue<br>
motivating miners, without giving unfair advantage.<br>
<br>
Yes, this would make it impossible to spend your way out of a<br>
congested mempool. But if the mempool stays congested after this<br>
change, you could have a bigger confidence that it's coming from real<br>
usage or from someone willfully burning money, making a block size<br>
increase much more justified.<br>
<br>
Hope to hear your opinion,<br>
have a nice day.<br>
<br>
oscar<br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
bitcoin-dev@lists.linuxfoundation.org<br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
id=3D"LPlnk733953" previewremoved=3D"true">https://lists.linuxfoundation.or=
g/mailman/listinfo/bitcoin-dev</a>
<div id=3D"LPBorder_GT_15140779731270.5875558533272487" style=3D"margin-bot=
tom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id=3D"LPContainer_15140779731200.9319951984762832" style=3D"width: 9=
0%; background-color: rgb(255, 255, 255); position: relative; overflow: aut=
o; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1=
px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);=
" role=3D"presentation" cellspacing=3D"0">
<tbody>
<tr style=3D"border-spacing: 0px;" valign=3D"top">
<td id=3D"TextCell_15140779731220.9811066324724635" style=3D"vertical-align=
: top; position: relative; padding: 0px; display: table-cell;" colspan=3D"2=
">
<div id=3D"LPRemovePreviewContainer_15140779731220.6300515776383511"></div>
<div id=3D"LPExpandDescriptionContainer_15140779731220.5982129114916374"></=
div>
<div id=3D"LPTitle_15140779731220.7311807960329236" style=3D"top: 0px; colo=
r: rgb(0, 120, 215); font-weight: 400; font-size: 21px; font-family: &quot;=
wf_segoe-ui_light&quot;,&quot;Segoe UI Light&quot;,&quot;Segoe WP Light&quo=
t;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans-serif; line-=
height: 21px;">
<a id=3D"LPUrlAnchor_15140779731230.49464481944529914" style=3D"text-decora=
tion: none;" href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bit=
coin-dev" target=3D"_blank">bitcoin-dev Info Page - Linux Foundation</a></d=
iv>
<div id=3D"LPMetadata_15140779731230.6949058253373811" style=3D"margin: 10p=
x 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot=
;wf_segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,=
Arial,sans-serif; font-size: 14px; line-height: 14px;">
lists.linuxfoundation.org</div>
<div id=3D"LPDescription_15140779731240.8432951107047432" style=3D"display:=
 block; color: rgb(102, 102, 102); font-weight: 400; font-family: &quot;wf_=
segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Aria=
l,sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overfl=
ow: hidden;" altdesc=3D"- Generally encouraged: patches, notification of pu=
ll requests, BIP proposals, academic paper announcements. And discussions t=
hat follow. =0A=
- Generally discouraged: shower thoughts, wild speculation, jokes, &#43;1s,=
 non-technical bitcoin issues, rehashing settled topics without new data, m=
oderation concerns.&lt;br/&gt;&lt;br/&gt;Subscribe to bitcoin-dev by fillin=
g out the following form. You will be sent email requesting confirmation, t=
o prevent others from gratuitously subscribing you. This is a hidden list, =
which means that the list of members is available only to the list administ=
rator.">
Bitcoin development and protocol discussion. This list is lightly moderated=
. - No offensive posts, no personal attacks. - Posts must concern developme=
nt of bitcoin ...</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
</div>
</span></font></div>
</div>
</body>
</html>

--_000_PS2P216MB0179A68450E8AA5E4E77915B9D000PS2P216MB0179KORP_--