# If 30% of the network are malicious, how many nodes would an SPV need to connect to, to be sure?

If we assume that 30% of the network is malicious and colluding together to trick an SPV client, by telling him wrong information.

How many random connections would the SPV client, need to connect to before the probability that he has only connected to malicious nodes is negligible?

In other words:

If we assume that the SPV does not know that 30% of the network is bad. What is the probability that he randomly connects to 5 bad nodes in a row?

Under the assumption that the total node count is large enough that we don't have to care about the reduction of the ratio by only connecting to nodes we haven't connected to, yet:

The chance to connect to five bad nodes in a row is 0.35 = 0.00243 = 0.243%. AFAIK, many SPV nodes only connect to 4 nodes, though. The probability then is 0.81%.

• Is spv scalable? I thought it connects to one node, the quickest one? Commented Apr 24, 2018 at 3:36
• No, SPV nodes can be lied to by omission. Therefore, SPV nodes must connect to multiple nodes to have good odds of receiving the information they're requesting. According to this (old and potentially unreliable) wiki entry, four connections are common for SPV nodes: en.bitcoin.it/wiki/…
– Murch
Commented Apr 24, 2018 at 3:46
• Makes sense, thanks for the link. Do people care about their mobile wallet being SPV? Connecting to multiple APIs seems faster and easier. What are your thoughts on SPV, Murch? I can imagine that with 10 different cryptocurrencies, SPV becomes more troublesome to scale In terms of storage and bandwidth Commented Apr 24, 2018 at 3:57
• Generally, the tradeoffs of thin clients are reasonably good that they can be used for smaller amounts. I'd recommend to wait for a few confirmations before relying on payments. Thin clients usually only check and store the block headers which is actually not all that much storage and bandwidth. In fact, their biggest cost is that of introducing computational load on the full nodes that serve them which need to filter their blockchain data with the requested bloomfilters. This is improved, though, by advances like roasbeef's Neutrino client which uses Compact Client Side Filtering.
– Murch
Commented Apr 24, 2018 at 4:07
• That’s a great response. Commented Apr 24, 2018 at 4:12