Des jeux de hasard compétitifs sans hôte entre pairs? [fermé]

15

Je me demande - des jeux ont-ils été créés:

  • poste à poste sans qu'un pair soit désigné comme hôte
  • compétitif (pas coopératif, les joueurs jouent les uns contre les autres)
  • prouvée juste (aucun joueur ne peut tricher)
  • Ne donnez à aucun joueur plus d'informations que nécessaire (par exemple, ne dévoilez pas les secrets des autres joueurs même aux applications en cours d'exécution)

Un exemple d'un tel jeu serait un jeu de poker où chaque joueur et ses jeux ne pourraient connaître que leur propre main, mais pas les mains des autres joueurs sans compter sur l'un d'eux comme hôte du jeu. Je sais qu'il existe quelques jeux qui sont prouvés équitables, mais tout ce que je sais existe dans une configuration serveur-client.

ThePiachu
la source
1
"peer-to-peer" et "il n'y a aucune possibilité qu'un joueur triche" - Ce n'est pas possible.
Kikaimaru
7
@Kikaimaru Vous vous trompez.
sam hocevar
@Kikaimaru En fait, j'ai une idée de comment cela pourrait fonctionner, mais je voudrais d'abord demander autour avant d'essayer de réinventer la roue (d'accord, dans ce cas, peut-être un avion).
ThePiachu
2
Je doute fortement qu'il existe une méthode qui empêcherait la triche au niveau du serveur-client. Les joueurs peuvent par exemple savoir que d'autres joueurs trichent et arrêtent de jouer - sans avoir besoin de code (ou vous pouvez simplement arrêter le jeu), mais est-ce "aucune possibilité de tricher"?
Kikaimaru
@Kikaimaru Si le protocole impose l'exactitude, tenter de tricher revient à ne pas jouer du tout - s'il y a plus de deux joueurs, les autres joueurs peuvent continuer à jouer et la tentative de triche sera ignorée, contrairement à un paquet IP invalide. être.
sam hocevar

Réponses:

19

Je ne sais pas si de tels jeux ont été créés, mais ils ont certainement été théorisés. Plusieurs articles ont été publiés sur le sujet. Vous voudrez peut-être rechercher des schémas d'engagement qui offrent une explication de la façon dont deux parties en désaccord peuvent lancer une pièce tout en étant physiquement éloignées (voir également cet article de 1981: Renversement de pièces par téléphone ).

Un article très approfondi est par exemple Cheat-Proof Peer-to-Peer Trading Card Games :

Nous proposons un protocole peer-to-peer infaillible pour la mise en œuvre de jeux de cartes à collectionner en ligne. Nous décomposons les actions communes à tous les TCG et expliquons comment elles peuvent être exécutées entre deux joueurs sans avoir besoin d'un arbitre tiers (ce qui nécessite généralement un serveur impartial). Dans chaque action, le joueur est empêché de tricher ou s'il triche, l'adversaire pourra prouver qu'il l'a fait . Nous concluons en montrant comment ces méthodes sont sécurisées et comment elles peuvent être mélangées pour d'autres styles de TCG et d'autres jeux peer-to-peer.

Également une lecture à l'épreuve des tricheurs pour les jeux centralisés et entre pairs :

Nous proposons un protocole qui a des garanties anti-triche prouvables, est prouvablement sûr et vivant , mais souffre d'une pénalité de performance. Nous développons ensuite une version étendue de ce protocole, appelée synchronisation asynchrone, qui évite la pénalité, est sans serveur, offre des garanties anti-triche prouvables, est robuste en présence de perte de paquets et prévoit des performances de communication considérablement accrues. Cette technique est applicable aux fonctionnalités de jeu courantes ainsi qu'aux techniques de clustering et basées sur les cellules pour les jeux massivement multijoueurs. Plus précisément, nous fournissons un protocole à l'épreuve de la connaissance du zéro afin que les joueurs se trouvent dans une plage spéci fi que les uns des autres, sans quoi ils n'ont aucune notion de leur distance. Nos déclarations de performance sont étayées par une analyse utilisant une simulation basée sur des traces de jeu réelles.

sam hocevar
la source
1
Voir également la page Mental Poker sur Wikipedia - en.wikipedia.org/wiki/Mental_poker . Il y a eu une discussion sur le forum Bitcoin sur les applications potentielles de ce bitcointalk.org/index.php?topic=1487.0
liamzebedee
Excellent lien @liamzebedee. Cet article a à peu près l'algorithme exact qui fait que le poker fonctionne bien de pair à pair.
captncraig
4

Bien que ce ne soit pas un jeu de hasard, je développe un jeu AIR qui est proche de vos besoins.

  1. Développé en utilisant le protocole de multidiffusion RTMFP de Flash. Aucun client n'est considéré comme hôte.
  2. Système compétitif basé sur la physique.
  3. Vérifie l'entrée de l'adversaire et disqualifie le jeu sur des données invalides.
  4. Ne transmet pas certaines informations physiques pour des raisons de bande passante / latence (cela a également désactivé certaines méthodes de triche).

Cependant, veuillez noter ...

Je considère "aucune possibilité de ... tricher" une fausse déclaration. Si vous ne contrôlez pas tous les aspects (matériel et logiciel), la triche est possible.

Bien qu'il ne s'agisse pas d'un jeu, je pense que le réseau Bitcoin est un excellent exemple de ce que vous recherchez.

Éditer

Je vais développer un peu votre question principale.

Tout d'abord, je ne vois aucun jeu nécessitant des conditions "prouvées équitables" sans un certain niveau d'exigence faisant autorité. Des classements aux micropaiements, les systèmes centralisés et l'autorité vont de pair.

Deuxièmement, le meilleur exemple de jeu auquel je peux penser est les premiers jeux Pokemon. Bien que la logistique du réseau interne n'ait pas été peer-to-peer, elle suit le même principe.

Enfin, les plateformes mobiles sont spécialement adaptées aux jeux peer-to-peer. Je considère que ce domaine fait très défaut, c'est pourquoi je développe actuellement une ligne de jeux peer-to-peer.

Nathan Goings
la source
Ouais, je pourrais avoir une certaine expérience avec Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu
1

Quelques pièces qui pourraient aider, selon les cas d'utilisation:

Si vous avez besoin d'obtenir une entrée simultanée des utilisateurs sans possibilité d'utiliser les informations à leur avantage prématurément, vous pouvez utiliser le schéma d'engagement. Il s'agit essentiellement:

  1. Les deux joueurs fournissent un hachage de l'action qu'ils souhaitent entreprendre.
  2. Une fois que les deux ont donné leur engagement, les deux peuvent fournir leurs actions en texte brut.
  3. Le texte en clair peut être comparé aux hachages pour vérifier que personne n'a changé sa réponse après avoir appris l'action de l'autre personne.

Cela peut être utilisé pour une variété de choses, y compris un nombre aléatoire partagé (les deux fournissent un entier via les engagements et les xor ensemble après le partage pour obtenir la valeur partagée.)

Cependant, cela est insuffisant pour un jeu comme le poker, car cela nécessite que les cartes ne soient connues que d'une seule personne, tout en continuant à pouvoir tirer du jeu partagé. Wikipedia a un assez bon algorithme pour le brassage partagé en utilisant un schéma où les deux joueurs chiffrent chaque carte individuellement plusieurs fois. Cela crée une situation où 2 clés sont nécessaires pour décrypter une carte donnée, et les deux joueurs en ont 1. L'article cite des problèmes de performance, mais je ne pense pas que l'AES ou similaire soit prohibitif à l'échelle requise pour le poker à 2 joueurs.

Si je concevais un algorithme, je demanderais aux joueurs de calculer une valeur aléatoire au début du jeu à utiliser comme graine pour tout le reste des opérations et de partager un hachage de cette valeur. De cette façon, ils peuvent partager cette valeur après le jeu, et vous pouvez vérifier qu'ils ont correctement suivi le protocole, sans manigances.

captncraig
la source