
Hash dahulu, benih kemudian — sesiapa boleh mengiranya semula.
Sebelum setiap pusingan kami menjana benih pelayan dan menerbitkan hash SHA-256 nya. Keputusan diterbitkan daripada HMAC-SHA256(benih pelayan, benih klien:pusingan), jadi ia ditetapkan sebelum satu taruhan pun dibuat. Setelah pusingan selesai, benih pelayan didedahkan dan sesiapa boleh mengiranya semula di sini untuk memastikan hash dan keputusan sepadan. Benih klien milik anda — itulah yang menghalang pengendali daripada mencuba benih sehingga dapat keputusan yang disukainya.
Pusingan
20260528000123Hash benih pelayan
Menjana…Benih itu hanya didedahkan setelah pusingan ini tamat.
Benih baharu berkuat kuasa dari pusingan SETERUSNYA — hash pusingan ini telah diterbitkan, jadi menukarnya sekarang tidak menjejaskan keputusan ini.
Peranti ini belum mempunyai pusingan selesai dengan benih didedahkan — kembali selepas pusingan ini diundi dan anda boleh memuatkannya dengan satu ketikan. Anda juga boleh menampal benih mana-mana pusingan secara manual.
Mesej untuk ditandatangani::round
# mana-mana mesin dengan node boleh mengira semula
node -e '
const c = require("crypto");
const serverSeed = "<server seed>";
const clientSeed = "<client seed>";
const round = "<round>";
const digest = c.createHmac("sha256", serverSeed)
.update(clientSeed + ":" + round).digest("hex");
const pool = [1,2,3,4,5,6,7,8,9], out = [];
for (let i = 0; i < 6; i++)
out.push(pool.splice(parseInt(digest.slice(i*4, i*4+4), 16) % pool.length, 1)[0]);
console.log("hash ", c.createHash("sha256").update(serverSeed).digest("hex"));
console.log("result", out.join(" "));
'