What protection does Bitcoin have against Denial of Service (DoS) attacks?

19

3

What protection does Bitcoin have against DoS attacks? Could you bring down a node by flooding it with data?

What happens if someone starts flooding the network with legitimate, yet nonsense, transactions? For example, sending bitcoins from A -> B -> C -> A -> B -> C -> A and so on in a rapid pace.

D.H. - bitcoin.se

Posted 2011-09-03T11:31:38.317

Reputation: 5 187

1Well, technically, transaction fee is just a hurtle rather than a road blocker. If there are enough incentives for the attacker to sink the whole bitcoin network, he/she could invest enough cash in this. Consider one day, bitcoin currency plays a significant role of one country economy. Won't the opposite country invest a small amount (even millions, which is still a small portion comparing to the whole economy) to block all the trades based on bitcoin?h0cked 2011-12-13T16:18:17.933

3That's like trying to put Burger King out of business by sending so many people to their restaurants that the lines get too long.David Schwartz 2011-12-13T20:43:54.463

@davidSchwartz: not really. Bitcoin does not win anything, if the are billions of extra transactionsrubo77 2017-11-14T11:55:42.087

Answers

12

The network has a moderate amount of protection against DoS attacks. If you flooded a single node with data from a single source, it would just drop you. You could reconnect, of course. You would need a lot of resources and effort to knock out a node, but it's possible to knock out a single node by overloading it.

The owner of an attacked node could simply stop accepting incoming connections and he could still operate. He still might, by sheer bad luck, make some outgoing connections to malicious nodes. But he'd quickly close all such connections and be left only with connections to non-malicious nodes.

Transaction flooding is perhaps the DoS attack for which the network is currently best defended. Trying to flood the network with legitimate, but nonsense transactions won't work very well. To form such a transaction, you have to claim some coins. The network will only maintain one transaction that claims a given output. And to claim newer output generally requires a transaction fee.

It's hard to imagine any scenario in which an attacker could maintain a significant number of concurrently valid transactions without paying large transaction fees. And even if he could, as soon as those were accepted, he'd need to be able to claim additional transaction outputs to keep up the flood. The outputs of the transaction from earlier in the flood would be too new to spend without fees.

In any event, the harm would be minimal. If this were working to cause harm, that would mean legitimate transactions wouldn't be going through. This means their coins would be getting older and older while the attack had to consist of newer and newer transaction outputs. Soon, the legitimate transactions would win.

David Schwartz

Posted 2011-09-03T11:31:38.317

Reputation: 46 931

3I would like to add that the vulnerable part of bitcoin isn't the nodes but the pools. They are fairly easily attacked, and are regularly, but it seems they are working at hardening themselves well.Evil Spork 2011-09-03T17:58:58.567

Is this still a valid answer? Our did the problem change by now?rubo77 2017-11-14T11:47:17.693

It's still correct in the basics. The fees have just risen, making such an attack even harder and more expensive.David Schwartz 2017-11-14T12:18:00.317