Überprüfung des Ergebnisses des Crash-Spiels: Algorithmus, Sicherheit
1) Zweck der Überprüfung: Was genau bestätigen Sie?
Unverträglichkeit: Der Betreiber konnte das Ergebnis nach Ihrer Wette nicht ändern (aufgrund des Hash-Commits des Server-Sids).
Reproduzierbarkeit: Mit der Eingabe erhalten Sie den gleichen Multiplikator, den das Spiel gezeigt hat.
Integrität des Verfahrens: Nachrichtenformat, 'Nonce' -Inkrement, Rundungsregel und „Hauskante“ werden streng nach Spezifikation angewendet.
2) Daten, ohne die eine Überprüfung nicht möglich ist
1. Server Seed Hash (Commit) - wird vor der Verwendung des entsprechenden 'Server Seed' veröffentlicht.
2. Server Seed (wird später/am Ende der Periode bekannt gegeben).
3. Client Seed (Ihr Sid; Sie stellen es selbst oder die Plattform generiert es).
4. Nonce (Zählung Ihrer Einsätze innerhalb des aktuellen 'Server Seed').
5. Hash-Algorithmus (normalerweise' HMAC-SHA256 'oder' SHA-256').
6. Nachrichtenformat (Beispiel:': '), genaue Trennzeichen/Register/Kodierung.
7. Hash-Mupping-Formel → Multiplikator (und Rundungs-/Minimalregel).
3) Prüfalgorithmus (7 Schritte)
1. Vergleichen Sie das Commit: Zählen Sie' SHA-256 (ServerSeed) 'und vergleichen Sie es mit dem veröffentlichten' ServerSeedHash'.
2. Sammeln Sie die Nachricht: streng im Plattformformat (z.B. 'msg = ClientSeed + ":" + Nonce ").
3. Zählen Sie den runden Hash:
4) Pseudocode (kann an Python/JS angepasst werden)
```python
Fügen Sie hier die genaue Mupping-Formel von Ihrer Plattform anstelle von stub_mapping ein ()
import hmac, hashlib, math
def round_hash(server_seed: bytes, client_seed: str, nonce: int) -> bytes:
def take_u_from_hash(h: bytes, k_bits=52) -> float:
def stub_mapping(u: float) -> float:
def verify(server_seed_hex, server_seed_hash_hex, client_seed, nonce, shown_multiplier):
Wichtig: Wenden Sie anstelle von 'stub _ mapping' die genaue Formel aus dem Fairness-Abschnitt Ihrer Plattform an; Andernfalls ist die Überprüfung nicht korrekt.
5) Sonderfälle und Fallstricke
Zwei Wetten in einer Runde: Viele' Nonce' -Plattformen erhöhen Ihre Wette um jeden Einsatz, auch wenn sie in derselben Runde platziert werden (Beispiel: Wette A → 'Nonce = 42', Wette B → 'Nonce = 43'). Überprüfen Sie die Geschichte.
Wechsel von 'Client Seed': Bei einem Wechsel der Sid wird 'nonce' in der Regel zurückgesetzt (oder ein neuer Stream gestartet). Überprüfen Sie die Regeln Ihrer Plattform.
Batchi 'Server Seed': ein 'Server Seed' wirkt auf eine Reihe von Runden, dann wird ein neues Commit veröffentlicht; Verwechseln Sie nicht die Samen verschiedener Perioden.
Rundung/Minimum: Nichtübereinstimmung mit dem zweiten Vorzeichen - in 90% der Fälle ein Fehler in den Rundungs-/Minimalregeln (z.B. fest 1. 00 Uhr × unter besonderen Bedingungen).
Kodierung/Leerzeichen: extra Leerzeichen/Zeilenumbruch, falsche Groß-/Kleinschreibung, Nicht-UTF-8 brechen die Prüfung.
6) Checkliste Schnellcheck Runde
1. Stimmt 'SHA-256 (ServerSeed)' mit dem veröffentlichten 'ServerSeedHash' überein?
2. Sind die' message' und das' nonce' format richtig geformt?
3. Algorithmus ('HMAC-SHA256 '/' SHA-256') und Feldschlüssel/Reihenfolge streng nach Spezifikation angewendet?
4. Sind Mapping und Rundung identisch mit der Dokumentation?
5. Werden Sonderfälle berücksichtigt (seltener „Instant Crash“, mindestens 1. 00 ×, Mundschutz)?
6. Stimmt das Ergebnis mit der Spielgeschichte bis auf den Cent überein?
7) Automatisierung der Steuerung (Praxis)
Protokolle: Speichern Sie' client _ seed', 'nonce' Sequenz, Zeitstempel, Endmultiplikator.
Sampling: nach dem „Brüllen“ von „Server Seed“, fahren Sie das Skript zufällig 20-50 Runden; Geben Sie den Prozentsatz der Übereinstimmungen ein (muss 100% sein).
Regression: Wenn Sie die Version des Spiels/Anbieters ändern, fahren Sie den gleichen Satz.
Export: CSV/JSON mit Quellen speichern - das ist Ihr „Audit-Track“.
8) Sicherheit: Wie man keinen Fehler macht und sich nicht täuschen lässt
Lokal/offline prüfen: Verlassen Sie sich nicht nur auf den Web-Validator des Betreibers; Halten Sie Ihr eigenes Skript.
Vertrauen Sie Runden nicht ohne ein vollständiges Datenpaket: keine Formel/kein Format - keine Verifizierung.
Starke' Client Seed': Stellen Sie zufällig, ändern Sie regelmäßig (dies erhöht nicht die RTP, aber beseitigt Fragen zur Reproduzierbarkeit).
TLS/Sessions: Anmeldung nur über HTTPS, 2FA, Nachverfolgung von Ein- und Ausgängen des Verlaufs.
Geben Sie' Server Seed 'an niemanden weiter: Es wird vom Betreiber nach dem Zeitraum veröffentlicht; Ihre Aufgabe ist es zu überprüfen, nicht „bekommen“ es im Voraus.
9) Typische „Anfängerfehler“
Die Reihenfolge der Felder ist durcheinander ('Nonce: ClientSeed' statt 'ClientSeed: Nonce').
Konto 'nonce' von Null statt Eins (oder umgekehrt).
Der Hash der gesamten Plattform-Runde (global nonce) wird verwendet, und Sie benötigen Ihre persönliche' nonce'.
Ignorieren Sie die Rundung nach Regeln (banker's rounding vs floor/ceil).
Abgleich mit der aktiven statt der bereits offenbarten 'Server Seed'.
10) „Rote Fahnen“ beim Betreiber
Es gibt keinen öffentlichen Server Seed Hash vor Beginn der Periode.
Sie können Ihre Client Seed nicht einstellen oder Nonce ansehen.
Es gibt keine öffentliche Hash-Mupping-Formel für den Multiplikator.
Die Geschichte der Runden liefert kein Minimum an Daten für die Abstimmung.
Das Format und der Algorithmus wurden ohne Benachrichtigung/Spezifikationsarchiv geändert.
11) Australischer Kontext (AU)
Währung: Halten Sie Ihre Gewinne/Einsätze in AUD, speichern Sie die Entladung von Geschichten (Unterstützung, strittige Fragen).
Responsible Gaming (RG): Einzahlungs-/Zeitlimits, Pausen und Selbstausschluss - verfügbar in gewissenhaften Anwendungen; Nutzen Sie sie.
Plattformpraktiken: Bei gewissenhaften Betreibern enthält der Block „Fairness/Provably Fair“ eine vollständige Beschreibung und Beispiele für die Überprüfung; Fehlende Details sind ein Grund, einen anderen Service zu wählen.
12) Endergebnis
Die Überprüfung des Ergebnisses eines Crash-Spiels ist ein klares Verfahren:
Halten Sie Ihr eigenes Skript, protokollieren Sie die Eingaben und überprüfen Sie regelmäßig zufällige Runden. So bestätigen Sie Ehrlichkeit nicht in Worten, sondern mathematisch.
Unverträglichkeit: Der Betreiber konnte das Ergebnis nach Ihrer Wette nicht ändern (aufgrund des Hash-Commits des Server-Sids).
Reproduzierbarkeit: Mit der Eingabe erhalten Sie den gleichen Multiplikator, den das Spiel gezeigt hat.
Integrität des Verfahrens: Nachrichtenformat, 'Nonce' -Inkrement, Rundungsregel und „Hauskante“ werden streng nach Spezifikation angewendet.
2) Daten, ohne die eine Überprüfung nicht möglich ist
1. Server Seed Hash (Commit) - wird vor der Verwendung des entsprechenden 'Server Seed' veröffentlicht.
2. Server Seed (wird später/am Ende der Periode bekannt gegeben).
3. Client Seed (Ihr Sid; Sie stellen es selbst oder die Plattform generiert es).
4. Nonce (Zählung Ihrer Einsätze innerhalb des aktuellen 'Server Seed').
5. Hash-Algorithmus (normalerweise' HMAC-SHA256 'oder' SHA-256').
6. Nachrichtenformat (Beispiel:'
7. Hash-Mupping-Formel → Multiplikator (und Rundungs-/Minimalregel).
💡Die gesamte Spezifikation muss im Fairness/Provably Fair Abschnitt des Betreibers sein. Wenn etwas nicht da ist, ist es eine rote Fahne (siehe § 10).
3) Prüfalgorithmus (7 Schritte)
1. Vergleichen Sie das Commit: Zählen Sie' SHA-256 (ServerSeed) 'und vergleichen Sie es mit dem veröffentlichten' ServerSeedHash'.
2. Sammeln Sie die Nachricht: streng im Plattformformat (z.B. 'msg = ClientSeed + ":" + Nonce ").
3. Zählen Sie den runden Hash:
- при `HMAC-SHA256`: `RoundHash = HMAC_SHA256(key=ServerSeed, msg=message)`;
bei „SHA-256“: „RoundHash = SHA256 (ServerSeed | message)“ oder wie in der Spezifikation angegeben. |
---|---|
4. Extrahieren Sie den Zufall: Nehmen Sie das erste'k 'Bit (oft 52) → das ganze' r', dann'u = r/2 ^ k'. | |
5. Wenden Sie die Mupping-Formel an: Konvertieren Sie'u 'in einen Multiplikator (House Edge/Spezialfälle werden in der Spieldokumentation berücksichtigt). | |
6. Runden Sie nach den Spielregeln ab (z. B. auf 2 Zeichen, mindestens 1. 00 × usw.). | |
7. Vergleichen Sie mit dem Ergebnis der Runde in der Geschichte. Zufall = richtige Ehrlichkeit. |
4) Pseudocode (kann an Python/JS angepasst werden)
```python
Fügen Sie hier die genaue Mupping-Formel von Ihrer Plattform anstelle von stub_mapping ein ()
import hmac, hashlib, math
def round_hash(server_seed: bytes, client_seed: str, nonce: int) -> bytes:
- message = f „{client _ seed}: {nonce}“ .encode („utf-8“) Format siehe Spezifikation
- return hmac. new(server_seed, message, hashlib. sha256). digest () oder hashlib. sha256(...)
def take_u_from_hash(h: bytes, k_bits=52) -> float:
- Wir nehmen die k höheren Bits als Ganzes r
- r = int. from_bytes(h, "big") >> (256 - k_bits)
- return r / (1 << k_bits) u в [0, 1)
def stub_mapping(u: float) -> float:
- STECKER! Ersetzen Sie durch eine Formel aus Ihrer Spieldokumentation
- Zum Beispiel wird manchmal eine Ansichtstransformation verwendet: crash = floor ((const/( r + 1)) 100 )/100
- und/oder „Hauskante“ als seltene erzwungene 1. 00×. Verwenden Sie diesen Stub nicht in einer echten Inspektion.
- return max(1. 00, round(1. 0 / max(1e-12, 1. 0 - u), 2))
def verify(server_seed_hex, server_seed_hash_hex, client_seed, nonce, shown_multiplier):
- server_seed = bytes. fromhex(server_seed_hex)
- 1) Commit
- assert hashlib. sha256(server_seed). hexdigest() == server_seed_hash_hex. lower()
- 2-3) Hash der Runde
- h = round_hash(server_seed, client_seed, nonce)
- 4) u
- u = take_u_from_hash(h)
- 5-6) Mupping + Rundung
- calc_mult = stub_mapping(u)
- 7) Vergleich
- return abs(calc_mult - shown_multiplier) < 1e-9
- ```
Wichtig: Wenden Sie anstelle von 'stub _ mapping' die genaue Formel aus dem Fairness-Abschnitt Ihrer Plattform an; Andernfalls ist die Überprüfung nicht korrekt.
5) Sonderfälle und Fallstricke
Zwei Wetten in einer Runde: Viele' Nonce' -Plattformen erhöhen Ihre Wette um jeden Einsatz, auch wenn sie in derselben Runde platziert werden (Beispiel: Wette A → 'Nonce = 42', Wette B → 'Nonce = 43'). Überprüfen Sie die Geschichte.
Wechsel von 'Client Seed': Bei einem Wechsel der Sid wird 'nonce' in der Regel zurückgesetzt (oder ein neuer Stream gestartet). Überprüfen Sie die Regeln Ihrer Plattform.
Batchi 'Server Seed': ein 'Server Seed' wirkt auf eine Reihe von Runden, dann wird ein neues Commit veröffentlicht; Verwechseln Sie nicht die Samen verschiedener Perioden.
Rundung/Minimum: Nichtübereinstimmung mit dem zweiten Vorzeichen - in 90% der Fälle ein Fehler in den Rundungs-/Minimalregeln (z.B. fest 1. 00 Uhr × unter besonderen Bedingungen).
Kodierung/Leerzeichen: extra Leerzeichen/Zeilenumbruch, falsche Groß-/Kleinschreibung, Nicht-UTF-8 brechen die Prüfung.
6) Checkliste Schnellcheck Runde
1. Stimmt 'SHA-256 (ServerSeed)' mit dem veröffentlichten 'ServerSeedHash' überein?
2. Sind die' message' und das' nonce' format richtig geformt?
3. Algorithmus ('HMAC-SHA256 '/' SHA-256') und Feldschlüssel/Reihenfolge streng nach Spezifikation angewendet?
4. Sind Mapping und Rundung identisch mit der Dokumentation?
5. Werden Sonderfälle berücksichtigt (seltener „Instant Crash“, mindestens 1. 00 ×, Mundschutz)?
6. Stimmt das Ergebnis mit der Spielgeschichte bis auf den Cent überein?
7) Automatisierung der Steuerung (Praxis)
Protokolle: Speichern Sie' client _ seed', 'nonce' Sequenz, Zeitstempel, Endmultiplikator.
Sampling: nach dem „Brüllen“ von „Server Seed“, fahren Sie das Skript zufällig 20-50 Runden; Geben Sie den Prozentsatz der Übereinstimmungen ein (muss 100% sein).
Regression: Wenn Sie die Version des Spiels/Anbieters ändern, fahren Sie den gleichen Satz.
Export: CSV/JSON mit Quellen speichern - das ist Ihr „Audit-Track“.
8) Sicherheit: Wie man keinen Fehler macht und sich nicht täuschen lässt
Lokal/offline prüfen: Verlassen Sie sich nicht nur auf den Web-Validator des Betreibers; Halten Sie Ihr eigenes Skript.
Vertrauen Sie Runden nicht ohne ein vollständiges Datenpaket: keine Formel/kein Format - keine Verifizierung.
Starke' Client Seed': Stellen Sie zufällig, ändern Sie regelmäßig (dies erhöht nicht die RTP, aber beseitigt Fragen zur Reproduzierbarkeit).
TLS/Sessions: Anmeldung nur über HTTPS, 2FA, Nachverfolgung von Ein- und Ausgängen des Verlaufs.
Geben Sie' Server Seed 'an niemanden weiter: Es wird vom Betreiber nach dem Zeitraum veröffentlicht; Ihre Aufgabe ist es zu überprüfen, nicht „bekommen“ es im Voraus.
9) Typische „Anfängerfehler“
Die Reihenfolge der Felder ist durcheinander ('Nonce: ClientSeed' statt 'ClientSeed: Nonce').
Konto 'nonce' von Null statt Eins (oder umgekehrt).
Der Hash der gesamten Plattform-Runde (global nonce) wird verwendet, und Sie benötigen Ihre persönliche' nonce'.
Ignorieren Sie die Rundung nach Regeln (banker's rounding vs floor/ceil).
Abgleich mit der aktiven statt der bereits offenbarten 'Server Seed'.
10) „Rote Fahnen“ beim Betreiber
Es gibt keinen öffentlichen Server Seed Hash vor Beginn der Periode.
Sie können Ihre Client Seed nicht einstellen oder Nonce ansehen.
Es gibt keine öffentliche Hash-Mupping-Formel für den Multiplikator.
Die Geschichte der Runden liefert kein Minimum an Daten für die Abstimmung.
Das Format und der Algorithmus wurden ohne Benachrichtigung/Spezifikationsarchiv geändert.
11) Australischer Kontext (AU)
Währung: Halten Sie Ihre Gewinne/Einsätze in AUD, speichern Sie die Entladung von Geschichten (Unterstützung, strittige Fragen).
Responsible Gaming (RG): Einzahlungs-/Zeitlimits, Pausen und Selbstausschluss - verfügbar in gewissenhaften Anwendungen; Nutzen Sie sie.
Plattformpraktiken: Bei gewissenhaften Betreibern enthält der Block „Fairness/Provably Fair“ eine vollständige Beschreibung und Beispiele für die Überprüfung; Fehlende Details sind ein Grund, einen anderen Service zu wählen.
12) Endergebnis
Die Überprüfung des Ergebnisses eines Crash-Spiels ist ein klares Verfahren:
- Abstimmung des Commits „Server Seed Hash“,
- Wiederherstellung von „RoundHash“ nach „Server Seed“, „Client Seed“, „nonce“ und Algorithmus,
- Anwendung der veröffentlichten Mupping-Formel und Rundungsregeln,
- identische Multiplikator in Ihrem Check und in der Geschichte des Spiels.
Halten Sie Ihr eigenes Skript, protokollieren Sie die Eingaben und überprüfen Sie regelmäßig zufällige Runden. So bestätigen Sie Ehrlichkeit nicht in Worten, sondern mathematisch.