Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 2E228AE7 for ; 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 ; 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 To: oscar , Bitcoin Protocol Discussion 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: References: In-Reply-To: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 on behalf of oscar via bitcoin-dev 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] Johoe's Mempool Size Statistics - jochen-hoenicke.de/queue 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 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 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

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:

https://bitinfocharts.com/comparison/bitcoi= n-transactions.html


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

https://lists.linuxfound= ation.org/pipermail/bitcoin-dev/2017-December/015371.html


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


Regards,

Damian Williamson



From: bitcoin-dev-bounces= @lists.linuxfoundation.org <bitcoin-dev-bounces@lists.linuxfoundation.or= g> on behalf of oscar via bitcoin-dev <bitcoin-dev@lists.linuxfoundat= ion.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



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<= br> * 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
<= /div>
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 1= 0%
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.or= g/mailman/listinfo/bitcoin-dev
bitcoin-dev Info Page - Linux Foundation
lists.linuxfoundation.org

--_000_PS2P216MB0179A68450E8AA5E4E77915B9D000PS2P216MB0179KORP_--