Gostaria de saber - já foram criados jogos que são:
- ponto a ponto sem que um ponto seja designado como host
- competitivo (não cooperativo, os jogadores jogam um contra o outro)
- comprovadamente justo (não há possibilidade de qualquer jogador trapacear)
- Não forneça a nenhum jogador mais informações do que ele precisa (por exemplo, não revelando os segredos de outros jogadores nem para os aplicativos em execução)
Um exemplo desse jogo seria um jogo de pôquer, no qual cada jogador e seus jogos só seriam capazes de conhecer suas próprias mãos, mas não as mãos de outros jogadores, sem depender de nenhum deles ser o anfitrião do jogo. Eu sei que existem alguns jogos por aí que são comprovadamente justos, mas tudo o que sei existe em uma configuração servidor-cliente.
game-mechanics
peer-to-peer
ThePiachu
fonte
fonte
Respostas:
Não sei se esses jogos foram criados, mas com certeza foram teorizados. Vários trabalhos foram publicados sobre o tema. Você pode pesquisar esquemas de compromisso que oferecem uma explicação de como duas partes discordantes podem jogar uma moeda enquanto estão fisicamente distantes (veja também este artigo de 1981: Moeda lançando por telefone ).
Um artigo muito completo é, por exemplo, Jogos de Cartas Colecionáveis à Prova de Trapaça :
Também Playout à prova de fraude para jogos centralizados e ponto a ponto :
fonte
Embora não seja um jogo de azar, estou desenvolvendo um jogo do AIR que seja próximo aos seus requisitos.
No entanto, observe ...
Considero "nenhuma possibilidade de ... trapacear" uma afirmação falsa. Se você não controla todos os aspectos (hardware e software), é possível trapacear.
Embora não seja um jogo, acho que a rede Bitcoin é um excelente exemplo do que você está procurando.
Editar
Vou expandir um pouco sua questão principal.
Primeiro, não vejo nenhum jogo que exija condições "comprovadamente justas" sem algum nível de exigência de autoridade. Dos placares aos micropagamentos, os sistemas centralizados e a autoridade caminham juntos.
Segundo, o melhor exemplo de jogo que consigo pensar é nos primeiros jogos de Pokemon. Embora a logística da rede interna possa não ter sido ponto a ponto, ela segue o mesmo princípio.
Por fim, as plataformas móveis são especialmente adaptadas para jogos ponto a ponto. Considero que esse campo é muito escasso, é por isso que atualmente estou desenvolvendo uma linha de jogos ponto a ponto.
fonte
Algumas partes que podem ajudar, dependendo dos casos de uso:
Se você precisar obter informações simultâneas dos usuários, sem a possibilidade de poder usar as informações em seu benefício prematuramente, use o esquema de consolidação. Essencialmente, isso é:
Isso pode ser usado para várias coisas, incluindo um número aleatório compartilhado (ambos fornecem um número inteiro por meio de compromissos e os juntam após o compartilhamento para obter o valor compartilhado).
No entanto, isso é insuficiente para um jogo como o pôquer, porque exige que as cartas sejam conhecidas apenas por uma pessoa, enquanto continua a poder sacar do baralho compartilhado. A Wikipedia possui um algoritmo bastante bom para embaralhamento compartilhado usando um esquema em que os dois jogadores criptografam cada cartão individualmente várias vezes. Isso cria uma situação em que são necessárias 2 chaves para descriptografar qualquer carta e os dois jogadores têm 1. O artigo cita preocupações com o desempenho, mas não acho que o AES ou similar seja proibitivamente caro na escala exigida para o poker de 2 jogadores.
Se eu estivesse projetando um algoritmo, os jogadores calculariam um valor aleatório no início do jogo para usar como uma semente para todo o restante das operações e compartilhar um hash desse valor. Dessa forma, eles podem compartilhar esse valor após o jogo e você pode verificar se eles seguiram o protocolo corretamente, sem travessuras.
fonte