Jogos de azar competitivos ponto a ponto sem host? [fechadas]

15

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.

ThePiachu
fonte
11
"ponto a ponto" e "não há possibilidade de nenhum jogador trapacear" - Isso não é possível.
Kikaimaru
7
@Kikaimaru Você está errado.
Sam Hocevar
@Kikaimaru Na verdade, eu tenho um conceito de como isso poderia funcionar, mas eu gostaria de perguntar antes de tentar reinventar a roda (ok, nesse caso, talvez, um avião).
ThePiachu
2
Eu duvido muito que exista um método que evite trapacear no nível que o servidor-cliente faz. Os jogadores podem, por exemplo, saber que outros jogadores estão trapaceando e parando de jogar - sem a necessidade de qualquer código (ou você pode simplesmente parar o jogo), mas isso é "nenhuma possibilidade de trapacear"?
Kikaimaru
@Kikaimaru Se o protocolo impõe correção, tentar trapacear é o mesmo que não jogar - se houver mais de dois jogadores, os outros jogadores ainda poderão continuar jogando e a tentativa de trapaça será ignorada, ao contrário de um pacote IP inválido. estar.
Sam Hocevar

Respostas:

19

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 :

Propomos um protocolo ponto a ponto à prova de trapaça para a implementação de jogos de cartas comerciais online. Dividimos as ações comuns a todos os TCGs e explicamos como elas podem ser executadas entre dois jogadores sem a necessidade de um árbitro de terceiros (o que geralmente requer um servidor imparcial). Em cada ação, o jogador é impedido de trapacear ou, se o fizerem, o adversário poderá provar que o fez . Concluímos mostrando como esses métodos são seguros e como podem ser misturados para outros estilos de TCGs e outros jogos ponto a ponto.

Também Playout à prova de fraude para jogos centralizados e ponto a ponto :

Propomos um protocolo que possui garantias comprováveis ​​de anti-trapaça, é comprovadamente seguro e ativo , mas sofre uma penalidade de desempenho. Em seguida, desenvolvemos uma versão estendida desse protocolo, chamada sincronização assíncrona, que evita a penalidade, não tem servidor, oferece garantias comprováveis ​​de trapaças, é robusta na presença de perda de pacotes e fornece um desempenho de comunicação significativamente aumentado. Essa técnica é aplicável a recursos comuns de jogos, bem como técnicas de cluster e baseadas em células para jogos multiplayer em massa. Especificamente, fornecemos um protocolo à prova de zero conhecimento para que os jogadores estejam dentro de um intervalo específico um do outro e, de outra forma, não tenham noção de sua distância. Nossas alegações de desempenho são apoiadas por análises usando uma simulação baseada em traços de jogos reais.

sam hocevar
fonte
11
Veja também a página do Mental Poker na Wikipedia - en.wikipedia.org/wiki/Mental_poker . Houve uma discussão no fórum Bitcoin sobre as potenciais aplicações desta bitcointalk.org/index.php?topic=1487.0
liamzebedee
Ótimo link @liamzebedee. Esse artigo tem praticamente o algoritmo exato que faz o poker funcionar bem ponto a ponto.
captncraig
4

Embora não seja um jogo de azar, estou desenvolvendo um jogo do AIR que seja próximo aos seus requisitos.

  1. Desenvolvido usando o protocolo RTMFP multicast do Flash. Nenhum cliente é considerado host.
  2. Sistema competitivo baseado em física.
  3. Verifica a entrada do oponente e desqualifica o jogo com dados inválidos.
  4. Não transmite determinadas informações físicas por motivos de largura de banda / latência (isso também desabilitou certos métodos de trapaça).

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.

Nathan Goings
fonte
Sim, eu poderia ter alguma experiência com Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu
1

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 é:

  1. Ambos os jogadores fornecem um hash da ação que desejam executar.
  2. Depois que ambos forneceram seu compromisso, ambos podem fornecer suas ações de texto sem formatação.
  3. O texto simples pode ser comparado com os hashes para verificar se ninguém mudou sua resposta depois de aprender a ação da outra pessoa.

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.

captncraig
fonte