Untuk setiap taruhan yang dapat diverifikasi, benih klien, benih server, nonce, dan kursor digunakan sebagai parameter input untuk pembangkitan angka acak fungsi. Fungsi ini menggunakan fungsi hash kriptograf iHMAC_SHA256 untuk menghasilkan byte yang kemudian digunakan sebagai dasar bagaimana kami menghasilkan hasil acak yang terbukti adil di platform kami.
// Random number generation based on following inputs: serverSeed, clientSeed, nonce and cursor
function byteGenerator({ serverSeed, clientSeed, nonce, cursor }) {
// Setup cursor variables
let currentRound = Math.floor(cursor / 32);
let currentRoundCursor = cursor;
currentRoundCursor -= currentRound * 32;
// Generate outputs until cursor requirement fullfilled
while (true) {
// HMAC function used to output provided inputs into bytes
const hmac = createHmac('sha256', serverSeed);
hmac.update(`${clientSeed}:${nonce}:${currentRound}`);
const buffer = hmac.digest();
// Update cursor for next iteration of loop
while (currentRoundCursor < 32) {
yield Number(buffer[currentRoundCursor]);
currentRoundCursor += 1;
}
currentRoundCursor = 0;
currentRound += 1;
}
}Server seed dihasilkan oleh sistem kami sebagai string heksadesimal 64 karakter acak. Anda kemudian akan diberikan hash terenkripsi dari server seed yang dihasilkan sebelum Anda memasang taruhan. Alasan kami memberikan server seed dalam bentuk terenkripsi adalah untuk memastikan bahwa server seed yang belum di-hash tidak dapat diubah oleh operator kasino, dan pemain tidak dapat menghitung hasilnya terlebih dahulu. Untuk mengungkap benih server dari versi hash-nya, benih tersebut harus diputar oleh pemain, yang memicu penggantian dengan benih yang baru dibuat. Dari titik ini, Anda dapat memverifikasi bahwa server seed yang di-hash cocok dengan server seed yang tidak di-hash. Proses ini dapat diverifikasi melalui fungsi server seed yang tidak di-hash yang terdapat pada menu di atas.
Client Seed adalah milik pemain dan digunakan untuk memastikan mereka memiliki pengaruh terhadap keacakan hasil yang dihasilkan. Tanpa komponen algoritma ini, seed server sendirilah yang akan memiliki pengaruh penuh terhadap hasil setiap taruhan. Semua pemain bebas mengedit dan mengubah seed klien mereka secara berkala untuk menciptakan rangkaian hasil acak yang akan datang. Hal ini memastikan pemain memiliki kendali penuh atas hasil yang dihasilkan, mirip seperti memotong kartu di kasino konvensional. Saat pendaftaran, seed klien akan dibuatkan untuk Anda oleh peramban Anda, untuk memastikan pengalaman awal Anda di situs berjalan lancar. Meskipun seed klien yang dihasilkan secara acak ini dianggap sesuai, kami sangat menyarankan Anda memilih seed klien Anda sendiri, sehingga pengaruh Anda juga diperhitungkan dalam keacakan tersebut. Anda dapat melakukan ini melalui modal keadilan.
Kami menggunakan 4 byte data untuk menghasilkan satu hasil permainan, dan karena SHA256 dibatasi hingga 32 byte, kami memanfaatkan implementasi kursor ini untuk memberi kami kemampuan membuat lebih banyak kejadian permainan tanpa harus memodifikasi algoritma adil kami yang dapat dibuktikan. Kursor hanya diulang ketika permainan yang sedang dimainkan membutuhkan lebih dari 8 kemungkinan hasil (32 byte / 4 byte). Misalnya: ketika kita perlu menggunakan lebih dari 8 kartu dalam permainan blackjack. Kursor dimulai dari 0 dan bertambah 1 setiap kali 32 byte dikembalikan oleh fungsi HMAC_SHA256. Jika kita tidak memerlukan lebih dari 8 angka acak untuk dibangkitkan untuk peristiwa permainan, maka kursor tidak akan bertambah karena tidak perlu membangkitkan kemungkinan hasil permainan tambahan.