TON Dice
Indonesia
Main

Keadilan terbukti

Hasil setiap permainan sudah dikunci sebelum taruhan dipasang dan bisa dihitung ulang siapa saja — kata-kata kami tidak perlu dipercaya begitu saja.

Cara kerjanya

Di kasino biasa kamu melihat sendiri kartu dibalik, dadu jatuh, roda berputar. Di permainan online semua itu terjadi di dalam sebuah program — dan programnya itulah yang harus diperiksa.

Sebelum taruhan, server menerbitkan hash SHA-256 dari benih rahasianya. Mengubah benih setelah itu mustahil: hash-nya akan langsung membongkarnya. Setelah pasangan benih diganti, benih server yang lama diungkap — dan setiap lemparan yang dibuat dengan pasangan itu bisa dihitung ulang dengan rumus di bawah.

Komisi kasino 1%. Pembayaran dihitung sebagai taruhan × 99 ÷ peluang dalam persen, jadi 99% dari nilai harapan kembali ke pemain. Cuma itu yang membedakan permainan ini dari lemparan koin yang adil; tidak ada potongan lain.

Benih (seed)

Satu pasangan benih terdiri dari milikmu dan milik kami. Benih server kami buat acak dan hash-nya langsung ditampilkan: benihnya sendiri tetap rahasia sampai pasangannya diganti, kalau tidak lemparan berikutnya sudah bisa diketahui lebih dulu. Benih klien kamu sendiri yang menentukan, dan tanpa itu lemparan tidak bisa dihitung — hasilnya bergantung pada kedua pihak.

Bahan ketiga adalah nonce, nomor taruhan di dalam pasangan yang sedang dipakai. Angkanya naik satu setiap permainan, jadi dua lemparan dengan pasangan yang sama tidak mungkin berangkat dari data yang sama.

Bagaimana angkanya muncul

Benih server, benih klien, dan nonce digabung jadi satu HMAC-SHA512. Hasilnya 128 karakter hex, dibaca dalam jendela lima karakter: nilai pertama yang kurang dari 1.000.000 diambil modulo 10.000 — keluarlah lemparan dari 0 sampai 9999, yaitu dari 0.00 sampai 99.99.

Ambang penolakan itu ada demi keadilan: jendela lima karakter hex menghasilkan angka sampai 1.048.575, dan rentang itu tidak habis dibagi 10.000 — tanpa penolakan, hasil kecil akan lebih sering muncul daripada hasil besar. 1.000.000 habis dibagi, jadi ke-10.000 hasil sama-sama mungkin. Peluang ke-25 jendela ditolak semua ada di kisaran 10⁻³³.

hex = HMAC_SHA512(key = serverSeed, msg = clientSeed + "-" + nonce)

Baca hex dalam jendela 5 karakter berurutan (0-4, 5-9, …):
nilai pertama < 1 000 000 → roll = nilai % 10000
(jika ke-25 jendela ditolak semua — roll = 9999)

Di bawah: menang jika roll < target · Di atas: menang jika roll > target
Pembayaran = taruhan × 9900 / chanceUnits (dibulatkan ke bawah) · komisi 1%

Kode mesin permainan

Persis inilah yang menghitung lemparan di server, dan persis inilah yang menghitungnya ulang di peramban kamu. Kesesuaian kedua sisi dikunci oleh sebuah test.

const WINDOW = 5;          // karakter hex per jendela: 20 bit, 0..1048575
const REJECT = 1_000_000;  // kelipatan 10000 terbesar yang muat di satu jendela

function roll(serverSeed, clientSeed, nonce) {
  const hex = createHmac("sha512", serverSeed)
    .update(`${clientSeed}-${nonce}`)
    .digest("hex");                        // 128 karakter

  // jendela 5 karakter hex berurutan: 0-4, 5-9, ... 120-124
  for (let i = 0; i * WINDOW + WINDOW <= hex.length; i++) {
    const lucky = parseInt(hex.slice(i * WINDOW, i * WINDOW + WINDOW), 16);
    if (lucky < REJECT) return lucky % 10000;   // 0..9999
  }
  // ke-25 jendela ditolak semua (peluang ~1e-33)
  return 9999;
}

// pembayaran: komisi 1%, dibulatkan ke bawah
const payout = (amount, chanceUnits) => amount * 9900n / BigInt(chanceUnits);

Cara memeriksa permainanmu sendiri

Di Mini App: Keadilan di bar bawah, atau «Verifikasi permainan» di kartu taruhan mana pun.

  1. Tab «Benih» — hash benih server yang sedang berlaku ada di sini. Hash itu sudah dikunci sebelum taruhan-taruhanmu.
  2. Ganti pasangan benih. Benih server yang sebelumnya akan diungkap; benih klienmu tetap milikmu.
  3. Tab «Terungkap» — benih yang sudah diungkap ada di sebelah hash-nya. Cek sendiri: SHA-256 dari benih itu harus sama dengan hash yang ditampilkan sebelum taruhan.
  4. Tab «Verifikasi» — tempel benih server, benih klien, dan nonce dari taruhan yang mau kamu periksa. Lemparannya dihitung ulang langsung di peramban kamu, lalu dibandingkan dengan hasil permainannya.

Perhitungannya jalan di perangkatmu dan tidak menyentuh server kami. Dengan rumus di atas kamu bisa mengulanginya di bahasa pemrograman mana pun — HMAC-SHA512 ada di mana-mana.