How exactly do non-mining nodes enforce the protocol? They can say it is invalid, but what can they do about it?
Duh, they can ignore invalid blocks and ban the IP addresses of anybody who sends one. To the Bitcoin protocol, invalid blocks simply do not exist. To full nodes, invalid blocks simply do not exist.
ir.hn, stop spewing the same gibberish simultaneously over multiple different threads whilst ignoring, twisting, or dissimulating around all the thoughtful explanations given to you by smart people. (Smart people,
please stop wasting your time trying to explain to someone self-evidently ineducable; IMO the only task is to provide sufficient answer that newbies who happen across these threads won’t be misled by ir.hn’s disinformation campaign.)
Please stop spreading misinformation. This "attack" is not just limited to segwit; miners could have chosen to not verify signatures anyways before segwit activated. Regardless of whether segwit is activated, if a miner produces an invalid block because it contains a transaction that does not have a valid signature (again, regardless of segwit or not), other non-mining full nodes on the network will reject that block and the miner will be wasting his time and electricity.
Lets say all the non-mining full nodes reject the block. Why would the miners care? the miners are the one creating the blockchain. You can cry foul all day long but unless you can vote with your hashpower on which chain is correct, you are yelling to the wind.
ir.hn: You have no idea how Bitcoin works. You have no idea how Segwit works. Or at least, you are
feigning gross ignorance. In this thread and others, intelligent and well-informed people have attempted to educate you. You shoot back with bare assertions and blatant misinformation.
Enough.General point:
There is a common misconception about the role of miners. Miners have one, only one, and exactly one job: To provide the ordering of transactions in a Byzantine fault-tolerant manner (which in turn prevents double-spends). That’s what miners do. That is
all miners do. Granted, it is an important and resource-intensive job; that’s why miners get paid for it. But that is the one and only security function of miners.
Of course, miners must validate each block they produce; if they didn’t, they would be unable to reliably produce valid blocks. But
miners are not the parties responsible for enforcing validation on the network. Full nodes do that. Each individual full node does that, so as to provide better security for its owner; and all full nodes collectively do that, thus providing validation security for the whole network. Observe how here as everywhere, Bitcoin precisely aligns the individual’s selfish interest with the common good.
Full nodes do
not blindly “follow the longest chain”. They follow the chain
independently validated by them which has the highest total POW. A miner who produced invalid blocks would be wasting his hashrate, and likely risking widespread blacklisting of his IP address. It doesn’t matter if the invalid blocks steal money from Segwit transactions, steal money from old-style transactions, create 21 billion new coins, or are filled with gibberish from /dev/random. An invalid block is an invalid block, and shall be promptly discarded by all full nodes—
period.
ir.hn is creating nonsensical non-arguments by exploiting the aforesaid misconception about the role of miners. After all the attempts others have made to explain on this and other points, I cannot but conclude that ir.hn is maliciously spreading misinformation. I write this post for the benefit of others. I am uninterested in arguing with somebody who is a deliberate liar and/or so manifestly ineducable as to appear braindead.