Langsung ke konten
Clash Watchdoghitungan lab
Menu

Provably fair dijelaskan, tanpa dan dengan matematika

Topik
Keadilan & verifikasi
Diterbitkan
Diperbarui
Panjang
8 menit baca
Di halaman ini

"Provably fair" adalah teknik kriptografis yang memungkinkan pemain memverifikasi, setelah kejadian, bahwa operator game tidak mengubah hasil sebuah ronde. Teknik ini memakai hashing SHA-256 untuk mengunci seed acak sebelum permainan dan membukanya sesudahnya: jika seed yang dibuka cocok dengan hash yang sudah dikunci sebelumnya, ronde itu tidak diutak-atik. Artikel ini menjelaskan konsepnya secara intuitif, menunjukkan matematikanya bagi yang menginginkannya, dan menguraikan apa yang dibuktikan dan tidak dibuktikan oleh provably fair.

Apa sebenarnya arti "provably fair"?

"Provably fair (dapat dibuktikan adil)" berarti satu hal yang tepat: Anda dapat membuktikan, setelah kejadian, bahwa operator game tidak mengubah hasil sebuah ronde setelah taruhan Anda dipasang.

Hanya itu. Bukan "game-nya adil". Bukan "Anda akan menang". Bukan "peluangnya bagus". Hanya: operator sudah mengunci hasilnya sebelum Anda bertaruh, dan Anda dapat memverifikasi bahwa komitmen itu ditepati.

Jaminan ini lebih sempit daripada yang dikira kebanyakan pemain. Tetapi jaminan ini juga nyata, dan dalam industri yang secara bawaan serba tertutup, bahkan jaminan sempit yang didukung matematika layak dipahami.

Konsep ini tumbuh di komunitas judi mata uang kripto, tempat operator awal perlu memecahkan masalah kepercayaan: bagaimana meyakinkan pemain di satu negara bahwa server di negara lain tidak curang, ketika tidak ada regulator di antaranya? Jawabannya adalah kriptografi, khususnya fungsi hash.

Kini, rancangan provably fair dipakai oleh game penyedia seperti Aviator, Mines, dan Plinko dari Spribe, serta oleh game crash yang dijalankan situs seperti Stake Crash. Banyak game populer lain memakai sistem yang berbeda. JetX mengunci hasilnya sebagai hash sebelum membukanya tetapi tidak memublikasikan cara menghitung ulang hasilnya, sehingga JetX berkomitmen hash, bukan provably fair. Spaceman dan High Flyer mengandalkan RNG (generator angka acak) yang disertifikasi lab pengujian, yang tidak dapat diperiksa pemain ronde demi ronde. Setiap pendekatan memiliki kekuatan dan kelemahan, yang kami bahas di bawah.

Bagaimana provably fair bekerja tanpa matematika?

Bayangkan sebuah amplop tersegel.

  1. Sebelum ronde, operator menulis titik crash di selembar kertas, memasukkannya ke amplop, menyegelnya, dan meletakkannya di meja. Semua orang dapat melihat amplop tersegel itu. Tidak ada yang dapat melihat isinya.

  2. Taruhan Anda dipasang. Amplopnya sudah tersegel. Operator tidak dapat mengubah isinya.

  3. Ronde berjalan. Pengali naik lalu crash.

  4. Setelah ronde, operator membuka amplop. Semua orang dapat melihat bahwa angka di dalamnya sama dengan titik crash. Amplop sudah disegel sebelum taruhan dipasang, maka operator tidak mengubah hasilnya.

Itulah seluruh konsepnya. Di dunia fisik, dibutuhkan pihak ketiga tepercaya untuk memegang amplop. Di dunia digital, amplop diganti dengan fungsi hash kriptografis, operasi matematis yang mudah dihitung ke satu arah dan secara praktis tidak mungkin dibalik.

Hash adalah amplop tersegel. Seed (nilai acak awal) adalah kertas di dalamnya. Ketika operator membuka seed setelah ronde, siapa pun dapat menghitung hash-nya dan memastikan hash itu cocok dengan hash yang dipublikasikan sebelum ronde. Jika cocok, komitmen itu ditepati.

Bagaimana cara kerjanya dengan matematika: SHA-256 dan HMAC?

Bagi pembaca yang menginginkan detail teknis, berikut bentuk umumnya. Game crash provably fair biasanya mengikuti salah satu dari dua rancangan. Rancangan mana yang dipakai sebuah game dijelaskan dalam dokumentasi keadilannya sendiri; uraian di bawah ini bersifat umum dan bukan uraian tentang situs tertentu.

Rancangan 1: rantai hash yang dikunci di muka, untuk ronde bersama. Rantai hash yang panjang dibuat di muka, dengan setiap hash merupakan hash dari hash berikutnya. Hash terakhir dipublikasikan sebelum permainan, dan rantainya dipakai mundur, satu hash per ronde. Setiap hash ronde yang dibuka harus menghasilkan hash yang dibuka sebelumnya bila di-hash, sehingga tidak ada ronde yang dapat ditukar atau disisipkan tanpa memutus rantai.

Rancangan 2: server seed, client seed, dan nonce, per pemain.

  • Server seed: teks acak yang dibuat oleh server game. Dirahasiakan sampai dipensiunkan.
  • Hash server seed: hash SHA-256 dari server seed, dipublikasikan sebelum ronde apa pun dimainkan dengannya.
  • Client seed: teks yang biasanya dapat diatur pemain, sehingga server tidak mengendalikan setiap masukan.
  • Nonce: penghitung yang naik satu pada setiap taruhan.

Untuk setiap taruhan, game menghitung hash berkunci (HMAC-SHA256) dari client seed dan nonce, dengan server seed sebagai kuncinya, lalu mengubah hash itu menjadi hasil dengan rumus yang didokumentasikannya. Rumusnya berbeda antar-game. Pola yang umum membaca sebagian hash sebagai angka acak seragam dan mengubahnya sehingga peluang mencapai pengali mana pun turun sebanding dengan besar pengali itu.

Verifikasi setelah seed dipensiunkan. Setelah server seed dibuka, pemain dapat:

  1. Menghitung hash SHA-256 dari server seed yang dibuka.
  2. Memastikan hash itu cocok dengan hash yang dipublikasikan sebelum permainan.
  3. Menghitung ulang HMAC untuk taruhan mana pun dengan server seed yang dibuka, client seed miliknya, dan nonce.
  4. Menerapkan rumus yang didokumentasikan game dan memastikan hasilnya sama dengan yang terjadi.

Jika langkah 2 gagal, komitmen itu dilanggar. Jika setiap langkah cocok, game menepati komitmennya untuk setiap taruhan yang dibuat dengan seed itu.

Contoh lengkap (nilai ilustratif, bukan dari game nyata; label di dalam blok kode dibiarkan dalam bahasa Inggris):

Server seed (revealed later, illustrative):
  "illustrative-server-seed-7c41"

SHA-256 of the server seed (published before play):
  "85a9b32448bc3b3bbe6087200611cc1838ba4e2f569a73a5e643a84eeabc8a6f"

Client seed: "illustrative-client-seed"
Nonce: 42

HMAC-SHA256(key = server seed, message = "illustrative-client-seed:42"):
  "c1b8ab5363a5d7bde17398e8a48818a5bdd42bbdb58739c3beba377041ebf52a"

Kedua hash di atas nyata: Anda dapat menghitungnya ulang sendiri. "Revealed later" berarti seed dibuka kemudian, dan "published before play" berarti hash dipublikasikan sebelum permainan. Langkah terakhir, dari HMAC itu ke sebuah pengali, bergantung pada rumus yang didokumentasikan game tertentu, jadi kami tidak menampilkan pengali rekaan di sini. Langkah pertama, mencocokkan seed dengan hash yang dipublikasikan, dapat diperiksa dengan pemeriksaan komitmen hash kami.

Apa yang dibuktikan provably fair, dan apa yang TIDAK dibuktikannya?

Inilah bagian terpenting dari artikel ini. Provably fair membuktikan satu hal yang spesifik dan sempit. Pemain, jurnalis, bahkan sebagian operator sering melebih-lebihkan apa yang dijaminnya.

Yang dibuktikan provably fair:

  • Titik crash setiap ronde sudah ditentukan sebelum taruhan dipasang.
  • Operator tidak mengubah titik crash setelah melihat taruhan Anda.
  • Server seed yang sama menghasilkan hash yang sama: konsistensinya dapat diverifikasi secara matematis.

Yang TIDAK dibuktikan provably fair:

  • Provably fair tidak membuktikan bahwa RTP (return to player / tingkat pengembalian) game sesuai klaim operator. Operator dapat menetapkan RTP 90% (sangat merugikan pemain) dan tetap lolos setiap pemeriksaan hash. Hash membuktikan komitmen, bukan keadilan parameter.

  • Provably fair tidak membuktikan bahwa keacakannya berkualitas tinggi. Jika server seed dibuat dengan buruk (entropi rendah), titik crash yang dihasilkan bisa diprediksi oleh seseorang yang tahu cara seed itu dibuat. Hash tetap terverifikasi, karena komitmennya ditepati.

  • Provably fair tidak membuktikan bahwa operator tidak memanipulasi rotasi seed. Operator dapat merotasi server seed pada saat-saat yang dipilih secara strategis: misalnya, setelah taruhan besar dipasang tetapi sebelum ronde dimulai. Ini disebut serangan rotasi, dan tidak terdeteksi oleh verifikasi hash standar. Rotasi seed menjelaskan gagasannya dan data apa yang dibutuhkan untuk mengujinya.

  • Provably fair tidak membuktikan bahwa client seed tidak dimanipulasi. Jika platform yang membuat client seed (alih-alih membiarkan pemain memilih sendiri), operator secara teori dapat memilih client seed yang menghasilkan hasil yang menguntungkan. Penerapan yang kuat membiarkan pemain mengatur client seed sendiri.

Itulah sebabnya menghitung ronde penting di samping pemeriksaan hash. Pemeriksaan hash memberi tahu bahwa operator menepati sebuah komitmen. Hitungan ronde yang besar, dipublikasikan dengan ukuran sampel dan interval 95%, memberi tahu apakah pengembalian keseluruhan dan distribusinya sesuai dengan klaim. Lab memublikasikan hitungan itu per game setelah sebuah game melewati sampel minimumnya; lihat daftar game.

Serangan apa yang bisa lolos dari provably fair?

Memahami batas provably fair membutuhkan pemahaman atas serangan-serangan spesifik yang tidak dicegahnya:

Serangan parameter. Operator menetapkan RTP yang tidak diungkapkan atau disajikan keliru. Setiap ronde terverifikasi dengan benar karena rantai hash-nya jujur, tetapi rumus matematis yang mengubah hash menjadi pengali memuat parameter tersembunyi yang menggeser distribusi demi keuntungan bandar. Deteksinya membutuhkan perbandingan distribusi titik crash teramati dengan distribusi teoretis untuk RTP yang diklaim. Inilah yang diukur hitungan ronde lab: pengembalian pada setiap target cash out dan bentuk distribusinya, masing-masing dengan intervalnya.

Serangan waktu rotasi. Operator mengawasi taruhan besar yang masuk dan merotasi server seed pada saat yang memastikan beberapa ronde berikutnya crash rendah. Setiap ronde individual tetap terverifikasi, karena hash seed baru sudah dikunci sebelum ronde-ronde itu, tetapi waktu rotasinya berkorelasi dengan perilaku pemain. Deteksinya membutuhkan analisis statistik apakah rotasi mengelompok di sekitar peristiwa taruhan tinggi. Rotasi seed membahas hal ini secara rinci.

Serangan entropi. Operator membuat server seed dengan entropi rendah, misalnya dengan PRNG yang lemah atau seed yang dapat ditebak. Titik crash yang dihasilkan lolos verifikasi hash dan bisa tampak sepenuhnya acak, tetapi seseorang yang tahu cara seed dibuat dapat memprediksinya. Risikonya adalah keterdugaan, bukan distribusi yang tampak janggal, itulah sebabnya seed semestinya berasal dari sumber keacakan yang kuat dan sebabnya client seed yang diatur pemain membantu.

Tidak satu pun serangan ini mudah dijalankan dalam skala besar tanpa terdeteksi. Tetapi serangan-serangan ini mungkin, dan itulah sebabnya "provably fair" saja tidak cukup. Provably fair adalah syarat minimum yang perlu, tetapi belum cukup.

Bagaimana memverifikasi ronde provably fair sendiri?

Verifikasi tidak membutuhkan perangkat lunak khusus. Secara umum:

  1. Catat komitmen yang ditampilkan sebelum permainan: hash server seed, atau ujung rantai hash yang dipublikasikan.
  2. Tunggu pembukaannya. Seed yang sedang dipakai tidak dapat diperiksa sampai dipensiunkan dan dibuka.
  3. Periksa komitmennya. Hitung SHA-256 dari nilai yang dibuka dan bandingkan dengan hash yang dipublikasikan sebelum permainan. Pemeriksaan komitmen hash kami melakukannya di browser Anda dan tidak mengirim apa pun kepada kami.
  4. Hitung ulang hasilnya, jika game mendokumentasikan rumusnya, dan bandingkan dengan titik crash yang Anda lihat.

Untuk panduan langkah demi langkah yang rinci dengan kode yang dapat disalin-tempel, lihat Cara memverifikasi hash provably fair sendiri.

Hal terpenting yang perlu dipahami tentang verifikasi bukan proses teknisnya, melainkan struktur insentifnya. Provably fair bekerja bukan karena setiap pemain memverifikasi setiap ronde, melainkan karena setiap pemain bisa. Ancaman verifikasi yang kredibel itulah mekanisme yang menjaga operator tetap jujur.

Dapatkah provably fair membantu memprediksi ronde berikutnya?

Tidak. Seed baru dibuka setelah ronde-ronde yang dihasilkannya selesai, sehingga verifikasi selalu melihat ke belakang. Aplikasi yang mengaku membaca hasil berikutnya dari hash atau dari ronde-ronde terbaru tidak dapat melihat seed rahasianya; lihat pemeriksaan bot prediktor. Hasil lalu juga tidak mengubah hasil berikutnya: riwayat menggambarkan perilaku. Riwayat tidak memprediksi ronde berikutnya. Pemeriksaan pola dan jam tertentu menjelaskan alasannya.

Apakah halaman ini berguna?

Anonim: tanpa akun dan tanpa cookie.

Pertanyaan

Jika sebuah game provably fair, apakah itu berarti saya akan menang?
Tidak. Provably fair tidak ada hubungannya dengan menang atau kalah. Provably fair menjamin satu hal tertentu: operator sudah mengunci hasil ronde sebelum taruhan Anda dipasang dan tidak mengubahnya sesudahnya. Keunggulan bandar tetap berlaku. Jika bermain cukup lama, Anda tetap akan merugi dalam jangka panjang. Provably fair berarti Anda kalah oleh matematika, bukan oleh manipulasi; itu perbedaan yang bermakna, tetapi bukan jalan menuju keuntungan.
Apakah game provably fair masih bisa mencurangi saya?
Ya, dengan cara-cara tertentu. Provably fair membuktikan bahwa ronde-ronde individual tidak diutak-atik setelah dikunci. Provably fair tidak membuktikan bahwa parameter game adil. Operator dapat menetapkan RTP 85% (yang sangat merugikan pemain) dan tetap lolos setiap pemeriksaan hash provably fair. Provably fair juga tidak mencegah manipulasi waktu komitmen: operator dapat merotasi server seed pada saat-saat yang menguntungkan bandar. Pemeriksaan hash tidak dapat mengungkap kedua masalah itu; yang satu membutuhkan hitungan banyak ronde, yang lain membutuhkan pemeriksaan waktu seed.
Mengapa tidak semua game crash memakai provably fair?
Karena provably fair mengharuskan operator memublikasikan skema komitmen dan verifikasinya, yang berarti pemain yang paham dapat mengauditnya. Platform kasino teregulasi sering lebih memilih sertifikasi RNG dari lab pengujian (GLI, eCOGRA, BMM), yang kurang transparan bagi pemain tetapi memenuhi persyaratan regulasi. Sebagian operator berpendapat bahwa sertifikasi RNG lebih ketat karena melibatkan pengujian laboratorium independen, sedangkan provably fair menyertifikasi dirinya sendiri. Kedua argumen ada benarnya. Yang ideal adalah keduanya: provably fair untuk verifikasi per ronde, ditambah pengukuran independen atas pengembalian keseluruhan.
Apa beda provably fair dan sertifikasi RNG?
Provably fair memungkinkan pemain memverifikasi ronde-ronde individual sendiri. Sertifikasi RNG memungkinkan laboratorium berlisensi memverifikasi generator angka acak secara berkala. Provably fair berlangsung terus-menerus dan transparan; sertifikasi RNG berkala dan tertutup. Provably fair hanya dapat memastikan bahwa komitmen ditepati; sertifikasi RNG menilai kualitas keacakannya sendiri. Keduanya menguji hal yang berbeda, dan tidak satu pun sepenuhnya menggantikan yang lain.
Apakah saya perlu memverifikasi setiap ronde sendiri?
Tidak, dan dalam praktiknya hampir tidak ada yang melakukannya. Nilai provably fair bukan karena setiap pemain memverifikasi setiap ronde, melainkan karena setiap pemain bisa melakukannya. Ancaman verifikasi itulah yang mencegah kecurangan. Jika operator tahu bahwa pemain mana pun, kapan pun, dapat membuktikan sebuah ronde dimanipulasi, dorongan untuk memanipulasi turun mendekati nol. Anda dapat sesekali memverifikasi beberapa ronde sebagai pemeriksaan acak. Apakah pengembalian keseluruhan sesuai dengan klaim adalah pertanyaan terpisah, yang dijawab dengan menghitung banyak ronde.

Semua artikel