Provably Fair
Seit dem 22.08.2026 sind neue Pellodle-Rolls provably fair. Jeder Roll entsteht aus einem Tages-Seed von Pellodle und einem Client-Seed aus dem Browser des Spielers. Beide stehen beim Roll fest. Hier kannst du nachrechnen, welche Zahl sich daraus ergeben musste.
Der heutige Roll-Tag lässt sich erst morgen nachrechnen.
Wann was öffentlich wird
Tages-Seed und Client-Seed werden zu verschiedenen Zeiten öffentlich. Einer allein verrät die Zahl nicht.
Vorher
Der Prüfwert ist öffentlich
Der Prüfwert legt die Tages-Seeds für die nächsten Jahre fest. Pellodle kann sie später nicht austauschen, ohne die Kette zu brechen.
Beim Klick
Der Browser gibt seinen Seed dazu
Der Browser erzeugt einen Client-Seed und schickt ihn beim Roll mit. Pellodle kannte ihn vorher nicht. Aus beiden Seeds steht jetzt die Zahl fest.
Um Mitternacht
Der Tages-Seed wird öffentlich
Der Tages-Seed für den beendeten Roll-Tag wird veröffentlicht. Bei Rolls ohne Urteil bleibt der Client-Seed verborgen.
Mit dem Urteil
Alles liegt offen
Sobald Daniel urteilt, werden der Roll und sein Client-Seed öffentlich. Jetzt lässt sich die Zahl nachrechnen.
Der öffentliche Prüfwert
Alle Tages-Seeds führen über SHA-256 zu diesem Prüfwert. Er wurde vor dem ersten nachrechenbaren Roll veröffentlicht und bleibt gleich. Wird ein Seed ausgetauscht, passt die Kette nicht mehr.
Prüfwert
64a1b7b79a61c548e94211b6055641c2b2f520b3a4b9b35727430dd2085e229bGlied 1 gehört zum 22.08.2026. Die Kette hat 4.096 Glieder. Vergleiche diesen Prüfwert mit dem Wert aus dem Chat. Sonst prüft Pellodle nur die eigene Angabe.
Die drei Gleichungen
Darauf läuft die Prüfung hinaus:
sha256(tagesSeed) == seedVomVortag
Für jeden Tag gilt: Der SHA-256-Hash des Tages-Seeds muss dem Seed des Vortags entsprechen. Gehasht werden die 32 Bytes des Seeds, nicht die 64 Zeichen des Hex-Werts.
sha256(clientSeed) == siegel
Das Siegel wurde schon am Roll-Tag veröffentlicht, bevor der Tages-Seed öffentlich war. Es muss zum Client-Seed passen, der mit dem Urteil veröffentlicht wird.
hmacSha256(tagesSeed, clientSeed) → zahl
Der HMAC liefert acht 32-Bit-Wörter. Das erste unter 4.294.000.000 wird modulo 1.000.000 zur Roll-Zahl. Größere Werte fliegen raus. Ohne diesen Schritt wären kleine Zahlen um 0,02 % häufiger.
Ohne Pellodle nachrechnen
Dieses Python-Skript rechnet denselben Roll unabhängig von Pellodle nach. Es braucht keine zusätzlichen Pakete und keine Netzwerkverbindung. Such dir oben einen Roll aus, dann stehen hier seine Werte.
import hashlib, hmac
PRUEFWERT = "64a1b7b79a61c548e94211b6055641c2b2f520b3a4b9b35727430dd2085e229b"
SEED = "<Tages-Seed>"
CLIENT = "<Client-Seed>"
TIEFE = <Nummer des Roll-Tags in der Kette>
# 1. Fuehrt der Tages-Seed zum veroeffentlichten Pruefwert?
schritt = SEED
for _ in range(TIEFE):
schritt = hashlib.sha256(bytes.fromhex(schritt)).hexdigest()
print("Kette: ", schritt == PRUEFWERT)
# 2. Passt der Client-Seed zum Siegel vom Roll-Tag?
print("Siegel:", hashlib.sha256(bytes.fromhex(CLIENT)).hexdigest())
# 3. Welche Zahl musste damit fallen?
h = hmac.new(bytes.fromhex(SEED), bytes.fromhex(CLIENT), hashlib.sha256).digest()
while True:
for i in range(0, 32, 4):
wort = int.from_bytes(h[i:i + 4], "big")
if wort < 4294000000:
print("Zahl: ", wort % 1000000)
raise SystemExit
h = hmac.new(bytes.fromhex(SEED), h, hashlib.sha256).digest()