To control >51% of the mining power in bitcoin is impractical due to the immense investment that will be required. Also, The Bitcoin Core client has DoS protection against malicious nodes forwarding a flood of transactions. But what would happen if an attacker who has placed several full nodes across the world, does not forward the transactions to the other honest nodes? There are over 10K full nodes on the bitcoin network. An attacker can place 10x the amount of these nodes spread very efficiently in terms of geographic dispersion so that they are one of the first to see the transactions broadcasted. In order to prevent the malicious node from getting dropped by the honest node, it can relay transaction once in a while so as to keep the connection active. Given, that there are 10x more malicious nodes than honest ones, it might highly likely be the case that miners do not see the broadcasted transactions and they do not include them in the block. Has any research been done to prevent such scenario?
1 Answer
There are significantly more than 10k full nodes on the network. The 10k figure is simply the number of reachable nodes which listen publicly for new connections. There are many more times that amount which do not have open ports. Luke-jr publishes information about nodes his own knows about[1], suggesting there are in the order of 100k nodes.
It only takes one honest connection to make any dishonest connections become apparent. The default setting in the bitcoin core software is that a node will make 8 outgoing connections to other peers. By default, the software will also accept up to 125 incoming connections, but miners in particular will increase this figure. (Miners also use separate p2p networks such as fibre).
If a malicious party controls 90% of nodes in the global network, then the probability that any single outgoing connection will reach them, assuming chosen at random, would be 0.9. The probability that all 8 outgoing connections will connect to the malicious nodes then, would be 0.9^8. 10x the nodes wouldn't be sufficient.
There is a paper, Eclipse Attacks on Bitcoin’s Peer-to-Peer Network which addresses the issue and also presents several countermeasures which can limit the chance that an attacker could pull this off, even if they were to manage to spin up the vast numbers of nodes required.