Dadu tak bisa ditebak: apa yang salah dan apa yang kami ubah
Kami menemukan bahwa dadu di permainan online, pada prinsipnya, bisa dihitung sebelum dilempar: seed-nya dibangun dari informasi yang bisa dilihat setiap pemain. Kami tidak menemukan tanda ada yang melakukannya. Sejak 1 Oktober, seed setiap lemparan berasal dari rahasia yang hanya dimiliki server, dan prediksi lama kini hanya benar sekali dari 36 — murni kebetulan.

Dengan bahasa sederhana
Inilah yang kami temukan. Semua yang acak dalam permainan online — dua dadu, penarikan kartu Kesempatan, dadu Jackpot — berasal dari pembangkit angka acak, dan sebuah pembangkit harus mulai dari sebuah seed. Seed kami dibangun dari dua hal yang bisa dilihat setiap pemain: id permainan, yang ada di bilah alamatmu, dan nomor langkah, yang dikembalikan permainan setelah setiap aksi. Pembangkitnya sendiri adalah kode biasa yang dipublikasikan. Gabungkan semuanya, dan seseorang yang tahu caranya bisa saja menghitung sebuah lemparan sebelum melemparnya — dan, pada prinsipnya, bahkan memilih lemparan mana di antara beberapa berikutnya yang ia dapatkan.
Kami memeriksanya pada permainan sungguhan, bukan sekadar teori. Dari 2,000 lemparan terakhir sebelum perbaikan, 1,985 — 99.3% — persis seperti yang diprediksi informasi publik itu.
Apakah ada yang memanfaatkannya?
Lalu kami mencari siapa pun yang memanfaatkannya, dan tidak menemukan seorang pun. Taruhan yang paling langsung menguntungkan jika kamu tahu hasil lemparan adalah Jackpot. Selama tujuh hari sebelum perbaikan, dari 2,354 taruhan Jackpot, 31.4% di antaranya menang, dibanding 31.1% yang diperkirakan dari kebetulan semata, dan tidak ada catatan pemain yang mencolok.
Pertanyaan yang sering muncul
Apakah dadu di opolyx adil?
Ya. Dari 247,968 lemparan pada 2 sampai 6 Oktober 2026, setiap sisi dari setiap dadu muncul pada 16.54% hingga 16.77% lemparan — dadu sempurna memberi 16.67% — dan angka kembar muncul pada 16.67% lemparan.
Apakah dadu di opolyx bisa diprediksi?
Tidak — sejak 1 Oktober 2026 tidak lagi. Seed setiap lemparan berasal dari rahasia yang hanya ada di server, dan prediksi lama kini hanya cocok dengan 2.76% lemparan: 2.78% yang akan kamu dapat dari menebak dua dadu secara buta.
Apakah ada yang memanfaatkan celah dadu yang lama?
Kami tidak menemukan tandanya. Selama tujuh hari sebelum perbaikan, dari 2,354 taruhan Jackpot, 31.4% di antaranya menang, dibanding 31.1% yang diperkirakan dari kebetulan semata, dan tidak ada pemain yang hasilnya mencolok.
Di mana hasil lemparan dadu ditentukan?
Di server permainan, tepat saat kamu melempar, oleh pembangkit angka acak yang seed-nya berasal dari rahasia yang tidak dimiliki siapa pun selain server. Hasilnya dicatat di log permainan, dan tayangan ulang serta statistik membaca log itu alih-alih melempar ulang.
Untuk yang ingin tahu teknisnya
Seed-nya berupa label, <id permainan>:<nomor langkah>, yang di-hash dengan FNV-1a lalu diberikan ke mulberry32. Desain itu disengaja — membuat setiap permainan bisa direproduksi dari log-nya sendiri — tetapi reproduksi tidak pernah membutuhkan seed yang publik. Setiap hasil ditulis ke dalam peristiwa yang menghasilkannya, dan tayangan ulang serta statistik membaca peristiwa itu alih-alih melempar ulang.
// before: anyone who knew the game id and the move number could do this
rng = mulberry32(fnv1a(`${gameId}:${seq}`))
// after: the same label, signed with a key that never leaves the server
rng = mulberry32(uint32(hmacSha256(serverSecret, `${gameId}:${seq}`)))Kini label itu lebih dulu melewati HMAC-SHA256, dengan kunci berupa rahasia 32 byte yang hanya ada di dalam server. Secara bawaan, rahasia itu dibuat baru setiap kali server dinyalakan. Tak ada yang membutuhkannya bertahan setelah restart, karena tidak ada lemparan lama yang pernah dihitung ulang — dan rahasia yang tidak pernah dituliskan adalah rahasia yang tidak bisa bocor.
Setiap undian yang menentukan sesuatu dalam permainan ditandatangani dengan cara ini: dadu, penarikan kartu Kesempatan, dadu Jackpot, dan pilihan siapa yang jalan duluan.
Dan dadunya seadil yang semestinya. Di seluruh lemparan sejak 2 Oktober — 247,968 jumlahnya — setiap sisi dari setiap dadu muncul pada 16.54% hingga 16.77% lemparan, dibanding 16.67% untuk dadu sempurna, dan angka kembar muncul pada 16.67% lemparan:
| Sisi | Dadu pertama | Dadu kedua |
|---|---|---|
| Sisi 1 | 16.75% | 16.72% |
| Sisi 2 | 16.77% | 16.65% |
| Sisi 3 | 16.56% | 16.61% |
| Sisi 4 | 16.54% | 16.70% |
| Sisi 5 | 16.67% | 16.70% |
| Sisi 6 | 16.72% | 16.62% |
Perbaikan ini diperiksa dengan ukuran yang sama seperti masalahnya. Prediksi yang sebelumnya cocok dengan 99.3% lemparan dijalankan ulang selama sehari penuh setelahnya: cocok 1,388 dari 50,212, yaitu 2.76% — 2.78% yang memang bisa kamu harapkan dari menebak dua dadu secara buta.
