Remove the non-mining nodes from the network and the node count goes down, but the network security stays the same. Non mining nodes do nothing for the security of the bitcoin network.
Having more non mining nodes to store and relay blocks is beneficial to decentralization, but they have no influence over which chain becomes the longest chain.
I'm sorry, but this is simply not true. Bitcoin's security is ultimately underpinned by each node being able to independently validate the chainstate. If nodes couldn't be guaranteed to receive all blocks on the best fork -- a task fulfilled not by miners, but by the continued availability of non-mining nodes that store and relay blocks -- then not only would miners be unable to build a high-quality chain (since they would have a hard time receiving each other's blocks), but also it would be much easier to eclipse nodes and/or feed them a valid but lower-quality chain that they would be unable to determine is the globally-best chain.
Also, block validity includes more than just proof-of-work.
Each node ultimately decides which block it accepts or rejects. The protocol defines the minimum criteria for a block to be valid, but each node may independently apply additional criteria that must be met. If all nodes decide to reject a protocol-valid block that a miner produces, then the block will be orphaned -- it won't matter how many descendant blocks get built on it, because the rest of the network will ignore them all. In fact, this is the mechanism by which a user-activated soft fork works [1].
When bitcoin launched there were no non-mining nodes, every node was a mining node. "Node" in the whitepaper refers to what we know today as mining nodes. You are suggesting that the task of relaying blocks falls solely on non-mining nodes, when this isnt true. Mining nodes carry out the same roles as non mining nodes when it comes to relaying/propagation. Every node within the network, whether it be mining or non-mining, pass blocks they receive to their peers.
The task of relaying blocks falls to every node; you are correct there (and I never claimed otherwise). But, if a miner produces a block that the vast majority of nodes reject, then the network effectively splits into two parts -- one part where the block was never "seen" and the other part where it was. If the part that never "sees" the block represents more economic activity -- e.g. the majority of exchanges' nodes, the majority of wallets' nodes, etc. -- then it doesn't matter how much mining PoW gets sunk into that block and its descendants because they will never be processed. Downstream, that means that the miner's coins never materialize on these nodes, which makes mining non-relayed blocks unprofitable. Miners need other nodes to recognize their blocks in order for those other nodes' operators to recognize the existence of their coins.
For example, consider what would happen if a miner produced a block that tried to spend a Segwit output without consideration of the witness. Under the Bitcoin protocol, this is technically allowed -- a Segwit output looks like an anyone-can-spend output. But due to the extra Segwit rules, only pre-Segwit nodes would accept and relay this block. Considering that nearly all exchanges, wallets, custodians, etc. apply the Segwit rules, this would mean that this block would be treated as invalid and its coinbase rendered effectively unspendable. Even if 100% of the Bitcoin miners tried to build on top of this Bitcoin-valid but Segwit-invalid block, all their blocks would be similarly rejected. Only pre-Segwit Bitcoin nodes would accept these blocks, but hardly anyone runs them [1] (note that Segwit support first appeared in version 0.16; there are indeed still some people running pre-Segwit nodes).
> For some reason you seem to think that miners can't send out their own blocks. Of course they can do anything a simple relay node can do.
I never said that they can't. I said that other nodes can choose to ignore them.
> Also you are linking to a person who thinks the sun revolves around the earth and that there is nothing wrong with slavery because the bible says so.
No disagreement there. The only reason I linked to his site is because it's the only Bitcoin network status page I'm aware of that has a fine-grained breakdown of Bitcoin user-agent strings. Do you have a better link?
> I never said that they can't. I said that other nodes can choose to ignore them.
Who cares? That doesn't matter at all. Other miners will pick up the found block and any node that ignores what they are doing will just unsync themselves and become useless.
> Do you have a better link?
For the thing that's irrelevant to anything we are talking about? I'll get right on that.
> Who cares? That doesn't matter at all. Other miners will pick up the found block and any node that ignores what they are doing will just unsync themselves and become useless.
What good is a block if no exchange or wallet will accept it (and its coins) as valid? Miners aren't all-powerful entities in a blockchain. In order to have any say at all in the blockchain's behavior (let alone cash out their coins), they (1) need other nodes to recognize their blocks as valid, and (2) need a reliable underlying network to propagate their blocks. If no one accepts a miner's block, or if the block cannot be propagated, then it's the _miner_ that's useless.
Like, this is distributed systems 101 stuff. If your node broadcasts a message, and no one accepts it, then your node is dead for all intents and purposes. If 100% of miners are producing blocks that the rest of the network isn't accepting, then 100% of the miners are effectively dead.
To think of this concretely, what do you think would happen if 100% of Bitcoin miners suddenly stopped honoring Segwit witness data, and started mining blocks that claimed Segwit transaction outputs as their own (which is technically allowed, since they are marked as anyone-can-spend)? Pre-Segwit nodes would accept these blocks (my aforementioned link shows that such nodes exist on the network today), but do you think Segwit-aware nodes would accept them?
> For the thing that's irrelevant to anything we are talking about? I'll get right on that.
> What good is a block if no exchange or wallet will accept it (and its coins) as valid?
It only matters what the other miners accept. If all the miners accept a block but "exchanges and nodes don't", then they have stopped updating their chain. What are they updating to if it isn't what the miners agree on?
> (1) need other nodes to recognize their blocks as valid,
No, they need other miners to accept their blocks and build on top of them.
> (2) need a reliable underlying network to propagate their blocks.
They have that, it's called the internet. Do you think broadcasting 1 MB blocks is difficult?
> If 100% of miners are producing blocks that the rest of the network isn't accepting, then 100% of the miners are effectively dead.
The miners are the network. If they all agree the other can either relay their chain or do nothing. There is only the chain the miners agree on. What exactly do you think relay nodes will do if they don't relay what the miners create?
> You sound like a very pleasant person.
This is the cry of someone who can't explain what they claim. I don't know where you formed a solidified but completely wrong idea in your head, but someone mislead you.
To recap: There is what the miners agree on or there is nothing. Relay nodes have no say in what a valid block is. They can relay valid blocks or not.
I see you still haven't answered my question about how pre-Segwit nodes will behave. If you don't know, just say so.
> This is the cry of someone who can't explain what they claim. I don't know where you formed a solidified but completely wrong idea in your head, but someone mislead you.
Before you reply, why don't you try checking my profile? I think you will find that it is you who are mistaken.
Nodes aren't "responsible" for anything, they can only help if they want. Miners broadcast their blocks to other miners to signal they found a valid block.
Miners can broadcast to anyone they want and nodes can't find or manipulate blocks, so they take the role of passive helpers.