Memeriksa ronde crash provably fair (dapat dibuktikan adil) hanya butuh beberapa menit dan tidak memerlukan perangkat lunak khusus, cukup browser modern dan kesediaan menyalin-tempel dua string hex. Artikel ini menguraikan langkah-langkah umum untuk desain server seed, client seed, dan nonce, serta menunjukkan cara memastikan bahwa sebuah komitmen ditepati.
Apa yang saya butuhkan untuk memverifikasi sebuah ronde?
Tiga hal:
- Browser web modern: Chrome, Firefox, Edge, atau Safari. Anda akan memakai konsol developer bawaan browser.
- Seed (nilai acak awal) provably fair Anda: server seed (dibuka setelah rotasi), client seed Anda, dan nonce dari ronde yang ingin Anda verifikasi. Semuanya tersedia di pengaturan keadilan platform.
- Beberapa menit, untuk pertama kali.
Tanpa perangkat lunak khusus. Tanpa unduhan. Tanpa alat baris perintah. Semua yang Anda butuhkan sudah ada di browser.
Jika Anda ingin memahami apa yang Anda verifikasi dan mengapa itu penting sebelum mulai, baca dulu Provably fair dijelaskan. Artikel ini mengasumsikan Anda sudah memahami konsepnya dan menginginkan panduan praktiknya.
Di mana saya menemukan server seed, client seed, dan nonce?
Letaknya berbeda-beda per game dan per situs, jadi periksa halaman keadilan atau halaman provably fair milik game itu sendiri. Pada desain per pemain, biasanya Anda akan menemukan:
- Hash server seed: komitmen SHA-256 untuk seed yang sedang dipakai.
- Client seed Anda: sering kali dapat diubah.
- Nonce: penghitung yang naik setiap kali ada taruhan.
- Cara mengakhiri seed, sering disebut merotasi atau mengganti seed, yang membuka server seed lama dan memulai yang baru.
Game dengan ronde bersama yang dibangun di atas rantai hash justru memublikasikan ujung rantai sebelum permainan dan membuka hash setiap ronde sesudahnya.
Sebelum Anda mengakhiri seed: catat client seed Anda saat ini dan nonce dari ronde yang ingin Anda periksa. Setelah diganti, nilai lama mungkin tidak ditampilkan lagi.
Bagaimana cara menghitung SHA-256 dari seed yang dibuka?
Setelah rotasi, Anda akan melihat server seed yang sebenarnya, berupa string hex yang panjang. Langkah pertama Anda adalah memastikan bahwa hash SHA-256 dari seed ini cocok dengan hash yang ditampilkan sebelum rotasi.
Metode 1: konsol browser.
Buka konsol developer browser Anda (F12, lalu klik "Console") dan tempelkan:
async function sha256(message) {
const encoder = new TextEncoder();
const data = encoder.encode(message);
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
// Replace with your actual revealed server seed:
sha256('your_revealed_server_seed_here').then(console.log);
Hasilnya adalah string hex sepanjang 64 karakter. Bandingkan karakter demi karakter dengan hash server seed yang ditampilkan sebelum rotasi.
Metode 2: pemeriksaan komitmen hash kami.
Buka pemeriksaan komitmen hash, tempelkan server seed yang dibuka dan hash yang ditampilkan sebelum rotasi, lalu pilih SHA-256. Alat ini berjalan dengan Web Crypto di browser Anda dan tidak mengirim apa pun kepada kami. Alat ini memastikan komitmennya; alat ini tidak menghitung ulang ronde.
Jika cocok: operator telah berkomitmen pada seed ini sebelum ronde apa pun dimainkan. Lanjutkan ke langkah berikutnya.
Jika tidak cocok: operator mengganti seed setelah mengomitmenkan hash-nya. Ini kegagalan yang serius. Dokumentasikan semuanya dan laporkan.
Bagaimana cara menghitung ulang hash sebuah ronde?
Sekarang Anda tahu server seed itu asli. Berikutnya, hitung ulang hash berkunci (HMAC-SHA256) di balik satu taruhan tertentu. Tempelkan ini ke konsol browser:
async function hmacSha256(key, message) {
const encoder = new TextEncoder();
const cryptoKey = await crypto.subtle.importKey(
'raw', encoder.encode(key), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']
);
const sig = await crypto.subtle.sign('HMAC', cryptoKey, encoder.encode(message));
return Array.from(new Uint8Array(sig))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
// Replace with your actual values. The message format (here "client:nonce")
// is set by the game's documentation; check it before you compare.
hmacSha256('your_revealed_server_seed', 'your_client_seed:42').then(console.log);
Mengubah hash menjadi pengali. Setiap game mendokumentasikan rumusnya sendiri untuk langkah terakhir ini, dan rumusnya berbeda-beda: berapa banyak bagian hash yang dibaca, bagaimana keunggulan bandar diterapkan, bagaimana hasil dibulatkan. Gunakan rumus dari halaman keadilan game itu. Kami tidak memublikasikan rumus di sini, karena rumus yang disalin dari satu game akan memberi jawaban yang salah untuk game lain dan tampak seperti pemeriksaan yang gagal.
Catatan penting:
- Format pesan, rumus, dan pembulatan semuanya berasal dari dokumentasi game.
- Nonce biasanya menghitung taruhan, bukan ronde. Jika Anda melewatkan beberapa ronde, nonce Anda tidak bergerak untuk ronde itu.
- Pembulatan bisa membuat desimal terakhir berbeda 0,01. Selisih seperseratus adalah pembulatan; selisih seperti 2,47 dibandingkan 3,12 adalah ketidakcocokan.
Apa yang harus saya lakukan jika verifikasi saya tidak cocok?
Pertama, singkirkan kemungkinan kesalahan pengguna:
- Periksa client seed Anda. Apakah Anda memakai client seed yang aktif selama ronde yang Anda verifikasi? Jika Anda sudah menggantinya, Anda membutuhkan yang lama.
- Periksa nonce. Nonce dihitung per taruhan. Jika platform menghitung nonce secara berbeda dari dugaan Anda, ketidakcocokan itu mungkin karena selisih nonce.
- Periksa rumusnya. Game yang berbeda memakai rumus turunan yang berbeda. Pastikan Anda memakai rumus yang didokumentasikan oleh game itu.
- Periksa server seed. Apakah Anda memakai server seed yang dibuka dari rotasi yang benar? Jika Anda sudah beberapa kali merotasi, pastikan seed itu sesuai dengan rotasi yang aktif selama ronde tersebut.
Jika Anda sudah menyingkirkan kesalahan pengguna dan verifikasi masih gagal:
- Ambil tangkapan layar semuanya. Server seed yang dibuka, hash yang dikunci, client seed Anda, nonce, titik crash yang ditampilkan, dan titik crash hasil hitungan Anda.
- Periksa ronde tambahan. Verifikasi 3-5 ronde lagi dari rotasi yang sama. Jika semuanya gagal, masalahnya sistematis. Jika hanya satu yang gagal, mungkin itu kesalahan tampilan data.
- Laporkan ke platform. Sebagian besar platform memiliki saluran dukungan untuk sengketa provably fair.
- Simpan buktinya. Ketidakcocokan yang terdokumentasi dan dapat diulang pada pemeriksaan yang dijalankan dengan benar adalah hal serius, dan merupakan bukti yang dapat dijalankan ulang oleh siapa pun.
Satu kegagalan verifikasi pada sistem yang diterapkan dengan benar semestinya tidak pernah terjadi. Operasi kriptografinya deterministik: masukan yang sama selalu menghasilkan keluaran yang sama. Jika keluarannya tidak cocok, maka masukannya salah (kesalahan pengguna) atau sistemnya tidak bekerja seperti yang dijelaskan (masalah platform).
Bagaimana cara memverifikasi banyak ronde sekaligus?
Untuk pemeriksaan acak, segelintir ronde sudah cukup. Untuk banyak ronde, jalankan fungsi yang sama secara berulang pada rentang nonce dan bandingkan setiap hasil dengan riwayat game:
async function hashesForRange(serverSeed, clientSeed, startNonce, endNonce) {
const rows = [];
for (let nonce = startNonce; nonce <= endNonce; nonce++) {
rows.push({ nonce, hash: await hmacSha256(serverSeed, clientSeed + ':' + nonce) });
}
return rows;
}
hashesForRange('your_revealed_server_seed', 'your_client_seed', 1, 100).then(console.table);
Terapkan rumus yang didokumentasikan game pada setiap hash, lalu bandingkan dengan hasil yang ditampilkan untuk nonce tersebut.
Apa yang tidak diberitahukan oleh pemeriksaan yang lolos?
Pemeriksaan yang lolos membuktikan bahwa ronde itu sudah ditetapkan sebelum taruhan dan tidak diubah sesudahnya. Pemeriksaan itu tidak membuktikan bahwa pengembalian keseluruhan game sesuai dengan RTP (return to player / tingkat pengembalian) yang dinyatakan; untuk itu dibutuhkan hitungan ronde yang besar, dipublikasikan dengan interval 95%, yang dilakukan lab game demi game setelah sebuah game melewati sampel minimumnya. Lihat Memahami RTP.
Pemeriksaan itu juga tidak memberi tahu apa pun tentang ronde berikutnya. Seed baru dibuka setelah ronde-ronde yang dihasilkannya selesai, jadi verifikasi selalu melihat ke belakang. Riwayat menggambarkan perilaku. Riwayat tidak memprediksi ronde berikutnya. Aplikasi yang mengaku membaca hasil berikutnya dari sebuah hash tidak dapat melihat seed rahasia; lihat pemeriksaan bot prediktor.
Game mana yang dapat diperiksa dengan cara ini?
Hanya game provably fair, seperti Aviator, Mines, dan Stake Crash, yang memungkinkan Anda menghitung ulang ronde dari seed-nya. Setiap game memakai rumus terdokumentasinya sendiri, dan alat kami belum menghitung ulang pengali Aviator. Game berkomitmen hash seperti JetX memungkinkan Anda memeriksa komitmennya, tetapi tidak memublikasikan rumus dari hash ke hasil. Game dengan RNG (generator angka acak) tersertifikasi seperti Spaceman sama sekali tidak dapat diperiksa ronde demi ronde. Setiap halaman game memiliki lencana keadilan yang menyatakan mana yang berlaku.
Nilai pemeriksaan, entah lima ronde atau lima puluh, tetap sama: pemeriksaan mengubah "percayai operatornya" dari tindakan iman menjadi klaim yang dapat diuji oleh siapa pun.
Apakah halaman ini berguna?
Anonim: tanpa akun dan tanpa cookie.