Bitcoin Forum
December 03, 2016, 08:03:00 PM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: DoS on transactions  (Read 844 times)
b99999
Newbie
*
Offline Offline

Activity: 9


View Profile
September 04, 2011, 08:44:50 AM
 #1

I've been thinking of a potential attack on the number of transactions that get processed.

Since a miner basically have an option of including transactions up to a maximum number (limited by the maximum block size at the moment, which is 1 MB (static const unsigned int MAX_BLOCK_SIZE = 1000000;), what is preventing a bad miner from not including any transactions?

For example, if an organization which wants to interrupt Bitcoin's operations comes into the game, they could have huge processing power and just keep on generating new blocks without any transactions? Yes, they are not getting the fee, but no transactions are getting processed either.

Is this possible or I'm missing something?
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1480795380
Hero Member
*
Offline Offline

Posts: 1480795380

View Profile Personal Message (Offline)

Ignore
1480795380
Reply with quote  #2

1480795380
Report to moderator
1480795380
Hero Member
*
Offline Offline

Posts: 1480795380

View Profile Personal Message (Offline)

Ignore
1480795380
Reply with quote  #2

1480795380
Report to moderator
1480795380
Hero Member
*
Offline Offline

Posts: 1480795380

View Profile Personal Message (Offline)

Ignore
1480795380
Reply with quote  #2

1480795380
Report to moderator
memvola
Hero Member
*****
Offline Offline

Activity: 896


View Profile
September 04, 2011, 09:04:30 AM
 #2

Not an expert, but AFAIK it's possible. And there is a system in place to discourage such blocks, but it's not active:

If necessary I can write code to make nodes prefer not to use a block if it doesn't contain enough of the transactions they know about.  A discouraged block would almost always fail to be included in the main chain, but would be accepted if it did get in.  I doubt this will be necessary, since there's no real advantage for nodes not to include all transactions.

From https://en.bitcoin.it/wiki/Vocabulary:

Quote
A discouraged block is considered to be a valid part of the chain, but blocks you generate will build onto the block before it instead of that block. If most of the network is discouraging a block, then it will almost always be replaced by another block and not end up making it into the final block chain. Unlike rejecting a block, discouraging a block has no risk of splitting the network. Bitcoin currently doesn't discourage any blocks, but the mechanism may be used in the future to handle certain issues such as unreasonably high or low fees.
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428


Core Armory Developer


View Profile WWW
September 04, 2011, 07:19:55 PM
 #3

This would simply dilute the rate at which transactions are confirmed.  In fact, the only thing it would do is make the first confirmation of a transaction take (statistically) twice as long.

If someone came in with 50% of the network and started computing blocks with no transactions, then before the next retarget (difficulty change), one block would be generated every 5 minutes, with half of them containing transactions.  After the difficulty change it goes up to 10 minutes.  Now if you send a tx at this point, it will be (on average) 10 minutes until the next block is produced.  Half the time this won't contain your transaction, half the time it will.  So you could wait 1-4 blocks for your confirmation instead of one (with the higher numbers being more unlikely).

However, after that first confirmation, all blocks produced after it will count as confirmations, so you'll continue to to accumulate transactions normally after that.

On the other hand, "difficulty" is not just difficulty of producing blocks, but also difficulty of someone attacking the network.  So if this person who has 50% of the network decided to use their power to do this, instead of executing a "real" attack on the network, we should be lucky.  They're making the next person who wants to attack the network double their computing power requirements.

Although, as memvola said, the way the blockchain is structured, there's no good reason not to include tx's in the block the miner is working on.  If you have ill-intentions towards the network, there's a lot nastier stuff you could do with 50% of the computing power.  If you don't have ill-intentions, you would just include the tx's and collect your fees.


Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
koin
Legendary
*
Offline Offline

Activity: 874


View Profile
September 05, 2011, 03:49:37 AM
 #4

If someone came in with 50% of the network and started computing blocks with no transactions, then before the next retarget (difficulty change), one block would be generated every 5 minutes, with half of them containing transactions.

the miner with 50%+ could also ignore blocks from any other miners though and maintain the longest chain -- thus those transactions would still not be included.  so technically possible to deny service but there's no economic incentive to do so and with the current network size not only would an incredible amount of computing resources be necessary, that denial of service would be a criminal offense and the miner would be easily identifiable.

evoorhees
Legendary
*
Offline Offline

Activity: 994


Democracy is the original 51% attack


View Profile
September 05, 2011, 05:17:22 PM
 #5

This would simply dilute the rate at which transactions are confirmed.  In fact, the only thing it would do is make the first confirmation of a transaction take (statistically) twice as long.

If someone came in with 50% of the network and started computing blocks with no transactions, then before the next retarget (difficulty change), one block would be generated every 5 minutes, with half of them containing transactions.  After the difficulty change it goes up to 10 minutes.  Now if you send a tx at this point, it will be (on average) 10 minutes until the next block is produced.  Half the time this won't contain your transaction, half the time it will.  So you could wait 1-4 blocks for your confirmation instead of one (with the higher numbers being more unlikely).

However, after that first confirmation, all blocks produced after it will count as confirmations, so you'll continue to to accumulate transactions normally after that.

On the other hand, "difficulty" is not just difficulty of producing blocks, but also difficulty of someone attacking the network.  So if this person who has 50% of the network decided to use their power to do this, instead of executing a "real" attack on the network, we should be lucky.  They're making the next person who wants to attack the network double their computing power requirements.

Although, as memvola said, the way the blockchain is structured, there's no good reason not to include tx's in the block the miner is working on.  If you have ill-intentions towards the network, there's a lot nastier stuff you could do with 50% of the computing power.  If you don't have ill-intentions, you would just include the tx's and collect your fees.


Really well said!
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!