Unless humans are actively monitoring their pool and watching what blocks are received
Of course, regular asic owners will not do it
I mean that pool admin can monitor the behaviour of concurrent pools with stratum.
could always create a block which non-upgraded nodes would accept but upgraded ones wouldn't.
this block would not move faster through the network ( do not tell me about BIP-16 - it is
the past, we talk about future )
We have had the infrastructure to broadcast headers only since 0.10.0.
I do not talk about "headers first" and other protocol optimizations.
Just the standard protocol: "inv" --> "getdata" --> "block" packets
OK, imagine you and me are pool admins.
I create artificial block, containing 2k segwit transactions you haven't seen in raw form.
I broadcast this block to pre-segwit part of network (without signatures).
One of my own asics is connected to your pool.
You
are able to receive this incomplete block from one of pre-segwit nodes.
You
know that this situation is standard, because block without signatures moves
much more faster. You have two opportunities: (a) ignore it and wait more time for
valid block in segwit consensus rules (b) start mining empty block on top of it.
What would you do in this case to increase your revenue?
What would you do if this case will happen regulary?
The attack actually requires the hashrate of the malicious pool plus the hashrate of non-SW miners to be 51%
I've described only the first step. Not an attack itself
Go on!