So entstehen die Würfel.
Jede Partie auf yayay.io bekommt ihre Würfel aus einer einzigen geheimen Zahl, dem Schlüssel. Der Server wählt ihn vor dem ersten Wurf aus und zeigt dir einen Fingerabdruck davon. Ist die Partie vorbei, bekommst du den Schlüssel selbst. Dann kannst du jeden Wurf auf deinem eigenen Rechner nachrechnen und sehen, dass die Würfel zu dem passen, was der Server am Anfang versprochen hat.
Die Zahlen auf dieser Seite sind echt. Dein Browser hat gerade einen eigenen Schlüssel gezogen und geht dieselben Schritte durch wie der Server.
Der Server zieht einen Schlüssel
Wenn eine Partie beginnt, fragt der Server das Betriebssystem nach 32 zufälligen Bytes. Das sind 256 Bit, hier als 64 Hex-Ziffern geschrieben. Es gibt eine Zahl mit 78 Stellen an möglichen Schlüsseln, einen davon zu erraten ist aussichtslos.
Gezeigt wird nur der Fingerabdruck
Der Server schickt den Schlüssel durch SHA-256 und veröffentlicht das Ergebnis als Fingerabdruck. Vom Schlüssel zum Fingerabdruck zu kommen ist leicht. Den Weg zurück gibt es nicht, und schon ein einziges geändertes Bit im Schlüssel ergibt einen völlig anderen Fingerabdruck. Solange die Partie läuft, bleibt der Schlüssel auf dem Server, und selbst unsere Admin-Werkzeuge zeigen ihn nicht an.
Jeder Würfel entsteht aus dem Schlüssel und seiner Nummer
Für Würfel Nummer 0 bildet der Server den Hash aus dem Schlüssel, gefolgt von der Nummer 0 in vier Bytes. Die ersten vier Bytes dieses Hashs liest er als ganze Zahl, teilt sie durch 6, nimmt den Rest und addiert 1. Würfel 1 nimmt die Nummer 1, und so geht es durch die ganze Partie. Auch Partien gegen den Bot bekommen ihre Würfel auf diese Weise.
Die Partie endet und das Schloss geht auf
Die Wiederholung einer beendeten Partie zeigt den Schlüssel neben seinem Fingerabdruck. Ab diesem Moment sind die Würfel kein Geheimnis mehr, und jeder, der die Wiederholung öffnen kann, kann sie prüfen.
Du prüfst es selbst
Bilde den SHA-256-Hash des Schlüssels. Ist das Ergebnis gleich dem Fingerabdruck vom Anfang, dann ist das der Schlüssel, den der Server vor dem ersten Wurf in der Hand hatte. Rechne daraus jeden Würfel aus und vergleiche ihn mit der Partie. Dein Browser hat genau das gerade mit seinem eigenen Schlüssel getan, und jeder Würfel stimmt.
Ändere einen Würfel und starte die Prüfung
Das ist das Protokoll einer kurzen Partie, die aus dem Schlüssel deines Browsers entstanden ist. Tippe auf einen Würfel, um ihn zu ändern, so wie ein Server es tun müsste, wenn er mitten in der Partie einen Wurf austauschen wollte. Die Prüfung rechnet jeden Würfel aus dem Schlüssel noch einmal aus und nennt den ersten Wurf, der nicht mehr passt.
Warum wir keine spezielle Würfel-Hardware nutzen
Manche Seiten werben mit einem Hardware-Zufallsgenerator. Hier würde er nichts bringen. Das Betriebssystem mischt ohnehin Rauschen aus der Hardware in seine Zufallsquelle, und kein Test kann das Ergebnis von echtem Zufall unterscheiden. Vertrauen kannst du den Würfeln wegen der Prüfung oben, denn die kannst du nach jeder Partie selbst durchführen.