🔒 Ein Geben, das Sie selbst prüfen können

Pokerni: Chips ohne Geldwert, nicht kaufbar, nicht umwandelbar, nicht übertragbar; KI-Gegner sind mit einem Abzeichen gekennzeichnet. Da das Haus die Gegner stellt, schulden wir Ihnen volle Transparenz beim Geben.

In fünf Sätzen

  1. Vor jeder Hand mischt der Server die Karten aus einer geheimen Zahl, dem Seed.
  2. Bevor die erste Karte ausgeteilt wird, schickt er Ihnen den Fingerabdruck dieses Seeds: ein Siegel, das den ganzen Stapel festlegt, ohne etwas zu verraten.
  3. Während der Hand kann niemand die Karten ändern, auch wir nicht: das Siegel liegt bereits bei Ihnen.
  4. Wenn die Hand vorbei ist, gibt der Server den Seed bekannt.
  5. Dann können Sie hier, in Ihrem Browser, prüfen, dass das veröffentlichte Siegel zum bekanntgegebenen Seed passt.
9f3a 7c 4e … e1 1. Vor der Hand Fingerabdruck veröffentlicht 4711 0938 … 271 2. Nach der Hand Seed bekanntgegeben 9f3a 7c 4e … e1 ✓ 3. Sie prüfen Fingerabdruck = SHA-256(Seed)

Meine letzte Hand prüfen

Die Berechnung läuft vollständig in Ihrem Browser; nichts wird an den Server gesendet. Dieser Browser behält den vor der Hand empfangenen Fingerabdruck und den danach empfangenen Seed; wenn Sie angemeldet sind, wird auch Ihr Handverlauf abgefragt. Sie können die beiden Werte auch selbst einfügen: am Tisch erscheint der Fingerabdruck, wenn Sie mit der Maus über das Abzeichen „Überprüfbares Geben“ fahren.

Was diese Prüfung beweist: dass der vor der ersten Karte veröffentlichte Fingerabdruck tatsächlich zu dem nach der letzten Karte bekanntgegebenen Seed gehört. Der Stapel stand also fest, bevor Sie eine einzige Karte gesehen haben, und niemand konnte ihn während der Hand ändern.

Was sie nicht beweist: die genaue Reihenfolge der 52 Karten, die aus dem Seed folgt. Dieses Mischen nutzt den Generator von NumPy, den der Browser nicht nachspielen kann; das Python-Skript der technischen Fassung baut sie Karte für Karte nach.

Transparenz der KI

KI-Gegner tragen an ihrem Platz dauerhaft das Abzeichen IA, zusammen mit ihrer Stufe. Eine KI erhält genau dieselben Informationen wie ein menschlicher Spieler an ihrer Stelle: ihre zwei Karten, die Gemeinschaftskarten und die öffentlichen Aktionen; niemals die Karten der anderen oder die noch kommenden Karten. Der Code des Gebens ist überprüfbar, wie oben erklärt. Der Coach ist ein automatisiertes System: seine Ratschläge berechnet ein Programm, nie eine Person, allein aus Ihren Karten und den öffentlichen Aktionen.

Technische Fassung

Wie die Karten gemischt werden

Vor jeder Hand zieht der Server einen 63-Bit-Seed mit dem kryptographischen Generator des Systems (secrets.randbits(63) in Python, unvorhersehbar, auch für uns). Dieser Seed steuert eine deterministische Permutation der 52 Karten (numpy.random.default_rng(seed).permutation(52)). Die zwei Karten jedes Spielers und dann die 5 Gemeinschaftskarten werden in der Reihenfolge des Stapels ausgeteilt, ohne Burn Cards.

Erst festlegen, dann aufdecken (Commit-Reveal)

Der Server kann die Karten während einer Hand nicht ändern, und er beweist es:

1. Vor der Hand enthält jede Zustandsnachricht eine Festlegung: commit = SHA-256("selfpoker:" + seed). Der Fingerabdruck legt den kompletten Stapel fest, ohne etwas zu verraten.

2. Nach der Hand gibt die Abschlussnachricht (hand_end) den Seed bekannt. Jeder kann dann prüfen, dass der Fingerabdruck passt, und den ganzen Stapel nachbauen, einschließlich der nicht ausgeteilten Karten.

Selbst prüfen

import hashlib
import numpy as np

graine = 1234567890123456789   # Feld "fairplay.seed" von hand_end
commit = "..."                  # Feld "commit" der Zustandsnachrichten

assert hashlib.sha256(f"selfpoker:{graine}".encode()).hexdigest() == commit
paquet = list(np.random.default_rng(graine).permutation(52))
# n Spieler: Karten 0..2n-1 = Hände (2 pro Spieler), 2n..2n+4 = Gemeinschaftskarten
# Wert = Karte // 4 (0=2 … 12=Ass), Farbe = Karte % 4 (♣♦♥♠)

Jede gespielte Hand wird mit ihrem Seed archiviert: der gesamte Verlauf lässt sich identisch nachspielen.

Fragen? Der Servercode kann auf dem Rechner eingesehen werden, der ihn hostet: dies ist eine private Seite unter Leuten, die einander vertrauen.

Hintergrundmusik: Jason Shaw, audionautix.com, Lizenz Creative Commons BY 4.0 (« Big Swing Band », « Closer To Jazz », « Dirt Road Traveler », « Nice And Easy », « Acoustic Rock », « Feel Good Rock »).

← Zurück zu den Tischen