My nodes are simply enforcing the consensus rules that the rest of the network is, i.e. honest nodes. How is that gaming the system?
How do we know what consensus rules the rest of the network is using are?
The first method is to inspect transactions and blocks that have already been included in the Blockchain and try to determine the rules empirically via abduction.
Is there another way?
It's true that we don't
know about incompatible consensus rules that exist, but simply haven't been broken. For all practical purposes, those are irrelevant. As long as my nodes
agree with the network in establishing the currently best blockchain, the purpose of the consensus mechanism has been fulfilled. And as long as we have a single, cohesive ledger extending to the genesis block, we know the consensus rules that are/were hard-coded into the protocol, prima facie.
For example, we know that
-Blocks may only create a certain number of bitcoins. (Currently 25 BTC per block.)
-Blocks may only be of a certain size. (Currently 1MB per block.)
If consensus is broken (i.e. the network disagrees on what constitutes the longest, valid chain), we would
then need to deduce which consensus rule was violated (by either fork). But as long as consensus remains intact, that is unnecessary, since my nodes agree with the
current (and in this case,
only) consensus on what constitutes the longest, valid chain.
This is a case where prima facie, it is sensible to assume the consensus rules have not changed
unless and until a) we have affirmative knowledge that the consensus rules have changed (i.e. software update, where we can observe the proportion of updated nodes), or b) consensus is broken. Maybe I'm missing something, but anything else seems irrelevant, since it won't affect consensus.