3

Suppose it was possible to influence a miner to create many forks. My understanding is that a miner won't retransmit the fork, but will track it internally.

  • Where is this information saved in a miner (disk, RAM, etc)?

  • What protections exist to protect a miner from a resource depletion attack due to forking?

  • I think you are misusing some terms in your questions - a miner is not the same as a pool, a wallet is not a client, etc. etc. If you'd like me to explain the difference between those things, I can try writing something up. – ThePiachu Sep 21 '12 at 19:57
  • @ThePiachu I think I understand how a miner is different than a pool (which contacts Bitcoin-QT in -server mode?), but I thought "client" always referred to Bitcoin-QT. – goodguys_activate Sep 22 '12 at 18:24
  • Yes, but a miner is usually not a client, but a simple program to crunch numbers supplied by a pool. – ThePiachu Sep 23 '12 at 4:39
3

If you mean a miner as in a computer that only does mining, it should be generally as resistant to DOS attacks as any casual computer on the network - it doesn't open its ports.

If you are worried about a standard client being flooded with many blocks and having to store it - the developers did think of that and they put in the checkpoint system. Basically, making a lot of forks of the new blocks would require a lot of computational power and so forth, so it is highly unlikely. However, changing some of the earliest blocks in existence would be dirt cheap nowadays. However, the standard client will not accept any block chain forks that branch out from blocks older than the most recent checkpoint.

  • Ahh, so checkpoints is the technique to prevent DoS attacks. I'll have to learn more about this. – goodguys_activate Sep 22 '12 at 18:34
  • @makerofthings7 Not all of them, just the DoS attacks that deal with blocks. The other countermeasures are the minimal transaction fees per transaction that scale based on the amount of transactions in the block, and dropping connection to peers that are spammy. – ThePiachu Sep 23 '12 at 4:37
1

A valid block that is orphaned is just as expensive to create as a block on top of the longest chain.

It makes no economic sense to create a block that has almost no chance of becoming the longest chain. Today, that costs maybe $500 per block for electricity and amortized capital to solve a block. And to DDoS you would need many many blocks, so you'ld likely be expending millions of dollars before any developers would even need to start worrying about mitigation, if there were truly a problem.

[Edit: Also see ThePiachu's comment about the checkpoint protecting against new forks emerging for blocks back when there was a low difficulty.]

  • I'm thinking in terms of Netsplits, where the miners have completely different views of what transactions are happening. During a netsplit (or while I run a wallet/miner on several cruise ships) I'd think that the "real" longest chain may not manifest itself until the network is converged. Alternatively, I think that a DoS against miners/clients that accept inbound connection plus a netsplit will produce interesting blockchains. – goodguys_activate Sep 22 '12 at 18:33
  • Except the difficulty doesn't change just because you are not connected to the rest of the network. (Well, it does, but we'll be taking cruise shuttles to mars before your isolated network confirms enough blocks to get difficulty lowered.) – Stephen Gornick Sep 24 '12 at 4:22
  • There was the concern that clients other than the Bitcoin.org client might be vulnerable to this as they don't use checkpoints. But they also don't serve blocks so unless that changes even alternative clients are not exposed to this: bitcointalk.org/index.php?topic=114918.msg1239719#msg1239719 – Stephen Gornick Oct 2 '12 at 20:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.