It's been pointed out that my previous answer may have been based on a misunderstanding of what you meant by "spoofing". (If so, please let me know and I'll delete it.) If what you want to prevent is the game servers sending bogus data to the master server, then — as Jari Komppa notes — that's generally impossible to prevent completely. In fact, it's simply a variant of the classic [multiplayer cheating prevention problem](https://gamedev.stackexchange.com/questions/33922/prevent-multiplayer-cheating), except with the intermediate servers rather than the clients being the ones suspected of cheating. Many of the same techniques used for traditional cheating prevention could work here too, but as usual, none of them are completely foolproof. That said, there _are_ some things you could do that would specifically help against cheating servers. One of them would be to have each player in a match separately contact the master server and confirm that they're participating in that match. (You'll probably want to do that _before_ the match begins, so that you can make sure everyone agrees who the participants are and so that nobody's tempted to claim they didn't participate in a match they lost. You _could_ use digital signatures to defer that, though; essentially, you could have every player in a match sign a message saying "*I'm player X and I'm participating in match M on server S at time T with players Y, Z and W.*" and send it to the game server, which can later relay it to the master server.) That way, you can at least ensure that a cheating server can't affect the rankings of any player who doesn't actually play on that server. This is particularly useful if you're using something like [Elo ratings](http://en.wikipedia.org/wiki/Elo_rating_system) where player ranking mostly depends on their _relative_ performance. Sure, someone running a bogus server might still create a bunch of fake accounts and submit results saying that their own account beat the fake ones, but with a relative ranking system, all that will do is make the cheater's account rank slightly above the fakes (which in turn will have rock bottom ratings). Another obvious thing to do to discourage cheating is to let players verify their match results directly from the master server. If a player wins a match on a new server, but the results sent to the master server say that they lost (or if the results are never sent at all), that will let them know that something fishy is going on. Hopefully, at that point they'll either report the server for cheating, or at least vote with their feet and never play on that server again. In fact, you could make this automatic: after each game, once the results have been sent to the master server, have the clients fetch them back from the master server and compare them to how the client thinks the game ended. If there's a mismatch, report it both to the player (so that they'll know something's wrong) and to the master server (so that you can detect cheating servers). Of course, as the operator of the master server, you'll then need to decide who's lying — the server or the player — but hopefully in most cases that will be fairly obvious from the pattern of reports.