Tem sido apontado que minha resposta anterior pode ter sido baseada em um mal-entendido do que você quis dizer com "falsificação". (Em caso afirmativo, informe-me e eu o excluirei.)
Se o que você deseja impedir são os servidores de jogos que enviam dados falsos para o servidor mestre, então - como Jari Komppa observa - geralmente é impossível impedir completamente. Na verdade, é simplesmente uma variante do problema clássico de prevenção de trapaça para vários jogadores , exceto nos servidores intermediários, e não nos clientes suspeitos de trapaça. Muitas das mesmas técnicas usadas para a prevenção tradicional de trapaça poderiam funcionar aqui também, mas, como sempre, nenhuma delas é completamente à prova de falhas.
Dito isto, há são algumas coisas que você poderia fazer que especificamente ajudam contra servidores batota. Um deles seria fazer com que cada jogador de uma partida contatasse separadamente o servidor mestre e confirmasse que estão participando dessa partida. (Você provavelmente desejará fazer isso antes do da partida, para garantir que todos concordem com quem são os participantes e que ninguém fique tentado a afirmar que não participou de uma partida que perdeu. Você pode usar assinaturas digitais para adie que, no entanto, essencialmente, você pode fazer com que todos os jogadores de uma partida assinem uma mensagem dizendo " Eu sou o jogador X e estou participando da partida M no servidor S no momento T com os jogadores Y, Z e W."e enviá-lo ao servidor do jogo, que posteriormente poderá retransmiti-lo ao servidor mestre.) Dessa forma, você pode pelo menos garantir que um servidor trapaceiro não possa afetar a classificação de qualquer jogador que não jogue naquele servidor .
Isso é particularmente útil se você estiver usando algo como classificações Elo, em que a classificação dos jogadores depende principalmente de seu desempenho relativo . Claro, alguém executando um servidor falso pode ainda criar um monte de contas falsas e enviar resultados dizendo que sua própria conta supera as falsas, mas com um sistema de classificação relativo, tudo o que fará é fazer com que a conta do trapaceiro fique ligeiramente acima das falsificações ( que por sua vez terá classificações inferiores).
Outra coisa óbvia a ser feita para desencorajar a trapaça é permitir que os jogadores verifiquem os resultados de suas partidas diretamente no servidor principal. Se um jogador vence uma partida em um novo servidor, mas os resultados enviados ao servidor mestre dizem que eles perderam (ou se os resultados nunca foram enviados), isso permitirá que eles saibam que algo suspeito está acontecendo. Felizmente, nesse ponto, eles denunciam o servidor por trapaça ou, pelo menos, votam com os pés e nunca mais jogam nesse servidor.
Na verdade, você pode fazer isso automaticamente: após cada jogo, depois que os resultados forem enviados ao servidor principal, os clientes os buscarão no servidor principal e compará-los com a forma como o cliente pensa que o jogo terminou. Se houver uma incompatibilidade, relate-a ao jogador (para que eles saibam que algo está errado) e ao servidor mestre (para que você possa detectar servidores trapaceiros). Obviamente, como operador do servidor principal, você precisará decidir quem está mentindo - o servidor ou o jogador - mas, na maioria dos casos, esperançosamente, na maioria dos casos, isso será bastante óbvio a partir do padrão dos relatórios.