From my knowledge,
A mining pool works in the same way as solo mining. Software acting as node on the network calculates the current blockheader based on its blockchain, and passes this to mining software. This software continually hashes this blockheader looking for the target. For a pool, the pool owners software calculates the blockheader and passes it to its workers/members and they hash the pool owners blockheader.
A question I pose,
The pool owner, or node on the network, receives information from other nodes it is connected to about the current state of the bitcoin blockchain (new transactions, new blocks, longest blockchain). If someone were to control all of the nodes connect to the pool owner, couldn't they edit the block broadcasted from the pool and change the payout address to theirs?
I guess the larger problem I see is if someone were to control all of the connections to someone who has found a block, couldn't they broadcast it altered in their favor and have it accepted faster than the block finder themselves? One because the block finder cannot tell anyone about its block, and two by the time they might find a new connection the network has already accepted the altered one?
To put it differently, if the network is visualized as nodes with a certain weighting of computing power, if you were to control enough nodes around at least 51% of the computing power couldn't you alter the blockchain to your favor? So say the two biggest pools are 21% and 30% of the network collectively but only have 1% of the connection to them (not sure how large/small connection to overall network could be/is), if someone could obtain control of those nodes couldn't they broadcast the work done by the pools to more people than the pool can in the same time?