How about this scenario:
Say you have 10 "users" (but lets say instances) mining with the following IPs
1-65.25.42.63
2-126.154.98.22
3-65.25.42.64
4-25.68.36.45
5-65.25.42.65
6-87.22.55.89
7-65.25.42.66
8-45.22.36.59
9-65.25.42.67
10-65.25.42.68
We dont *know*, except for in this scenario, that "users" 1,3,5,7,9, and 10 are the same person trying to commit an attack.
What if every block randomly generates a random number set each new block that corresponds to "instance ID's" assigned to every mining instance such that 49% of instance ID's are randomly picked to ACCEPT work from, and 2% of ID's are maintained from the previous 10 blocks to accept work from...
is there some variant of that in which you can exponentially decrease the odds of 51% of the network being under control by the same group? or is it impossible?
A few questions:
1) How do you get every node on the entire network to choose the same random number (so that they all choose the same 49% to "accept work from"?
2) How do you keep the nodes that will be ignored for the next block from knowing that they will be ignored (so that they don't just turn off all their equipment until the block is solved and the next "random number" is chosen?
3) If nodes 1, 2, 3, 4, and 7 all broadcast the exact same block within a fraction of a second of each other, how do nodes 6 and 8 know which node "solved" the block?