Hacker News new | ask | show | jobs
by riprowan 3470 days ago
> For a relatively small cost, the blockchain could be flooded with bogus junk to DoS.

It's certainly possible for a government to pay to consume the available space in a blockchain with a very small capacity limit such as Bitcoin has, but I think you miss the very important dynamics that undermine this attack vector - namely that such an attack is a wealth transfer from the attacker to the defender. This is antifragility at its finest.

Let's say that some acronym-agency decided to "spam" the blockchain as you suggest.

The result would not be a "DoS-like" disruption to the mining or node network itself, but just an increase in the cost to make a transaction (we've seen this in the so-called "spam attacks" on the Bitcoin blockchain in the last year). Beyond a certain transaction cost, the demand for space in the blockchain will just diffuse to a competing crypto with cheaper transactions and be harder to trace. Oops.

Moreover, in the meantime, the attacker is simply transferring his wealth to the miners in the form of artificially high fees. The miners will happily accept the attackers money and use it to build more mining capacity. If blocks stay full, eventually miners will decide to mine larger blocks, raising the cost of the attack. How polite of the attacker to pay the mining network to build out capacity to handle his attack!

The result is that all the activity you hoped to suppress just diffuses to other cryptos and becomes harder to track. Meanwhile the attacker is subsidizing a better mining network. That's a bad attack.

Relaxing (or removing) the block size constraint doesn't help the attacker. With a higher constraint, the attacker must spend more to fill up the blockchain, raising the cost of the attack and increasing the wealth transfer from the attacker to the miner.

Bitcoin clients like Bitcoin Unlimited that would make the limit a dynamic variable create a whole new wrinkle for the attacker: because such a limit is an emergent network property, the attack cannot even really be accurately planned or budgeted - the attacker literally has to hit a moving target.

But let's say our attacker doesn't care about plan or budget. As the attacker fills space on our "Unlimited" blockchain, blocks could bloat to the maximum size tolerated by a supermajority of the node network - the "emergent" blocksize limit. This is exactly the same size the "preplanned" blocksize limit would eventually ratchet up to in a sustained block-filling attack, the only difference is the mechanism used to raise the limit.

IOW, if you think this "spam attack" through - regardless of the block size limit - the network will automatically adjust to make the cost of the attack as expensive as possible, minimizing the disruption to normal users and maximizing the wealth transfer from the attacker to the miner.

The fact that blockchain "spam attacks" are actually wealth transfers from the attacker to the mining network is the primary reason why these events cannot even be correctly viewed as "attacks" - these are paying customers!

A blockchain spam attack is exactly like trying to shut down Starbucks by planting a million stooges at every store to purchase lattes so that regular customers can't shop there. Starbucks gets rich from all the money the attacker is feeding it, and organic demand for coffee just shifts to other stores.

TL;DR I think there's no such thing as a blockchain spam attack - the worst that an attacker could do might be to raise transaction prices on the Bitcoin blockchain and keep them artificially high for long enough that demand for Bitcoin transactions eventually collapses and (counterproductively for our attacker) goes to other cryptos.

2 comments

A blockchain spam attack is exactly like trying to shut down Starbucks by planting a million stooges at every store to purchase lattes so that regular customers can't shop there. Starbucks gets rich from all the money the attacker is feeding it, and organic demand for coffee just shifts to other stores.

Great comparison IMO

Thank you. Someone should point this out to the people developing Bitcoin :(
The US, China, et al would likely be able to blackhole most of the Bitcoin network packets on the backbone and definitely could simply take down the network with a traditional DoS. Ever won a fight for bandwidth with your upstream router?

The real question is whether they could use protocol or cryptography weaknesses to break it with less effort. Something like a weakness in the hash or signing methods could allow them to disrupt the network state in a basically unrecoverable way with many fewer packets and not requiring a persistent attack.

The problem with that attack is that Bitcoin is not very high bandwidth which makes it easy to put behind an anonymizer.

You could DoS the anonymizer but now you're into large collateral damage and the anonymizer may not be in a country where your agents control the backbone.

I agree you could harden a cryptocurrency, I was merely pointing out that Bitcoin is not. (And would require reaching consesus or having a fork to become one.)

Further, Im not sure that there's an anonymization network that could sustain being the consensus network backbone without also leaking the information to a pervasive, persistent adversary.

Things like TOR likely can already be penetrated by the US or China or Russia, and things like FreeNet are likely too slow to reach global consesus fast enough to prevent diverging chains.

Also, DoSing the network doesn't require you deanonymize them, merely that you can fill most of their anonymous routes with traffic (or that you can drop packets along them). This is problematic, because the network fundamentally must publish routes. The underlying architecture isn't meant to operate in truly adverse conditions.

> I agree you could harden a cryptocurrency, I was merely pointing out that Bitcoin is not. (And would require reaching consesus or having a fork to become one.)

You're treating Bitcoin as a black box.

The thing people care about forking is the blockchain. The DoS problem is the network transport. They're independent pieces. You could add a new hardened transport without forking the blockchain or even discontinuing the existing transports. Everyone would just naturally start using the hardened transport if the attack materialized.

> Also, DoSing the network doesn't require you deanonymize them, merely that you can fill most of their anonymous routes with traffic (or that you can drop packets along them). This is problematic, because the network fundamentally must publish routes. The underlying architecture isn't meant to operate in truly adverse conditions.

An anonymity service needs to be resistant to censorship. In one sense that means having a lot of bandwidth, but it also means having some political support. A government may have the technical capacity to launch a large DoS attack but it can't do that if the target servers are in a non-pushover country that would take the attack as an act of aggression.

And penetrating an onion routing network in this context is non-trivial. The three main categories of attack are implementation bugs in the endpoints, an adversary operating a large number of relays, and timing correlation by a global adversary. But the first group are inherently temporary and there are fewer of them when the endpoint is not a web browser with ten million lines of code. The second can be mitigated by not choosing relays in adversarial countries. And the third can be mitigated for low bandwidth services by using a fixed low bitrate and sending padding when there is no data.

> DoSing the network doesn't require you deanonymize them, merely that you can fill most of their anonymous routes with traffic

At best if you're "successful" then you merely take all the current Bitcoin users and scatter them into a hundred different competing and more anonymous cryptos. Oops.

In the south we have fire ants. The thing about fire ants is that if you disrupt the nest you had better kill them all, because if you mess with a nest today, in a few days you'll have 5 nests to deal with. And so on.

Crypto is like fire ants in this regard.

1. The strength of a currency is its ability to be exchanged, so forcing them onto several (possibly themselves compromised) networks increases transaction costs and changes the economics significantly. Similarly, hardened networks likely impose additional overhead. Finally, smaller networks are easier to perform 51% attacks on. If you can break it in to 10 networks, you only need 1/10th the power to 51% them each in turn.

2. My point was about the strength of the bitcoin network as it stands. And I think you agree that it's both vulnerable and non-trivial to fix, so Im not actually sure what your point is.

Sure, there might be other avenues of attack, but filling up the blockchain as OP suggested isn't a good one.