> ## 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.

# Bir turu doğrulayın

> Bitmiş bir turun herkese açık verilerle adım adım doğrulanması ve daha kısa Dice ile Mines kontrolleri.

Bitmiş herhangi bir turu, herkese açık zincir üstü verilerle, hesap ya da özel bir erişim gerekmeden kendiniz doğrulayabilirsiniz. Kontrol edilecek üç şey var: taahhüt hash'inin tur başlamadan önce yayımlandığı, açıklanan gizli değerin hash'inin bu taahhüde eşit olduğu ve herkese açık formül yeniden hesaplandığında turun ödeme yaptığı sonucun birebir elde edildiği.

Bu rehber bitmiş bir [Crash](/tr/docs/games/crash) turunu alıp baştan sona doğrular: operatörün gizli değerinin turdan **önce** taahhüt edildiğini ve crash noktasının tam olarak [herkese açık formülün](/tr/docs/provably-fair/crash) verdiği değer olduğunu. Özel bir erişime ihtiyacınız yok: her şey herkese açık zincir üstü verilerden gelir. Sonda kısa bir bölüm, her biri tek bir işlemden doğrulanan [Dice](#dice-and-mines) ve Mines'ı ele alır.

## Neyi kanıtlıyorsunuz?

1. **Taahhüt önce geldi.** Gizli değerin hash'i tur başlamadan önce zincirdeydi; yani sonuç, bahsinizden sonra seçilmiş olamaz.
2. **Gizli değer taahhütle eşleşiyor.** `sha256(secret)`, taahhüt edilen hash'e eşittir.
3. **Çarpan dürüst.** Formül gizli değerden ve blok hash'inden yeniden hesaplandığında, turun ödeme yaptığı crash noktası birebir elde edilir.

## 1. adım: Turun adillik verilerini uygulamada açın

Bahis geçmişinizi (ya da tur geçmişini) açın ve ayrıntılarını görmek için bitmiş bir tura tıklayın. Turun sonucunun yanında şunları bulursunuz:

* **Çöktüğü nokta**: doğrulanacak son çarpan.
* **Oyun gizli değeri hash'i**: açıklanan 32 baytlık gizli değer. Bir Solana gezgininde **commit işlemine** bağlantı verir.
* **Blok hash'i**: zincir entropisi olarak kullanılan Solana slot hash'i. **Tur başlangıç işlemine** bağlantı verir.
* **“Bu oyun adil mi? Adillik aracını kullanın”**: bu turun bilgileri önceden doldurulmuş olarak adillik doğrulama aracını açar. Araç, turun üç işlem imzasını (commit, blok hash'i, reveal) ve ağı getirir ve aşağıdaki her şeyi tek tıkla sizin için yeniden hesaplar.

Adillik aracı pratik yoldur. Bu sayfanın geri kalanı ise zincirden ve kendi bilgisayarınızdan başka hiçbir şeye güvenmeyen, tamamen bağımsız yoldur.

## 2. adım: Bir turun üç işlemi

| Adillik verisi | Zincir üstü talimat | Ne yayımlar |
| - | - | - |
| Commit işlemi | `start_new_round` | `sha256(secret)` taahhüdünü, bahisler açılmadan önce, `CrashRoundPrepared` olayında |
| Blok hash'i işlemi | `start_game` | Yakalanan Solana slot hash'ini, `CrashGameStarted` olayında; sonuç bu andan itibaren sabitlenir |
| Reveal işlemi | `crash` | Açıklanan gizli değeri ve son crash noktasını, `CrashRoundFinalized` olayında |

## 3. adım: Değerleri bir Solana gezgininden okuyun

Her işlemi tercih ettiğiniz gezginde (Solscan, Solana Explorer, SolanaFM…), uygulamanın çalıştığı ağda açın. İşlem sayfasında, çözümlenmiş program **olaylarını** (events) arayın (bazen “Logs” ya da “Instruction data” altında bulunur; programın IDL'sini tanıyan gezginler olay alanlarını adlarıyla çözümler).

Dört değeri toplayın:

* `commit_hash`: 32 bayt, commit işleminden.
* `blockhash`: 32 bayt, blok hash'i işleminden.
* `local_e`: 32 baytlık gizli değer, reveal işleminden.
* `crash_point_bps`: baz puan cinsinden son crash noktası, reveal işleminden (29948, 2.9948x demektir).

<Tip>
  **Kodlamalar**

  Gezginler 32 baytlık değerleri siteye göre hex, base58 ya da bayt dizisi olarak gösterir. Aşağıdaki betik **hex** bekler; gezgininiz base58 gösteriyorsa dönüştürün (herhangi bir base58 çözücü işinizi görür; önemli olan gösterim değil, bayt değerleridir).
</Tip>

## 4. adım: Sırayı kontrol edin

Gezginde commit işleminin ve blok hash'i işleminin **slot**'unu (ya da blok zamanını) karşılaştırın. Commit daha önce olmalıdır. Şemanın özü budur: gizli değer, birleştirileceği entropi henüz ortada yokken mühürlenmiştir.

## 5. adım: Crash noktasını yeniden hesaplayın

Bunu, 3. adımdaki üç hex dizesini doldurarak Node.js ile çalıştırın (bağımlılık gerekmez):

```js theme={null}
const { createHash } = require("node:crypto");
const sha256 = (buf) => createHash("sha256").update(buf).digest();

// ── Bunları turun zincir üstü olaylarından doldurun (hex, her biri 32 bayt) ──
const commit = Buffer.from("<commit_hash hex>", "hex"); // commit işleminden
const blockhash = Buffer.from("<blockhash hex>", "hex"); // blok hash'i işleminden
const secret = Buffer.from("<local_e hex>", "hex"); // reveal işleminden
const edgeBps = 150n; // turun oynandığı andaki kasa avantajı (bps); bkz. Ücretler ve limitler

// 1. Açıklanan gizli değer taahhütle eşleşmelidir
console.log("commitment ok:", sha256(secret).equals(commit));

// 2. Crash noktasını yeniden hesaplayın: programın çalıştırdığı tamsayı hesabının aynısı
const hash = sha256(Buffer.concat([blockhash, secret])); // önce blockhash, sonra secret
const X = BigInt(hash.readUInt32BE(0)); // ilk 4 bayt, big-endian
const TWO32 = 1n << 32n;
const cappedX = X < TWO32 - 1000n ? X : TWO32 - 1000n;
const raw = ((10000n - edgeBps) * TWO32) / (TWO32 - cappedX); // BigInt bölmesi aşağı yuvarlar
const crashBps = raw > 10000n ? raw : 10000n;

console.log("crash point:", `${Number(crashBps) / 10000}x`, `(${crashBps} bps)`);
```

İki kontrolün de geçmesi gerekir: `commitment ok: true` ve yazdırılan crash noktası turun **Çöktüğü nokta** çarpanına (ve reveal olayındaki `crash_point_bps` değerine) eşit olmalıdır. Öyleyse, kimseye güvenmeden, bu turun sonucunun tur başlamadan önce kilitlendiğini ve tam olarak herkese açık formülle hesaplandığını kanıtlamış olursunuz.

<h2 id="dice-and-mines">
  Dice ve Mines
</h2>

Anlık oyunlar da aynı şekilde, daha az işlemle doğrulanır:

* **Dice**: bahis başına bir işlem. `DiceBetSettled` olayı, türetmenin tüm girdilerini (`slothash`, `user`, `nonce`) ile birlikte `roll` ve ödeme bilgisini içerir. [Dice adilliği](/tr/docs/provably-fair/dice) sayfasındaki formülle yeniden hesaplayın.
* **Mines**: oyun başına iki işlem. Başlangıç işlemi tahta taahhüdünü ve slot hash'ini yayımlar; sonuçlandırma işlemi seed'i ve tahtanın tamamını açıklar. [Mines adilliği](/tr/docs/provably-fair/mines) sayfasındaki formülle yeniden hesaplayın.

## Bir şey tutmazsa

Önce olağan şüphelileri eleyin: hex beklenen yere yapıştırılmış bir base58 değeri, yanlış işlem (her turun üç işlemi vardır) ya da turun oynandığı andakinden farklı bir kasa avantajı (avantaj zincir üstü yapılandırmada tutulur ve üzerindeki her değişiklik de bir zincir üstü işlemdir).

Yine de gerçek bir uyuşmazlık görüyorsanız, bu sistem tam da bunu ortaya çıkarmak için var: veriler herkese açık ve kalıcıdır, dolayısıyla herkes kontrolünüzü yeniden çalıştırabilir. Tur numarasıyla destek ekibine ulaşın; gerçek bir taahhüt ya da formül uyuşmazlığının dürüst bir açıklaması olamayacağını unutmayın; şema da tam bu yüzden bunların gizlenmesini imkânsız kılar.
