Author

Topic: SPV client vs full node on Selfish Mining attack (Read 1211 times)

jr. member
Activity: 38
Merit: 18
All a full node is "in charge" of is which blocks it accepts. All it can do is reject a block and not relay it. But the network is extremely well connected. Blocks will find their way anyway.
The blocks HAS to go through a rogue node which has modified rules. Imagine if there are only 1000 nodes, one can easily setup 200 nodes and use modified rules on them. The higher the number of rogue nodes, the higher chance an SPV client would connect to it and be disconnected from the actual network.

The higher the number of honest nodes, the harder it will be and the network will be more decentralised as a result.


An honest node doesn't help an SPV except when it isn't connected to any honest node. Otherwise  the honest node can do no more than "not participate".

The misunderstanding that full nodes are helping seems to stem from a misunderstanding of the network. Everyone is connected to everyone in a few hops. An attacker needs only one peer in order for all the others to be pointless. The marginal gain for the network in terms of "sybiling" SPV's with verifying nodes is completely negligible.

There are 1000 mining nodes. As I asked before, why would a full node improve the security? By preventing connections from these mining nodes to light clients? That is not possible.
legendary
Activity: 2982
Merit: 4193
All a full node is "in charge" of is which blocks it accepts. All it can do is reject a block and not relay it. But the network is extremely well connected. Blocks will find their way anyway.
The blocks HAS to go through a rogue node which has modified rules. Imagine if there are only 1000 nodes, one can easily setup 200 nodes and use modified rules on them. The higher the number of rogue nodes, the higher chance an SPV client would connect to it and be disconnected from the actual network.

The higher the number of honest nodes, the harder it will be and the network will be more decentralised as a result.
jr. member
Activity: 38
Merit: 18
Specifically, consider a network with 1000 mining full nodes and 1000 wallets. Now add a non-mining full node. Is the network somehow more secure?
Yes. Assuming that you are talking about 1000 SPV wallets, full nodes will be important. SPV wallets rely on full nodes to deliver accurate information and will have to trust them. This exposes them to sybil attack where a lot of nodes are created by a single entity and are modified to follow a different chain or different rules. The more nodes there is, the more expensive it will be.

SPV nodes verify the PoW. They don't have to trust their peers apart from having at least one peer that doesn't withhold the blocks or the branches. The only thing these full nodes can do is not pass a block they consider invalid, but the SPV node would then still receive it from a miner.

The full node is a checkpoint on your own driveway. It doesn't secure the rest of the network in any way.
It does. They are in charge of verifying and enforcing the consensus rules. They help both the network and the light wallets in a way.

All a full node is "in charge" of is which blocks it accepts. All it can do is reject a block and not relay it. But the network is extremely well connected. Blocks will find their way anyway.

legendary
Activity: 2982
Merit: 4193
Specifically, consider a network with 1000 mining full nodes and 1000 wallets. Now add a non-mining full node. Is the network somehow more secure?
Yes. Assuming that you are talking about 1000 SPV wallets, full nodes will be important. SPV wallets rely on full nodes to deliver accurate information and will have to trust them. This exposes them to sybil attack where a lot of nodes are created by a single entity and are modified to follow a different chain or different rules. The more nodes there is, the more expensive it will be.
The full node is a checkpoint on your own driveway. It doesn't secure the rest of the network in any way.
It does. They are in charge of verifying and enforcing the consensus rules. They help both the network and the light wallets in a way.
jr. member
Activity: 38
Merit: 18
Of course i understand running full nodes secures network as a whole.
   
Why would this be the case?

Specifically, consider a network with 1000 mining full nodes and 1000 wallets. Now add a non-mining full node. Is the network somehow more secure?

The full node is a checkpoint on your own driveway. It doesn't secure the rest of the network in any way. And as you explain, it doesn't really make you more secure than SPV due to withholding/releasing attacks being much more effective than any invalid block attack.
sr. member
Activity: 378
Merit: 250
support the network and host  a full node, that is a win win
newbie
Activity: 18
Merit: 1
Thank you for your answers.

Quote
In all honesty, its way better to just execute a 51% attack if you can generate blocks faster than the rest of the network.
If I understand this correctly running SPV client instead of full node don't make me more vulnarable to evil miners because i would be low profile target for them. Of course i understand running full nodes secures network as a whole.
legendary
Activity: 2982
Merit: 4193
Quote
There are no protections against selfish mining attack in any client
Quote
And the full nodes are not going to accept your coins. You have effectively created another chain that is diverged from the main blockchain.

Don't these quotes contradict each other?
No, they don't contradict.

Selfish mining refers to miners withholding blocks to gain an edge over other miners to get a head start on solving the next block. This does not violate the network rules and its completely fine to the network.

However, you stated:
But if that evil miner has the ability to create longer invalid chain
If the rogue miner generates blocks that are invalid to the network, the blocks may or may not reach the SPV clients. Since the blocks will be rejected by the network, the chain will split and diverge from that point on. SPV clients might follow the rogue miner's chain but it will not be valid on the main Bitcoin chain.

In all honesty, its way better to just execute a 51% attack if you can generate blocks faster than the rest of the network.

**I was going to post this yesterday but well, the database error.
newbie
Activity: 18
Merit: 1
Quote
There are no protections against selfish mining attack in any client
Quote
And the full nodes are not going to accept your coins. You have effectively created another chain that is diverged from the main blockchain.

Don't these quotes contradict each other?
legendary
Activity: 2982
Merit: 4193
SPV client will consider longest chain valid without verifiying is it valid or not. So an attack factor is that some evil miner with big hashrate could create an invalid chain and beat the number of blocks on valid chain to fool SPV clients.
That is why full nodes exist. SPV clients usually connects to various full nodes to get the network information. Full nodes will be rejecting those with invalid network rules. It is unlikely for anyone to have a big enough hashrate to outpace the current chain and if they have, a 51% attack would've been better.
But if that evil miner has the ability to create longer invalid chain he has the ability to make Selfish Mining attack also. Which will be much more profitable for him with the block rewards.
And the full nodes are not going to accept your coins. You have effectively created another chain that is diverged from the main blockchain.
newbie
Activity: 18
Merit: 1
Quote
Full node and SPV client differs in terms of the kind of security they can provide. Full nodes verifies each and every block, ensuring that it follows the network rules. SPV clients trusts the server to be providing accurate information about the network and they will take the longest and highest difficulty chain as valid.

SPV client will consider longest chain valid without verifiying is it valid or not. So an attack factor is that some evil miner with big hashrate could create an invalid chain and beat the number of blocks on valid chain to fool SPV clients. But if that evil miner has the ability to create longer invalid chain he has the ability to make Selfish Mining attack also. Which will be much more profitable for him with the block rewards.
legendary
Activity: 2982
Merit: 4193
What protects full nodes from Selfish Mining attack?
There are no protections against selfish mining attack in any client, AFAIK. It is very hard to detect.

The way it works is that a miner will not publish the block immediately when they have discovered a block. They will continue to work on that block before publishing the block, effectively giving them a headstart over the other miners. This does not affect the safety of full node clients and SPV clients specifically.
And if there is no protection what makes a full node more secure than SPV client?
Full node and SPV client differs in terms of the kind of security they can provide. Full nodes verifies each and every block, ensuring that it follows the network rules. SPV clients trusts the server to be providing accurate information about the network and they will take the longest and highest difficulty chain as valid.
newbie
Activity: 18
Merit: 1
What protects full nodes from Selfish Mining attack? And if there is no protection what makes a full node more secure than SPV client?
Jump to: