fairnessprovably fairdice
Bisa. Dadu daring dilempar di server yang tidak kau lihat, dan tak ada yang secara fisik mencegah pengelola mengubah sebuah angka sebelum angka itu sampai ke papanmu. Hasil saja tidak akan pernah membuktikan apa pun ke arah mana pun, jadi pertanyaan yang jujur bukan apakah kecurangan mungkin terjadi. Pertanyaannya adalah apakah sebuah permainan bisa membuktikan bahwa itu tidak terjadi.
Kami membuat permainan backgammon, jadi kami tidak netral di sini. Justru karena itu kami ingin menjawabnya dengan benar, termasuk bagian yang tidak nyaman.
Mengapa dadu terasa dicurangi di setiap situs?
Karena ragam hasil backgammon itu kejam dan ingatan manusia berat sebelah. Dua dadu jatuh dalam tiga puluh enam cara; deretan bukan kesalahan, deretan itu jaminan, dan malam ini di suatu tempat sebuah server jujur akan mengeluarkan empat dobel berturut-turut melawan orang yang memainkan setiap pulnya dengan benar. Kau ingat 5-5 yang memukul pulmu yang terbuka. Kau tidak ingat lemparan ajaib yang menyelamatkanmu Selasa lalu. Kekalahan menempel, penyelamatan menguap, dan setelah tiga permainan buruk beruntun dadu terasa personal. Dadu terasa personal juga di papan sungguhan, di kedai sungguhan. Tanyakan pada siapa pun yang sudah empat puluh tahun mendorong pul kayu.
Dan inilah jebakannya. Permainan yang dicurangi akan terasa persis sama. Deretan tidak membuktikan apa pun ke arah mana pun, jadi kalau buktimu adalah rasa dadu, kau tidak bisa membedakan server jujur dari server curang. Kami pun tidak bisa. Ini bukan pembelaan untuk dadu daring. Inilah justru masalahnya.
Apakah sebuah situs benar-benar bisa mengatur dadunya?
Secara teknis bisa, dan itu bahkan tidak sulit. Server melihat seluruh papan sebelum melempar. Pengelola yang ingin curang bisa:
- Memiringkan beberapa lemparan tiap seratus pada saat yang paling menentukan: lemparan yang memukul, masuk dari bar yang gagal, dobel yang membalikkan permainan yang sudah kalah.
- Menjaga pertandingan tetap ketat secara buatan, agar sesi berlangsung lebih lama dan kekalahan terasa nyaris menang.
- Diam-diam menguntungkan pihak yang menjadi kepentingan pengelola.
- Melakukannya cukup jarang sehingga dadu tetap lolos setiap uji statistik yang bisa dijalankan pemain.
Kami tidak menuduh situs tertentu melakukan ini. Kami mengatakan arsitekturnya memungkinkan. Server tertutup adalah ruang terkunci: pengelola melempar sendirian, melaporkan sebuah angka, dan meminta kau percaya. Dari luar pintu, pengelola jujur dan tidak jujur tampak sama persis.
Bukankah RNG bersertifikat membuktikan dadunya adil?
Bacalah apa yang sebenarnya dicakup sertifikat itu. Laboratorium menguji sebuah pembangkit: algoritme di atas meja uji, menghasilkan jutaan angka yang lolos pemeriksaan statistik. Itu menyertifikasi komponennya. Itu tidak mengatakan apa pun tentang pengiriman, yaitu apakah angka yang sampai ke papanmu berasal dari pembangkit itu, pada saat itu, tanpa diubah di tengah jalan. Timbangan bersertifikat di ruang belakang tidak membuktikan rotimu ditimbang di sana.
Sertifikasi juga hanyalah potret sesaat. Server yang berjalan terus dipasang ulang, dan jalur kode antara pembangkit dan permainanmu terus berubah lama setelah laboratorium pulang. Jadi RNG bersertifikat menjawab pertanyaan yang sebenarnya tidak ditanyakan siapa pun. Pertanyaan yang penting bukan apakah ada dadu bagus di suatu tempat di gedung itu. Pertanyaannya adalah apakah permainanmu memperolehnya, pada setiap lemparan, malam ini.
Apa yang sebenarnya diubah commit-reveal?
Ia memindahkan keadilan dari janji menjadi bukti. Sebelum permainan dimulai, server mengambil benih rahasia dan menerbitkan sidik jarinya, sebuah hash SHA-256 yang disebut komitmen. Setiap lemparan dalam permainan lalu diturunkan dari benih itu, satu perhitungan HMAC-SHA256 per lemparan, berurutan. Ketika permainan berakhir, server membuka benihnya.
Kini siapa pun bisa memeriksa dua hal. Hash benih yang dibuka: hasilnya harus cocok dengan komitmen yang diterbitkan sebelum langkah pertama. Hitung ulang lemparannya: harus cocok dengan setiap angka yang muncul di papan. Jika server mengubah satu dadu saja setelah melihat posisimu, hitungannya tidak akan pas. Kecurangan berhenti menjadi kecurigaan yang tak bisa diuji dan menjadi kebohongan yang bisa ditangkap.
Dadu yang dikunci sebelum permainan tidak bisa bereaksi terhadap permainan.
Itulah intinya. Kecurangan yang berguna sifatnya reaktif: melihat pul terbuka, lalu mengeluarkan angka yang memukul. Commit-reveal mengambil mata server, karena seluruh urutan sudah ditetapkan sebelum langkah pembuka dan setiap gangguan setelah komitmen bisa dideteksi secara matematis. Yang tidak dilakukannya adalah membuat dadu menjadi baik hati. Urutannya jujur, bukan penuh belas kasihan. Kau tetap akan terjebak di bar pada saat paling buruk, dan sekarang kau bisa membuktikan bahwa itu adil.
Bagaimana memverifikasi permainan dalam praktiknya?
Beginilah kami membangunnya di Orion. Setiap permainan di server kami membawa komitmen yang dibuat sebelum lemparan pertama, server memvalidasi setiap langkah di sumbernya, dan memeriksa permainan yang sudah selesai memakan waktu sekitar satu menit:
Buka pemverifikasi. Kunjungi orion.arthea.ai/verify di peramban mana pun. Tak ada yang perlu dipasang, tak ada akun yang perlu dibuat.
Masukkan ID permainan. Setiap permainan server di Orion punya satu. Tempel di sana.
Biarkan peramban yang menghitung. Halaman itu menghitung ulang komitmen dan setiap lemparan memakai Web Crypto, secara lokal, di peramban kamu. Kata-kata kami tidak ikut dalam pemeriksaan. Jika satu angka saja diubah, perhitungan ulang akan mengatakannya.
Pemverifikasi sudah aktif hari ini. Permainannya sendiri sudah selesai, dan pintu di orion.arthea.ai/go membawa tautan App Store dan Google Play serta selalu menunjukkan apa yang tersedia sekarang. Bagaimanapun, jawaban jujurnya tetap. Ya, backgammon daring bisa dicurangi. Perbaikannya bukan janji yang lebih manis. Perbaikannya adalah dadu yang memperlihatkan hitungannya.