Author

Topic: What good is a "network only" Node? (Read 1256 times)

newbie
Activity: 33
Merit: 0
January 12, 2016, 07:49:10 AM
#9
The network is much healthy when there are more number of nodes. Nodes make the network healthier in reverse.
sr. member
Activity: 261
Merit: 523
January 11, 2016, 01:04:54 PM
#8
More of these network nodes help bootstrap new nodes by uploading the blockchain to them.
staff
Activity: 3458
Merit: 6793
Just writing some code
January 09, 2016, 11:56:20 AM
#7
Everyone connected to that full node with an SPV wallet is trusting that node. They are trusting that that node is giving the correct information.

Yes I don't dispute this. But what is unclear is if adding additional "network only" nodes (is "relay nodes" a better term?) improves that situation.

For example how do SPV wallets determine what nodes they get information from? Do they always connect to the same one? Is it random and they get messages from many nodes (from the whole network??)? If they get messages from many nodes then having more network nodes (and assuming the majority are honest nodes) somewhat increases the security of SPV wallets.

If you have more info on how SPV wallets get their info (typically from one node or whole network?) then that might help. I'm not that familiar with SPV wallet protocol.
It depends on the SPV wallet as they use different methods of getting their data. Most of them will connect directly to nodes just as a normal full node does, except they don't relay, store, or validate blocks and transactions. These nodes will connect to the network like a full node, so their connections are not always the same and having a diversity of nodes makes it more secure as it is less likely that all of its connections are colluding to provide false information.
jr. member
Activity: 43
Merit: 1
January 09, 2016, 10:51:58 AM
#6
Everyone connected to that full node with an SPV wallet is trusting that node. They are trusting that that node is giving the correct information.

Yes I don't dispute this. But what is unclear is if adding additional "network only" nodes (is "relay nodes" a better term?) improves that situation.

For example how do SPV wallets determine what nodes they get information from? Do they always connect to the same one? Is it random and they get messages from many nodes (from the whole network??)? If they get messages from many nodes then having more network nodes (and assuming the majority are honest nodes) somewhat increases the security of SPV wallets.

If you have more info on how SPV wallets get their info (typically from one node or whole network?) then that might help. I'm not that familiar with SPV wallet protocol.
legendary
Activity: 2814
Merit: 2472
https://JetCash.com
January 09, 2016, 01:27:07 AM
#5
I think users running full nodes should be given some sort of small reward for maintaining the integrity of the network. This would increase the number of full nodes, and make the Bitcoin network more secure. Maybe the transaction fees could be taken away from the SPV miners and shared between the nodes (who are doing the verification work).
staff
Activity: 3458
Merit: 6793
Just writing some code
January 08, 2016, 07:07:19 PM
#4
Quote from: knightdk
..spreading around bad blocks and invalid transactions

But any full node (mining, wallet node) then would reject it.
Not if those full nodes were running software that was not in line with the consensus of all of the users. Those node operators could be in consensus, but they may not be in consensus with users, so they could force Bitcoin to go in one direction and any SPV wallet users (pretty much everyone else) would have to follow or start running their own full nodes.

Anyway I don't really doubt you are correct. This has always been my assumption and part of why I run a full network node myself. However I see things like https://twitter.com/adam3us/status/683678942398644224 and it makes me wonder (note: vps nodes worth zero), whether my assumption is flawed.
The problem with VPS nodes is that they aren't all that decentralized. With nodes in homes, it spreads out the node distribution. On the other hand, VPS nodes are hosted in data centers. If something were to happen to a data center, all of the nodes there would go out at once. This is about as useful as one node since there is essentially one point of failure for many nodes. Those nodes are also susceptible to the actual server owners taking them down.

Maybe you could point me to some more info on how the checkpoints and forking issues you mentioned. Have there been any simulations done for this, or detailed write-ups on the exploits?
No, I don't have any info on those issues. Basically if enough nodes ran a certain software that used certain checkpoints, then they could fork the blockchain and force a shorter chain to continue to grow. It would ignore the longest chain rule. Should both chains continue to survive, there could be some very problematic issues that arise, including double spends and long confirmation times. In the case of a fork, it may not be good to assume that a confirmed transaction is truly non-reversible.

On the one hand, yes it seems fairly obvious that full nodes improve security. On the other hand if everyone with a wallet is already directly connected to a full node, then it is less clear how the exploits progress.
Everyone connected to that full node with an SPV wallet is trusting that node. They are trusting that that node is giving the correct information. That one full node could, in theory, change its consensus rules and force everyone relying on it onto an alternate blockchain that that person controls and can do whatever he wants with.
jr. member
Activity: 43
Merit: 1
January 08, 2016, 06:45:42 PM
#3
and SPV nodes would have to follow them and trust that they are correct, even though they may not be.

But there are no SPV "nodes" in this scenario. There are SPV wallets connected to a full node (and lets assume it is one they trust or have some control over for now), there are mining full nodes, and there wallets with nodes running on same machine.

Quote from: knightdk
..spreading around bad blocks and invalid transactions

But any full node (mining, wallet node) then would reject it.

Anyway I don't really doubt you are correct. This has always been my assumption and part of why I run a full network node myself. However I see things like https://twitter.com/adam3us/status/683678942398644224 and it makes me wonder (note: vps nodes worth zero), whether my assumption is flawed.

Maybe you could point me to some more info on how the checkpoints and forking issues you mentioned. Have there been any simulations done for this, or detailed write-ups on the exploits? On the one hand, yes it seems fairly obvious that full nodes improve security. On the other hand if everyone with a wallet is already directly connected to a full node, then it is less clear how the exploits progress.

Quote
More nodes are also a lot harder to DDoS

This part makes sense. As well as your comments about the government shutdown.

Maybe a more technical way of phrasing the question is: what is the minimum number of network nodes needed to protect against current known attacks?
staff
Activity: 3458
Merit: 6793
Just writing some code
January 08, 2016, 06:14:46 PM
#2
Lots of people are running full nodes that are not used for mining, not using a bitcoin core wallet with it, and not using an SPV wallet linked directly to that node. In other words it is a network node (is there another name for this?) that validates transactions and validates blocks, and interacts with other network and non-network nodes.

Are these needed? How do they improve overall security of bitcoin?  I'm really asking here, not really sure one way or the other what effect they have.
Those nodes further verify and validate transactions and blocks. It reduces the likelihood of a few people colluding and spreading around bad blocks and invalid transactions. Also, they do verifying and validating of the blocks that miners produce since a lot of miners don't actually run full nodes, they use SPV mining which does not validate the blocks. Supposedly SPV mining is faster and reduces orphan blocks.

If we had no network nodes and only mining nodes and nodes directly connected to wallets would bitcoin be less safe, more safe or the same? Like we might end up with just 100 nodes or something (1 for each large mining pool, a few for the large bitcoin service providers like coinbase, etc, and a bunch for people using their nodes with the bitcoin core wallet, and a handful of SPV users. Maybe 100 is a bit too small a number (what would the number be?).
It would be less safe. Less nodes means that a few individuals could collude and force the blockchain to go in a certain manner. They could introduce checkpoints that essentially fork the blockchain, and SPV nodes would have to follow them and trust that they are correct, even though they may not be. More nodes reduces the likelihood of that. More nodes are also a lot harder to DDoS. If an attacker were to DDoS a network with only a few nodes, he could do a lot of damage and essentially shut the whole thing down. With more nodes spread out over the earth, it becomes much harder to do that. More nodes everywhere also prevents governments from being able to seize nodes and shutdown the network as they will be people operating nodes outside of those governments jurisdictions.
jr. member
Activity: 43
Merit: 1
January 08, 2016, 06:04:39 PM
#1
Lots of people are running full nodes that are not used for mining, not using a bitcoin core wallet with it, and not using an SPV wallet linked directly to that node. In other words it is a network node (is there another name for this?) that validates transactions and validates blocks, and interacts with other network and non-network nodes.

Are these needed? How do they improve overall security of bitcoin?  I'm really asking here, not really sure one way or the other what effect they have.

If we had no network nodes and only mining nodes and nodes directly connected to wallets would bitcoin be less safe, more safe or the same? Like we might end up with just 100 nodes or something (1 for each large mining pool, a few for the large bitcoin service providers like coinbase, etc, and a bunch for people using their nodes with the bitcoin core wallet, and a handful of SPV users. Maybe 100 is a bit too small a number (what would the number be?).

Jump to: