Skip to main content
Lemparan Dice sama sekali tidak memakai rahasia operator. Hasilnya diturunkan on-chain dari slot hash Solana yang ditangkap saat taruhan Anda dieksekusi, alamat akun Anda, dan penghitung taruhan pribadi Anda, lalu diselesaikan dalam transaksi yang sama dengan saat taruhan dipasang. Tidak ada seed yang bisa dipilih operator, dan tidak ada yang perlu diungkap sesudahnya. Halaman ini menjelaskan mekanisme persis di balik setiap lemparan Dice. Dice adalah kasus paling sederhana dari skema provably fair: sama sekali tidak ada rahasia operator. Lemparan diturunkan dari input publik dan diselesaikan on-chain dalam transaksi yang sama dengan saat taruhan dipasang.

Mengapa Dice tidak punya langkah commit?

Crash membutuhkan rahasia yang di-commit karena hasilnya harus tetap tetapi tersembunyi selama ronde berlangsung. Lemparan dadu tidak punya fase seperti itu: hasilnya langsung dipakai dalam instruksi yang sama dengan yang menariknya. Jadi, alih-alih meng-commit sebuah rahasia, penurunannya sama sekali tidak memakai input apa pun dari operator: tidak ada yang perlu di-commit, tidak ada yang perlu diungkap, dan tidak ada seed yang bisa dipilih operator demi keuntungannya. Entropinya berasal dari jaringan Solana itu sendiri, dicampur dengan nilai-nilai yang mengidentifikasi taruhan Anda:
  • slothash: entri terbaru dari sysvar SlotHashes Solana pada saat transaksi taruhan Anda dieksekusi. Ini adalah entropi yang dihasilkan jaringan dan belum diketahui saat transaksi disusun (pengirim tidak bisa tahu persis di slot mana sebuah transaksi akan masuk).
  • user: alamat 32 byte dari akun pengguna on-chain Anda (akun yang diturunkan program dari wallet Anda). Ini membuat lemparan antar pemain saling independen: dua taruhan yang masuk di slot yang sama akan mendapat lemparan berbeda.
  • nonce: penghitung taruhan pribadi Anda, disimpan on-chain dan bertambah setiap kali Anda bermain. Ini membuat taruhan Anda yang berurutan saling independen, bahkan dalam slot yang sama, sekaligus berfungsi sebagai perlindungan terhadap pengiriman ganda.

Apa formula persis lemparan Dice?

Detail yang penting saat Anda menghitung ulang:
  • Input hash adalah hasil penggabungan, dengan urutan persis seperti ini: tag ASCII "dice", slot hash, alamat akun pengguna, lalu nonce yang di-encode sebagai 8 byte little-endian.
  • Sampelnya adalah 16 byte pertama dari output SHA-256 yang dibaca sebagai integer unsigned 128-bit big-endian, lalu direduksi modulo 10,000.
  • Mereduksi sampel 128-bit modulo 10,000 memiliki bias teoretis di bawah 2⁻¹¹⁴, puluhan orde besaran lebih kecil daripada house edge, dan karena itulah bias ini didokumentasikan alih-alih dikoreksi.

Kondisi menang dan pembayaran

Peluang menang yang Anda pilih harus berada di antara 2% dan 98%. Dengan edge saat ini sebesar 1.5% (edge_bps = 150): Pengembalian yang diharapkan sama untuk setiap target: peluang × pengali ≈ 98.5% dari taruhan (pembulatan ke bawah menguntungkan kasino paling banyak satu basis poin). Edge dan batas yang berlaku saat ini tercantum di Biaya & batas.

Apa yang dijamin, dan apa yang tidak

Ditegakkan oleh program:
  • Lemparan diturunkan dan diselesaikan di dalam satu instruksi on-chain, dari input yang dibaca oleh program itu sendiri. Backend tidak menyediakan lemparan dan tidak bisa melaporkannya secara keliru.
  • Operator tidak memberikan input apa pun pada penurunan: tidak ada server seed yang bisa diutak-atik demi hasil yang menguntungkan.
  • Nonce Anda harus dikembalikan persis sama, sehingga taruhan yang sama tidak bisa dimainkan dua kali, baik tanpa sengaja maupun dengan niat jahat.
  • Setiap permainan memublikasikan semua input penurunan beserta hasilnya, sehingga setiap lemparan dalam riwayat dapat dihitung ulang oleh siapa pun.
Catatan jujur: waktu pengiriman. Taruhan Dice bersifat gasless: backend MCC menandatangani dan mengirimkan transaksi untuk Anda, sehingga operator mengendalikan kapan transaksi itu dikirim. Hash slot N−1 menjadi publik di awal slot N, sehingga operator dengan latensi sangat rendah bisa memperkirakan lemparan yang akan didapat sebuah taruhan jika taruhan itu masuk di slot saat ini, lalu menunda pengiriman untuk menarik ulang. Skema ini menerima hal tersebut alih-alih berpura-pura sebaliknya (menghilangkannya akan memerlukan oracle VRF yang biaya per taruhannya melebihi nilai harapan kasino pada taruhan kecil). Yang membatasinya:
  • Waktu masuknya transaksi tidak bisa dikendalikan sepenuhnya: jaringanlah, bukan pengirim, yang menentukan slot persis tempat sebuah transaksi masuk.
  • Setiap input dipublikasikan, sehingga pola penundaan pengiriman dan setiap penyimpangan tingkat kemenangan agregat dari peluang yang tertera dapat diukur oleh siapa pun dari data publik. Penyalahgunaan yang sistematis tidak mungkin tetap tersembunyi.

Bagaimana cara memverifikasi lemparan Dice?

Setiap permainan memancarkan event DiceBetSettled di transaksi taruhan itu sendiri, yang memuat semua yang Anda perlukan: slothash, user, nonce, target_bps, direction, win_chance_bps, roll, multiplier_bps dan is_win, beserta rincian penyelesaian lengkapnya. Untuk memverifikasi:
  1. Buka transaksi taruhan di Solana explorer dan baca field event-nya (layar Dice di aplikasi menampilkan input keadilan sesi Anda, dan riwayat taruhan Anda menautkan ke transaksinya).
  2. Hitung ulang sha256("dice" ‖ slothash ‖ user ‖ nonce), ambil 16 byte pertama secara big-endian modulo 10,000, lalu bandingkan dengan roll di event.
  3. Periksa keputusan menang/kalah (roll < target untuk Di bawah, roll > target untuk Di atas) serta pengalinya terhadap formula di atas.
Lihat Verifikasi ronde untuk tips umum membaca data event dari explorer. Untuk cara memainkan game ini, lihat panduan game Dice.