Could someone explain why so many Bitcoin nodes allow Bloom filtering given that DoS attacks exist [1], [2] for such nodes?
According to bitnodes.21.co, right now 3879 nodes out of the total of 5515 Bitcoin nodes have Bloom filtering enabled.
Is it that these DoS attacks are not made any worse by Bloom filtering, as documented here by Mike Hearn? I quote:
Thus you can easily trigger exactly the same DoS attack by just using regular getdata requests on large blocks over and over. You don't need Bloom filtering. If you don't want to actually download the blocks just don't TCP ACK the packets and then FIN after a few seconds .... the data will all have been loaded and be sitting in the send buffers.
So even if I refine the attack and find a way to actually deny service to someone, the fix would have to apply to regular non-filtered block fetches too, which cannot be disabled.
getdata
requests to old nodes to download the blockchain.