> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mycryptocasino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ikhtisar provably fair

> Commit-reveal dalam bahasa sederhana, apa yang ditambahkan entropi chain, dan apa yang dapat Anda periksa sendiri.

<Frame>
  <img src="https://mintcdn.com/cyberiantechnology/AuuF3KYTE6qxTgZL/images/illustrations/banner-provably-fair.webp?fit=max&auto=format&n=AuuF3KYTE6qxTgZL&q=85&s=63cf96dd8fc1c2c3a2efba7008fcad44" alt="Banner provably fair" width="1376" height="516" data-path="images/illustrations/banner-provably-fair.webp" />
</Frame>

Setiap hasil game di My Crypto Casino dihasilkan oleh **skema commit-reveal yang dipadukan dengan entropi chain Solana**, dan dijalankan oleh program on-chain. Bagi Anda sebagai pemain, artinya ada dua hal:

1. **Hasilnya tidak dapat diubah setelah kejadian.** Operator mengunci kontribusinya (sebuah nilai rahasia) *sebelum* permainan dimulai, dengan memublikasikan sidik jari kriptografisnya (hash) di on-chain. Setelahnya, program menolak menyelesaikan (settle) ronde kecuali rahasia yang diungkap sama persis dengan sidik jari tersebut.
2. **Anda dapat memeriksa semuanya sendiri.** Semua input dan rumus pastinya bersifat publik. Setelah ronde atau taruhan mana pun, Anda dapat menghitung ulang hasilnya dari data on-chain dan membandingkannya dengan apa yang dibayarkan game.

Halaman ini menjelaskan skema provably fair (terbukti adil) tersebut dalam bahasa sederhana. Halaman per game memberikan rumus yang tepat, dan [Verifikasi ronde](/id/docs/provably-fair/verify-a-round) memandu Anda memeriksa ronde sungguhan langkah demi langkah.

<img src="https://mintcdn.com/cyberiantechnology/-ySqsND5p03qeamx/diagrams/id/commit-reveal-timeline.svg?fit=max&auto=format&n=-ySqsND5p03qeamx&q=85&s=7f41c513468d0cb73dbf4f9739c83ce2" alt="Commit, main, reveal, verifikasi: rahasia disegel on-chain sebelum permainan, diperiksa oleh program saat reveal, dan setiap hasil dapat dihitung ulang oleh siapa saja setelahnya" width="920" height="310" data-path="diagrams/id/commit-reveal-timeline.svg" />

<h2 id="the-three-building-blocks">
  Dari apa provably fair dibangun?
</h2>

**Rahasia yang sudah dikunci (commit).** Jika hasil harus tetap tersembunyi selama permainan (Crash, Mines), backend membuat rahasia acak 32 byte dan memublikasikan hash SHA-256-nya (*commitment*) di on-chain sebelum permainan dimulai. Hash bekerja seperti amplop tersegel: tidak mengungkap apa pun tentang rahasianya, tetapi begitu dipublikasikan, hanya rahasia yang persis sama yang dapat cocok dengannya. Saat rahasia diungkap di akhir, program sendiri yang menghitung hash-nya dan menolak transaksi jika tidak cocok dengan commitment.

**Entropi chain Solana.** Hasil tidak pernah bergantung pada rahasia saja. Hasil juga mencampurkan sebuah **slot hash**: hash dari slot Solana terbaru, yang dibaca program dari sysvar `SlotHashes` Solana pada momen yang telah ditentukan. Nilai ini dihasilkan oleh jaringan Solana, bukan oleh kasino, dan belum ada saat commitment dibuat.

**Rumus publik yang deterministik.** Hasil adalah fungsi matematis tetap dari input-input tersebut. Fungsi yang sama berjalan di dalam program on-chain (backend tidak bisa melaporkan hasil secara keliru; programlah yang menghitungnya), dan fungsi itu dipublikasikan di halaman-halaman ini agar Anda dapat menjalankannya sendiri.

<h2 id="the-flow">
  Bagaimana alur sebuah ronde, langkah demi langkah?
</h2>

```mermaid theme={null}
sequenceDiagram
    participant MCC as Backend MCC (operator)
    participant SOL as Program Solana
    participant You as Pemain

    Note over MCC,SOL: 1. Commit
    MCC->>SOL: Publikasikan commitment = sha256(rahasia)
    Note over You,SOL: 2. Main
    You->>SOL: Taruhan dipasang on-chain
    Note over SOL: 3. Entropi chain
    SOL->>SOL: Ambil slot hash Solana terbaru
    Note over MCC,SOL: 4. Reveal
    MCC->>SOL: Kirim rahasia
    SOL->>SOL: Verifikasi sha256(rahasia) cocok dengan commitment
    SOL->>SOL: Hitung hasil dengan rumus publik
    Note over You: 5. Verifikasi (kapan saja setelahnya)
    You->>SOL: Baca commitment, slot hash, dan rahasia dari chain
    You->>You: Hitung ulang hasil dan bandingkan
```

Dice memadatkan alur ini menjadi satu transaksi: tidak ada state tersembunyi yang perlu dilindungi, jadi sama sekali tidak ada rahasia operator. Hasil lemparan diturunkan dari slot hash, akun Anda, dan penghitung taruhan Anda, lalu diselesaikan dalam instruksi yang sama yang menariknya.

## Apa yang di-commit setiap game, dan kapan

| Game | Rahasia operator | Entropi chain | Hasil ditetapkan saat | Ditegakkan on-chain |
| - | - | - | - | - |
| [Crash](/id/docs/provably-fair/crash) | Rahasia 32 byte, di-commit **sebelum taruhan dibuka** | Slot hash yang diambil saat ronde dimulai | Awal ronde | Pemeriksaan commitment + titik crash dihitung oleh program saat reveal |
| [Dice](/id/docs/provably-fair/dice) | Tidak ada | Slot hash pada saat transaksi taruhan Anda masuk ke chain | Saat transaksi taruhan dimasukkan ke blok | Hasil lemparan diturunkan dan diselesaikan oleh program dalam satu instruksi |
| [Mines](/id/docs/provably-fair/mines) | Seed 32 byte, di-commit **dalam transaksi yang memulai game Anda** | Slot hash yang diambil dalam transaksi awal yang sama | Awal game, sebelum pilihan pertama Anda | Pemeriksaan seed + seluruh papan diturunkan ulang oleh program saat penyelesaian |

## Apa yang dijamin, dan apa yang diasumsikan

Kejujuran lebih penting daripada pemasaran di sini, jadi mari kita bicara secara tepat. Skema ini adalah **commit-reveal dengan entropi chain publik, bukan VRF** (verifiable random function). Berikut batas yang tepat antara apa yang *ditegakkan oleh kode* dan apa yang *bergantung pada perilaku operator*.

### Ditegakkan oleh program on-chain

* **Tidak ada penukaran hasil setelah commitment.** Program menghitung hash dari rahasia yang diungkap dan menolak penyelesaian apa pun yang tidak cocok dengan commitment yang dipublikasikan. Operator tidak dapat memilih rahasia lain setelah melihat jalannya ronde.
* **Entropi yang tidak dihasilkan operator.** Slot hash berasal dari jaringan Solana. Nilainya belum diketahui saat commitment dipublikasikan, dan kasino tidak membuatnya.
* **Hasil dihitung on-chain.** Titik crash, hasil lemparan dadu, dan papan Mines dihitung (atau diturunkan ulang dan diperiksa) oleh program itu sendiri. Backend tidak dapat melaporkan hasil yang tidak dihasilkan oleh rumus.
* **Dapat diaudit sepenuhnya oleh publik.** Setiap ronde dan taruhan memancarkan event on-chain yang memuat semua input penurunan dan hasilnya. Siapa pun, bukan hanya pemain yang terlibat, dapat menghitung ulang setiap hasil historis.

### Diasumsikan: catatan jujurnya

* **Pengaruh waktu.** Backend operator memilih *kapan* mengirim transaksi tertentu, sehingga memiliki pengaruh parsial atas *slot hash mana* yang diambil. Setiap halaman per game menjelaskan secara tepat apa yang bisa dan tidak bisa dicapai dengan hal ini untuk game tersebut.
* **Pembatalan dimungkinkan, tetapi hanya berupa refund.** Operator dapat membatalkan ronde Crash atau game Mines. Pembatalan selalu mengembalikan setiap taruhan secara penuh (program tidak punya cara untuk menyita dana melalui pembatalan), dan setiap pembatalan dicatat secara publik, sehingga frekuensi pembatalan dapat diaudit oleh siapa pun. Pembatalan yang sering akan menjadi jejak on-chain yang terlihat dari operator yang berbuat curang.
* **Papan Mines diketahui operator selama permainan.** Ini bersifat struktural: pembukaan kotak dilayani secara instan di luar chain (off-chain), dan pihak yang melayaninya pasti mengetahui papannya. Commitment menjamin papan sudah ditetapkan sebelum pilihan pertama Anda dan tidak dapat ditulis ulang setelahnya. Lihat [Keadilan Mines](/id/docs/provably-fair/mines) untuk cara persis hal itu ditegakkan.

### Mengapa menerima kompromi ini?

Karena itulah harga dari gameplay yang instan dan mulus, bukan jalan pintas. Setiap game berada tepat di titik yang seharusnya pada spektrum itu:

* **Mines**: melayani pembukaan kotak dalam hitungan milidetik secara struktural membutuhkan pihak yang sudah mengetahui papan. Alternatifnya (satu transaksi on-chain per klik, atau satu perjalanan pulang-pergi ke oracle per pembukaan) akan mengubah setiap kotak menjadi biaya dan waktu tunggu. Operator yang mengetahui papan tidak tergantikan untuk Mines yang terasa instan namun tetap diselesaikan on-chain; skema commitment ada untuk membatasi apa yang dapat dilakukan dengan pengetahuan itu.
* **Crash**: ronde live bersama membutuhkan seseorang untuk menjalankannya bagi semua pemain sekaligus. Itu adalah pilihan pragmatis, bukan keharusan struktural, dan karena itulah program dilengkapi jalur migrasi bawaan ke keacakan berbasis oracle (VRF), sebuah fase mendatang yang akan menghilangkan catatan soal waktu di mana pun hal itu layak secara ekonomi.
* **Dice**: ujung lain dari spektrum. Tidak ada yang perlu disembunyikan selama permainan, jadi sama sekali tidak ada rahasia operator. Ketika menghilangkan kepercayaan pada operator tidak memakan biaya apa pun, desainnya menghilangkannya.

Singkatnya: operator menjalankan game, dan chain membuat kecurangan menjadi **mustahil** (apa pun setelah commitment) atau **terdeteksi secara publik** (pola waktu, frekuensi pembatalan, statistik tingkat kemenangan).

<Info>
  **Keadilan hasil vs. penyimpanan dana**

  Bagian ini membahas cara *hasil* dihasilkan. Cara deposit, saldo, dan penarikan disimpan on-chain adalah topik tersendiri; lihat [Arsitektur on-chain](/id/docs/security/on-chain-architecture).
</Info>

## Verifikasi sendiri

* Di aplikasi, setiap ronde Crash yang selesai menampilkan data keadilannya (rahasia yang diungkap, block hash, dan tautan ke transaksi on-chain) di detail ronde, beserta alat verifikasi keadilan sekali klik.
* Dice dan Mines memublikasikan setiap input penurunan di event penyelesaian dalam transaksi taruhan itu sendiri.

[Verifikasi ronde](/id/docs/provably-fair/verify-a-round) memandu seluruh prosesnya, dari data di aplikasi hingga menghitung ulang hasil dengan beberapa baris kode.
