Bitcoin Forum
September 26, 2018, 09:41:07 AM *
News: ♦♦ New info! Bitcoin Core users absolutely must upgrade to previously-announced 0.16.3 [Torrent]. All Bitcoin users should temporarily trust confirmations slightly less. More info.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: SPV client vs full node on Selfish Mining attack  (Read 1110 times)
matein30
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
July 04, 2017, 02:24:08 PM
 #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?
1537954867
Hero Member
*
Offline Offline

Posts: 1537954867

View Profile Personal Message (Offline)

Ignore
1537954867
Reply with quote  #2

1537954867
Report to moderator
1537954867
Hero Member
*
Offline Offline

Posts: 1537954867

View Profile Personal Message (Offline)

Ignore
1537954867
Reply with quote  #2

1537954867
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1537954867
Hero Member
*
Offline Offline

Posts: 1537954867

View Profile Personal Message (Offline)

Ignore
1537954867
Reply with quote  #2

1537954867
Report to moderator
1537954867
Hero Member
*
Offline Offline

Posts: 1537954867

View Profile Personal Message (Offline)

Ignore
1537954867
Reply with quote  #2

1537954867
Report to moderator
ranochigo
Legendary
*
Offline Offline

Activity: 1554
Merit: 1094


View Profile WWW
July 04, 2017, 02:50:38 PM
 #2

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.

matein30
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
July 05, 2017, 02:12:45 AM
 #3

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.
ranochigo
Legendary
*
Offline Offline

Activity: 1554
Merit: 1094


View Profile WWW
July 05, 2017, 11:03:08 AM
 #4

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.

matein30
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
July 05, 2017, 12:09:08 PM
 #5

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?
ranochigo
Legendary
*
Offline Offline

Activity: 1554
Merit: 1094


View Profile WWW
July 06, 2017, 01:41:15 PM
 #6

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.

matein30
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
July 06, 2017, 03:05:54 PM
 #7

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.
freemanjackal
Sr. Member
****
Offline Offline

Activity: 378
Merit: 250

FINANCIAL FREEDOM, PROFESSIONAL STRATEGY


View Profile
July 13, 2017, 03:35:11 AM
 #8

support the network and host  a full node, that is a win win

tomtomtom7
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
July 18, 2017, 10:07:46 AM
 #9

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.
ranochigo
Legendary
*
Offline Offline

Activity: 1554
Merit: 1094


View Profile WWW
July 18, 2017, 12:03:30 PM
 #10

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.

tomtomtom7
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
July 18, 2017, 01:56:15 PM
 #11

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.

Quote
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.

ranochigo
Legendary
*
Offline Offline

Activity: 1554
Merit: 1094


View Profile WWW
July 18, 2017, 02:04:53 PM
 #12

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.

tomtomtom7
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
July 18, 2017, 07:51:55 PM
 #13

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.
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!