Post
Topic
Board Development & Technical Discussion
Re: Segwit is a 51% attack on Bitcoin
by
Taras
on 20/12/2017, 21:00:23 UTC
So who cares if a non-mining node rejects a block?

Because no other node (including other miners) on the network will then accept any other blocks built upon that bad block and consequently no other transactions built on that block will be accepted.  So no miner will be able to spend the coinbase transactions - which means no reward for the miner.  Which means they aren't gaining anything, but are losing the entire block reward spending their electricity for nothing.  And wasting the capital invested in mining hardware.

Are we on the same page that the only node's vote that matters is miners?  Because the only vote you have is whether to mine on a block or not.  This act of mining on a block signifies you accept it.  So what do non-mining nodes have to do with this process?

Have you ever heard of a UASF? BIP 148 was a softfork that the nodes, not the miners, voted on. It said: after a certain time, make it illegal for miners to create blocks that don't vote for segwit. Since a lot of nodes adopted BIP 148, if miners didn't vote for segwit after that certain time, they would be mining "fool's gold" that they couldn't keep (as described in my post above). What happened when the nodes voted for BIP 148? The miners got scared and segwit was activated almost immediately. (First they voted for BIP 91, which also made it illegal to not vote for segwit, but from the miner's perspective too, not just the nodes.)

That bunch of dominos started falling because the nodes voted for BIP 148 by incorporating it in their software. It's why we have segwit today.

So who cares if a non-mining node rejects a block?
If a miner is mining blocks that the thousands of non-mining nodes are going to reject, then they simply aren't mining, they're just wasting millions of dollars of energy and hardware for the privilege of making blocks that nobody recognizes. Basically, they're mining fool's gold, except they don't even get to keep it.

What does it mean for a non-mining node to reject a block?  Does it mean they refuse to mine on it?  Because it's not like they were going to mine on it anyway.
If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.