Why “non-mining full nodes” are a terrible idea.

In the early days of Bitcoin, there was no-such thing as a “non-mining full node”. Every miner was a node and every node was a miner. In Bitcoin’s whitepaper, the word “node” = miner.

As long as a majority of CPU power is controlled by nodes (miners) that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers.’

It wasn’t until a couple of years ago, that people started using the “full node” term in a non-mining sense. Unfortunately there has been a huge amount of propaganda that “Everyone should be able to run a “non-mining full node””. This has always baffled me because that’s a really terrible idea!

Arguments FOR running a “non-mining full node”

  • Fraud detection: Non-mining full nodes can detect fraud such as double spends or miners giving themselves bigger rewards. Simple payment verification (SPV) clients can’t detect that. So full nodes are essential to keep the miners honest.

My rebuttal: While SPV clients can’t detect all fraud, there is no reason they should. Miners have every incentive in the world to not accept or perform any fraud. First of all, you’d need the vast majority of miners to become evil, because miners will automatically keep each other in check and refuse to confirm or condone any fraudulent transaction. Second of all, the moment the majority of miners would start performing fraud, Bitcoin will become worthless and noone will trust it any longer. Miners would never destroy their million dollar investments like that. Miners know people will retaliate by changing the proof of work system to make the miners’s equipment obsolete.

  • Privacy: “Non-mining full nodes” are better at hiding your transactions vs SPV clients.

My rebuttal: While in some cases “non-mining full nodes” are better at hiding the origin of the transaction: if you are really doing something that should remain private, it can still be traced back to you unless you use a trustworthy VPN service. Your “non-mining full node” could be surrounded by spy nodes and they’d be able to trace the transaction back to your ip address. So for private transactions, you should always use a VPN, no matter if you are running a “non-mining full node” or an SPV client.

  • Strengthening the network: The more “non-mining full nodes”, the stronger the network.

My rebuttal: I’ve never really understood this. It’s actually the opposite. Non-mining full nodes delay sending your transaction to the one node that really matters: a *mining* full node. Only mining full nodes have the ability to put your transaction in the blockchain, and you want to have that happen as soon as possible. To put it bluntly: “non-mining full nodes” are actually a sybil attack against mining full nodes. “Non-mining full nodes” make the network LESS efficient.

  • Preventing hard forks you don’t agree with: “Non-mining full nodes” will not blindly follow hard forks, while SPV nodes will. “Non-mining full nodes” prevent miners from hard forking.

My rebuttal: Neither a “non-mining full node” nor an SPV client will prevent a majority of miners from doing an upgrade through a hard fork. The difference between a “non-mining full node” and an SPV client is that you will need to update your “non-mining full node” software to keep using the Bitcoin Network. Side note: Soft forks WILL be followed blindly by both “non-mining full nodes” and SPV clients.

Arguments AGAINST running a “non-mining full node”

  • They make the network insecure: Today you have to go through a maze of “non-mining full nodes” (possibly sybils) before your transaction reaches a miner. Connecting directly to a trusted mining full node is the only way to make sure your transaction has safely arrived. Otherwise, you will never know until your transaction made it into a block. This makes zero confirmation transactions much safer, among other things.
  • It makes upgrades harder: If everyone runs a “non-mining full node” and there’s a hard fork upgrade, a lot of clients would become obsolete. If most people would run an SPV client instead, they wouldn’t notice anything and just follow the longest chain. Upgrades could happen faster and with a lot less fuss than today. Which means faster Bitcoin improvements that will result in better competition.

In Closing