Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Btc Drak
On Mon, Jun 8, 2015 at 11:01 PM, Raystonn . rayst...@hotmail.com wrote:

 No, with no blocksize limit, a spammer would would flood the network with
 transactions until they ran out of money.


I think you are forgetting even if you remove the blocksize limit, there is
still a hard message size limit imposed by the p2p protocol. Block would
de-facto be limited to this size.
--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Raystonn .
 Bitcoin is a global consensus system - if you're (sic) bandwidth isn't 
 sufficient to keep up you are not part of the consensus.

Bandwidth can be purchased.  Infrastructure to handled increasing 
transaction volume can be purchased.  The very fees being paid by a spammer 
will be used to increase the miners' ability to absorb even more fees.  The 
blocksize limit cannot respond in such a dynamic way to attacks.  Miners 
cannot buy a greater blocksize limit in response to a spammer that is paying 
high fees to deny transaction confirmation to the rest of the planet in an 
attempt to destroy the network.  The blocksize limit is creating an attack 
that can be maintained forever by any organization that can afford to fill 
the blocks.  This attack would get incredibly cheaper once the BTCUSD market 
tanks in response to the lack of usability of the Bitcoin network, meaning 
it would be a self-reinforcing attack that would likely destroy Bitcoin for 
as long as an attacker wants to keep it up, or until you patch it to remove 
the limit after-the-fact, which might be too little too late.

If this isn't fixed, I would expect to see it carried out at some point by 
someone with a large short position in BTCUSD.

-Original Message- 
From: Peter Todd
Sent: Monday, June 08, 2015 3:18 PM
To: Raystonn .
Cc: Patrick Mccorry (PGR) ; Bitcoin Dev
Subject: Re: [Bitcoin-development] New attack identified and potential 
solution described: Dropped-transaction spam attack against the blocksize 
limit

On Mon, Jun 08, 2015 at 03:01:34PM -0700, Raystonn . wrote:
 There will always be a blocksize limit based on technological
 considerations - the network has a finite bandwidth limit.

 A bandwidth limit is not the same as a blocksize limit.  Bandwidth
 is unique to every individual.  Miners in China have different
 bandwidth and connectivity than miners in the U.S., for example.
 But the block size limit is dictated for eveyone.  They are not
 comparable.

Bitcoin is a global consensus system - if you're bandwidth isn't
sufficient to keep up you are not part of the consensus.

The blocksize limit *is* what determines the minimum bandwidth required
to stay in consensus.

 Without a blocksize limit the attacker would just flood the
 network until the bandwidth usage became so great that consensus
 would fail, rendering Bitcoin both worthless, and insecure.

 No, with no blocksize limit, a spammer would would flood the network
 with transactions until they ran out of money.  Meanwhile, everyone
 would jump on board trying to mine the blocks to collect the fees
 from the spammers.  It could be one of the greatest transfers of
 wealth ever.  Bitcoin infrastructure would build up to handle the
 required bandwidth, paid for by the very entity spamming the
 network.  Bitcoin would flourish, growing wildly as long as the fees
 kept coming.  This is antifragility at its best.

Again, in your scenario if the bandwidth consumed by those transactions
was sufficiently high, the network would collapse because consensus
would fail.

Why wouldn't that bandwidth be high enough to cause that collapse?
Because of the blocksize limit! (combined with an intelligent mempool
that increases the minimum fee/KB appropriately - we don't have that
yet)

 The worst an attacker flooding the network with transactions with
 a blocksize limit can do is raise costs, without harming security.

 No, at attacker flooding the network with transactions with a
 blocksize limit can keep their fees high enough that perhaps 1% of
 transactions coming from real end-users go through.  At this point
 everyone would give up on Bitcoin as it would become completely
 unusable.  The BTCUSD market would tank, making it even easier to
 pay the transaction fees to keep real transactions out of blocks, as
 it would continue to become cheaper and eventually cost-free to
 obtain the bitcoin fees through market purchase.

I already did the math for you on that: the maximum transaction fee
you'd see in that kind of attack is around $2.5 USD/tx. That definitely
is not high enough to make Bitcoin non-viable - I personally could
easily afford fees like that for about 90% of my transactions this year
by value, as I mainly use Bitcoin to get paid by my clients around the
world. In fact, just today O'Reilly paid $15 USD to send me a wire
transfer for expenses related to a conference I was invited too.

A much more realistic transaction flood scenario - one that didn't raise
serious questions about whether or not the attacker could afford to 51%
attack Bitcoin - would raise tx fees to something more like $0.25/tx


--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Raystonn .
Not forgetting, simply deferring discussion on that.  We’ve a much smaller 
limit to deal with right now.  But even that limit would have to go to remove 
this attack.

From: Btc Drak 
Sent: Monday, June 08, 2015 3:07 PM
To: Raystonn . 
Cc: Peter Todd ; Bitcoin Dev ; Patrick Mccorry (PGR) 
Subject: Re: [Bitcoin-development] New attack identified and potential solution 
described: Dropped-transaction spam attack against the blocksize limit

On Mon, Jun 8, 2015 at 11:01 PM, Raystonn . rayst...@hotmail.com wrote:

  No, with no blocksize limit, a spammer would would flood the network with
  transactions until they ran out of money.

I think you are forgetting even if you remove the blocksize limit, there is 
still a hard message size limit imposed by the p2p protocol. Block would 
de-facto be limited to this size.--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Raystonn .
 the only way a transaction can be removed from a Bitcoin Core mempool is 
 through it getting mined, double-spent, or the node restarting.

Right.  And that results in some transactions with insufficient fees getting 
dropped today after many hours.

 The protection that we have against that attack is that you need access to 
 a lot of bitcoins to pay enough fees.

That's no protection against a well-funded private and/or public entity. 
Without the block size limit, this attack doesn't exist.  It would simply 
result in a transfer of wealth from spammer to miners, which is a nicely 
antifragile response for the Bitcoin network.


-Original Message- 
From: Peter Todd
Sent: Monday, June 08, 2015 2:33 PM
To: Raystonn .
Cc: Patrick Mccorry (PGR) ; Bitcoin Dev
Subject: Re: [Bitcoin-development] New attack identified and potential 
solution described: Dropped-transaction spam attack against the blocksize 
limit

  there is no memory pool cap currently

 Real hardware does not have an infinite amount of RAM.  Memory pool sizes
 cannot grow unbounded.  Some transactions with insufficient fees do get
 dropped today after many hours.

Actually they don't, which is an unfortunate problem with the existing
mempool implementation; the only way a transaction can be removed from a
Bitcoin Core mempool is through it getting mined, double-spent, or the
node restarting.

The protection that we have against that attack is that you need access
to a lot of bitcoins to pay enough fees. With the 0.01mBTC/KB minimum
relay fee and $230 USD/BTC that works out to about $2.3kUSD/GB of ram
consumed, and furthermore, actually getting that many transactions to
propagate over the network is non-trivial. (no, I'm not going to tell
you how)

The obvious solution is to cap the size of the mempool and evict
transactions lowest fee/KB first, but if you do that they you (further)
break zeroconf security. On the other hand, if you don't break zeroconf
security an attacker can prevent reasonable fee transactions from
propagating.

I probably should get around to fixing this... 


--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Peter Todd
On Mon, Jun 08, 2015 at 03:01:34PM -0700, Raystonn . wrote:
 There will always be a blocksize limit based on technological
 considerations - the network has a finite bandwidth limit.
 
 A bandwidth limit is not the same as a blocksize limit.  Bandwidth
 is unique to every individual.  Miners in China have different
 bandwidth and connectivity than miners in the U.S., for example.
 But the block size limit is dictated for eveyone.  They are not
 comparable.

Bitcoin is a global consensus system - if you're bandwidth isn't
sufficient to keep up you are not part of the consensus.

The blocksize limit *is* what determines the minimum bandwidth required
to stay in consensus.

 Without a blocksize limit the attacker would just flood the
 network until the bandwidth usage became so great that consensus
 would fail, rendering Bitcoin both worthless, and insecure.
 
 No, with no blocksize limit, a spammer would would flood the network
 with transactions until they ran out of money.  Meanwhile, everyone
 would jump on board trying to mine the blocks to collect the fees
 from the spammers.  It could be one of the greatest transfers of
 wealth ever.  Bitcoin infrastructure would build up to handle the
 required bandwidth, paid for by the very entity spamming the
 network.  Bitcoin would flourish, growing wildly as long as the fees
 kept coming.  This is antifragility at its best.

Again, in your scenario if the bandwidth consumed by those transactions
was sufficiently high, the network would collapse because consensus
would fail.

Why wouldn't that bandwidth be high enough to cause that collapse?
Because of the blocksize limit! (combined with an intelligent mempool
that increases the minimum fee/KB appropriately - we don't have that
yet)

 The worst an attacker flooding the network with transactions with
 a blocksize limit can do is raise costs, without harming security.
 
 No, at attacker flooding the network with transactions with a
 blocksize limit can keep their fees high enough that perhaps 1% of
 transactions coming from real end-users go through.  At this point
 everyone would give up on Bitcoin as it would become completely
 unusable.  The BTCUSD market would tank, making it even easier to
 pay the transaction fees to keep real transactions out of blocks, as
 it would continue to become cheaper and eventually cost-free to
 obtain the bitcoin fees through market purchase.

I already did the math for you on that: the maximum transaction fee
you'd see in that kind of attack is around $2.5 USD/tx. That definitely
is not high enough to make Bitcoin non-viable - I personally could
easily afford fees like that for about 90% of my transactions this year
by value, as I mainly use Bitcoin to get paid by my clients around the
world. In fact, just today O'Reilly paid $15 USD to send me a wire
transfer for expenses related to a conference I was invited too.

A much more realistic transaction flood scenario - one that didn't raise
serious questions about whether or not the attacker could afford to 51%
attack Bitcoin - would raise tx fees to something more like $0.25/tx

-- 
'peter'[:-1]@petertodd.org
127ab1d576dc851f374424f1269c4700ccaba2c42d97e778


signature.asc
Description: Digital signature
--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New attack identified and potential solution described: Dropped-transaction spam attack against the blocksize limit

2015-06-08 Thread Raystonn .
 There will always be a blocksize limit based on technological 
 considerations - the network has a finite bandwidth limit.

A bandwidth limit is not the same as a blocksize limit.  Bandwidth is unique 
to every individual.  Miners in China have different bandwidth and 
connectivity than miners in the U.S., for example.  But the block size limit 
is dictated for eveyone.  They are not comparable.

 Without a blocksize limit the attacker would just flood the network until 
 the bandwidth usage became so great that consensus would fail, rendering 
 Bitcoin both worthless, and insecure.

No, with no blocksize limit, a spammer would would flood the network with 
transactions until they ran out of money.  Meanwhile, everyone would jump on 
board trying to mine the blocks to collect the fees from the spammers.  It 
could be one of the greatest transfers of wealth ever.  Bitcoin 
infrastructure would build up to handle the required bandwidth, paid for by 
the very entity spamming the network.  Bitcoin would flourish, growing 
wildly as long as the fees kept coming.  This is antifragility at its best.

 The worst an attacker flooding the network with transactions with a 
 blocksize limit can do is raise costs, without harming security.

No, at attacker flooding the network with transactions with a blocksize 
limit can keep their fees high enough that perhaps 1% of transactions coming 
from real end-users go through.  At this point everyone would give up on 
Bitcoin as it would become completely unusable.  The BTCUSD market would 
tank, making it even easier to pay the transaction fees to keep real 
transactions out of blocks, as it would continue to become cheaper and 
eventually cost-free to obtain the bitcoin fees through market purchase.


-Original Message- 
From: Peter Todd
Sent: Monday, June 08, 2015 2:44 PM
To: Raystonn .
Cc: Patrick Mccorry (PGR) ; Bitcoin Dev
Subject: Re: [Bitcoin-development] New attack identified and potential 
solution described: Dropped-transaction spam attack against the blocksize 
limit

On Mon, Jun 08, 2015 at 02:33:54PM -0700, Raystonn . wrote:
  the attack would be expensive.

 For attacks being waged to destroy Bitcoin by filling all blocks with spam 
 transactions, the attack succeeds when the attacker is well funded.  This 
 gives well-funded private and/or public entities the means to destroy 
 Bitcoin if they desire.  This is only true after the block size limit was 
 implemented.  Without the block size limit, the spam doesn’t harm Bitcoin. 
 It simply enriches miners at the cost of the spammers, which is a nicely 
 antifragile quality.

There will always be a blocksize limit based on technological 
considerations - the network has a finite bandwidth limit.

Without a blocksize limit the attacker would just flood the network until 
the bandwidth usage became so great that consensus would fail, rendering 
Bitcoin both worthless, and insecure.

The worst an attacker flooding the network with transactions with a 
blocksize limit can do is raise costs, without harming security. Keep in 
mind, that at some point it'd be cheaper to just 51% attack the network. 
Based on the current block subsidy of 25BTC/MB that's at the point where 
transaction fees are 25mBTC/KB, which corresponds to $2/tx fees - not that 
cheap, but still quite affordable for a large percentage of Bitcoin's users 
right now. And that's the *absolute worst-case* attack possible.


--
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development