Peer-to-Peer-Hostless-Glücksspiele? [geschlossen]

15

Ich frage mich, ob es jemals Spiele gegeben hat, die:

  • Peer-to-Peer, ohne dass ein Peer als Host festgelegt wurde
  • wettbewerbsfähig (nicht kooperativ, Spieler spielen gegeneinander)
  • nachweislich fair (es besteht keine Möglichkeit, dass ein Spieler betrügt)
  • Geben Sie keinem Spieler mehr Informationen, als er benötigt (zum Beispiel, um die Geheimnisse anderer Spieler nicht einmal den laufenden Anwendungen preiszugeben).

Ein Beispiel für ein solches Spiel wäre ein Pokerspiel, bei dem jeder Spieler und seine Spiele nur seine eigene Hand kennen, nicht aber die Hände anderer Spieler, ohne sich darauf zu verlassen, dass einer von ihnen der Gastgeber des Spiels ist. Ich weiß, dass es ein paar Spiele gibt, die nachweislich fair sind, aber alles, was ich weiß, existiert in einer Server-Client-Konfiguration.

ThePiachu
quelle
1
"Peer-to-Peer" und "es gibt keine Möglichkeit, dass ein Spieler betrügt" - das ist nicht möglich.
Kikaimaru
7
@Kikaimaru Du liegst falsch.
Sam Hocevar
@Kikaimaru Eigentlich habe ich ein Konzept, wie das funktionieren könnte, aber ich möchte zuerst nachfragen, bevor ich möglicherweise versuche, das Rad neu zu erfinden (okay, in diesem Fall vielleicht ein Flugzeug).
ThePiachu
2
Ich bezweifle sehr, dass es eine Methode gibt, die das Betrügen auf der Ebene des Server-Clients verhindert. Spieler können zum Beispiel wissen, dass andere Spieler schummeln und aufhören zu spielen - ohne dass ein Code benötigt wird (oder Sie können das Spiel einfach stoppen), aber ist das "keine Möglichkeit zu schummeln"?
Kikaimaru,
@Kikaimaru Wenn das Protokoll die Richtigkeit erzwingt, ist der Versuch, zu betrügen, dasselbe wie überhaupt nicht zu spielen. Wenn mehr als zwei Spieler anwesend sind, können die anderen Spieler trotzdem weiterspielen und der Betrugsversuch wird ignoriert, ähnlich wie bei einem ungültigen IP-Paket Sein.
Sam Hocevar

Antworten:

19

Ich weiß nicht, ob solche Spiele erstellt wurden, aber sie wurden mit Sicherheit theoretisiert. Zu diesem Thema wurden mehrere Artikel veröffentlicht. Möglicherweise möchten Sie nach Verpflichtungsschemata suchen, in denen erläutert wird, wie zwei unterschiedliche Parteien eine Münze werfen können, während sie physisch weit entfernt sind (siehe auch diesen Artikel von 1981: Münzwurf per Telefon ).

Eine sehr gründliche Abhandlung ist zum Beispiel Cheat-Proof Peer-to-Peer-Sammelkartenspiele :

Wir schlagen ein betrugsicheres Peer-to-Peer-Protokoll für die Implementierung von Online-Sammelkartenspielen vor. Wir teilen die für alle TCGs gemeinsamen Aktionen auf und erläutern, wie sie zwischen zwei Spielern ausgeführt werden können, ohne dass ein Schiedsrichter eines Drittanbieters erforderlich ist (für den normalerweise ein unvoreingenommener Server erforderlich ist). In jeder Aktion wird der Spieler entweder am Schummeln gehindert oder wenn er schummelt, kann der Gegner nachweisen, dass er dies getan hat . Abschließend zeigen wir, wie sicher diese Methoden sind und wie sie für andere TCG-Stile und andere Peer-to-Peer-Spiele gemischt werden können.

Auch Cheat-Proof-Playout für zentrales und Peer-to-Peer-Gaming :

Wir schlagen ein Protokoll vor, das nachweislich Betrugsbekämpfungsgarantien hat, nachweislich sicher und lebendig ist , aber eine Leistungsstrafe erleidet. Wir entwickeln dann eine erweiterte Version dieses Protokolls, die als asynchrone Synchronisation bezeichnet wird und die Strafe vermeidet. Sie ist serverlos, bietet nachweisliche Betrugsschutzgarantien, ist robust bei Paketverlust und sorgt für eine deutlich verbesserte Kommunikationsleistung. Diese Technik ist auf allgemeine Spielfunktionen sowie Clustering- und zellenbasierte Techniken für Massively Multiplayer-Spiele anwendbar. Insbesondere stellen wir ein wissensfreies Protokoll zur Verfügung, damit die Spieler innerhalb eines bestimmten Bereichs voneinander sind und ansonsten keine Ahnung von ihrer Entfernung haben. Unsere Leistungsansprüche werden durch eine Analyse unter Verwendung einer Simulation gestützt, die auf echten Spielspuren basiert.

sam hocevar
quelle
1
Siehe auch die Mental Poker Seite auf Wikipedia - en.wikipedia.org/wiki/Mental_poker . Im Bitcoin-Forum wurde über die möglichen Anwendungen dieses Bitcointalk.org/index.php?topic=1487.0
liamzebedee am
Großartiger Link @liamzebedee. Dieser Artikel hat so ziemlich den genauen Algorithmus, der Poker zu einem guten Peer-to-Peer-Erlebnis macht.
Captncraig
4

Obwohl ich kein Glücksspiel bin, entwickle ich ein AIR-Spiel, das Ihren Anforderungen entspricht.

  1. Entwickelt mit dem RTMFP-Multicast-Protokoll von Flash. Kein Client wird als Host betrachtet.
  2. Physikbasiertes Wettkampfsystem.
  3. Überprüft die Eingaben des Gegners und disqualifiziert das Spiel aufgrund ungültiger Daten.
  4. Überträgt bestimmte physikalische Informationen aus Gründen der Bandbreite / Latenz nicht (dies hat auch bestimmte Betrugsmethoden deaktiviert).

Bitte beachten Sie jedoch ...

Ich halte "keine Möglichkeit ... zu betrügen" für eine falsche Aussage. Wenn Sie nicht alle Aspekte (Hardware und Software) kontrollieren, ist Betrug möglich.

Obwohl dies kein Spiel ist, denke ich, dass das Bitcoin- Netzwerk ein hervorragendes Beispiel für das ist, wonach Sie suchen.

Bearbeiten

Ich werde ein wenig auf Ihre Hauptfrage eingehen.

Erstens sehe ich kein Spiel, das "nachweislich faire" Bedingungen erfordert, ohne ein gewisses Maß an Autorität. Von Bestenlisten bis zu Mikrozahlungen gehören zentralisierte Systeme und Autorität zusammen.

Zweitens ist das beste Beispielspiel, an das ich denken kann, die frühen Pokemon-Spiele. Obwohl die Logistik des inneren Netzwerks möglicherweise nicht Peer-to-Peer war, folgt sie demselben Prinzip.

Schließlich sind die mobilen Plattformen speziell für Peer-to-Peer-Spiele geeignet. Ich halte dieses Feld für sehr mangelhaft, deshalb entwickle ich gerade eine Reihe von Peer-to-Peer-Spielen.

Nathan Goings
quelle
Ja, ich habe vielleicht etwas Erfahrung mit Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu
1

Einige Teile, die je nach Anwendungsfall hilfreich sein könnten:

Wenn Sie von Benutzern gleichzeitig Eingaben erhalten möchten, ohne dass die Möglichkeit besteht, Informationen vorzeitig zu ihrem Vorteil zu nutzen, können Sie das Bereitstellungsschema verwenden.Im Wesentlichen ist dies:

  1. Beide Spieler geben einen Hash der Aktion an, die sie ausführen möchten.
  2. Nachdem beide ihre Zusage gemacht haben, können beide ihre Klartextaktionen ausführen.
  3. Der Klartext kann mit den Hashes verglichen werden, um sicherzustellen, dass niemand seine Antwort geändert hat, nachdem er die Aktion des anderen erfahren hat.

Dies kann für eine Vielzahl von Dingen verwendet werden, einschließlich einer gemeinsam genutzten Zufallszahl (beide stellen eine ganze Zahl über Verpflichtungen bereit und xor sie zusammen nach der Freigabe, um den gemeinsam genutzten Wert zu erhalten.)

Für ein Spiel wie Poker ist dies jedoch unzureichend, da die Karten nur einer Person bekannt sein müssen, während sie weiterhin vom gemeinsamen Kartendeck gezogen werden können. Wikipedia hat einen ziemlich guten Algorithmus zum gemeinsamen Mischen mit einem Schema, bei dem beide Spieler jede Karte einzeln mehrmals verschlüsseln. Dies führt zu einer Situation, in der 2 Schlüssel erforderlich sind, um eine bestimmte Karte zu entschlüsseln, und beide Spieler über 1 verfügen. Der Artikel nennt Leistungsprobleme, aber ich denke nicht, dass AES oder ähnliches in dem für 2-Spieler-Poker erforderlichen Umfang unerschwinglich teuer ist.

Wenn ich einen Algorithmus entwerfen würde, müssten die Spieler zu Beginn des Spiels einen zufälligen Wert berechnen, der als Ausgangswert für alle anderen Operationen verwendet wird, und einen Hash dieses Werts gemeinsam nutzen. Auf diese Weise können sie diesen Wert nach dem Spiel teilen und Sie können überprüfen, ob sie das Protokoll korrekt befolgt haben, und zwar ohne Spielereien.

captncraig
quelle