Also das Thema interessiert mich jetzt doch sehr. Als ich das Post vom Armin gelesen habe, habe ich mich zunächst gefragt, warum mir das nicht schon eher eingefallen ist, dass genau dort der Ansatzpunkt sein könnte, seine Kunden effektiv zu betrügen.
Die Hashes - sofern ich es richtig verstehe - geben dem Kunden / Opfer die Möglichkeit zu verifizieren, dass ihnen tatsächlich das Ergebnis, das der RNG (z.B. /dev/urandom) ausgegeben hat, abgerechnet wurde.
Was nun aber, wenn der gewiefte Casinobetreiber /dev/urandom mit seiner eigenen Version eines Nichtzufallszahlengenerators ersetzt, welcher eben Nummern ausgibt, die das Casino begünstigen?
Das erscheint mir ein durchaus valider Punkt zu sein, den ich so noch gar nicht auf dem Schirm hatte.
Natürlich darf der hier genutzte "Zufallsgenerator" nicht mit Entropie arbeiten. Ein vereinfachtes Beispiel anhand von MD5 hashes(Wem das zu unsicher ist, der möge sich vorstellen man nutzt SHA512 oder sonst irgendeinen):
Es wird eine Liste mit MD5 hashes veröffentlicht. Einer für jeden Tag, 365 an der Zahl. Wir schreiben den ersten Januar eines bliebigen Jahres und somit ist für jeden Tag in diesem Jahr ein MD5 Hash verfügbar.
Diese Hashes wurden aus zufällig erstellten hexadezimalen Zeichenfolgen erstellt, eine für jeden Tag. Diese Zeichenfolgen wurden vom Anbieter abgespeichert. Sie werden nicht veröffentlicht.
Ein Kunde möchte nun z.B. ein dice game spielen, bei dem man Bitcoins an eine Adresse schickt und dann entweder etwas an die Absenderadresse zurückbekommt (Gewinn) oder eben nichts (Verlust).
Es wird die TxID des Kunden genommen, die nicht öffentliche hexadezimale Zeichenfolge angehängt und das ganze wird wieder durch den MD5 (algo dient nur als Beispiel) algo gejagt. Vom ergebnis nimmt man z.B. die dritte, fünfte, sechte, und zehnte stelle und bildet daraus die Gewinnerzahl. Liegt der getippte Wert darüber, verliert der Kunde. Liegt der wert darunter, gewinnt der Kunde.
Am ende des Tages veröffentlicht der Anbieter die hexadezimalen Zeichenfolge für diesen Tag. Der Kunde kann mit dieser Zeichenfolge plus seiner TxID nun nachvollziehen, ob der Anbieter das Ergebnis korrekt bestimmt hat oder ob er über den Tisch gezogen wurde.
Da der (in diesem Fall MD5-)Hash der hexadezimalen Zeichenfolge bereits vor Spielbeginn bekannt war, kann der Anbieter hier auch nicht einfach eine andere nehmen, denn diesen Betrug würde der Kunde anhand des unterschiedlichen Hash-Wertes der beiden Zeichenfolgen erkennen.
Noch Fragen?