[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-article-provably-fair-rng-explained-de":3,"mdc-lnw5xa-key":78},{"id":4,"slug":5,"status":6,"section":7,"category":8,"author":9,"publish_date":10,"read_time":11,"image":12,"embedded_components":13,"related_calculators":13,"related_articles":14,"title":15,"description":16,"keywords":17,"content":26,"faq":27,"availableLocales":73},"e9e77cbe-752e-46fa-880b-37532301b050","provably-fair-rng-explained","published","casino","guides","Evgeniy Volkov","2026-04-22",14,"\u002Fimages\u002Fblog\u002Fprovably-fair-rng-explained.webp","[]",[],"Provably Fair RNG erklärt: Technischer Leitfaden (2026)","Provably Fair RNG — wie HMAC-SHA256 Seeds in Würfelwürfe, Crash-Multiplikatoren und Karten umwandelt. Mathematik + Live-Verifizierer (2026).",[18,19,20,21,22,23,24,25],"provably fair zufallszahlengenerierung","provably fair rng","hmac-sha256 rng","csprng provably fair","chainlink vrf casino","provably fair würfel formel","provably fair crash formel","pf rng angriffsfläche","# Provably Fair Zufallszahlengenerierung erklärt (2026)\n\nDu hast gerade 0,5 BTC auf ein Krypto-Würfelspiel gesetzt. Der Bildschirm zeigt `37,42` und du verlierst. Du öffnest das Fairness-Panel und siehst einen Server-Seed-Hash, deinen Client-Seed und einen Nonce — vier Werte, die angeblich beweisen, dass nichts manipuliert wurde. Aber wie wurden aus diesen vier Werten eigentlich `37,42`? Was hat zufällige Hex-Zeichen in einen spezifischen Würfelwurf verwandelt?\n\nHier ist das Ding: Das ganze „Provably Fair\"-Versprechen hängt von einem spezifischen Prozess ab — der Umwandlung von kryptografischer Hash-Ausgabe in Spielergebnisse. Wenn du nicht verstehst, wie diese Umwandlung funktioniert, wirkt Provably Fair wie Marketing-Magie. Wenn du es verstehst, kannst du jedes PF-Casino in etwa 60 Sekunden prüfen, Fake-Implementierungen auf den ersten Blick erkennen und genau wissen, welche Angriffe das Protokoll verhindert und welche nicht.\n\nDieser Leitfaden führt dich durch **Provably Fair Zufallszahlengenerierung** so, wie es ein Entwickler 2026 implementieren würde — die CSPRNG-Grundlagen unter der Haube, die HMAC-SHA256-Formel, die Seeds in Zahlen verwandelt, die verschiedenen Mapping-Schemata für Würfel, Crash und Karten, und die Angriffsfläche, die selbst dann bestehen bleibt, wenn die Mathematik perfekt ist. Am Ende wirst du wissen, warum PF-RNGs kryptografisch unzerbrechlich sind, welche Implementierungsfehler sie trotzdem ruinieren, und wann Blockchain-Zufälligkeit (Chainlink VRF) stattdessen eingesetzt wird.\n\n## Kurzfassung — Wie PF-RNGs tatsächlich Zahlen generieren\n\nJedes Provably Fair-Spiel verwendet den gleichen RNG-Kern, nur die Ausgabe-Mapping unterscheidet sich. Hier ist die 60-Sekunden-Version.\n\n| Schritt | Was passiert | Wer kontrolliert es |\n|---|---|---|\n| 1. Server-Seed generieren | CSPRNGs des Casinos gibt einen 32–64 Byte langen Zufallsstring aus | Casino |\n| 2. Hashen und veröffentlichen | SHA-256(server_seed) wird dir vor der Runde angezeigt | Casino |\n| 3. Client-Seed + Nonce sammeln | Dein Browser fügt einen Client-Seed hinzu; Nonce ist der Runden-Zähler | Du + Protokoll |\n| 4. HMAC berechnen | `hex = HMAC-SHA256(server_seed, client_seed : nonce)` | Deterministisch |\n| 5. Hex in Ergebnis abbilden | Slice + Modulo + Division = Würfelwurf, Crash-Multiplikator oder Karte | Deterministisch |\n| 6. Offenlegen und überprüfen | Nach Rotation wird der Raw-Seed offengelegt; jeder kann Schritt 4 erneut durchführen | Du |\n\nDie Mathematik ist:\n\n$$\\text{outcome} = f\\big(\\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} : \\text{nonce})\\big)$$\n\nWobei `f` eine spielspezifische Mapping-Funktion ist — `f_dice` gibt 0-99,99 zurück, `f_crash` gibt einen Multiplikator zurück, `f_cards` gibt Kartendeck-Positionen zurück. Der HMAC-Teil ist identisch bei jedem PF-Casino der Welt.\n\n### Wichtige Zahlen, die du kennen solltest\n\n- **3 Eingaben**: Server-Seed + Client-Seed + Nonce erzeugen jedes Ergebnis\n- **64 Hex-Zeichen**: Länge einer SHA-256 \u002F HMAC-SHA256-Ausgabe\n- **128 Hex-Zeichen**: Länge von HMAC-SHA512 (verwendet von BC.Game und PF Blackjack)\n- **~2^256 Operationen**: Was es bräuchte, um HMAC-SHA256 zu knacken — astronomisch unerreichbar\n- **0,00-99,99**: Standardwürfelbereich nach Mapping\n- **1,00x bis ∞**: Standardbereich für Crash-Multiplikator (in der Praxis durch Float-Genauigkeit begrenzt)\n\n### Fair ≠ Profitabel\n\nDass der RNG Provably Fair ist, sagt dir, dass das Casino das Ergebnis *nach* deiner Wette nicht manipulieren konnte. Es sagt dir **nicht**:\n\n- Ob der Hausvorteil angemessen ist (überprüfe RTP separat)\n- Ob das Casino Auszahlungen ehrt\n- Ob Boni und Umsatzbedingungen ehrlich sind\n- Ob der Server-Seed-Pool vor seiner Bestätigung unbefangen war\n\nWir behandeln die gesamte Angriffsfläche unten. Für einen umfassenderen Vergleich mit traditioneller Zertifizierung siehe unseren [Provably Fair vs. RNG-zertifiziert](\u002Fblog\u002Fprovably-fair-vs-rng-certified) Leitfaden.\n\n## Was macht einen RNG „Provably Fair\"\n\nBevor wir zur Formel kommen, hilft es, *Provably Fair* von der breiteren RNG-Welt zu unterscheiden. PF ist eine spezifische Verbesserung von CSPRNGs, keine Ersetzung.\n\n### Das Commit-Reveal-Muster\n\nDer ganze Trick hinter Provably Fair ist ein kryptografisches Muster namens **Commit-Reveal**.\n\nBevor die Runde beginnt, legt sich das Casino auf einen spezifischen Server-Seed fest, indem es seinen SHA-256-Hash veröffentlicht. Der Hash ist ein 64-stelliger Fingerabdruck, der den Seed eindeutig identifiziert, ohne ihn preiszugeben. Da SHA-256 keine praktischen Kollisionsangriffe hat, kann das Casino später keinen *anderen* Seed finden, der den gleichen Hash erzeugt — sie sind gebunden.\n\nNach der Runde (oder nachdem du Seeds rotierst), wird der Raw-Server-Seed offengelegt. Du hashst ihn selbst. Wenn dein berechneter Hash dem entspricht, was vor der Runde veröffentlicht wurde, hat das Casino bewiesen, dass es Seeds nicht mid-round getauscht hat. Kombiniert mit deinem Client-Seed (den sie vorher nicht kannten), macht dies Ergebnis-Manipulation pro Runde kryptografisch unmöglich.\n\nDie Commit-Reveal-Schicht ist das, was PF von jedem anderen CSPRNG unterscheidet. Ein traditionelles RNG-zertifiziertes Casino verwendet auch einen CSPRNG — aber nichts hindert sie daran, es in der Produktion auszutauschen, wie [iTech Labs-Audits nur statistische Eigenschaften überprüfen](https:\u002F\u002Fwww.itechlabs.com), nicht Runtime-Identität.\n\n### HMAC als RNG-Primitiv\n\nHMAC-SHA256 ist der eigentliche Zufallszahlengenerator in jeder PF-Runde. Hier ist, warum es funktioniert:\n\n- **Deterministisch**: Bei den gleichen Eingaben erzeugt HMAC immer die gleiche Ausgabe. Das ist, was dir die Überprüfung ermöglicht.\n- **Einweg**: Aus der Ausgabe kannst du den Server-Seed (den Schlüssel) nicht wiederherstellen. Das ist, was das Ergebnis unvorhersehbar macht.\n- **Uniform**: HMAC-Ausgaben sind nicht vom Zufall zu unterscheiden — 256-Bit-Zeichenketten. Das ist, was das Spiel unvoreingenommen hält.\n- **Verschlüsselt**: Der Server-Seed fungiert als Geheimnis, das bekannt sein muss, um die Ausgabe zu reproduzieren. Das ist, was Manipulation verhindert.\n\nTechnisch gesehen ist HMAC-SHA256 von sich aus kein CSPRNG — es ist ein Message Authentication Code. Aber wenn der Schlüssel (Server-Seed) aus einer echten Entropiequelle generiert wird, ist die Konstruktion für alle praktischen Zwecke gleichwertig mit einem CSPRNG. NIST formalisierte dies als **HMAC_DRBG** in [SP 800-90A Rev 1](https:\u002F\u002Fcsrc.nist.gov\u002Fpublications\u002Fdetail\u002Fsp\u002F800-90a\u002Frev-1\u002Ffinal), und PF-Casinos implementieren im Wesentlichen diesen Standard mit zusätzlicher öffentlicher Seed-Bestätigung neu.\n\n### Warum CSPRNGs wichtig sind (nicht Math.random)\n\nJedes legitime PF-Casino generiert seinen Server-Seed mit einem kryptografisch sicheren RNG — **nicht** mit JavaScripts `Math.random()`. Der Unterschied ist wichtiger als den meisten Spielern bewusst ist:\n\n| Generator | Nach Anzeige der Ausgabe vorhersehbar? | Akzeptabel für PF? |\n|---|---|---|\n| `Math.random()` (V8 in Chrome) | Ja, nach ~700 Ausgaben | Niemals |\n| Linux `\u002Fdev\u002Furandom` | Nein | Ja |\n| `crypto.getRandomValues` (Browser) | Nein | Ja |\n| Node.js `crypto.randomBytes` | Nein | Ja |\n| Hardware-RNG (Intel RDRAND) | Nein | Ja |\n\nWenn ein Casino seinen Server heimlich mit `Math.random()` seeded, könnte ein ausgeklügelter Angreifer den Seed aus genügend öffentlichen Ausgaben rekonstruieren und jede zukünftige Runde vorhersagen — selbst wenn die HMAC-Mathematik fehlerfrei ist. Deshalb ist es wichtig zu überprüfen, ob dein Casino tatsächlich `crypto.randomBytes` oder Äquivalentes verwendet; der [Was ist Provably Fair Glücksspiel](\u002Fblog\u002Fwhat-is-provably-fair-gambling) Erklärtext behandelt die vollständige Vertrauenskette.\n## Wie die Zahl tatsächlich generiert wird\n\nJetzt zur eigentlichen Formel. Dies ist der Abschnitt zum Speichern — alles oben war Kontext.\n\n### Drei Eingaben, Eine Formel\n\nJede Provably Fair-Runde berechnet:\n\n$$\\text{hex\\_output} = \\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} \\; : \\; \\text{nonce})$$\n\nIm Pseudocode:\n\n```\nfunction pfHmac(serverSeed, clientSeed, nonce) {\n  const message = clientSeed + ':' + nonce\n  const hex = hmacSha256(serverSeed, message)  \u002F\u002F 64-stellige Hex-Zeichenkette\n  return hex\n}\n```\n\nDer `:` Doppelpunkt ist das kanonische Trennzeichen bei Stake, Primedice, Rainbet und den meisten PF-Casinos. Einige wenige (BC.Game, Roobet) verwenden unterschiedliche Trennzeichen — überprüfen Sie immer die Fairness-Dokumentation des Casinos auf das genaue Format.\n\nDie Ausgabe ist eine 64-stellige Hexadezimalzeichenkette wie `8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d`. Dieses Hex ist die Rohzufälligkeit — 256 Bit Unvorhersehbarkeit, statistisch nicht zu unterscheiden von 256 fairen Münzwürfen.\n\n::chart-provably-fair-process\n::\n\n### Schritt für Schritt: Von der HMAC-Ausgabe zum Würfelwurf\n\nLassen Sie uns eine komplette Runde durchgehen.\n\n**Gegebene Werte:**\n\n- `server_seed = f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4`\n- `client_seed = player-xyz-42`\n- `nonce = 7`\n\n**Schritt 1 — HMAC berechnen:**\n\n```\nHMAC-SHA256(server_seed, \"player-xyz-42:7\")\n= 8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d\n```\n\n**Schritt 2 — Erste 5 Hex-Zeichen auswählen:**\n\n`8b2d4` → in Dezimalzahl konvertieren → `569.300`\n\n**Schritt 3 — Auf 0-99,9999 abbilden:**\n\n```\ndice = (569_300 % 1_000_000) \u002F 10_000\n     = 569_300 \u002F 10_000\n     = 56,93\n```\n\n**Schritt 4 — Wettlogik anwenden:**\n\nWenn Sie „unter 50 würfeln\" wetten → Sie verlieren (56,93 > 50). Wenn Sie „unter 60 würfeln\" wetten → Sie gewinnen. Der exakte Wurf wurde in dem Moment festgelegt, als diese drei Eingaben kombiniert wurden, bevor eine UI-Animation ablief.\n\n**Schritt 5 — Verifizieren:**\n\nNach der Runde erhalten Sie den offengelegten `server_seed`. Sie hashen ihn — SHA-256 entspricht dem vorgefertigten Hash? Gut. Sie führen die Schritte 1-3 erneut durch — reproduziert `56,93`? Gut. Die Runde ist kryptographisch Provably Fair.\n\nFür eine vollständige Anleitung mit kopier-einfügen-Werten und Screenshots siehe [wie man eine Provably Fair-Runde verifiziert](\u002Fblog\u002Fhow-to-verify-provably-fair).\n\n### Verschiedene Spiele, Verschiedene Abbildungen\n\nDer HMAC-Aufruf ist immer identisch. Was sich ändert, ist Schritt 3 — wie die Hex-Zahl zu einem spezifischen Spielergebnis abgebildet wird.\n\n| Spiel | Hex-Auswahl | Formel | Ausgabebereich |\n|---|---|---|---|\n| **Dice** | Erste 5 Zeichen | `(int % 1e6) \u002F 1e4` | 0,0000-99,9999 |\n| **Crash** | Erste 8 Zeichen | `floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100` | 1,00x bis sehr hoch |\n| **Coinflip** | Erste 2 Zeichen | `int % 2` (0 oder 1) | Kopf\u002FZahl |\n| **Roulette** | Erste 2 Zeichen | `int % 37` (Euro) oder `% 38` (Am) | 0-36 oder 0-37 |\n| **Plinko** | Erste 4 Zeichen × n Drops | `int % rows` pro Drop | Weg durch Stifte |\n| **Blackjack (HMAC-SHA512)** | 4 Zeichen pro Karte | `int % 52` mit Ersetzungslogik | Kartendeckposition |\n\nJede Abbildung ist so konzipiert, dass sie über ihren Ausgabebereich gleichmäßig verteilt ist — modulare Arithmetik auf einem gleichmäßig zufälligen Hex-Wert bewahrt Gleichmäßigkeit. Dies ist der Grund, warum PF-Spiele eine ehrliche RTP beanspruchen können, ohne dass das Casino einzelne Runden manipuliert. Es ist die *Abbildungsformel*, die abgestimmt wird, um die Hausvorteil-Zielquote des Casinos zu erreichen, nicht die Zufallszahl selbst.\n\n## Von der Hex-Zeichenkette zum Spielergebnis (Mit Mathematik)\n\nDie Dice-Abbildung lohnt sich zu analysieren, da sie der klarste Fall ist — und weil sie zeigt, warum Provably Fair-Würfelverteilungen bei korrekter Implementierung wirklich gleichmäßig sind.\n\n### Dice-Abbildung (0-99,9999)\n\nStake's Würfelspiel verwendet die ersten 5 Hex-Zeichen, was 20 Bit = 1.048.576 mögliche Werte ergibt. Die Abbildung ist:\n\n$$\\text{dice} = \\frac{(\\text{int}(\\text{hex}_{0:5}) \\; \\text{mod} \\; 10^6)}{10^4}$$\n\nWarum Modulo 1.000.000, wenn die Auswahl bis 1.048.575 reichen kann? Weil ohne das Modulo Werte 1.000.000-1.048.575 zu 100,0000-104,8575 abgebildet würden, außerhalb des Würfelbereichs. Modulo faltet diese zurück — führt aber eine winzige Verzerrung ein (Werte 0-48.575 sind um den Faktor 2\u002F1 wahrscheinlicher als 48.576-99.999). Um die Verzerrung zu beseitigen, lehnen echte Implementierungen Auswahlen über 1.000.000 ab und rücken zum nächsten Hex-Block vor (Zeichen 5-10, dann 10-15, etc.).\n\nRichtig durchgeführt, erzeugt dies eine perfekt gleichmäßige Verteilung über 0,0000-99,9999. Ein 10.000-Wurf-Test zeigt im Wesentlichen eine flache Abdeckung — das Histogramm unten reproduziert das, was Sie mit jeder legitimen PF-Würfel-Implementierung sehen würden.\n\n::chart-rng-distribution\n::\n\n### Crash-Abbildung (Multiplikator)\n\nCrash ist interessanter, weil die Ausgabe nicht gleichmäßig ist — sie ist absichtlich verzerrt, um dramatisches Gameplay zu schaffen und gleichzeitig einen Zielhousvorteil zu bewahren.\n\n$$\\text{crash} = \\frac{\\left\\lfloor \\dfrac{100 \\cdot 2^{52} - h}{2^{52} - h} \\right\\rfloor}{100}$$\n\nWobei `h = int(hex[0:8])` (eine 32-Bit-Ganzzahl aus den ersten 8 Hex-Zeichen). Mit einer Änderung: Wenn `h mod 33 == 0`, ist der Multiplikator 1,00x (sofortiger Crash), was Stake's ~1% Hausvorteil erzeugt. Andere Casinos verwenden unterschiedliche Divisoren — 25 (Rainbet ~4% Edge), 50 (niedrig-Edge-Varianten), 100 (sehr niedrig-Edge).\n\nFühren Sie diese Formel eine Million Mal aus und Sie erhalten eine Verteilung, bei der ~50% der Runden unter 2x crashen, ~10% die 10x überschreiten und etwa 1% die 100x erreichen. Der erwartete Wert beläuft sich auf 0,99 pro 1 Einsatz — die fehlenden 1% sind der Hausvorteil, der in die Konstanten der Formel eingebacken ist, nicht in eine Pro-Runden-Manipulation.\n\n### Karten-Abbildung (Deck-Shuffles)\n\nPF-Blackjack, Poker und Baccarat mischen virtuelle Decks mit HMAC-SHA512 (längere Ausgabe = mehr Karten pro Hash-Aufruf). Fisher-Yates-Shuffle ist der Standard:\n\n```\nfor i = 51 down to 1:\n  j = hmac_int(i) mod (i + 1)\n  swap(deck[i], deck[j])\n```\n\nJeder `hmac_int(i)`-Aufruf verbraucht 4 Hex-Zeichen der 128-stelligen SHA-512-Ausgabe. Die Karten einer Runde werden vollständig durch einen HMAC-Aufruf bestimmt, weshalb Sie bei PF-Blackjack-Spielen häufig 13+ dezimal konvertierte Ganzzahlen im Verifizierungspanel sehen — eine pro Kartentausch. Für die spezifische Implementierung bei Stake und BC.Game siehe den [Provably Fair-Blackjack-Leitfaden](\u002Fblog\u002Fprovably-fair-blackjack).\n## Traditionelle RNG vs. Provably Fair RNG\n\nAuf der RNG-Ebene speziell (nicht auf dem breiteren Fairness-Stack) ist PF eine strikte Obermenge von zertifiziertem CSPRNG.\n\n### Wo traditionelle RNGs zu kurz greifen\n\nZertifizierte RNGs von eCOGRA, iTech Labs und GLI sind alle kryptografisch sicher — die Mathematik ist genauso stark wie die von PF. Das Problem liegt nicht in der Primitive, sondern im **Laufzeit-Vertrauensmodell**:\n\n- Der zertifizierte RNG läuft auf dem Server des Casinos, einmalig geprüft\n- Du siehst seine Ausgabe nie direkt, nur den Endzustand des Spiels\n- Nichts zwingt das Casino, den zertifizierten Code in der Produktion weiter zu nutzen\n- Ein Streit pro Runde kann nicht in Echtzeit gelöst werden\n\nWenn Pragmatic Play's zertifizierter Slot-Engine bei Roobet still einen anderen RNG lädt als den, den eCOGRA getestet hat, fängt keine Zertifikatsprüfung das auf. Die Lücke schließt sich nur durch offene Verifizierung pro Runde.\n\n### Was PF zur Primitive hinzufügt\n\nProvably Fair nimmt die gleiche kryptografische Grundlage und macht sie transparent. Konkret:\n\n- Der Server-Seed-Hash wird *vor* deiner Wette veröffentlicht (Commitment)\n- Dein Client-Seed trägt zur HMAC-Eingabe bei (Co-Signatur)\n- Der Raw-Server-Seed wird nach der Runde offengelegt (Reveal)\n- Die Berechnung ist deterministisch und in jedem Browser reproduzierbar (Verifizierung)\n\nDas ist der ganze Unterschied. Gleiches HMAC, gleiche CSPRNG-Mathematik — mit vier zusätzlichen Transparenz-Schritten überlagert. Einen tieferen Überblick, wie beide Modelle sich vergleichen, findest du unter [Provably Fair vs. RNG-zertifiziert](\u002Fblog\u002Fprovably-fair-vs-rng-certified).\n\n## Blockchain-Randomness — Chainlink VRF und Onchain-Spiele\n\nPF RNG funktioniert gut für zentralisierte Krypto-Casinos. Aber was ist mit vollständig dezentralisierten Anwendungen — Onchain-Lotterien, NFT-Eigenschaftszuweisung, Onchain-Würfelspiele? Dort übernimmt eine andere Lösung.\n\n### Warum Blockchains keine sicheren Zufallszahlen generieren können\n\nJede Blockchain ist absichtlich deterministisch — jeder Validator muss aus den gleichen Eingaben den gleichen Zustand erzeugen, oder der Konsens bricht. Das macht Zufälligkeit strukturell schwierig:\n\n- `block.timestamp` ist miner-steuerbar in einem Fenster von wenigen Sekunden\n- `block.blockhash` kann von Minern durch Blockeinbehalt manipuliert werden\n- `block.prevrandao` (Post-Merge Ethereum) ist besser, aber immer noch von Validatoren beeinflussbar\n- Jede Onchain-Entropiequelle kann vom Smart Contract *vor* ihrer Nutzung gelesen werden und besiegt damit den Zweck\n\nNaive dApp-Lotterien, die Blockhash nutzen, wurden in der Vergangenheit geleert. Der wirtschaftliche Anreiz, einen 1-Millionen-Dollar-Jackpot zu manipulieren, kann einen Miner rational veranlassen, einen Block einzubehalten.\n\n### Wie Chainlink VRF es löst\n\n**Chainlink VRF** (Verifiable Random Function) generiert Zufälligkeit offchain und liefert sie mit kryptografischem Beweis onchain. Der Ablauf:\n\n1. Der Smart Contract fordert eine Zufallszahl an\n2. Der Chainlink-Orakel generiert den Wert offchain mit seinem privaten Schlüssel + Request-Seed\n3. Der Beweis ist eine [BLS-Signatur](https:\u002F\u002Fdocs.chain.link\u002Fvrf), die jeder gegen den öffentlichen Schlüssel des Orakels verifizieren kann\n4. Sowohl der Wert als auch der Beweis werden in einer einzigen Transaktion onchain zurückgeposted\n5. Der Contract verifiziert den Beweis, bevor er den Wert nutzt\n\nDie kritische Eigenschaft: Weil der Beweis die Zufallszahl an den privaten Schlüssel des Orakels und den Request-Seed bindet, kann das Orakel keine bequemen Werte cherry-picken. Jede Abweichung ist mathematisch nachweisbar.\n\n### Wann VRF vs. HMAC-basiertes PF nutzen\n\n| Anwendungsfall | Beste Wahl | Warum |\n|---|---|---|\n| Zentralisiertes Würfelspiel\u002FCrash | HMAC-basiertes PF | Einfacher, günstiger, gleiche Garantien |\n| Onchain-Lotterie | Chainlink VRF | Vertrauensfrei, kein zentraler Betreiber |\n| NFT-Eigenschaftszuweisung | Chainlink VRF | Nicht manipulierbare Seltenheit |\n| Zentralisiertes Blackjack | HMAC-basiertes PF | Chainlink VRF zu teuer pro Karte |\n| DeFi-Spiel mit hohem Jackpot | Chainlink VRF | Miner-Manipulationsrisiko zu hoch |\n\nDie meisten Krypto-Casinos nutzen 2026 immer noch HMAC-basiertes PF, weil es schnell, günstig und bereits gut verstanden ist. VRF ist, wo Onchain-DeFi, NFTs und vollständig dezentralisierte Gaming glänzen. Unsere [Provably Fair Bitcoin-Spiele](\u002Fblog\u002Fprovably-fair-bitcoin-games)-Rangliste filtert speziell danach, welche PF-Implementierung jedes Casino nutzt.\nWer diese Konzepte an einem echten Casino stresstesten möchte, findet im [Provably-Fair-Verzeichnis](\u002Fcasino\u002Fprovably-fair) Implementierungen, die sich ohne Einzahlung prüfen lassen — die meisten geben Server-Seed-Hashes über einen öffentlichen Endpoint preis.\n\n## Angriffsfläche von PF-RNGs\n\nEin kryptografisch perfekter PF-RNG kann durch fehlerhafte Implementierung immer noch kompromittiert werden. Hier ist, was die Mathematik überstehen kann.\n\n### Biased-Seed-Pool-Angriff\n\nDer realistischste Angriff — und ein Grund, warum die Client-Seed-Rotation wichtig ist.\n\nEin unehrliches Casino generiert tausende Kandidaten-Server-Seeds im Voraus. Für jeden berechnet es die Ergebnisse gegen häufige Client-Seed-Muster (Standard-Browser-Formate, häufige Wörter). Es setzt nur Seeds ein, die zufällig mehr Verluste als Gewinne gegen vorhersehbare Client-Seeds produzieren.\n\nJeder eingesetzte Seed hasht immer noch korrekt zu seinem vorab festgelegten Hash. Die Commit-Reveal-Mathematik passt. Aber der Pool der verfügbaren Seeds wurde vor der Sicht eines Spielers handverlesen, und der langfristige Hausvorteil überschreitet stillschweigend die angegebene RTP.\n\n#### Warum Rotation Das Besiegt\n\nBiased-Seed-Angriffe erfordern, dass das Casino deinen zukünftigen Client-Seed *vor* dem Commitment des Server-Seeds kennt. Rotiere deinen Client-Seed alle 50–100 Einsätze und die Vorberechnung des Casinos wird nutzlos — sie committed sich zu einem Server-Seed, bevor sie den neuen Client-Seed kannte, also können sie Ergebnisse nicht steuern.\n\nDeshalb lassen legitime Casinos dich sofort rotieren. Ein PF-Casino, das die Client-Seed-Rotation verweigert (oder den Client-Seed nach eigenem Zeitplan, nicht deinem, automatisch regeneriert), signalisiert, dass die Angriffsfläche offen ist. Der [Client-Seed vs Server-Seed](\u002Fblog\u002Fclient-seed-vs-server-seed)-Leitfaden deckt den vollständigen Rotations-Workflow ab.\n\n### Schwache Entropiequellen\n\nWenn die Server-Seed-Generierung vorhersehbare Entropie verwendet, läuft das Commit-Reveal-Protokoll trotzdem, aber der Angreifer kann Seeds vorhersagen.\n\n#### Die Math.random-Falle\n\nJavas Script `Math.random()` ist eine Variante eines linearen Kongruenzgenerators. Nach Beobachtung von ~700 aufeinanderfolgenden Ausgaben kann ein Angreifer den vollständigen internen Zustand rekonstruieren und jede nachfolgende Ausgabe vorhersagen. Wenn ein PF-Casino Math.random für die Server-Seed-Generierung verwendet:\n\n1. Angreifer spielt 700+ Runden und sammelt jeden offenbarten Server-Seed\n2. Angreifer rekonstruiert den PRNG-Zustand\n3. Angreifer sagt den nächsten gehashten Server-Seed *vor* dem Commitment voraus\n4. Angreifer wettet mit vollständiger Kenntnis des Ergebnisses\n\nPrävention: Casinos müssen `crypto.randomBytes(32)` (Node.js), `crypto.getRandomValues(new Uint8Array(32))` (Browser) oder Hardware-RNG verwenden. Der Unterschied ist eine Codezeile, aber die Sicherheitslücke ist total.\n\n### Implementation Red Flags\n\nKurze Checkliste von Signalen, dass ein PF-RNG nicht sicher ist:\n\n- Keine Client-Seed-Rotations-Schaltfläche, oder Rotation dauert >5 Sekunden\n- Client-Seed wird vom Casino nach eigenem Zeitplan automatisch regeneriert\n- Server-Seed-Verlauf zeigt nicht den Algorithmus oder die Slice-Breite\n- Verifikationstool funktioniert nur auf der Website des Casinos selbst (nicht lokal)\n- Kein veröffentlichter Hash-Algorithmus — „SHA-256 irgendwo\" ist nicht genug; du brauchst die genaue Formel\n- Offenbarte Server-Seeds stimmen in keiner Runde mit ihren vorgegebenen Hashes überein\n\nJedes dieser Signale deutet darauf hin, dass die PF-Behauptung Marketinglack auf einem gewöhnlichen RNG ist. Für einen Vergleich, welche Casinos ihren PF-Code tatsächlich veröffentlichen, siehe die [provably-fair-Bitcoin-Spiele](\u002Fblog\u002Fprovably-fair-bitcoin-games)-Ranking.\n\n## Selbst Ausprobieren — Interaktiver Verifizierer\n\nDie Mathematik hört auf, abstrakt zu sein, sobald du sie auf deinen eigenen Seeds ausführst. Füge beliebige vier Werte aus dem Fairness-Panel deines Casinos in den Verifizierer unten ein — alles wird in deinem Browser über die Web Crypto API ausgeführt, keine Daten werden an unseren Server gesendet.\n\n::inline-provably-fair-verifier\n::\n\nEin praktischer Tipp: Wenn du keine echte PF-Casino-Wette zur Hand hast, versuche diese wegwerfbaren Testwerte, um eine verifizierte Runde zu sehen:\n\n- Server-Seed-Hash: `bf3c0a9b0f4b3c8e8f4f0c5f0c4e8b7d8f3e2a1c9f6e3b7c4d5a8e2f9b1c6d3a` (nur Beispiel — stimmt nicht mit echten Hashes überein)\n- Server-Seed: `f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4`\n- Client-Seed: `demo-player`\n- Nonce: `1`\n\nDas Ergebnis zeigt ein PASS\u002FFAIL-Urteil zum Hash-Match sowie die rekonstruierten Dice- und Crash-Ergebnisse. Die gleiche Logik läuft hinter dem [Aviator-Provably-Fair-Rechner](\u002Fblog\u002Fprovably-fair-aviator-calculator) für Spribes Crash-Style-Spiel und unser vollständiger Verifizierer unter [dem Provably-Fair-Hub](\u002Fcasino\u002Fprovably-fair) deckt jedes Mainstream-PF-Casino ab. Um Wetten gegen eine bekannte RTP zu dimensionieren, nachdem du bestätigt hast, dass der RNG legitim ist, kombiniere es mit unserem [RTP-Rechner](\u002Fcasino\u002Frtp-calculator), [Hausvorteil-Rechner](\u002Fcasino\u002Fhouse-edge-calculator) und [Bankroll-Rechner](\u002Fcasino\u002Fbankroll-calculator).\n\n**Unterm Strich:** Die Mathematik ist nur dann wasserdicht, wenn das Casino den Hash tatsächlich vor der Wette veröffentlicht. Prüfen Sie jede Implementierung anhand des [Provably-Fair-Hubs](\u002Fcasino\u002Fprovably-fair) — wir halten fest, ob der Seed korrekt festgesetzt wird und wo der Hash einsehbar ist.\n\n## Häufig gestellte Fragen",[28,31,34,37,40,43,46,49,52,55,58,61,64,67,70],{"answer":29,"question":30},"Eine Provably Fair RNG speist drei Eingaben — den Server-Seed des Casinos (versteckt hinter einem SHA-256-Hash), deinen Client-Seed und einen Nonce — in HMAC-SHA256 ein. Die hexadecimale Ausgabe wird dann einer Würfelrolle, einem Crash-Multiplikator oder einer Karte zugeordnet. Da der Hash des Server-Seeds vor deinem Einsatz veröffentlicht wird, kann das Casino ihn danach nicht ändern, und die gesamte Berechnung ist deterministisch: Jeder, der die drei Eingaben hat, kann das exakte Ergebnis im Browser reproduzieren.","Wie funktioniert Provably Fair Zufallszahlengenerierung eigentlich?",{"answer":32,"question":33},"Pseudocode: `hex = HMAC_SHA256(server_seed, client_seed + ':' + nonce); dice = (parseInt(hex.slice(0,10), 16) % 1_000_000) \u002F 10_000;`. Der HMAC-Aufruf verwendet den Server-Seed als Schlüssel und die Client-Seed-plus-Nonce-Zeichenkette als Nachricht. Nimm die ersten 10 Hexzeichen, konvertiere zu Dezimal, wende Modulo 1.000.000 an und dividiere durch 10.000 — du erhältst einen Würfelwurf von 0-99,9999. Verschiedene Spiele (Crash, Karten) ändern nur die Zuordnung, nie das HMAC selbst.","Wie lautet der Pseudocode zur Generierung von Zufallszahlen für ein Provably Fair Spiel?",{"answer":35,"question":36},"Nein — nicht ohne den Server-Seed, der versteckt bleibt, bis das Casino ihn wechselt. HMAC-SHA256 ist eine unidirektionale Funktion: Auch wenn du die Ausgabe und die Nachricht kennst, kannst du den Schlüssel in realistischer Zeit nicht wiederherstellen. Die einzige Möglichkeit, Ergebnisse vorherzusagen, ist, wenn das Casino den aktiven Server-Seed vor dem Rundenende durchsickern lässt, was sofort erkennbar wäre, weil der offenbarte Seed nicht zum vorab zugesicherten Hash passt. Im Jahr 2026 gibt es keine bekannten praktischen Angriffe auf SHA-256, die dies ändern würden.","Kann Provably Fair vorhersagt werden?",{"answer":38,"question":39},"Der Algorithmus selbst kann nicht geknackt werden — SHA-256 und HMAC-SHA256 haben keine praktischen Preimage- oder Schlüsselwiederherstellungsangriffe. Die realistischen Angriffsflächen sind alle Implementierungsfehler: Ein Casino, das schwache Entropie (wie JavaScript Math.random) für die Server-Seed-Generierung verwendet, ein Casino, das Samen nicht wechselt, oder voreingenommene Seed-Pools, bei denen das Casino verlieren Ergebnisse für häufige Client-Seeds vorberechnet. Keines davon bricht die Mathematik — sie brechen die Einrichtung drumherum. Wechsle deinen Client-Seed alle 50-100 Einsätze und du überwindest alle bekannten Angriffe.","Wie knackt man den Provably Fair Algorithmus?",{"answer":41,"question":42},"HMAC-SHA256 ist technisch nicht allein ein CSPRNG, verhält sich aber wie einer, wenn es mit einem kryptographisch zufälligen Server-Seed versehen wird. Die Ausgabe ist für jeden, der den Schlüssel nicht kennt, nicht von Zufall zu unterscheiden, was genau die Eigenschaft ist, die Provably Fair Glücksspiel erfordert. NIST SP 800-90A Rev 1 definiert HMAC_DRBG (HMAC-basierter deterministischer Zufallsbit-Generator), den viele PF-Casinos als ihren zugrunde liegenden Zahlengenerator implementieren.","Ist HMAC-SHA256 wirklich ein CSPRNG?",{"answer":44,"question":45},"Du brauchst Excel dafür nicht — verwende JavaScript in der Browser-Konsole. Führe eine Schleife aus: `for (let i=0; i\u003C10000; i++) console.log(await pfDice(serverSeed, clientSeed, i))` mit der gleichen HMAC-SHA256 und Würfelzuordnung, die das Casino verwendet. Zeichne das Histogramm — es sollte einheitlich über 0-99,99 verteilt sein ohne erkennbare Verzerrung. Excels `RAND()` ist nicht kryptographisch und stimmt nicht mit der Ausgabe eines PF-Casinos überein; verwende es nur zur Überprüfung der Verteilungsform, nicht der genauen Werte.","Wie generiere ich 10.000 Zufallszahlen in Excel zum Testen eines PF-Casinos?",{"answer":47,"question":48},"HMAC ist eine Schlüssel-Hash-Funktion — sie lässt den Server-Seed als geheimen ‚Schlüssel' fungieren, der bekannt sein muss, um die Ausgabe zu reproduzieren. Einfaches SHA-256 hat diese Schlüsseleigenschaft nicht: SHA-256(server_seed + client_seed + nonce) würde immer noch deterministisch funktionieren, ist aber anfällig für Length-Extension-Angriffe, bei denen eine bösartige Partei einen neuen Hash mit einer längeren Nachricht berechnen könnte, ohne den Schlüssel zu kennen. HMAC umhüllt SHA-256 in einer Konstruktion, die Length-Extension besiegt, weshalb jedes moderne PF-Casino HMAC verwendet.","Warum HMAC statt einfaches SHA-256 verwenden?",{"answer":50,"question":51},"Nicht nativ. Blockchains sind deterministisch — jeder Validator muss das gleiche Ergebnis aus den gleichen Eingaben erzeugen, daher gibt es keine eingebaute Entropiequelle. Wenn eine dApp versuchte, Block-Hash, Zeitstempel oder Prevrandao als Zufall zu verwenden, könnten Miner sie manipulieren. Die Lösung ist Oracle-bereitgestellte Zufall wie Chainlink VRF, die die Zahl offchain mit einem verifizierbaren kryptographischen Beweis generiert und beides in die Kette postet. Für onchain NFT-Drops, Lotterien und einige Crypto-Casinos hat VRF naive Blockhash-Schemata weitgehend ersetzt.","Kann eine Blockchain Provably Fair Zufallszahlen generieren?",{"answer":53,"question":54},"Ein PRNG (Pseudo-Zufallszahlengenerator) ist deterministisch, aber nicht sicher — vorhersagbar bei genug Ausgabe (z.B. Math.random). Ein CSPRNG (kryptographisch sicherer PRNG) ist deterministisch *und* unvorhersehbar, selbst bei vorherigen Ausgaben, mit kryptographischen Primitiven wie HMAC-DRBG, AES-CTR oder ChaCha20. Ein PF RNG ist ein CSPRNG, eingehüllt in ein Commit-Reveal-Protokoll: Das Casino veröffentlicht den Seed-Hash vor deinem Einsatz, sodass du nach der Runde verifyzen kannst, dass das Casino den Seed nicht geändert hat. PF RNG = CSPRNG + Transparenz.","Was ist der Unterschied zwischen PRNG, CSPRNG und PF RNG?",{"answer":56,"question":57},"Selten. Die meisten großen Slot-Studios (Pragmatic Play, NetEnt, Play'n GO, Hacksaw) verwenden proprietäre CSPRNGs, die von eCOGRA oder iTech Labs auditiert wurden — nicht Provably Fair. Die Mechanik ist zu komplex (kaskadierende Walzen, Bonus-Trigger, Feature-Käufe), um sich sauber auf eine einzelne HMAC-Ausgabe abzubilden. Provably Fair Slots existieren — BGaming, Spribe und Turbo versenden einige Titel mit PF — aber sie sind einfachere Designs. Für einen tieferen Vergleich der beiden Vertrauensmodelle siehe den Provably Fair vs RNG zertifizierten Vergleich.","Funktioniert Provably Fair bei Spielautomaten?",{"answer":59,"question":60},"Stake-artige PF-Würfel nehmen die HMAC-SHA256-Ausgabe, schneiden die ersten 5 Hexzeichen (manchmal 8-10), konvertieren zu Dezimal, wenden dann Modulo 1.000.000 an und dividieren durch 10.000, um einen Wert von 0-99,9999 zu erzeugen. Wenn das Ergebnis über 99,9999 liegt (eine statistische Seltenheit), rückt der Schnitt zum nächsten Chunk der Hexzeichenkette vor. Dies hält die Verteilung einheitlich ohne Verzerrung durch Hex-Trunkierung. Verifizierungstools benötigen die genaue Schnittbreite und den Divisor für jedes Casino, weshalb ein generischer Verifizierer manchmal eine andere Zahl anzeigt als die Casino-UI.","Wie funktioniert PF-Würfel-Zuordnung?",{"answer":62,"question":63},"Crash verwendet eine andere Formel. Die ersten 8 Hexzeichen der HMAC-Ausgabe werden in eine Ganzzahl `h` konvertiert. Wenn `h` durch einen bestimmten House-Edge-Faktor teilbar ist (33 bei Stake), ist der Crash-Multiplikator 1,00 (sofortiger Bust). Andernfalls ist der Multiplikator `floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100`. Dies erzeugt eine Verteilung, die zu niedrigen Multiplikatoren geneigt ist (die meisten Runden busten vor 2x), aber mit einem langen rechten Schwanz, der geduldige Einsätze belohnt. Die RTP beträgt ~99%, wenn der House-Edge-Faktor 1% ist.","Wie funktioniert PF-Crash-Zuordnung?",{"answer":65,"question":66},"Das gesamte Protokoll bricht zusammen. Math.random in JavaScript wird vom System-Clock geseeded und erzeugt vorhersagbare Ausgabe — ein Spieler, der die ungefähre Serverzeit kennt, kann alle zukünftigen Server-Seeds vorberechnen und jeden Einsatz gewinnen. Jedes PF-Casino, das nicht-kryptographische Entropie verwendet (Math.random, zeitbasierte Seeds, vorhersagbare Zähler), ist praktisch nicht auditiert, auch wenn es Seed-Hashes anzeigt. Seriöse Casinos verwenden crypto.randomBytes (Node.js) oder crypto.getRandomValues (Browser) unterstützt durch OS-Entropiepools.","Was passiert, wenn das Casino Math.random für seinen Server-Seed verwendet?",{"answer":68,"question":69},"Für die Hash-Match-Überprüfung ja — SHA-256 ist universell. Für das Spielergebnis teilweise. Die meisten PF-Würfel-Sites verwenden die gleiche HMAC-SHA256 plus erste-5-Hex-Slice-Formel, daher reproduziert ein generischer Würfel-Verifizierer Stake, Primedice, Rainbet und die meisten Originals korrekt. Crash und Blackjack Zuordnungen variieren je nach Casino, und einige verwenden HMAC-SHA512 statt SHA-256 für Kartenspiele. Wenn der Hash passt, aber die Ergebnisnummer unterschiedlich ist, wechsle zum offiziellen Verifizierer des Casinos oder überprüfe die Fairness-Dokumente.","Kann ich einen Verifizierer für alle Provably Fair Casinos verwenden?",{"answer":71,"question":72},"Für die absehbare Zukunft ja. SHA-256 würde ungefähr 2^128 Quantenoperationen benötigen, um mit Grovers Algorithmus zu brechen — immer noch rechnerisch nicht durchführbar. HMAC-SHA256 fügt eine weitere Schicht hinzu. Die NIST Post-Quantum-Standardisierungsbemühung hat SHA-256 oder HMAC nicht als Ziel genommen, da sie selbst gegen großflächige Quantencomputer sicher bleiben. Public-Key-Kryptographie (RSA, ECDSA) ist anfällig für Quantenangriffe, nicht symmetrische Hashes. Provably Fair RNG bleibt in die 2030er Jahre und darüber hinaus sicher, sofern es keinen theoretischen Durchbruch gibt.","Ist Provably Fair RNG langfristig sicher gegen Quantencomputer?",[74,75,76,77],"ru","de","tr","en",{"data":79,"body":80},{},{"type":81,"children":82},"root",[83,92,114,119,132,138,143,285,290,560,596,603,668,674,693,716,730,736,748,754,766,778,783,798,804,809,851,872,878,897,1031,1058,1064,1069,1075,1080,1291,1296,1308,1320,1333,1337,1343,1348,1356,1386,1394,1403,1411,1428,1436,1445,1453,1458,1466,1486,1498,1504,1509,1736,1748,1754,1759,1765,1770,2272,2277,2282,2286,2292,2297,2820,2840,2845,2851,2856,2865,2885,2891,2896,2902,2913,2936,2941,2947,2952,2982,2992,2998,3003,3009,3014,3061,3066,3072,3082,3120,3125,3131,3244,3265,3271,3276,3282,3287,3292,3297,3304,3315,3328,3334,3339,3345,3357,3386,3407,3413,3418,3451,3463,3469,3474,3478,3483,3531,3574,3591],{"type":84,"tag":85,"props":86,"children":88},"element","h2",{"id":87},"provably-fair-zufallszahlengenerierung-erklärt-2026",[89],{"type":90,"value":91},"text","Provably Fair Zufallszahlengenerierung erklärt (2026)",{"type":84,"tag":93,"props":94,"children":95},"p",{},[96,98,105,107,112],{"type":90,"value":97},"Du hast gerade 0,5 BTC auf ein Krypto-Würfelspiel gesetzt. Der Bildschirm zeigt ",{"type":84,"tag":99,"props":100,"children":102},"code",{"className":101},[],[103],{"type":90,"value":104},"37,42",{"type":90,"value":106}," und du verlierst. Du öffnest das Fairness-Panel und siehst einen Server-Seed-Hash, deinen Client-Seed und einen Nonce — vier Werte, die angeblich beweisen, dass nichts manipuliert wurde. Aber wie wurden aus diesen vier Werten eigentlich ",{"type":84,"tag":99,"props":108,"children":110},{"className":109},[],[111],{"type":90,"value":104},{"type":90,"value":113},"? Was hat zufällige Hex-Zeichen in einen spezifischen Würfelwurf verwandelt?",{"type":84,"tag":93,"props":115,"children":116},{},[117],{"type":90,"value":118},"Hier ist das Ding: Das ganze „Provably Fair\"-Versprechen hängt von einem spezifischen Prozess ab — der Umwandlung von kryptografischer Hash-Ausgabe in Spielergebnisse. Wenn du nicht verstehst, wie diese Umwandlung funktioniert, wirkt Provably Fair wie Marketing-Magie. Wenn du es verstehst, kannst du jedes PF-Casino in etwa 60 Sekunden prüfen, Fake-Implementierungen auf den ersten Blick erkennen und genau wissen, welche Angriffe das Protokoll verhindert und welche nicht.",{"type":84,"tag":93,"props":120,"children":121},{},[122,124,130],{"type":90,"value":123},"Dieser Leitfaden führt dich durch ",{"type":84,"tag":125,"props":126,"children":127},"strong",{},[128],{"type":90,"value":129},"Provably Fair Zufallszahlengenerierung",{"type":90,"value":131}," so, wie es ein Entwickler 2026 implementieren würde — die CSPRNG-Grundlagen unter der Haube, die HMAC-SHA256-Formel, die Seeds in Zahlen verwandelt, die verschiedenen Mapping-Schemata für Würfel, Crash und Karten, und die Angriffsfläche, die selbst dann bestehen bleibt, wenn die Mathematik perfekt ist. Am Ende wirst du wissen, warum PF-RNGs kryptografisch unzerbrechlich sind, welche Implementierungsfehler sie trotzdem ruinieren, und wann Blockchain-Zufälligkeit (Chainlink VRF) stattdessen eingesetzt wird.",{"type":84,"tag":85,"props":133,"children":135},{"id":134},"kurzfassung-wie-pf-rngs-tatsächlich-zahlen-generieren",[136],{"type":90,"value":137},"Kurzfassung — Wie PF-RNGs tatsächlich Zahlen generieren",{"type":84,"tag":93,"props":139,"children":140},{},[141],{"type":90,"value":142},"Jedes Provably Fair-Spiel verwendet den gleichen RNG-Kern, nur die Ausgabe-Mapping unterscheidet sich. Hier ist die 60-Sekunden-Version.",{"type":84,"tag":144,"props":145,"children":146},"table",{},[147,170],{"type":84,"tag":148,"props":149,"children":150},"thead",{},[151],{"type":84,"tag":76,"props":152,"children":153},{},[154,160,165],{"type":84,"tag":155,"props":156,"children":157},"th",{},[158],{"type":90,"value":159},"Schritt",{"type":84,"tag":155,"props":161,"children":162},{},[163],{"type":90,"value":164},"Was passiert",{"type":84,"tag":155,"props":166,"children":167},{},[168],{"type":90,"value":169},"Wer kontrolliert es",{"type":84,"tag":171,"props":172,"children":173},"tbody",{},[174,193,210,228,250,267],{"type":84,"tag":76,"props":175,"children":176},{},[177,183,188],{"type":84,"tag":178,"props":179,"children":180},"td",{},[181],{"type":90,"value":182},"1. Server-Seed generieren",{"type":84,"tag":178,"props":184,"children":185},{},[186],{"type":90,"value":187},"CSPRNGs des Casinos gibt einen 32–64 Byte langen Zufallsstring aus",{"type":84,"tag":178,"props":189,"children":190},{},[191],{"type":90,"value":192},"Casino",{"type":84,"tag":76,"props":194,"children":195},{},[196,201,206],{"type":84,"tag":178,"props":197,"children":198},{},[199],{"type":90,"value":200},"2. Hashen und veröffentlichen",{"type":84,"tag":178,"props":202,"children":203},{},[204],{"type":90,"value":205},"SHA-256(server_seed) wird dir vor der Runde angezeigt",{"type":84,"tag":178,"props":207,"children":208},{},[209],{"type":90,"value":192},{"type":84,"tag":76,"props":211,"children":212},{},[213,218,223],{"type":84,"tag":178,"props":214,"children":215},{},[216],{"type":90,"value":217},"3. Client-Seed + Nonce sammeln",{"type":84,"tag":178,"props":219,"children":220},{},[221],{"type":90,"value":222},"Dein Browser fügt einen Client-Seed hinzu; Nonce ist der Runden-Zähler",{"type":84,"tag":178,"props":224,"children":225},{},[226],{"type":90,"value":227},"Du + Protokoll",{"type":84,"tag":76,"props":229,"children":230},{},[231,236,245],{"type":84,"tag":178,"props":232,"children":233},{},[234],{"type":90,"value":235},"4. HMAC berechnen",{"type":84,"tag":178,"props":237,"children":238},{},[239],{"type":84,"tag":99,"props":240,"children":242},{"className":241},[],[243],{"type":90,"value":244},"hex = HMAC-SHA256(server_seed, client_seed : nonce)",{"type":84,"tag":178,"props":246,"children":247},{},[248],{"type":90,"value":249},"Deterministisch",{"type":84,"tag":76,"props":251,"children":252},{},[253,258,263],{"type":84,"tag":178,"props":254,"children":255},{},[256],{"type":90,"value":257},"5. Hex in Ergebnis abbilden",{"type":84,"tag":178,"props":259,"children":260},{},[261],{"type":90,"value":262},"Slice + Modulo + Division = Würfelwurf, Crash-Multiplikator oder Karte",{"type":84,"tag":178,"props":264,"children":265},{},[266],{"type":90,"value":249},{"type":84,"tag":76,"props":268,"children":269},{},[270,275,280],{"type":84,"tag":178,"props":271,"children":272},{},[273],{"type":90,"value":274},"6. Offenlegen und überprüfen",{"type":84,"tag":178,"props":276,"children":277},{},[278],{"type":90,"value":279},"Nach Rotation wird der Raw-Seed offengelegt; jeder kann Schritt 4 erneut durchführen",{"type":84,"tag":178,"props":281,"children":282},{},[283],{"type":90,"value":284},"Du",{"type":84,"tag":93,"props":286,"children":287},{},[288],{"type":90,"value":289},"Die Mathematik ist:",{"type":84,"tag":93,"props":291,"children":292},{},[293],{"type":84,"tag":294,"props":295,"children":298},"span",{"className":296},[297],"katex",[299,398],{"type":84,"tag":294,"props":300,"children":303},{"className":301},[302],"katex-mathml",[304],{"type":84,"tag":305,"props":306,"children":308},"math",{"xmlns":307},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[309],{"type":84,"tag":310,"props":311,"children":312},"semantics",{},[313,391],{"type":84,"tag":314,"props":315,"children":316},"mrow",{},[317,323,329,335,343,348,352,357,362,367,372,377,382,387],{"type":84,"tag":318,"props":319,"children":320},"mtext",{},[321],{"type":90,"value":322},"outcome",{"type":84,"tag":324,"props":325,"children":326},"mo",{},[327],{"type":90,"value":328},"=",{"type":84,"tag":330,"props":331,"children":332},"mi",{},[333],{"type":90,"value":334},"f",{"type":84,"tag":324,"props":336,"children":340},{"fence":337,"stretchy":338,"minsize":339,"maxsize":339},"false","true","1.2em",[341],{"type":90,"value":342},"(",{"type":84,"tag":318,"props":344,"children":345},{},[346],{"type":90,"value":347},"HMAC-SHA256",{"type":84,"tag":324,"props":349,"children":350},{"stretchy":337},[351],{"type":90,"value":342},{"type":84,"tag":318,"props":353,"children":354},{},[355],{"type":90,"value":356},"server_seed",{"type":84,"tag":324,"props":358,"children":359},{"separator":338},[360],{"type":90,"value":361},",",{"type":84,"tag":318,"props":363,"children":364},{},[365],{"type":90,"value":366},"  ",{"type":84,"tag":318,"props":368,"children":369},{},[370],{"type":90,"value":371},"client_seed",{"type":84,"tag":324,"props":373,"children":374},{},[375],{"type":90,"value":376},":",{"type":84,"tag":318,"props":378,"children":379},{},[380],{"type":90,"value":381},"nonce",{"type":84,"tag":324,"props":383,"children":384},{"stretchy":337},[385],{"type":90,"value":386},")",{"type":84,"tag":324,"props":388,"children":389},{"fence":337,"stretchy":338,"minsize":339,"maxsize":339},[390],{"type":90,"value":386},{"type":84,"tag":392,"props":393,"children":395},"annotation",{"encoding":394},"application\u002Fx-tex",[396],{"type":90,"value":397},"\\text{outcome} = f\\big(\\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} : \\text{nonce})\\big)",{"type":84,"tag":294,"props":399,"children":402},{"className":400,"ariaHidden":338},[401],"katex-html",[403,440,528],{"type":84,"tag":294,"props":404,"children":407},{"className":405},[406],"base",[408,414,424,430,436],{"type":84,"tag":294,"props":409,"children":413},{"className":410,"style":412},[411],"strut","height:0.6151em;",[],{"type":84,"tag":294,"props":415,"children":418},{"className":416},[417,90],"mord",[419],{"type":84,"tag":294,"props":420,"children":422},{"className":421},[417],[423],{"type":90,"value":322},{"type":84,"tag":294,"props":425,"children":429},{"className":426,"style":428},[427],"mspace","margin-right:0.2778em;",[],{"type":84,"tag":294,"props":431,"children":434},{"className":432},[433],"mrel",[435],{"type":90,"value":328},{"type":84,"tag":294,"props":437,"children":439},{"className":438,"style":428},[427],[],{"type":84,"tag":294,"props":441,"children":443},{"className":442},[406],[444,449,456,467,476,482,491,497,501,506,515,519,524],{"type":84,"tag":294,"props":445,"children":448},{"className":446,"style":447},[411],"height:1.2em;vertical-align:-0.35em;",[],{"type":84,"tag":294,"props":450,"children":454},{"className":451,"style":453},[417,452],"mathnormal","margin-right:0.1076em;",[455],{"type":90,"value":334},{"type":84,"tag":294,"props":457,"children":459},{"className":458},[417],[460],{"type":84,"tag":294,"props":461,"children":465},{"className":462},[463,464],"delimsizing","size1",[466],{"type":90,"value":342},{"type":84,"tag":294,"props":468,"children":470},{"className":469},[417,90],[471],{"type":84,"tag":294,"props":472,"children":474},{"className":473},[417],[475],{"type":90,"value":347},{"type":84,"tag":294,"props":477,"children":480},{"className":478},[479],"mopen",[481],{"type":90,"value":342},{"type":84,"tag":294,"props":483,"children":485},{"className":484},[417,90],[486],{"type":84,"tag":294,"props":487,"children":489},{"className":488},[417],[490],{"type":90,"value":356},{"type":84,"tag":294,"props":492,"children":495},{"className":493},[494],"mpunct",[496],{"type":90,"value":361},{"type":84,"tag":294,"props":498,"children":500},{"className":499,"style":428},[427],[],{"type":84,"tag":294,"props":502,"children":505},{"className":503,"style":504},[427],"margin-right:0.1667em;",[],{"type":84,"tag":294,"props":507,"children":509},{"className":508},[417,90],[510],{"type":84,"tag":294,"props":511,"children":513},{"className":512},[417],[514],{"type":90,"value":371},{"type":84,"tag":294,"props":516,"children":518},{"className":517,"style":428},[427],[],{"type":84,"tag":294,"props":520,"children":522},{"className":521},[433],[523],{"type":90,"value":376},{"type":84,"tag":294,"props":525,"children":527},{"className":526,"style":428},[427],[],{"type":84,"tag":294,"props":529,"children":531},{"className":530},[406],[532,536,545,551],{"type":84,"tag":294,"props":533,"children":535},{"className":534,"style":447},[411],[],{"type":84,"tag":294,"props":537,"children":539},{"className":538},[417,90],[540],{"type":84,"tag":294,"props":541,"children":543},{"className":542},[417],[544],{"type":90,"value":381},{"type":84,"tag":294,"props":546,"children":549},{"className":547},[548],"mclose",[550],{"type":90,"value":386},{"type":84,"tag":294,"props":552,"children":554},{"className":553},[417],[555],{"type":84,"tag":294,"props":556,"children":558},{"className":557},[463,464],[559],{"type":90,"value":386},{"type":84,"tag":93,"props":561,"children":562},{},[563,565,570,572,578,580,586,588,594],{"type":90,"value":564},"Wobei ",{"type":84,"tag":99,"props":566,"children":568},{"className":567},[],[569],{"type":90,"value":334},{"type":90,"value":571}," eine spielspezifische Mapping-Funktion ist — ",{"type":84,"tag":99,"props":573,"children":575},{"className":574},[],[576],{"type":90,"value":577},"f_dice",{"type":90,"value":579}," gibt 0-99,99 zurück, ",{"type":84,"tag":99,"props":581,"children":583},{"className":582},[],[584],{"type":90,"value":585},"f_crash",{"type":90,"value":587}," gibt einen Multiplikator zurück, ",{"type":84,"tag":99,"props":589,"children":591},{"className":590},[],[592],{"type":90,"value":593},"f_cards",{"type":90,"value":595}," gibt Kartendeck-Positionen zurück. Der HMAC-Teil ist identisch bei jedem PF-Casino der Welt.",{"type":84,"tag":597,"props":598,"children":600},"h3",{"id":599},"wichtige-zahlen-die-du-kennen-solltest",[601],{"type":90,"value":602},"Wichtige Zahlen, die du kennen solltest",{"type":84,"tag":604,"props":605,"children":606},"ul",{},[607,618,628,638,648,658],{"type":84,"tag":608,"props":609,"children":610},"li",{},[611,616],{"type":84,"tag":125,"props":612,"children":613},{},[614],{"type":90,"value":615},"3 Eingaben",{"type":90,"value":617},": Server-Seed + Client-Seed + Nonce erzeugen jedes Ergebnis",{"type":84,"tag":608,"props":619,"children":620},{},[621,626],{"type":84,"tag":125,"props":622,"children":623},{},[624],{"type":90,"value":625},"64 Hex-Zeichen",{"type":90,"value":627},": Länge einer SHA-256 \u002F HMAC-SHA256-Ausgabe",{"type":84,"tag":608,"props":629,"children":630},{},[631,636],{"type":84,"tag":125,"props":632,"children":633},{},[634],{"type":90,"value":635},"128 Hex-Zeichen",{"type":90,"value":637},": Länge von HMAC-SHA512 (verwendet von BC.Game und PF Blackjack)",{"type":84,"tag":608,"props":639,"children":640},{},[641,646],{"type":84,"tag":125,"props":642,"children":643},{},[644],{"type":90,"value":645},"~2^256 Operationen",{"type":90,"value":647},": Was es bräuchte, um HMAC-SHA256 zu knacken — astronomisch unerreichbar",{"type":84,"tag":608,"props":649,"children":650},{},[651,656],{"type":84,"tag":125,"props":652,"children":653},{},[654],{"type":90,"value":655},"0,00-99,99",{"type":90,"value":657},": Standardwürfelbereich nach Mapping",{"type":84,"tag":608,"props":659,"children":660},{},[661,666],{"type":84,"tag":125,"props":662,"children":663},{},[664],{"type":90,"value":665},"1,00x bis ∞",{"type":90,"value":667},": Standardbereich für Crash-Multiplikator (in der Praxis durch Float-Genauigkeit begrenzt)",{"type":84,"tag":597,"props":669,"children":671},{"id":670},"fair-profitabel",[672],{"type":90,"value":673},"Fair ≠ Profitabel",{"type":84,"tag":93,"props":675,"children":676},{},[677,679,685,687,692],{"type":90,"value":678},"Dass der RNG Provably Fair ist, sagt dir, dass das Casino das Ergebnis ",{"type":84,"tag":680,"props":681,"children":682},"em",{},[683],{"type":90,"value":684},"nach",{"type":90,"value":686}," deiner Wette nicht manipulieren konnte. Es sagt dir ",{"type":84,"tag":125,"props":688,"children":689},{},[690],{"type":90,"value":691},"nicht",{"type":90,"value":376},{"type":84,"tag":604,"props":694,"children":695},{},[696,701,706,711],{"type":84,"tag":608,"props":697,"children":698},{},[699],{"type":90,"value":700},"Ob der Hausvorteil angemessen ist (überprüfe RTP separat)",{"type":84,"tag":608,"props":702,"children":703},{},[704],{"type":90,"value":705},"Ob das Casino Auszahlungen ehrt",{"type":84,"tag":608,"props":707,"children":708},{},[709],{"type":90,"value":710},"Ob Boni und Umsatzbedingungen ehrlich sind",{"type":84,"tag":608,"props":712,"children":713},{},[714],{"type":90,"value":715},"Ob der Server-Seed-Pool vor seiner Bestätigung unbefangen war",{"type":84,"tag":93,"props":717,"children":718},{},[719,721,728],{"type":90,"value":720},"Wir behandeln die gesamte Angriffsfläche unten. Für einen umfassenderen Vergleich mit traditioneller Zertifizierung siehe unseren ",{"type":84,"tag":722,"props":723,"children":725},"a",{"href":724},"\u002Fblog\u002Fprovably-fair-vs-rng-certified",[726],{"type":90,"value":727},"Provably Fair vs. RNG-zertifiziert",{"type":90,"value":729}," Leitfaden.",{"type":84,"tag":85,"props":731,"children":733},{"id":732},"was-macht-einen-rng-provably-fair",[734],{"type":90,"value":735},"Was macht einen RNG „Provably Fair\"",{"type":84,"tag":93,"props":737,"children":738},{},[739,741,746],{"type":90,"value":740},"Bevor wir zur Formel kommen, hilft es, ",{"type":84,"tag":680,"props":742,"children":743},{},[744],{"type":90,"value":745},"Provably Fair",{"type":90,"value":747}," von der breiteren RNG-Welt zu unterscheiden. PF ist eine spezifische Verbesserung von CSPRNGs, keine Ersetzung.",{"type":84,"tag":597,"props":749,"children":751},{"id":750},"das-commit-reveal-muster",[752],{"type":90,"value":753},"Das Commit-Reveal-Muster",{"type":84,"tag":93,"props":755,"children":756},{},[757,759,764],{"type":90,"value":758},"Der ganze Trick hinter Provably Fair ist ein kryptografisches Muster namens ",{"type":84,"tag":125,"props":760,"children":761},{},[762],{"type":90,"value":763},"Commit-Reveal",{"type":90,"value":765},".",{"type":84,"tag":93,"props":767,"children":768},{},[769,771,776],{"type":90,"value":770},"Bevor die Runde beginnt, legt sich das Casino auf einen spezifischen Server-Seed fest, indem es seinen SHA-256-Hash veröffentlicht. Der Hash ist ein 64-stelliger Fingerabdruck, der den Seed eindeutig identifiziert, ohne ihn preiszugeben. Da SHA-256 keine praktischen Kollisionsangriffe hat, kann das Casino später keinen ",{"type":84,"tag":680,"props":772,"children":773},{},[774],{"type":90,"value":775},"anderen",{"type":90,"value":777}," Seed finden, der den gleichen Hash erzeugt — sie sind gebunden.",{"type":84,"tag":93,"props":779,"children":780},{},[781],{"type":90,"value":782},"Nach der Runde (oder nachdem du Seeds rotierst), wird der Raw-Server-Seed offengelegt. Du hashst ihn selbst. Wenn dein berechneter Hash dem entspricht, was vor der Runde veröffentlicht wurde, hat das Casino bewiesen, dass es Seeds nicht mid-round getauscht hat. Kombiniert mit deinem Client-Seed (den sie vorher nicht kannten), macht dies Ergebnis-Manipulation pro Runde kryptografisch unmöglich.",{"type":84,"tag":93,"props":784,"children":785},{},[786,788,796],{"type":90,"value":787},"Die Commit-Reveal-Schicht ist das, was PF von jedem anderen CSPRNG unterscheidet. Ein traditionelles RNG-zertifiziertes Casino verwendet auch einen CSPRNG — aber nichts hindert sie daran, es in der Produktion auszutauschen, wie ",{"type":84,"tag":722,"props":789,"children":793},{"href":790,"rel":791},"https:\u002F\u002Fwww.itechlabs.com",[792],"nofollow",[794],{"type":90,"value":795},"iTech Labs-Audits nur statistische Eigenschaften überprüfen",{"type":90,"value":797},", nicht Runtime-Identität.",{"type":84,"tag":597,"props":799,"children":801},{"id":800},"hmac-als-rng-primitiv",[802],{"type":90,"value":803},"HMAC als RNG-Primitiv",{"type":84,"tag":93,"props":805,"children":806},{},[807],{"type":90,"value":808},"HMAC-SHA256 ist der eigentliche Zufallszahlengenerator in jeder PF-Runde. Hier ist, warum es funktioniert:",{"type":84,"tag":604,"props":810,"children":811},{},[812,821,831,841],{"type":84,"tag":608,"props":813,"children":814},{},[815,819],{"type":84,"tag":125,"props":816,"children":817},{},[818],{"type":90,"value":249},{"type":90,"value":820},": Bei den gleichen Eingaben erzeugt HMAC immer die gleiche Ausgabe. Das ist, was dir die Überprüfung ermöglicht.",{"type":84,"tag":608,"props":822,"children":823},{},[824,829],{"type":84,"tag":125,"props":825,"children":826},{},[827],{"type":90,"value":828},"Einweg",{"type":90,"value":830},": Aus der Ausgabe kannst du den Server-Seed (den Schlüssel) nicht wiederherstellen. Das ist, was das Ergebnis unvorhersehbar macht.",{"type":84,"tag":608,"props":832,"children":833},{},[834,839],{"type":84,"tag":125,"props":835,"children":836},{},[837],{"type":90,"value":838},"Uniform",{"type":90,"value":840},": HMAC-Ausgaben sind nicht vom Zufall zu unterscheiden — 256-Bit-Zeichenketten. Das ist, was das Spiel unvoreingenommen hält.",{"type":84,"tag":608,"props":842,"children":843},{},[844,849],{"type":84,"tag":125,"props":845,"children":846},{},[847],{"type":90,"value":848},"Verschlüsselt",{"type":90,"value":850},": Der Server-Seed fungiert als Geheimnis, das bekannt sein muss, um die Ausgabe zu reproduzieren. Das ist, was Manipulation verhindert.",{"type":84,"tag":93,"props":852,"children":853},{},[854,856,861,863,870],{"type":90,"value":855},"Technisch gesehen ist HMAC-SHA256 von sich aus kein CSPRNG — es ist ein Message Authentication Code. Aber wenn der Schlüssel (Server-Seed) aus einer echten Entropiequelle generiert wird, ist die Konstruktion für alle praktischen Zwecke gleichwertig mit einem CSPRNG. NIST formalisierte dies als ",{"type":84,"tag":125,"props":857,"children":858},{},[859],{"type":90,"value":860},"HMAC_DRBG",{"type":90,"value":862}," in ",{"type":84,"tag":722,"props":864,"children":867},{"href":865,"rel":866},"https:\u002F\u002Fcsrc.nist.gov\u002Fpublications\u002Fdetail\u002Fsp\u002F800-90a\u002Frev-1\u002Ffinal",[792],[868],{"type":90,"value":869},"SP 800-90A Rev 1",{"type":90,"value":871},", und PF-Casinos implementieren im Wesentlichen diesen Standard mit zusätzlicher öffentlicher Seed-Bestätigung neu.",{"type":84,"tag":597,"props":873,"children":875},{"id":874},"warum-csprngs-wichtig-sind-nicht-mathrandom",[876],{"type":90,"value":877},"Warum CSPRNGs wichtig sind (nicht Math.random)",{"type":84,"tag":93,"props":879,"children":880},{},[881,883,887,889,895],{"type":90,"value":882},"Jedes legitime PF-Casino generiert seinen Server-Seed mit einem kryptografisch sicheren RNG — ",{"type":84,"tag":125,"props":884,"children":885},{},[886],{"type":90,"value":691},{"type":90,"value":888}," mit JavaScripts ",{"type":84,"tag":99,"props":890,"children":892},{"className":891},[],[893],{"type":90,"value":894},"Math.random()",{"type":90,"value":896},". Der Unterschied ist wichtiger als den meisten Spielern bewusst ist:",{"type":84,"tag":144,"props":898,"children":899},{},[900,921],{"type":84,"tag":148,"props":901,"children":902},{},[903],{"type":84,"tag":76,"props":904,"children":905},{},[906,911,916],{"type":84,"tag":155,"props":907,"children":908},{},[909],{"type":90,"value":910},"Generator",{"type":84,"tag":155,"props":912,"children":913},{},[914],{"type":90,"value":915},"Nach Anzeige der Ausgabe vorhersehbar?",{"type":84,"tag":155,"props":917,"children":918},{},[919],{"type":90,"value":920},"Akzeptabel für PF?",{"type":84,"tag":171,"props":922,"children":923},{},[924,947,971,993,1015],{"type":84,"tag":76,"props":925,"children":926},{},[927,937,942],{"type":84,"tag":178,"props":928,"children":929},{},[930,935],{"type":84,"tag":99,"props":931,"children":933},{"className":932},[],[934],{"type":90,"value":894},{"type":90,"value":936}," (V8 in Chrome)",{"type":84,"tag":178,"props":938,"children":939},{},[940],{"type":90,"value":941},"Ja, nach ~700 Ausgaben",{"type":84,"tag":178,"props":943,"children":944},{},[945],{"type":90,"value":946},"Niemals",{"type":84,"tag":76,"props":948,"children":949},{},[950,961,966],{"type":84,"tag":178,"props":951,"children":952},{},[953,955],{"type":90,"value":954},"Linux ",{"type":84,"tag":99,"props":956,"children":958},{"className":957},[],[959],{"type":90,"value":960},"\u002Fdev\u002Furandom",{"type":84,"tag":178,"props":962,"children":963},{},[964],{"type":90,"value":965},"Nein",{"type":84,"tag":178,"props":967,"children":968},{},[969],{"type":90,"value":970},"Ja",{"type":84,"tag":76,"props":972,"children":973},{},[974,985,989],{"type":84,"tag":178,"props":975,"children":976},{},[977,983],{"type":84,"tag":99,"props":978,"children":980},{"className":979},[],[981],{"type":90,"value":982},"crypto.getRandomValues",{"type":90,"value":984}," (Browser)",{"type":84,"tag":178,"props":986,"children":987},{},[988],{"type":90,"value":965},{"type":84,"tag":178,"props":990,"children":991},{},[992],{"type":90,"value":970},{"type":84,"tag":76,"props":994,"children":995},{},[996,1007,1011],{"type":84,"tag":178,"props":997,"children":998},{},[999,1001],{"type":90,"value":1000},"Node.js ",{"type":84,"tag":99,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":90,"value":1006},"crypto.randomBytes",{"type":84,"tag":178,"props":1008,"children":1009},{},[1010],{"type":90,"value":965},{"type":84,"tag":178,"props":1012,"children":1013},{},[1014],{"type":90,"value":970},{"type":84,"tag":76,"props":1016,"children":1017},{},[1018,1023,1027],{"type":84,"tag":178,"props":1019,"children":1020},{},[1021],{"type":90,"value":1022},"Hardware-RNG (Intel RDRAND)",{"type":84,"tag":178,"props":1024,"children":1025},{},[1026],{"type":90,"value":965},{"type":84,"tag":178,"props":1028,"children":1029},{},[1030],{"type":90,"value":970},{"type":84,"tag":93,"props":1032,"children":1033},{},[1034,1036,1041,1043,1048,1050,1056],{"type":90,"value":1035},"Wenn ein Casino seinen Server heimlich mit ",{"type":84,"tag":99,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":90,"value":894},{"type":90,"value":1042}," seeded, könnte ein ausgeklügelter Angreifer den Seed aus genügend öffentlichen Ausgaben rekonstruieren und jede zukünftige Runde vorhersagen — selbst wenn die HMAC-Mathematik fehlerfrei ist. Deshalb ist es wichtig zu überprüfen, ob dein Casino tatsächlich ",{"type":84,"tag":99,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":90,"value":1006},{"type":90,"value":1049}," oder Äquivalentes verwendet; der ",{"type":84,"tag":722,"props":1051,"children":1053},{"href":1052},"\u002Fblog\u002Fwhat-is-provably-fair-gambling",[1054],{"type":90,"value":1055},"Was ist Provably Fair Glücksspiel",{"type":90,"value":1057}," Erklärtext behandelt die vollständige Vertrauenskette.",{"type":84,"tag":85,"props":1059,"children":1061},{"id":1060},"wie-die-zahl-tatsächlich-generiert-wird",[1062],{"type":90,"value":1063},"Wie die Zahl tatsächlich generiert wird",{"type":84,"tag":93,"props":1065,"children":1066},{},[1067],{"type":90,"value":1068},"Jetzt zur eigentlichen Formel. Dies ist der Abschnitt zum Speichern — alles oben war Kontext.",{"type":84,"tag":597,"props":1070,"children":1072},{"id":1071},"drei-eingaben-eine-formel",[1073],{"type":90,"value":1074},"Drei Eingaben, Eine Formel",{"type":84,"tag":93,"props":1076,"children":1077},{},[1078],{"type":90,"value":1079},"Jede Provably Fair-Runde berechnet:",{"type":84,"tag":93,"props":1081,"children":1082},{},[1083],{"type":84,"tag":294,"props":1084,"children":1086},{"className":1085},[297],[1087,1158],{"type":84,"tag":294,"props":1088,"children":1090},{"className":1089},[302],[1091],{"type":84,"tag":305,"props":1092,"children":1093},{"xmlns":307},[1094],{"type":84,"tag":310,"props":1095,"children":1096},{},[1097,1153],{"type":84,"tag":314,"props":1098,"children":1099},{},[1100,1105,1109,1113,1117,1121,1125,1129,1133,1137,1141,1145,1149],{"type":84,"tag":318,"props":1101,"children":1102},{},[1103],{"type":90,"value":1104},"hex_output",{"type":84,"tag":324,"props":1106,"children":1107},{},[1108],{"type":90,"value":328},{"type":84,"tag":318,"props":1110,"children":1111},{},[1112],{"type":90,"value":347},{"type":84,"tag":324,"props":1114,"children":1115},{"stretchy":337},[1116],{"type":90,"value":342},{"type":84,"tag":318,"props":1118,"children":1119},{},[1120],{"type":90,"value":356},{"type":84,"tag":324,"props":1122,"children":1123},{"separator":338},[1124],{"type":90,"value":361},{"type":84,"tag":318,"props":1126,"children":1127},{},[1128],{"type":90,"value":366},{"type":84,"tag":318,"props":1130,"children":1131},{},[1132],{"type":90,"value":371},{"type":84,"tag":318,"props":1134,"children":1135},{},[1136],{"type":90,"value":366},{"type":84,"tag":324,"props":1138,"children":1139},{},[1140],{"type":90,"value":376},{"type":84,"tag":318,"props":1142,"children":1143},{},[1144],{"type":90,"value":366},{"type":84,"tag":318,"props":1146,"children":1147},{},[1148],{"type":90,"value":381},{"type":84,"tag":324,"props":1150,"children":1151},{"stretchy":337},[1152],{"type":90,"value":386},{"type":84,"tag":392,"props":1154,"children":1155},{"encoding":394},[1156],{"type":90,"value":1157},"\\text{hex\\_output} = \\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} \\; : \\; \\text{nonce})",{"type":84,"tag":294,"props":1159,"children":1161},{"className":1160,"ariaHidden":338},[401],[1162,1193,1268],{"type":84,"tag":294,"props":1163,"children":1165},{"className":1164},[406],[1166,1171,1180,1184,1189],{"type":84,"tag":294,"props":1167,"children":1170},{"className":1168,"style":1169},[411],"height:1.0044em;vertical-align:-0.31em;",[],{"type":84,"tag":294,"props":1172,"children":1174},{"className":1173},[417,90],[1175],{"type":84,"tag":294,"props":1176,"children":1178},{"className":1177},[417],[1179],{"type":90,"value":1104},{"type":84,"tag":294,"props":1181,"children":1183},{"className":1182,"style":428},[427],[],{"type":84,"tag":294,"props":1185,"children":1187},{"className":1186},[433],[1188],{"type":90,"value":328},{"type":84,"tag":294,"props":1190,"children":1192},{"className":1191,"style":428},[427],[],{"type":84,"tag":294,"props":1194,"children":1196},{"className":1195},[406],[1197,1202,1211,1216,1225,1230,1234,1238,1247,1251,1255,1260,1264],{"type":84,"tag":294,"props":1198,"children":1201},{"className":1199,"style":1200},[411],"height:1.06em;vertical-align:-0.31em;",[],{"type":84,"tag":294,"props":1203,"children":1205},{"className":1204},[417,90],[1206],{"type":84,"tag":294,"props":1207,"children":1209},{"className":1208},[417],[1210],{"type":90,"value":347},{"type":84,"tag":294,"props":1212,"children":1214},{"className":1213},[479],[1215],{"type":90,"value":342},{"type":84,"tag":294,"props":1217,"children":1219},{"className":1218},[417,90],[1220],{"type":84,"tag":294,"props":1221,"children":1223},{"className":1222},[417],[1224],{"type":90,"value":356},{"type":84,"tag":294,"props":1226,"children":1228},{"className":1227},[494],[1229],{"type":90,"value":361},{"type":84,"tag":294,"props":1231,"children":1233},{"className":1232,"style":428},[427],[],{"type":84,"tag":294,"props":1235,"children":1237},{"className":1236,"style":504},[427],[],{"type":84,"tag":294,"props":1239,"children":1241},{"className":1240},[417,90],[1242],{"type":84,"tag":294,"props":1243,"children":1245},{"className":1244},[417],[1246],{"type":90,"value":371},{"type":84,"tag":294,"props":1248,"children":1250},{"className":1249,"style":428},[427],[],{"type":84,"tag":294,"props":1252,"children":1254},{"className":1253,"style":428},[427],[],{"type":84,"tag":294,"props":1256,"children":1258},{"className":1257},[433],[1259],{"type":90,"value":376},{"type":84,"tag":294,"props":1261,"children":1263},{"className":1262,"style":428},[427],[],{"type":84,"tag":294,"props":1265,"children":1267},{"className":1266,"style":428},[427],[],{"type":84,"tag":294,"props":1269,"children":1271},{"className":1270},[406],[1272,1277,1286],{"type":84,"tag":294,"props":1273,"children":1276},{"className":1274,"style":1275},[411],"height:1em;vertical-align:-0.25em;",[],{"type":84,"tag":294,"props":1278,"children":1280},{"className":1279},[417,90],[1281],{"type":84,"tag":294,"props":1282,"children":1284},{"className":1283},[417],[1285],{"type":90,"value":381},{"type":84,"tag":294,"props":1287,"children":1289},{"className":1288},[548],[1290],{"type":90,"value":386},{"type":84,"tag":93,"props":1292,"children":1293},{},[1294],{"type":90,"value":1295},"Im Pseudocode:",{"type":84,"tag":1297,"props":1298,"children":1302},"pre",{"className":1299,"code":1301,"language":90},[1300],"language-text","function pfHmac(serverSeed, clientSeed, nonce) {\n  const message = clientSeed + ':' + nonce\n  const hex = hmacSha256(serverSeed, message)  \u002F\u002F 64-stellige Hex-Zeichenkette\n  return hex\n}\n",[1303],{"type":84,"tag":99,"props":1304,"children":1306},{"__ignoreMap":1305},"",[1307],{"type":90,"value":1301},{"type":84,"tag":93,"props":1309,"children":1310},{},[1311,1313,1318],{"type":90,"value":1312},"Der ",{"type":84,"tag":99,"props":1314,"children":1316},{"className":1315},[],[1317],{"type":90,"value":376},{"type":90,"value":1319}," Doppelpunkt ist das kanonische Trennzeichen bei Stake, Primedice, Rainbet und den meisten PF-Casinos. Einige wenige (BC.Game, Roobet) verwenden unterschiedliche Trennzeichen — überprüfen Sie immer die Fairness-Dokumentation des Casinos auf das genaue Format.",{"type":84,"tag":93,"props":1321,"children":1322},{},[1323,1325,1331],{"type":90,"value":1324},"Die Ausgabe ist eine 64-stellige Hexadezimalzeichenkette wie ",{"type":84,"tag":99,"props":1326,"children":1328},{"className":1327},[],[1329],{"type":90,"value":1330},"8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d",{"type":90,"value":1332},". Dieses Hex ist die Rohzufälligkeit — 256 Bit Unvorhersehbarkeit, statistisch nicht zu unterscheiden von 256 fairen Münzwürfen.",{"type":84,"tag":1334,"props":1335,"children":1336},"chart-provably-fair-process",{},[],{"type":84,"tag":597,"props":1338,"children":1340},{"id":1339},"schritt-für-schritt-von-der-hmac-ausgabe-zum-würfelwurf",[1341],{"type":90,"value":1342},"Schritt für Schritt: Von der HMAC-Ausgabe zum Würfelwurf",{"type":84,"tag":93,"props":1344,"children":1345},{},[1346],{"type":90,"value":1347},"Lassen Sie uns eine komplette Runde durchgehen.",{"type":84,"tag":93,"props":1349,"children":1350},{},[1351],{"type":84,"tag":125,"props":1352,"children":1353},{},[1354],{"type":90,"value":1355},"Gegebene Werte:",{"type":84,"tag":604,"props":1357,"children":1358},{},[1359,1368,1377],{"type":84,"tag":608,"props":1360,"children":1361},{},[1362],{"type":84,"tag":99,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":90,"value":1367},"server_seed = f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4",{"type":84,"tag":608,"props":1369,"children":1370},{},[1371],{"type":84,"tag":99,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":90,"value":1376},"client_seed = player-xyz-42",{"type":84,"tag":608,"props":1378,"children":1379},{},[1380],{"type":84,"tag":99,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":90,"value":1385},"nonce = 7",{"type":84,"tag":93,"props":1387,"children":1388},{},[1389],{"type":84,"tag":125,"props":1390,"children":1391},{},[1392],{"type":90,"value":1393},"Schritt 1 — HMAC berechnen:",{"type":84,"tag":1297,"props":1395,"children":1398},{"className":1396,"code":1397,"language":90},[1300],"HMAC-SHA256(server_seed, \"player-xyz-42:7\")\n= 8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d\n",[1399],{"type":84,"tag":99,"props":1400,"children":1401},{"__ignoreMap":1305},[1402],{"type":90,"value":1397},{"type":84,"tag":93,"props":1404,"children":1405},{},[1406],{"type":84,"tag":125,"props":1407,"children":1408},{},[1409],{"type":90,"value":1410},"Schritt 2 — Erste 5 Hex-Zeichen auswählen:",{"type":84,"tag":93,"props":1412,"children":1413},{},[1414,1420,1422],{"type":84,"tag":99,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":90,"value":1419},"8b2d4",{"type":90,"value":1421}," → in Dezimalzahl konvertieren → ",{"type":84,"tag":99,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":90,"value":1427},"569.300",{"type":84,"tag":93,"props":1429,"children":1430},{},[1431],{"type":84,"tag":125,"props":1432,"children":1433},{},[1434],{"type":90,"value":1435},"Schritt 3 — Auf 0-99,9999 abbilden:",{"type":84,"tag":1297,"props":1437,"children":1440},{"className":1438,"code":1439,"language":90},[1300],"dice = (569_300 % 1_000_000) \u002F 10_000\n     = 569_300 \u002F 10_000\n     = 56,93\n",[1441],{"type":84,"tag":99,"props":1442,"children":1443},{"__ignoreMap":1305},[1444],{"type":90,"value":1439},{"type":84,"tag":93,"props":1446,"children":1447},{},[1448],{"type":84,"tag":125,"props":1449,"children":1450},{},[1451],{"type":90,"value":1452},"Schritt 4 — Wettlogik anwenden:",{"type":84,"tag":93,"props":1454,"children":1455},{},[1456],{"type":90,"value":1457},"Wenn Sie „unter 50 würfeln\" wetten → Sie verlieren (56,93 > 50). Wenn Sie „unter 60 würfeln\" wetten → Sie gewinnen. Der exakte Wurf wurde in dem Moment festgelegt, als diese drei Eingaben kombiniert wurden, bevor eine UI-Animation ablief.",{"type":84,"tag":93,"props":1459,"children":1460},{},[1461],{"type":84,"tag":125,"props":1462,"children":1463},{},[1464],{"type":90,"value":1465},"Schritt 5 — Verifizieren:",{"type":84,"tag":93,"props":1467,"children":1468},{},[1469,1471,1476,1478,1484],{"type":90,"value":1470},"Nach der Runde erhalten Sie den offengelegten ",{"type":84,"tag":99,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":90,"value":356},{"type":90,"value":1477},". Sie hashen ihn — SHA-256 entspricht dem vorgefertigten Hash? Gut. Sie führen die Schritte 1-3 erneut durch — reproduziert ",{"type":84,"tag":99,"props":1479,"children":1481},{"className":1480},[],[1482],{"type":90,"value":1483},"56,93",{"type":90,"value":1485},"? Gut. Die Runde ist kryptographisch Provably Fair.",{"type":84,"tag":93,"props":1487,"children":1488},{},[1489,1491,1497],{"type":90,"value":1490},"Für eine vollständige Anleitung mit kopier-einfügen-Werten und Screenshots siehe ",{"type":84,"tag":722,"props":1492,"children":1494},{"href":1493},"\u002Fblog\u002Fhow-to-verify-provably-fair",[1495],{"type":90,"value":1496},"wie man eine Provably Fair-Runde verifiziert",{"type":90,"value":765},{"type":84,"tag":597,"props":1499,"children":1501},{"id":1500},"verschiedene-spiele-verschiedene-abbildungen",[1502],{"type":90,"value":1503},"Verschiedene Spiele, Verschiedene Abbildungen",{"type":84,"tag":93,"props":1505,"children":1506},{},[1507],{"type":90,"value":1508},"Der HMAC-Aufruf ist immer identisch. Was sich ändert, ist Schritt 3 — wie die Hex-Zahl zu einem spezifischen Spielergebnis abgebildet wird.",{"type":84,"tag":144,"props":1510,"children":1511},{},[1512,1538],{"type":84,"tag":148,"props":1513,"children":1514},{},[1515],{"type":84,"tag":76,"props":1516,"children":1517},{},[1518,1523,1528,1533],{"type":84,"tag":155,"props":1519,"children":1520},{},[1521],{"type":90,"value":1522},"Spiel",{"type":84,"tag":155,"props":1524,"children":1525},{},[1526],{"type":90,"value":1527},"Hex-Auswahl",{"type":84,"tag":155,"props":1529,"children":1530},{},[1531],{"type":90,"value":1532},"Formel",{"type":84,"tag":155,"props":1534,"children":1535},{},[1536],{"type":90,"value":1537},"Ausgabebereich",{"type":84,"tag":171,"props":1539,"children":1540},{},[1541,1571,1601,1633,1672,1704],{"type":84,"tag":76,"props":1542,"children":1543},{},[1544,1552,1557,1566],{"type":84,"tag":178,"props":1545,"children":1546},{},[1547],{"type":84,"tag":125,"props":1548,"children":1549},{},[1550],{"type":90,"value":1551},"Dice",{"type":84,"tag":178,"props":1553,"children":1554},{},[1555],{"type":90,"value":1556},"Erste 5 Zeichen",{"type":84,"tag":178,"props":1558,"children":1559},{},[1560],{"type":84,"tag":99,"props":1561,"children":1563},{"className":1562},[],[1564],{"type":90,"value":1565},"(int % 1e6) \u002F 1e4",{"type":84,"tag":178,"props":1567,"children":1568},{},[1569],{"type":90,"value":1570},"0,0000-99,9999",{"type":84,"tag":76,"props":1572,"children":1573},{},[1574,1582,1587,1596],{"type":84,"tag":178,"props":1575,"children":1576},{},[1577],{"type":84,"tag":125,"props":1578,"children":1579},{},[1580],{"type":90,"value":1581},"Crash",{"type":84,"tag":178,"props":1583,"children":1584},{},[1585],{"type":90,"value":1586},"Erste 8 Zeichen",{"type":84,"tag":178,"props":1588,"children":1589},{},[1590],{"type":84,"tag":99,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":90,"value":1595},"floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100",{"type":84,"tag":178,"props":1597,"children":1598},{},[1599],{"type":90,"value":1600},"1,00x bis sehr hoch",{"type":84,"tag":76,"props":1602,"children":1603},{},[1604,1612,1617,1628],{"type":84,"tag":178,"props":1605,"children":1606},{},[1607],{"type":84,"tag":125,"props":1608,"children":1609},{},[1610],{"type":90,"value":1611},"Coinflip",{"type":84,"tag":178,"props":1613,"children":1614},{},[1615],{"type":90,"value":1616},"Erste 2 Zeichen",{"type":84,"tag":178,"props":1618,"children":1619},{},[1620,1626],{"type":84,"tag":99,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":90,"value":1625},"int % 2",{"type":90,"value":1627}," (0 oder 1)",{"type":84,"tag":178,"props":1629,"children":1630},{},[1631],{"type":90,"value":1632},"Kopf\u002FZahl",{"type":84,"tag":76,"props":1634,"children":1635},{},[1636,1644,1648,1667],{"type":84,"tag":178,"props":1637,"children":1638},{},[1639],{"type":84,"tag":125,"props":1640,"children":1641},{},[1642],{"type":90,"value":1643},"Roulette",{"type":84,"tag":178,"props":1645,"children":1646},{},[1647],{"type":90,"value":1616},{"type":84,"tag":178,"props":1649,"children":1650},{},[1651,1657,1659,1665],{"type":84,"tag":99,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":90,"value":1656},"int % 37",{"type":90,"value":1658}," (Euro) oder ",{"type":84,"tag":99,"props":1660,"children":1662},{"className":1661},[],[1663],{"type":90,"value":1664},"% 38",{"type":90,"value":1666}," (Am)",{"type":84,"tag":178,"props":1668,"children":1669},{},[1670],{"type":90,"value":1671},"0-36 oder 0-37",{"type":84,"tag":76,"props":1673,"children":1674},{},[1675,1683,1688,1699],{"type":84,"tag":178,"props":1676,"children":1677},{},[1678],{"type":84,"tag":125,"props":1679,"children":1680},{},[1681],{"type":90,"value":1682},"Plinko",{"type":84,"tag":178,"props":1684,"children":1685},{},[1686],{"type":90,"value":1687},"Erste 4 Zeichen × n Drops",{"type":84,"tag":178,"props":1689,"children":1690},{},[1691,1697],{"type":84,"tag":99,"props":1692,"children":1694},{"className":1693},[],[1695],{"type":90,"value":1696},"int % rows",{"type":90,"value":1698}," pro Drop",{"type":84,"tag":178,"props":1700,"children":1701},{},[1702],{"type":90,"value":1703},"Weg durch Stifte",{"type":84,"tag":76,"props":1705,"children":1706},{},[1707,1715,1720,1731],{"type":84,"tag":178,"props":1708,"children":1709},{},[1710],{"type":84,"tag":125,"props":1711,"children":1712},{},[1713],{"type":90,"value":1714},"Blackjack (HMAC-SHA512)",{"type":84,"tag":178,"props":1716,"children":1717},{},[1718],{"type":90,"value":1719},"4 Zeichen pro Karte",{"type":84,"tag":178,"props":1721,"children":1722},{},[1723,1729],{"type":84,"tag":99,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":90,"value":1728},"int % 52",{"type":90,"value":1730}," mit Ersetzungslogik",{"type":84,"tag":178,"props":1732,"children":1733},{},[1734],{"type":90,"value":1735},"Kartendeckposition",{"type":84,"tag":93,"props":1737,"children":1738},{},[1739,1741,1746],{"type":90,"value":1740},"Jede Abbildung ist so konzipiert, dass sie über ihren Ausgabebereich gleichmäßig verteilt ist — modulare Arithmetik auf einem gleichmäßig zufälligen Hex-Wert bewahrt Gleichmäßigkeit. Dies ist der Grund, warum PF-Spiele eine ehrliche RTP beanspruchen können, ohne dass das Casino einzelne Runden manipuliert. Es ist die ",{"type":84,"tag":680,"props":1742,"children":1743},{},[1744],{"type":90,"value":1745},"Abbildungsformel",{"type":90,"value":1747},", die abgestimmt wird, um die Hausvorteil-Zielquote des Casinos zu erreichen, nicht die Zufallszahl selbst.",{"type":84,"tag":85,"props":1749,"children":1751},{"id":1750},"von-der-hex-zeichenkette-zum-spielergebnis-mit-mathematik",[1752],{"type":90,"value":1753},"Von der Hex-Zeichenkette zum Spielergebnis (Mit Mathematik)",{"type":84,"tag":93,"props":1755,"children":1756},{},[1757],{"type":90,"value":1758},"Die Dice-Abbildung lohnt sich zu analysieren, da sie der klarste Fall ist — und weil sie zeigt, warum Provably Fair-Würfelverteilungen bei korrekter Implementierung wirklich gleichmäßig sind.",{"type":84,"tag":597,"props":1760,"children":1762},{"id":1761},"dice-abbildung-0-999999",[1763],{"type":90,"value":1764},"Dice-Abbildung (0-99,9999)",{"type":84,"tag":93,"props":1766,"children":1767},{},[1768],{"type":90,"value":1769},"Stake's Würfelspiel verwendet die ersten 5 Hex-Zeichen, was 20 Bit = 1.048.576 mögliche Werte ergibt. Die Abbildung ist:",{"type":84,"tag":93,"props":1771,"children":1772},{},[1773],{"type":84,"tag":294,"props":1774,"children":1776},{"className":1775},[297],[1777,1898],{"type":84,"tag":294,"props":1778,"children":1780},{"className":1779},[302],[1781],{"type":84,"tag":305,"props":1782,"children":1783},{"xmlns":307},[1784],{"type":84,"tag":310,"props":1785,"children":1786},{},[1787,1893],{"type":84,"tag":314,"props":1788,"children":1789},{},[1790,1795,1799],{"type":84,"tag":318,"props":1791,"children":1792},{},[1793],{"type":90,"value":1794},"dice",{"type":84,"tag":324,"props":1796,"children":1797},{},[1798],{"type":90,"value":328},{"type":84,"tag":1800,"props":1801,"children":1802},"mfrac",{},[1803,1881],{"type":84,"tag":314,"props":1804,"children":1805},{},[1806,1810,1815,1819,1846,1850,1854,1859,1863,1877],{"type":84,"tag":324,"props":1807,"children":1808},{"stretchy":337},[1809],{"type":90,"value":342},{"type":84,"tag":318,"props":1811,"children":1812},{},[1813],{"type":90,"value":1814},"int",{"type":84,"tag":324,"props":1816,"children":1817},{"stretchy":337},[1818],{"type":90,"value":342},{"type":84,"tag":1820,"props":1821,"children":1822},"msub",{},[1823,1828],{"type":84,"tag":318,"props":1824,"children":1825},{},[1826],{"type":90,"value":1827},"hex",{"type":84,"tag":314,"props":1829,"children":1830},{},[1831,1837,1841],{"type":84,"tag":1832,"props":1833,"children":1834},"mn",{},[1835],{"type":90,"value":1836},"0",{"type":84,"tag":324,"props":1838,"children":1839},{},[1840],{"type":90,"value":376},{"type":84,"tag":1832,"props":1842,"children":1843},{},[1844],{"type":90,"value":1845},"5",{"type":84,"tag":324,"props":1847,"children":1848},{"stretchy":337},[1849],{"type":90,"value":386},{"type":84,"tag":318,"props":1851,"children":1852},{},[1853],{"type":90,"value":366},{"type":84,"tag":318,"props":1855,"children":1856},{},[1857],{"type":90,"value":1858},"mod",{"type":84,"tag":318,"props":1860,"children":1861},{},[1862],{"type":90,"value":366},{"type":84,"tag":1864,"props":1865,"children":1866},"msup",{},[1867,1872],{"type":84,"tag":1832,"props":1868,"children":1869},{},[1870],{"type":90,"value":1871},"10",{"type":84,"tag":1832,"props":1873,"children":1874},{},[1875],{"type":90,"value":1876},"6",{"type":84,"tag":324,"props":1878,"children":1879},{"stretchy":337},[1880],{"type":90,"value":386},{"type":84,"tag":1864,"props":1882,"children":1883},{},[1884,1888],{"type":84,"tag":1832,"props":1885,"children":1886},{},[1887],{"type":90,"value":1871},{"type":84,"tag":1832,"props":1889,"children":1890},{},[1891],{"type":90,"value":1892},"4",{"type":84,"tag":392,"props":1894,"children":1895},{"encoding":394},[1896],{"type":90,"value":1897},"\\text{dice} = \\frac{(\\text{int}(\\text{hex}_{0:5}) \\; \\text{mod} \\; 10^6)}{10^4}",{"type":84,"tag":294,"props":1899,"children":1901},{"className":1900,"ariaHidden":338},[401],[1902,1933],{"type":84,"tag":294,"props":1903,"children":1905},{"className":1904},[406],[1906,1911,1920,1924,1929],{"type":84,"tag":294,"props":1907,"children":1910},{"className":1908,"style":1909},[411],"height:0.6944em;",[],{"type":84,"tag":294,"props":1912,"children":1914},{"className":1913},[417,90],[1915],{"type":84,"tag":294,"props":1916,"children":1918},{"className":1917},[417],[1919],{"type":90,"value":1794},{"type":84,"tag":294,"props":1921,"children":1923},{"className":1922,"style":428},[427],[],{"type":84,"tag":294,"props":1925,"children":1927},{"className":1926},[433],[1928],{"type":90,"value":328},{"type":84,"tag":294,"props":1930,"children":1932},{"className":1931,"style":428},[427],[],{"type":84,"tag":294,"props":1934,"children":1936},{"className":1935},[406],[1937,1942],{"type":84,"tag":294,"props":1938,"children":1941},{"className":1939,"style":1940},[411],"height:1.4539em;vertical-align:-0.345em;",[],{"type":84,"tag":294,"props":1943,"children":1945},{"className":1944},[417],[1946,1951,2268],{"type":84,"tag":294,"props":1947,"children":1950},{"className":1948},[479,1949],"nulldelimiter",[],{"type":84,"tag":294,"props":1952,"children":1954},{"className":1953},[1800],[1955],{"type":84,"tag":294,"props":1956,"children":1960},{"className":1957},[1958,1959],"vlist-t","vlist-t2",[1961,2256],{"type":84,"tag":294,"props":1962,"children":1965},{"className":1963},[1964],"vlist-r",[1966,2251],{"type":84,"tag":294,"props":1967,"children":1971},{"className":1968,"style":1970},[1969],"vlist","height:1.1089em;",[1972,2046,2060],{"type":84,"tag":294,"props":1973,"children":1975},{"style":1974},"top:-2.655em;",[1976,1982],{"type":84,"tag":294,"props":1977,"children":1981},{"className":1978,"style":1980},[1979],"pstrut","height:3em;",[],{"type":84,"tag":294,"props":1983,"children":1989},{"className":1984},[1985,1986,1987,1988],"sizing","reset-size6","size3","mtight",[1990],{"type":84,"tag":294,"props":1991,"children":1993},{"className":1992},[417,1988],[1994,2000],{"type":84,"tag":294,"props":1995,"children":1997},{"className":1996},[417,1988],[1998],{"type":90,"value":1999},"1",{"type":84,"tag":294,"props":2001,"children":2003},{"className":2002},[417,1988],[2004,2009],{"type":84,"tag":294,"props":2005,"children":2007},{"className":2006},[417,1988],[2008],{"type":90,"value":1836},{"type":84,"tag":294,"props":2010,"children":2013},{"className":2011},[2012],"msupsub",[2014],{"type":84,"tag":294,"props":2015,"children":2017},{"className":2016},[1958],[2018],{"type":84,"tag":294,"props":2019,"children":2021},{"className":2020},[1964],[2022],{"type":84,"tag":294,"props":2023,"children":2026},{"className":2024,"style":2025},[1969],"height:0.7463em;",[2027],{"type":84,"tag":294,"props":2028,"children":2030},{"style":2029},"top:-2.786em;margin-right:0.0714em;",[2031,2036],{"type":84,"tag":294,"props":2032,"children":2035},{"className":2033,"style":2034},[1979],"height:2.5em;",[],{"type":84,"tag":294,"props":2037,"children":2040},{"className":2038},[1985,2039,464,1988],"reset-size3",[2041],{"type":84,"tag":294,"props":2042,"children":2044},{"className":2043},[417,1988],[2045],{"type":90,"value":1892},{"type":84,"tag":294,"props":2047,"children":2049},{"style":2048},"top:-3.23em;",[2050,2054],{"type":84,"tag":294,"props":2051,"children":2053},{"className":2052,"style":1980},[1979],[],{"type":84,"tag":294,"props":2055,"children":2059},{"className":2056,"style":2058},[2057],"frac-line","border-bottom-width:0.04em;",[],{"type":84,"tag":294,"props":2061,"children":2063},{"style":2062},"top:-3.485em;",[2064,2068],{"type":84,"tag":294,"props":2065,"children":2067},{"className":2066,"style":1980},[1979],[],{"type":84,"tag":294,"props":2069,"children":2071},{"className":2070},[1985,1986,1987,1988],[2072],{"type":84,"tag":294,"props":2073,"children":2075},{"className":2074},[417,1988],[2076,2081,2090,2095,2175,2180,2185,2194,2198,2203,2246],{"type":84,"tag":294,"props":2077,"children":2079},{"className":2078},[479,1988],[2080],{"type":90,"value":342},{"type":84,"tag":294,"props":2082,"children":2084},{"className":2083},[417,90,1988],[2085],{"type":84,"tag":294,"props":2086,"children":2088},{"className":2087},[417,1988],[2089],{"type":90,"value":1814},{"type":84,"tag":294,"props":2091,"children":2093},{"className":2092},[479,1988],[2094],{"type":90,"value":342},{"type":84,"tag":294,"props":2096,"children":2098},{"className":2097},[417,1988],[2099,2108],{"type":84,"tag":294,"props":2100,"children":2102},{"className":2101},[417,90,1988],[2103],{"type":84,"tag":294,"props":2104,"children":2106},{"className":2105},[417,1988],[2107],{"type":90,"value":1827},{"type":84,"tag":294,"props":2109,"children":2111},{"className":2110},[2012],[2112],{"type":84,"tag":294,"props":2113,"children":2115},{"className":2114},[1958,1959],[2116,2163],{"type":84,"tag":294,"props":2117,"children":2119},{"className":2118},[1964],[2120,2156],{"type":84,"tag":294,"props":2121,"children":2124},{"className":2122,"style":2123},[1969],"height:0.3173em;",[2125],{"type":84,"tag":294,"props":2126,"children":2128},{"style":2127},"top:-2.357em;margin-right:0.0714em;",[2129,2133],{"type":84,"tag":294,"props":2130,"children":2132},{"className":2131,"style":2034},[1979],[],{"type":84,"tag":294,"props":2134,"children":2136},{"className":2135},[1985,2039,464,1988],[2137],{"type":84,"tag":294,"props":2138,"children":2140},{"className":2139},[417,1988],[2141,2146,2151],{"type":84,"tag":294,"props":2142,"children":2144},{"className":2143},[417,1988],[2145],{"type":90,"value":1836},{"type":84,"tag":294,"props":2147,"children":2149},{"className":2148},[433,1988],[2150],{"type":90,"value":376},{"type":84,"tag":294,"props":2152,"children":2154},{"className":2153},[417,1988],[2155],{"type":90,"value":1845},{"type":84,"tag":294,"props":2157,"children":2160},{"className":2158},[2159],"vlist-s",[2161],{"type":90,"value":2162},"​",{"type":84,"tag":294,"props":2164,"children":2166},{"className":2165},[1964],[2167],{"type":84,"tag":294,"props":2168,"children":2171},{"className":2169,"style":2170},[1969],"height:0.143em;",[2172],{"type":84,"tag":294,"props":2173,"children":2174},{},[],{"type":84,"tag":294,"props":2176,"children":2178},{"className":2177},[548,1988],[2179],{"type":90,"value":386},{"type":84,"tag":294,"props":2181,"children":2184},{"className":2182,"style":2183},[427,1988],"margin-right:0.3253em;",[],{"type":84,"tag":294,"props":2186,"children":2188},{"className":2187},[417,90,1988],[2189],{"type":84,"tag":294,"props":2190,"children":2192},{"className":2191},[417,1988],[2193],{"type":90,"value":1858},{"type":84,"tag":294,"props":2195,"children":2197},{"className":2196,"style":2183},[427,1988],[],{"type":84,"tag":294,"props":2199,"children":2201},{"className":2200},[417,1988],[2202],{"type":90,"value":1999},{"type":84,"tag":294,"props":2204,"children":2206},{"className":2205},[417,1988],[2207,2212],{"type":84,"tag":294,"props":2208,"children":2210},{"className":2209},[417,1988],[2211],{"type":90,"value":1836},{"type":84,"tag":294,"props":2213,"children":2215},{"className":2214},[2012],[2216],{"type":84,"tag":294,"props":2217,"children":2219},{"className":2218},[1958],[2220],{"type":84,"tag":294,"props":2221,"children":2223},{"className":2222},[1964],[2224],{"type":84,"tag":294,"props":2225,"children":2228},{"className":2226,"style":2227},[1969],"height:0.8913em;",[2229],{"type":84,"tag":294,"props":2230,"children":2232},{"style":2231},"top:-2.931em;margin-right:0.0714em;",[2233,2237],{"type":84,"tag":294,"props":2234,"children":2236},{"className":2235,"style":2034},[1979],[],{"type":84,"tag":294,"props":2238,"children":2240},{"className":2239},[1985,2039,464,1988],[2241],{"type":84,"tag":294,"props":2242,"children":2244},{"className":2243},[417,1988],[2245],{"type":90,"value":1876},{"type":84,"tag":294,"props":2247,"children":2249},{"className":2248},[548,1988],[2250],{"type":90,"value":386},{"type":84,"tag":294,"props":2252,"children":2254},{"className":2253},[2159],[2255],{"type":90,"value":2162},{"type":84,"tag":294,"props":2257,"children":2259},{"className":2258},[1964],[2260],{"type":84,"tag":294,"props":2261,"children":2264},{"className":2262,"style":2263},[1969],"height:0.345em;",[2265],{"type":84,"tag":294,"props":2266,"children":2267},{},[],{"type":84,"tag":294,"props":2269,"children":2271},{"className":2270},[548,1949],[],{"type":84,"tag":93,"props":2273,"children":2274},{},[2275],{"type":90,"value":2276},"Warum Modulo 1.000.000, wenn die Auswahl bis 1.048.575 reichen kann? Weil ohne das Modulo Werte 1.000.000-1.048.575 zu 100,0000-104,8575 abgebildet würden, außerhalb des Würfelbereichs. Modulo faltet diese zurück — führt aber eine winzige Verzerrung ein (Werte 0-48.575 sind um den Faktor 2\u002F1 wahrscheinlicher als 48.576-99.999). Um die Verzerrung zu beseitigen, lehnen echte Implementierungen Auswahlen über 1.000.000 ab und rücken zum nächsten Hex-Block vor (Zeichen 5-10, dann 10-15, etc.).",{"type":84,"tag":93,"props":2278,"children":2279},{},[2280],{"type":90,"value":2281},"Richtig durchgeführt, erzeugt dies eine perfekt gleichmäßige Verteilung über 0,0000-99,9999. Ein 10.000-Wurf-Test zeigt im Wesentlichen eine flache Abdeckung — das Histogramm unten reproduziert das, was Sie mit jeder legitimen PF-Würfel-Implementierung sehen würden.",{"type":84,"tag":2283,"props":2284,"children":2285},"chart-rng-distribution",{},[],{"type":84,"tag":597,"props":2287,"children":2289},{"id":2288},"crash-abbildung-multiplikator",[2290],{"type":90,"value":2291},"Crash-Abbildung (Multiplikator)",{"type":84,"tag":93,"props":2293,"children":2294},{},[2295],{"type":90,"value":2296},"Crash ist interessanter, weil die Ausgabe nicht gleichmäßig ist — sie ist absichtlich verzerrt, um dramatisches Gameplay zu schaffen und gleichzeitig einen Zielhousvorteil zu bewahren.",{"type":84,"tag":93,"props":2298,"children":2299},{},[2300],{"type":84,"tag":294,"props":2301,"children":2303},{"className":2302},[297],[2304,2416],{"type":84,"tag":294,"props":2305,"children":2307},{"className":2306},[302],[2308],{"type":84,"tag":305,"props":2309,"children":2310},{"xmlns":307},[2311],{"type":84,"tag":310,"props":2312,"children":2313},{},[2314,2411],{"type":84,"tag":314,"props":2315,"children":2316},{},[2317,2322,2326],{"type":84,"tag":318,"props":2318,"children":2319},{},[2320],{"type":90,"value":2321},"crash",{"type":84,"tag":324,"props":2323,"children":2324},{},[2325],{"type":90,"value":328},{"type":84,"tag":1800,"props":2327,"children":2328},{},[2329,2407],{"type":84,"tag":314,"props":2330,"children":2331},{},[2332,2337,2402],{"type":84,"tag":324,"props":2333,"children":2334},{"fence":338},[2335],{"type":90,"value":2336},"⌊",{"type":84,"tag":2338,"props":2339,"children":2340},"mstyle",{"scriptlevel":1836,"displaystyle":338},[2341],{"type":84,"tag":1800,"props":2342,"children":2343},{},[2344,2380],{"type":84,"tag":314,"props":2345,"children":2346},{},[2347,2352,2357,2370,2375],{"type":84,"tag":1832,"props":2348,"children":2349},{},[2350],{"type":90,"value":2351},"100",{"type":84,"tag":324,"props":2353,"children":2354},{},[2355],{"type":90,"value":2356},"⋅",{"type":84,"tag":1864,"props":2358,"children":2359},{},[2360,2365],{"type":84,"tag":1832,"props":2361,"children":2362},{},[2363],{"type":90,"value":2364},"2",{"type":84,"tag":1832,"props":2366,"children":2367},{},[2368],{"type":90,"value":2369},"52",{"type":84,"tag":324,"props":2371,"children":2372},{},[2373],{"type":90,"value":2374},"−",{"type":84,"tag":330,"props":2376,"children":2377},{},[2378],{"type":90,"value":2379},"h",{"type":84,"tag":314,"props":2381,"children":2382},{},[2383,2394,2398],{"type":84,"tag":1864,"props":2384,"children":2385},{},[2386,2390],{"type":84,"tag":1832,"props":2387,"children":2388},{},[2389],{"type":90,"value":2364},{"type":84,"tag":1832,"props":2391,"children":2392},{},[2393],{"type":90,"value":2369},{"type":84,"tag":324,"props":2395,"children":2396},{},[2397],{"type":90,"value":2374},{"type":84,"tag":330,"props":2399,"children":2400},{},[2401],{"type":90,"value":2379},{"type":84,"tag":324,"props":2403,"children":2404},{"fence":338},[2405],{"type":90,"value":2406},"⌋",{"type":84,"tag":1832,"props":2408,"children":2409},{},[2410],{"type":90,"value":2351},{"type":84,"tag":392,"props":2412,"children":2413},{"encoding":394},[2414],{"type":90,"value":2415},"\\text{crash} = \\frac{\\left\\lfloor \\dfrac{100 \\cdot 2^{52} - h}{2^{52} - h} \\right\\rfloor}{100}",{"type":84,"tag":294,"props":2417,"children":2419},{"className":2418,"ariaHidden":338},[401],[2420,2450],{"type":84,"tag":294,"props":2421,"children":2423},{"className":2422},[406],[2424,2428,2437,2441,2446],{"type":84,"tag":294,"props":2425,"children":2427},{"className":2426,"style":1909},[411],[],{"type":84,"tag":294,"props":2429,"children":2431},{"className":2430},[417,90],[2432],{"type":84,"tag":294,"props":2433,"children":2435},{"className":2434},[417],[2436],{"type":90,"value":2321},{"type":84,"tag":294,"props":2438,"children":2440},{"className":2439,"style":428},[427],[],{"type":84,"tag":294,"props":2442,"children":2444},{"className":2443},[433],[2445],{"type":90,"value":328},{"type":84,"tag":294,"props":2447,"children":2449},{"className":2448,"style":428},[427],[],{"type":84,"tag":294,"props":2451,"children":2453},{"className":2452},[406],[2454,2459],{"type":84,"tag":294,"props":2455,"children":2458},{"className":2456,"style":2457},[411],"height:3.1486em;vertical-align:-0.345em;",[],{"type":84,"tag":294,"props":2460,"children":2462},{"className":2461},[417],[2463,2467,2816],{"type":84,"tag":294,"props":2464,"children":2466},{"className":2465},[479,1949],[],{"type":84,"tag":294,"props":2468,"children":2470},{"className":2469},[1800],[2471],{"type":84,"tag":294,"props":2472,"children":2474},{"className":2473},[1958,1959],[2475,2805],{"type":84,"tag":294,"props":2476,"children":2478},{"className":2477},[1964],[2479,2800],{"type":84,"tag":294,"props":2480,"children":2483},{"className":2481,"style":2482},[1969],"height:2.8036em;",[2484,2506,2518],{"type":84,"tag":294,"props":2485,"children":2487},{"style":2486},"top:-3.1461em;",[2488,2493],{"type":84,"tag":294,"props":2489,"children":2492},{"className":2490,"style":2491},[1979],"height:3.4911em;",[],{"type":84,"tag":294,"props":2494,"children":2496},{"className":2495},[1985,1986,1987,1988],[2497],{"type":84,"tag":294,"props":2498,"children":2500},{"className":2499},[417,1988],[2501],{"type":84,"tag":294,"props":2502,"children":2504},{"className":2503},[417,1988],[2505],{"type":90,"value":2351},{"type":84,"tag":294,"props":2507,"children":2509},{"style":2508},"top:-3.7211em;",[2510,2514],{"type":84,"tag":294,"props":2511,"children":2513},{"className":2512,"style":2491},[1979],[],{"type":84,"tag":294,"props":2515,"children":2517},{"className":2516,"style":2058},[2057],[],{"type":84,"tag":294,"props":2519,"children":2521},{"style":2520},"top:-4.8036em;",[2522,2526],{"type":84,"tag":294,"props":2523,"children":2525},{"className":2524,"style":2491},[1979],[],{"type":84,"tag":294,"props":2527,"children":2529},{"className":2528},[1985,1986,1987,1988],[2530],{"type":84,"tag":294,"props":2531,"children":2533},{"className":2532},[417,1988],[2534],{"type":84,"tag":294,"props":2535,"children":2538},{"className":2536},[2537,1988],"minner",[2539,2555,2787],{"type":84,"tag":294,"props":2540,"children":2545},{"className":2541,"style":2544},[479,1985,2039,2542,1988,2543],"size6","delimcenter","top:0.075em;",[2546],{"type":84,"tag":294,"props":2547,"children":2549},{"className":2548},[463,1987,1988],[2550],{"type":84,"tag":294,"props":2551,"children":2553},{"className":2552},[1988],[2554],{"type":90,"value":2336},{"type":84,"tag":294,"props":2556,"children":2558},{"className":2557},[417,1985,2039,2542],[2559,2563,2783],{"type":84,"tag":294,"props":2560,"children":2562},{"className":2561},[479,1949],[],{"type":84,"tag":294,"props":2564,"children":2566},{"className":2565},[1800],[2567],{"type":84,"tag":294,"props":2568,"children":2570},{"className":2569},[1958,1959],[2571,2771],{"type":84,"tag":294,"props":2572,"children":2574},{"className":2573},[1964],[2575,2766],{"type":84,"tag":294,"props":2576,"children":2579},{"className":2577,"style":2578},[1969],"height:1.4911em;",[2580,2660,2671],{"type":84,"tag":294,"props":2581,"children":2583},{"style":2582},"top:-2.314em;",[2584,2588],{"type":84,"tag":294,"props":2585,"children":2587},{"className":2586,"style":1980},[1979],[],{"type":84,"tag":294,"props":2589,"children":2591},{"className":2590},[417],[2592,2640,2645,2651,2655],{"type":84,"tag":294,"props":2593,"children":2595},{"className":2594},[417],[2596,2601],{"type":84,"tag":294,"props":2597,"children":2599},{"className":2598},[417],[2600],{"type":90,"value":2364},{"type":84,"tag":294,"props":2602,"children":2604},{"className":2603},[2012],[2605],{"type":84,"tag":294,"props":2606,"children":2608},{"className":2607},[1958],[2609],{"type":84,"tag":294,"props":2610,"children":2612},{"className":2611},[1964],[2613],{"type":84,"tag":294,"props":2614,"children":2617},{"className":2615,"style":2616},[1969],"height:0.7401em;",[2618],{"type":84,"tag":294,"props":2619,"children":2621},{"style":2620},"top:-2.989em;margin-right:0.05em;",[2622,2627],{"type":84,"tag":294,"props":2623,"children":2626},{"className":2624,"style":2625},[1979],"height:2.7em;",[],{"type":84,"tag":294,"props":2628,"children":2630},{"className":2629},[1985,1986,1987,1988],[2631],{"type":84,"tag":294,"props":2632,"children":2634},{"className":2633},[417,1988],[2635],{"type":84,"tag":294,"props":2636,"children":2638},{"className":2637},[417,1988],[2639],{"type":90,"value":2369},{"type":84,"tag":294,"props":2641,"children":2644},{"className":2642,"style":2643},[427],"margin-right:0.2222em;",[],{"type":84,"tag":294,"props":2646,"children":2649},{"className":2647},[2648],"mbin",[2650],{"type":90,"value":2374},{"type":84,"tag":294,"props":2652,"children":2654},{"className":2653,"style":2643},[427],[],{"type":84,"tag":294,"props":2656,"children":2658},{"className":2657},[417,452],[2659],{"type":90,"value":2379},{"type":84,"tag":294,"props":2661,"children":2662},{"style":2048},[2663,2667],{"type":84,"tag":294,"props":2664,"children":2666},{"className":2665,"style":1980},[1979],[],{"type":84,"tag":294,"props":2668,"children":2670},{"className":2669,"style":2058},[2057],[],{"type":84,"tag":294,"props":2672,"children":2674},{"style":2673},"top:-3.677em;",[2675,2679],{"type":84,"tag":294,"props":2676,"children":2678},{"className":2677,"style":1980},[1979],[],{"type":84,"tag":294,"props":2680,"children":2682},{"className":2681},[417],[2683,2688,2692,2697,2701,2748,2752,2757,2761],{"type":84,"tag":294,"props":2684,"children":2686},{"className":2685},[417],[2687],{"type":90,"value":2351},{"type":84,"tag":294,"props":2689,"children":2691},{"className":2690,"style":2643},[427],[],{"type":84,"tag":294,"props":2693,"children":2695},{"className":2694},[2648],[2696],{"type":90,"value":2356},{"type":84,"tag":294,"props":2698,"children":2700},{"className":2699,"style":2643},[427],[],{"type":84,"tag":294,"props":2702,"children":2704},{"className":2703},[417],[2705,2710],{"type":84,"tag":294,"props":2706,"children":2708},{"className":2707},[417],[2709],{"type":90,"value":2364},{"type":84,"tag":294,"props":2711,"children":2713},{"className":2712},[2012],[2714],{"type":84,"tag":294,"props":2715,"children":2717},{"className":2716},[1958],[2718],{"type":84,"tag":294,"props":2719,"children":2721},{"className":2720},[1964],[2722],{"type":84,"tag":294,"props":2723,"children":2726},{"className":2724,"style":2725},[1969],"height:0.8141em;",[2727],{"type":84,"tag":294,"props":2728,"children":2730},{"style":2729},"top:-3.063em;margin-right:0.05em;",[2731,2735],{"type":84,"tag":294,"props":2732,"children":2734},{"className":2733,"style":2625},[1979],[],{"type":84,"tag":294,"props":2736,"children":2738},{"className":2737},[1985,1986,1987,1988],[2739],{"type":84,"tag":294,"props":2740,"children":2742},{"className":2741},[417,1988],[2743],{"type":84,"tag":294,"props":2744,"children":2746},{"className":2745},[417,1988],[2747],{"type":90,"value":2369},{"type":84,"tag":294,"props":2749,"children":2751},{"className":2750,"style":2643},[427],[],{"type":84,"tag":294,"props":2753,"children":2755},{"className":2754},[2648],[2756],{"type":90,"value":2374},{"type":84,"tag":294,"props":2758,"children":2760},{"className":2759,"style":2643},[427],[],{"type":84,"tag":294,"props":2762,"children":2764},{"className":2763},[417,452],[2765],{"type":90,"value":2379},{"type":84,"tag":294,"props":2767,"children":2769},{"className":2768},[2159],[2770],{"type":90,"value":2162},{"type":84,"tag":294,"props":2772,"children":2774},{"className":2773},[1964],[2775],{"type":84,"tag":294,"props":2776,"children":2779},{"className":2777,"style":2778},[1969],"height:0.7693em;",[2780],{"type":84,"tag":294,"props":2781,"children":2782},{},[],{"type":84,"tag":294,"props":2784,"children":2786},{"className":2785},[548,1949],[],{"type":84,"tag":294,"props":2788,"children":2790},{"className":2789,"style":2544},[548,1985,2039,2542,1988,2543],[2791],{"type":84,"tag":294,"props":2792,"children":2794},{"className":2793},[463,1987,1988],[2795],{"type":84,"tag":294,"props":2796,"children":2798},{"className":2797},[1988],[2799],{"type":90,"value":2406},{"type":84,"tag":294,"props":2801,"children":2803},{"className":2802},[2159],[2804],{"type":90,"value":2162},{"type":84,"tag":294,"props":2806,"children":2808},{"className":2807},[1964],[2809],{"type":84,"tag":294,"props":2810,"children":2812},{"className":2811,"style":2263},[1969],[2813],{"type":84,"tag":294,"props":2814,"children":2815},{},[],{"type":84,"tag":294,"props":2817,"children":2819},{"className":2818},[548,1949],[],{"type":84,"tag":93,"props":2821,"children":2822},{},[2823,2824,2830,2832,2838],{"type":90,"value":564},{"type":84,"tag":99,"props":2825,"children":2827},{"className":2826},[],[2828],{"type":90,"value":2829},"h = int(hex[0:8])",{"type":90,"value":2831}," (eine 32-Bit-Ganzzahl aus den ersten 8 Hex-Zeichen). Mit einer Änderung: Wenn ",{"type":84,"tag":99,"props":2833,"children":2835},{"className":2834},[],[2836],{"type":90,"value":2837},"h mod 33 == 0",{"type":90,"value":2839},", ist der Multiplikator 1,00x (sofortiger Crash), was Stake's ~1% Hausvorteil erzeugt. Andere Casinos verwenden unterschiedliche Divisoren — 25 (Rainbet ~4% Edge), 50 (niedrig-Edge-Varianten), 100 (sehr niedrig-Edge).",{"type":84,"tag":93,"props":2841,"children":2842},{},[2843],{"type":90,"value":2844},"Führen Sie diese Formel eine Million Mal aus und Sie erhalten eine Verteilung, bei der ~50% der Runden unter 2x crashen, ~10% die 10x überschreiten und etwa 1% die 100x erreichen. Der erwartete Wert beläuft sich auf 0,99 pro 1 Einsatz — die fehlenden 1% sind der Hausvorteil, der in die Konstanten der Formel eingebacken ist, nicht in eine Pro-Runden-Manipulation.",{"type":84,"tag":597,"props":2846,"children":2848},{"id":2847},"karten-abbildung-deck-shuffles",[2849],{"type":90,"value":2850},"Karten-Abbildung (Deck-Shuffles)",{"type":84,"tag":93,"props":2852,"children":2853},{},[2854],{"type":90,"value":2855},"PF-Blackjack, Poker und Baccarat mischen virtuelle Decks mit HMAC-SHA512 (längere Ausgabe = mehr Karten pro Hash-Aufruf). Fisher-Yates-Shuffle ist der Standard:",{"type":84,"tag":1297,"props":2857,"children":2860},{"className":2858,"code":2859,"language":90},[1300],"for i = 51 down to 1:\n  j = hmac_int(i) mod (i + 1)\n  swap(deck[i], deck[j])\n",[2861],{"type":84,"tag":99,"props":2862,"children":2863},{"__ignoreMap":1305},[2864],{"type":90,"value":2859},{"type":84,"tag":93,"props":2866,"children":2867},{},[2868,2870,2876,2878,2884],{"type":90,"value":2869},"Jeder ",{"type":84,"tag":99,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":90,"value":2875},"hmac_int(i)",{"type":90,"value":2877},"-Aufruf verbraucht 4 Hex-Zeichen der 128-stelligen SHA-512-Ausgabe. Die Karten einer Runde werden vollständig durch einen HMAC-Aufruf bestimmt, weshalb Sie bei PF-Blackjack-Spielen häufig 13+ dezimal konvertierte Ganzzahlen im Verifizierungspanel sehen — eine pro Kartentausch. Für die spezifische Implementierung bei Stake und BC.Game siehe den ",{"type":84,"tag":722,"props":2879,"children":2881},{"href":2880},"\u002Fblog\u002Fprovably-fair-blackjack",[2882],{"type":90,"value":2883},"Provably Fair-Blackjack-Leitfaden",{"type":90,"value":765},{"type":84,"tag":85,"props":2886,"children":2888},{"id":2887},"traditionelle-rng-vs-provably-fair-rng",[2889],{"type":90,"value":2890},"Traditionelle RNG vs. Provably Fair RNG",{"type":84,"tag":93,"props":2892,"children":2893},{},[2894],{"type":90,"value":2895},"Auf der RNG-Ebene speziell (nicht auf dem breiteren Fairness-Stack) ist PF eine strikte Obermenge von zertifiziertem CSPRNG.",{"type":84,"tag":597,"props":2897,"children":2899},{"id":2898},"wo-traditionelle-rngs-zu-kurz-greifen",[2900],{"type":90,"value":2901},"Wo traditionelle RNGs zu kurz greifen",{"type":84,"tag":93,"props":2903,"children":2904},{},[2905,2907,2912],{"type":90,"value":2906},"Zertifizierte RNGs von eCOGRA, iTech Labs und GLI sind alle kryptografisch sicher — die Mathematik ist genauso stark wie die von PF. Das Problem liegt nicht in der Primitive, sondern im ",{"type":84,"tag":125,"props":2908,"children":2909},{},[2910],{"type":90,"value":2911},"Laufzeit-Vertrauensmodell",{"type":90,"value":376},{"type":84,"tag":604,"props":2914,"children":2915},{},[2916,2921,2926,2931],{"type":84,"tag":608,"props":2917,"children":2918},{},[2919],{"type":90,"value":2920},"Der zertifizierte RNG läuft auf dem Server des Casinos, einmalig geprüft",{"type":84,"tag":608,"props":2922,"children":2923},{},[2924],{"type":90,"value":2925},"Du siehst seine Ausgabe nie direkt, nur den Endzustand des Spiels",{"type":84,"tag":608,"props":2927,"children":2928},{},[2929],{"type":90,"value":2930},"Nichts zwingt das Casino, den zertifizierten Code in der Produktion weiter zu nutzen",{"type":84,"tag":608,"props":2932,"children":2933},{},[2934],{"type":90,"value":2935},"Ein Streit pro Runde kann nicht in Echtzeit gelöst werden",{"type":84,"tag":93,"props":2937,"children":2938},{},[2939],{"type":90,"value":2940},"Wenn Pragmatic Play's zertifizierter Slot-Engine bei Roobet still einen anderen RNG lädt als den, den eCOGRA getestet hat, fängt keine Zertifikatsprüfung das auf. Die Lücke schließt sich nur durch offene Verifizierung pro Runde.",{"type":84,"tag":597,"props":2942,"children":2944},{"id":2943},"was-pf-zur-primitive-hinzufügt",[2945],{"type":90,"value":2946},"Was PF zur Primitive hinzufügt",{"type":84,"tag":93,"props":2948,"children":2949},{},[2950],{"type":90,"value":2951},"Provably Fair nimmt die gleiche kryptografische Grundlage und macht sie transparent. Konkret:",{"type":84,"tag":604,"props":2953,"children":2954},{},[2955,2967,2972,2977],{"type":84,"tag":608,"props":2956,"children":2957},{},[2958,2960,2965],{"type":90,"value":2959},"Der Server-Seed-Hash wird ",{"type":84,"tag":680,"props":2961,"children":2962},{},[2963],{"type":90,"value":2964},"vor",{"type":90,"value":2966}," deiner Wette veröffentlicht (Commitment)",{"type":84,"tag":608,"props":2968,"children":2969},{},[2970],{"type":90,"value":2971},"Dein Client-Seed trägt zur HMAC-Eingabe bei (Co-Signatur)",{"type":84,"tag":608,"props":2973,"children":2974},{},[2975],{"type":90,"value":2976},"Der Raw-Server-Seed wird nach der Runde offengelegt (Reveal)",{"type":84,"tag":608,"props":2978,"children":2979},{},[2980],{"type":90,"value":2981},"Die Berechnung ist deterministisch und in jedem Browser reproduzierbar (Verifizierung)",{"type":84,"tag":93,"props":2983,"children":2984},{},[2985,2987,2991],{"type":90,"value":2986},"Das ist der ganze Unterschied. Gleiches HMAC, gleiche CSPRNG-Mathematik — mit vier zusätzlichen Transparenz-Schritten überlagert. Einen tieferen Überblick, wie beide Modelle sich vergleichen, findest du unter ",{"type":84,"tag":722,"props":2988,"children":2989},{"href":724},[2990],{"type":90,"value":727},{"type":90,"value":765},{"type":84,"tag":85,"props":2993,"children":2995},{"id":2994},"blockchain-randomness-chainlink-vrf-und-onchain-spiele",[2996],{"type":90,"value":2997},"Blockchain-Randomness — Chainlink VRF und Onchain-Spiele",{"type":84,"tag":93,"props":2999,"children":3000},{},[3001],{"type":90,"value":3002},"PF RNG funktioniert gut für zentralisierte Krypto-Casinos. Aber was ist mit vollständig dezentralisierten Anwendungen — Onchain-Lotterien, NFT-Eigenschaftszuweisung, Onchain-Würfelspiele? Dort übernimmt eine andere Lösung.",{"type":84,"tag":597,"props":3004,"children":3006},{"id":3005},"warum-blockchains-keine-sicheren-zufallszahlen-generieren-können",[3007],{"type":90,"value":3008},"Warum Blockchains keine sicheren Zufallszahlen generieren können",{"type":84,"tag":93,"props":3010,"children":3011},{},[3012],{"type":90,"value":3013},"Jede Blockchain ist absichtlich deterministisch — jeder Validator muss aus den gleichen Eingaben den gleichen Zustand erzeugen, oder der Konsens bricht. Das macht Zufälligkeit strukturell schwierig:",{"type":84,"tag":604,"props":3015,"children":3016},{},[3017,3028,3039,3050],{"type":84,"tag":608,"props":3018,"children":3019},{},[3020,3026],{"type":84,"tag":99,"props":3021,"children":3023},{"className":3022},[],[3024],{"type":90,"value":3025},"block.timestamp",{"type":90,"value":3027}," ist miner-steuerbar in einem Fenster von wenigen Sekunden",{"type":84,"tag":608,"props":3029,"children":3030},{},[3031,3037],{"type":84,"tag":99,"props":3032,"children":3034},{"className":3033},[],[3035],{"type":90,"value":3036},"block.blockhash",{"type":90,"value":3038}," kann von Minern durch Blockeinbehalt manipuliert werden",{"type":84,"tag":608,"props":3040,"children":3041},{},[3042,3048],{"type":84,"tag":99,"props":3043,"children":3045},{"className":3044},[],[3046],{"type":90,"value":3047},"block.prevrandao",{"type":90,"value":3049}," (Post-Merge Ethereum) ist besser, aber immer noch von Validatoren beeinflussbar",{"type":84,"tag":608,"props":3051,"children":3052},{},[3053,3055,3059],{"type":90,"value":3054},"Jede Onchain-Entropiequelle kann vom Smart Contract ",{"type":84,"tag":680,"props":3056,"children":3057},{},[3058],{"type":90,"value":2964},{"type":90,"value":3060}," ihrer Nutzung gelesen werden und besiegt damit den Zweck",{"type":84,"tag":93,"props":3062,"children":3063},{},[3064],{"type":90,"value":3065},"Naive dApp-Lotterien, die Blockhash nutzen, wurden in der Vergangenheit geleert. Der wirtschaftliche Anreiz, einen 1-Millionen-Dollar-Jackpot zu manipulieren, kann einen Miner rational veranlassen, einen Block einzubehalten.",{"type":84,"tag":597,"props":3067,"children":3069},{"id":3068},"wie-chainlink-vrf-es-löst",[3070],{"type":90,"value":3071},"Wie Chainlink VRF es löst",{"type":84,"tag":93,"props":3073,"children":3074},{},[3075,3080],{"type":84,"tag":125,"props":3076,"children":3077},{},[3078],{"type":90,"value":3079},"Chainlink VRF",{"type":90,"value":3081}," (Verifiable Random Function) generiert Zufälligkeit offchain und liefert sie mit kryptografischem Beweis onchain. Der Ablauf:",{"type":84,"tag":3083,"props":3084,"children":3085},"ol",{},[3086,3091,3096,3110,3115],{"type":84,"tag":608,"props":3087,"children":3088},{},[3089],{"type":90,"value":3090},"Der Smart Contract fordert eine Zufallszahl an",{"type":84,"tag":608,"props":3092,"children":3093},{},[3094],{"type":90,"value":3095},"Der Chainlink-Orakel generiert den Wert offchain mit seinem privaten Schlüssel + Request-Seed",{"type":84,"tag":608,"props":3097,"children":3098},{},[3099,3101,3108],{"type":90,"value":3100},"Der Beweis ist eine ",{"type":84,"tag":722,"props":3102,"children":3105},{"href":3103,"rel":3104},"https:\u002F\u002Fdocs.chain.link\u002Fvrf",[792],[3106],{"type":90,"value":3107},"BLS-Signatur",{"type":90,"value":3109},", die jeder gegen den öffentlichen Schlüssel des Orakels verifizieren kann",{"type":84,"tag":608,"props":3111,"children":3112},{},[3113],{"type":90,"value":3114},"Sowohl der Wert als auch der Beweis werden in einer einzigen Transaktion onchain zurückgeposted",{"type":84,"tag":608,"props":3116,"children":3117},{},[3118],{"type":90,"value":3119},"Der Contract verifiziert den Beweis, bevor er den Wert nutzt",{"type":84,"tag":93,"props":3121,"children":3122},{},[3123],{"type":90,"value":3124},"Die kritische Eigenschaft: Weil der Beweis die Zufallszahl an den privaten Schlüssel des Orakels und den Request-Seed bindet, kann das Orakel keine bequemen Werte cherry-picken. Jede Abweichung ist mathematisch nachweisbar.",{"type":84,"tag":597,"props":3126,"children":3128},{"id":3127},"wann-vrf-vs-hmac-basiertes-pf-nutzen",[3129],{"type":90,"value":3130},"Wann VRF vs. HMAC-basiertes PF nutzen",{"type":84,"tag":144,"props":3132,"children":3133},{},[3134,3155],{"type":84,"tag":148,"props":3135,"children":3136},{},[3137],{"type":84,"tag":76,"props":3138,"children":3139},{},[3140,3145,3150],{"type":84,"tag":155,"props":3141,"children":3142},{},[3143],{"type":90,"value":3144},"Anwendungsfall",{"type":84,"tag":155,"props":3146,"children":3147},{},[3148],{"type":90,"value":3149},"Beste Wahl",{"type":84,"tag":155,"props":3151,"children":3152},{},[3153],{"type":90,"value":3154},"Warum",{"type":84,"tag":171,"props":3156,"children":3157},{},[3158,3176,3193,3210,3227],{"type":84,"tag":76,"props":3159,"children":3160},{},[3161,3166,3171],{"type":84,"tag":178,"props":3162,"children":3163},{},[3164],{"type":90,"value":3165},"Zentralisiertes Würfelspiel\u002FCrash",{"type":84,"tag":178,"props":3167,"children":3168},{},[3169],{"type":90,"value":3170},"HMAC-basiertes PF",{"type":84,"tag":178,"props":3172,"children":3173},{},[3174],{"type":90,"value":3175},"Einfacher, günstiger, gleiche Garantien",{"type":84,"tag":76,"props":3177,"children":3178},{},[3179,3184,3188],{"type":84,"tag":178,"props":3180,"children":3181},{},[3182],{"type":90,"value":3183},"Onchain-Lotterie",{"type":84,"tag":178,"props":3185,"children":3186},{},[3187],{"type":90,"value":3079},{"type":84,"tag":178,"props":3189,"children":3190},{},[3191],{"type":90,"value":3192},"Vertrauensfrei, kein zentraler Betreiber",{"type":84,"tag":76,"props":3194,"children":3195},{},[3196,3201,3205],{"type":84,"tag":178,"props":3197,"children":3198},{},[3199],{"type":90,"value":3200},"NFT-Eigenschaftszuweisung",{"type":84,"tag":178,"props":3202,"children":3203},{},[3204],{"type":90,"value":3079},{"type":84,"tag":178,"props":3206,"children":3207},{},[3208],{"type":90,"value":3209},"Nicht manipulierbare Seltenheit",{"type":84,"tag":76,"props":3211,"children":3212},{},[3213,3218,3222],{"type":84,"tag":178,"props":3214,"children":3215},{},[3216],{"type":90,"value":3217},"Zentralisiertes Blackjack",{"type":84,"tag":178,"props":3219,"children":3220},{},[3221],{"type":90,"value":3170},{"type":84,"tag":178,"props":3223,"children":3224},{},[3225],{"type":90,"value":3226},"Chainlink VRF zu teuer pro Karte",{"type":84,"tag":76,"props":3228,"children":3229},{},[3230,3235,3239],{"type":84,"tag":178,"props":3231,"children":3232},{},[3233],{"type":90,"value":3234},"DeFi-Spiel mit hohem Jackpot",{"type":84,"tag":178,"props":3236,"children":3237},{},[3238],{"type":90,"value":3079},{"type":84,"tag":178,"props":3240,"children":3241},{},[3242],{"type":90,"value":3243},"Miner-Manipulationsrisiko zu hoch",{"type":84,"tag":93,"props":3245,"children":3246},{},[3247,3249,3255,3257,3263],{"type":90,"value":3248},"Die meisten Krypto-Casinos nutzen 2026 immer noch HMAC-basiertes PF, weil es schnell, günstig und bereits gut verstanden ist. VRF ist, wo Onchain-DeFi, NFTs und vollständig dezentralisierte Gaming glänzen. Unsere ",{"type":84,"tag":722,"props":3250,"children":3252},{"href":3251},"\u002Fblog\u002Fprovably-fair-bitcoin-games",[3253],{"type":90,"value":3254},"Provably Fair Bitcoin-Spiele",{"type":90,"value":3256},"-Rangliste filtert speziell danach, welche PF-Implementierung jedes Casino nutzt.\nWer diese Konzepte an einem echten Casino stresstesten möchte, findet im ",{"type":84,"tag":722,"props":3258,"children":3260},{"href":3259},"\u002Fcasino\u002Fprovably-fair",[3261],{"type":90,"value":3262},"Provably-Fair-Verzeichnis",{"type":90,"value":3264}," Implementierungen, die sich ohne Einzahlung prüfen lassen — die meisten geben Server-Seed-Hashes über einen öffentlichen Endpoint preis.",{"type":84,"tag":85,"props":3266,"children":3268},{"id":3267},"angriffsfläche-von-pf-rngs",[3269],{"type":90,"value":3270},"Angriffsfläche von PF-RNGs",{"type":84,"tag":93,"props":3272,"children":3273},{},[3274],{"type":90,"value":3275},"Ein kryptografisch perfekter PF-RNG kann durch fehlerhafte Implementierung immer noch kompromittiert werden. Hier ist, was die Mathematik überstehen kann.",{"type":84,"tag":597,"props":3277,"children":3279},{"id":3278},"biased-seed-pool-angriff",[3280],{"type":90,"value":3281},"Biased-Seed-Pool-Angriff",{"type":84,"tag":93,"props":3283,"children":3284},{},[3285],{"type":90,"value":3286},"Der realistischste Angriff — und ein Grund, warum die Client-Seed-Rotation wichtig ist.",{"type":84,"tag":93,"props":3288,"children":3289},{},[3290],{"type":90,"value":3291},"Ein unehrliches Casino generiert tausende Kandidaten-Server-Seeds im Voraus. Für jeden berechnet es die Ergebnisse gegen häufige Client-Seed-Muster (Standard-Browser-Formate, häufige Wörter). Es setzt nur Seeds ein, die zufällig mehr Verluste als Gewinne gegen vorhersehbare Client-Seeds produzieren.",{"type":84,"tag":93,"props":3293,"children":3294},{},[3295],{"type":90,"value":3296},"Jeder eingesetzte Seed hasht immer noch korrekt zu seinem vorab festgelegten Hash. Die Commit-Reveal-Mathematik passt. Aber der Pool der verfügbaren Seeds wurde vor der Sicht eines Spielers handverlesen, und der langfristige Hausvorteil überschreitet stillschweigend die angegebene RTP.",{"type":84,"tag":3298,"props":3299,"children":3301},"h4",{"id":3300},"warum-rotation-das-besiegt",[3302],{"type":90,"value":3303},"Warum Rotation Das Besiegt",{"type":84,"tag":93,"props":3305,"children":3306},{},[3307,3309,3313],{"type":90,"value":3308},"Biased-Seed-Angriffe erfordern, dass das Casino deinen zukünftigen Client-Seed ",{"type":84,"tag":680,"props":3310,"children":3311},{},[3312],{"type":90,"value":2964},{"type":90,"value":3314}," dem Commitment des Server-Seeds kennt. Rotiere deinen Client-Seed alle 50–100 Einsätze und die Vorberechnung des Casinos wird nutzlos — sie committed sich zu einem Server-Seed, bevor sie den neuen Client-Seed kannte, also können sie Ergebnisse nicht steuern.",{"type":84,"tag":93,"props":3316,"children":3317},{},[3318,3320,3326],{"type":90,"value":3319},"Deshalb lassen legitime Casinos dich sofort rotieren. Ein PF-Casino, das die Client-Seed-Rotation verweigert (oder den Client-Seed nach eigenem Zeitplan, nicht deinem, automatisch regeneriert), signalisiert, dass die Angriffsfläche offen ist. Der ",{"type":84,"tag":722,"props":3321,"children":3323},{"href":3322},"\u002Fblog\u002Fclient-seed-vs-server-seed",[3324],{"type":90,"value":3325},"Client-Seed vs Server-Seed",{"type":90,"value":3327},"-Leitfaden deckt den vollständigen Rotations-Workflow ab.",{"type":84,"tag":597,"props":3329,"children":3331},{"id":3330},"schwache-entropiequellen",[3332],{"type":90,"value":3333},"Schwache Entropiequellen",{"type":84,"tag":93,"props":3335,"children":3336},{},[3337],{"type":90,"value":3338},"Wenn die Server-Seed-Generierung vorhersehbare Entropie verwendet, läuft das Commit-Reveal-Protokoll trotzdem, aber der Angreifer kann Seeds vorhersagen.",{"type":84,"tag":3298,"props":3340,"children":3342},{"id":3341},"die-mathrandom-falle",[3343],{"type":90,"value":3344},"Die Math.random-Falle",{"type":84,"tag":93,"props":3346,"children":3347},{},[3348,3350,3355],{"type":90,"value":3349},"Javas Script ",{"type":84,"tag":99,"props":3351,"children":3353},{"className":3352},[],[3354],{"type":90,"value":894},{"type":90,"value":3356}," ist eine Variante eines linearen Kongruenzgenerators. Nach Beobachtung von ~700 aufeinanderfolgenden Ausgaben kann ein Angreifer den vollständigen internen Zustand rekonstruieren und jede nachfolgende Ausgabe vorhersagen. Wenn ein PF-Casino Math.random für die Server-Seed-Generierung verwendet:",{"type":84,"tag":3083,"props":3358,"children":3359},{},[3360,3365,3370,3381],{"type":84,"tag":608,"props":3361,"children":3362},{},[3363],{"type":90,"value":3364},"Angreifer spielt 700+ Runden und sammelt jeden offenbarten Server-Seed",{"type":84,"tag":608,"props":3366,"children":3367},{},[3368],{"type":90,"value":3369},"Angreifer rekonstruiert den PRNG-Zustand",{"type":84,"tag":608,"props":3371,"children":3372},{},[3373,3375,3379],{"type":90,"value":3374},"Angreifer sagt den nächsten gehashten Server-Seed ",{"type":84,"tag":680,"props":3376,"children":3377},{},[3378],{"type":90,"value":2964},{"type":90,"value":3380}," dem Commitment voraus",{"type":84,"tag":608,"props":3382,"children":3383},{},[3384],{"type":90,"value":3385},"Angreifer wettet mit vollständiger Kenntnis des Ergebnisses",{"type":84,"tag":93,"props":3387,"children":3388},{},[3389,3391,3397,3399,3405],{"type":90,"value":3390},"Prävention: Casinos müssen ",{"type":84,"tag":99,"props":3392,"children":3394},{"className":3393},[],[3395],{"type":90,"value":3396},"crypto.randomBytes(32)",{"type":90,"value":3398}," (Node.js), ",{"type":84,"tag":99,"props":3400,"children":3402},{"className":3401},[],[3403],{"type":90,"value":3404},"crypto.getRandomValues(new Uint8Array(32))",{"type":90,"value":3406}," (Browser) oder Hardware-RNG verwenden. Der Unterschied ist eine Codezeile, aber die Sicherheitslücke ist total.",{"type":84,"tag":597,"props":3408,"children":3410},{"id":3409},"implementation-red-flags",[3411],{"type":90,"value":3412},"Implementation Red Flags",{"type":84,"tag":93,"props":3414,"children":3415},{},[3416],{"type":90,"value":3417},"Kurze Checkliste von Signalen, dass ein PF-RNG nicht sicher ist:",{"type":84,"tag":604,"props":3419,"children":3420},{},[3421,3426,3431,3436,3441,3446],{"type":84,"tag":608,"props":3422,"children":3423},{},[3424],{"type":90,"value":3425},"Keine Client-Seed-Rotations-Schaltfläche, oder Rotation dauert >5 Sekunden",{"type":84,"tag":608,"props":3427,"children":3428},{},[3429],{"type":90,"value":3430},"Client-Seed wird vom Casino nach eigenem Zeitplan automatisch regeneriert",{"type":84,"tag":608,"props":3432,"children":3433},{},[3434],{"type":90,"value":3435},"Server-Seed-Verlauf zeigt nicht den Algorithmus oder die Slice-Breite",{"type":84,"tag":608,"props":3437,"children":3438},{},[3439],{"type":90,"value":3440},"Verifikationstool funktioniert nur auf der Website des Casinos selbst (nicht lokal)",{"type":84,"tag":608,"props":3442,"children":3443},{},[3444],{"type":90,"value":3445},"Kein veröffentlichter Hash-Algorithmus — „SHA-256 irgendwo\" ist nicht genug; du brauchst die genaue Formel",{"type":84,"tag":608,"props":3447,"children":3448},{},[3449],{"type":90,"value":3450},"Offenbarte Server-Seeds stimmen in keiner Runde mit ihren vorgegebenen Hashes überein",{"type":84,"tag":93,"props":3452,"children":3453},{},[3454,3456,3461],{"type":90,"value":3455},"Jedes dieser Signale deutet darauf hin, dass die PF-Behauptung Marketinglack auf einem gewöhnlichen RNG ist. Für einen Vergleich, welche Casinos ihren PF-Code tatsächlich veröffentlichen, siehe die ",{"type":84,"tag":722,"props":3457,"children":3458},{"href":3251},[3459],{"type":90,"value":3460},"provably-fair-Bitcoin-Spiele",{"type":90,"value":3462},"-Ranking.",{"type":84,"tag":85,"props":3464,"children":3466},{"id":3465},"selbst-ausprobieren-interaktiver-verifizierer",[3467],{"type":90,"value":3468},"Selbst Ausprobieren — Interaktiver Verifizierer",{"type":84,"tag":93,"props":3470,"children":3471},{},[3472],{"type":90,"value":3473},"Die Mathematik hört auf, abstrakt zu sein, sobald du sie auf deinen eigenen Seeds ausführst. Füge beliebige vier Werte aus dem Fairness-Panel deines Casinos in den Verifizierer unten ein — alles wird in deinem Browser über die Web Crypto API ausgeführt, keine Daten werden an unseren Server gesendet.",{"type":84,"tag":3475,"props":3476,"children":3477},"inline-provably-fair-verifier",{},[],{"type":84,"tag":93,"props":3479,"children":3480},{},[3481],{"type":90,"value":3482},"Ein praktischer Tipp: Wenn du keine echte PF-Casino-Wette zur Hand hast, versuche diese wegwerfbaren Testwerte, um eine verifizierte Runde zu sehen:",{"type":84,"tag":604,"props":3484,"children":3485},{},[3486,3499,3510,3521],{"type":84,"tag":608,"props":3487,"children":3488},{},[3489,3491,3497],{"type":90,"value":3490},"Server-Seed-Hash: ",{"type":84,"tag":99,"props":3492,"children":3494},{"className":3493},[],[3495],{"type":90,"value":3496},"bf3c0a9b0f4b3c8e8f4f0c5f0c4e8b7d8f3e2a1c9f6e3b7c4d5a8e2f9b1c6d3a",{"type":90,"value":3498}," (nur Beispiel — stimmt nicht mit echten Hashes überein)",{"type":84,"tag":608,"props":3500,"children":3501},{},[3502,3504],{"type":90,"value":3503},"Server-Seed: ",{"type":84,"tag":99,"props":3505,"children":3507},{"className":3506},[],[3508],{"type":90,"value":3509},"f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4",{"type":84,"tag":608,"props":3511,"children":3512},{},[3513,3515],{"type":90,"value":3514},"Client-Seed: ",{"type":84,"tag":99,"props":3516,"children":3518},{"className":3517},[],[3519],{"type":90,"value":3520},"demo-player",{"type":84,"tag":608,"props":3522,"children":3523},{},[3524,3526],{"type":90,"value":3525},"Nonce: ",{"type":84,"tag":99,"props":3527,"children":3529},{"className":3528},[],[3530],{"type":90,"value":1999},{"type":84,"tag":93,"props":3532,"children":3533},{},[3534,3536,3542,3544,3549,3551,3557,3559,3565,3567,3573],{"type":90,"value":3535},"Das Ergebnis zeigt ein PASS\u002FFAIL-Urteil zum Hash-Match sowie die rekonstruierten Dice- und Crash-Ergebnisse. Die gleiche Logik läuft hinter dem ",{"type":84,"tag":722,"props":3537,"children":3539},{"href":3538},"\u002Fblog\u002Fprovably-fair-aviator-calculator",[3540],{"type":90,"value":3541},"Aviator-Provably-Fair-Rechner",{"type":90,"value":3543}," für Spribes Crash-Style-Spiel und unser vollständiger Verifizierer unter ",{"type":84,"tag":722,"props":3545,"children":3546},{"href":3259},[3547],{"type":90,"value":3548},"dem Provably-Fair-Hub",{"type":90,"value":3550}," deckt jedes Mainstream-PF-Casino ab. Um Wetten gegen eine bekannte RTP zu dimensionieren, nachdem du bestätigt hast, dass der RNG legitim ist, kombiniere es mit unserem ",{"type":84,"tag":722,"props":3552,"children":3554},{"href":3553},"\u002Fcasino\u002Frtp-calculator",[3555],{"type":90,"value":3556},"RTP-Rechner",{"type":90,"value":3558},", ",{"type":84,"tag":722,"props":3560,"children":3562},{"href":3561},"\u002Fcasino\u002Fhouse-edge-calculator",[3563],{"type":90,"value":3564},"Hausvorteil-Rechner",{"type":90,"value":3566}," und ",{"type":84,"tag":722,"props":3568,"children":3570},{"href":3569},"\u002Fcasino\u002Fbankroll-calculator",[3571],{"type":90,"value":3572},"Bankroll-Rechner",{"type":90,"value":765},{"type":84,"tag":93,"props":3575,"children":3576},{},[3577,3582,3584,3589],{"type":84,"tag":125,"props":3578,"children":3579},{},[3580],{"type":90,"value":3581},"Unterm Strich:",{"type":90,"value":3583}," Die Mathematik ist nur dann wasserdicht, wenn das Casino den Hash tatsächlich vor der Wette veröffentlicht. Prüfen Sie jede Implementierung anhand des ",{"type":84,"tag":722,"props":3585,"children":3586},{"href":3259},[3587],{"type":90,"value":3588},"Provably-Fair-Hubs",{"type":90,"value":3590}," — wir halten fest, ob der Seed korrekt festgesetzt wird und wo der Hash einsehbar ist.",{"type":84,"tag":85,"props":3592,"children":3594},{"id":3593},"häufig-gestellte-fragen",[3595],{"type":90,"value":3596},"Häufig gestellte Fragen"]