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

# Tính công bằng của Crash

> Những gì được cam kết, khi nào kết quả được cố định, công thức, và giới hạn của cơ chế.

Hệ số nhân của một ván Crash được quyết định trước khi đóng cược và không thể thay đổi sau đó. Backend công bố hash SHA-256 của một giá trị bí mật ngẫu nhiên on-chain trước khi mở cược, chương trình trộn thêm một slot hash của Solana khi ván bắt đầu, và giá trị bí mật được công bố lúc thanh toán để bất kỳ ai cũng có thể tính lại điểm nổ và kiểm tra.

Trang này trình bày cơ chế chính xác đằng sau mỗi ván [Crash](/vi/docs/games/crash): những gì được cam kết, khi nào kết quả được cố định, công thức chính xác, và giới hạn thẳng thắn của cơ chế. Nếu chưa đọc, hãy đọc [Tổng quan công bằng có thể kiểm chứng](/vi/docs/provably-fair/overview) trước; trang đó giải thích commit-reveal bằng ngôn ngữ dễ hiểu.

<h2 id="the-life-of-a-round">
  Điều gì diễn ra on-chain trong một ván Crash?
</h2>

Mỗi ván Crash được tạo thành từ ba giao dịch on-chain, theo thứ tự sau:

1. **Cam kết**: trước khi mở cược, backend tạo ngẫu nhiên một giá trị bí mật 32 byte và công bố hash SHA-256 của nó on-chain (chỉ lệnh `start_new_round`). Đây là bản cam kết: kể từ lúc này, chỉ đúng giá trị bí mật đó mới có thể thanh toán ván. Bản cam kết được công khai trong sự kiện `CrashRoundPrepared` của giao dịch.
2. **Đặt cược**: người chơi đặt cược. Giá trị bí mật vẫn được giữ kín; bản cam kết đảm bảo nó không thể bị đánh tráo.
3. **Bắt đầu ván / ghi nhận entropy**: khi ván bắt đầu (chỉ lệnh `start_game`), chương trình đọc **slot hash gần nhất** từ sysvar `SlotHashes` của Solana và lưu vào ván. Ứng dụng gọi giá trị này là *block hash* của ván. **Lúc này điểm nổ đã được xác định hoàn toàn** (nó là một hàm thuần của slot hash đã lưu và giá trị bí mật đã cam kết), nhưng ai không biết giá trị bí mật thì chưa thể tính ra. Giá trị này được công khai trong sự kiện `CrashGameStarted`.
4. **Ván diễn ra**: hệ số nhân tăng dần và người chơi chốt lời.
5. **Tiết lộ**: backend gửi giá trị bí mật (chỉ lệnh `crash`). Chương trình **xác minh on-chain** rằng `sha256(secret)` bằng bản cam kết (không khớp thì giao dịch thất bại), sau đó tự tính điểm nổ và hoàn tất ván. Sự kiện `CrashRoundFinalized` công bố giá trị bí mật, slot hash và điểm nổ cuối cùng.

<h2 id="the-exact-formula">
  Công thức chính xác của điểm nổ là gì?
</h2>

Điểm nổ được suy ra chính xác như sau (đây là phép tính mà chương trình on-chain thực hiện: toán số nguyên, không có bất ngờ do làm tròn):

```text theme={null}
đầu vào
  blockhash   32 byte    slot hash Solana được lưu khi ván bắt đầu
  secret      32 byte    giá trị bí mật của nhà vận hành, công bố ở cuối ván (cam kết dưới dạng sha256(secret))
  edge_bps    số nguyên  lợi thế nhà cái tính bằng basis point (xem Phí và giới hạn; 150 = 1.5%)

dẫn xuất
  hash  = sha256( blockhash ‖ secret )        // đầu vào 64 byte: blockhash trước, rồi đến secret
  X     = u32_be( hash[0..4] )                // 4 byte đầu của hash, số không dấu 32 bit big-endian
  X'    = min( X, 2^32 − 1000 )               // giới hạn an toàn: mẫu số bên dưới không bao giờ nhỏ hơn 1000

  crash_bps = max( 10000, floor( (10000 − edge_bps) × 2^32 / (2^32 − X') ) )

kết quả
  điểm nổ = crash_bps / 10000                // ví dụ 29948 → 2.9948x
```

Những chi tiết quan trọng khi bạn tính lại:

* Thứ tự nối là **blockhash trước, rồi đến secret**.
* `X` được đọc theo **big-endian** từ **4 byte đầu** của đầu ra SHA-256.
* Các phép chia đều là phép chia **lấy phần nguyên** (floor).
* Ngưỡng dưới `max(10000, …)` nghĩa là hệ số nhân không bao giờ thấp hơn 1.00x, và giới hạn trên của `X` ngăn mẫu số nhỏ tới mức phi lý.

### Ví dụ tính toán

Với `X = 0xABCD1234` (2,882,343,476) và lợi thế hiện tại 1.5% (`edge_bps = 150`):

```text theme={null}
mẫu số      = 2^32 − 2882343476 = 1412623820
crash_bps   = floor( 9850 × 2^32 / 1412623820 ) = 29948
điểm nổ     = 2.9948x
```

### Phân phối trông như thế nào

Công thức ánh xạ một `X` phân phối đều thành đường cong crash kinh điển. Xác suất một ván đạt ít nhất hệ số nhân `m` xấp xỉ:

```text theme={null}
P(điểm nổ ≥ m) ≈ (1 − lợi thế nhà cái) / m
```

Với lợi thế hiện tại 1.5%: khoảng 49.25% số ván đạt 2.00x, khoảng 9.85% đạt 10x, và khoảng 1.5% số ván nổ ngay lập tức ở 1.00x (đó chính là nơi lợi thế nhà cái nằm). Lợi thế áp dụng cho mỗi ván là giá trị được cấu hình on-chain tại thời điểm tiết lộ; giá trị hiện tại được liệt kê trong [Phí và giới hạn](/vi/docs/fees-and-limits).

## Điều gì được đảm bảo, điều gì không

**Được chương trình thực thi:**

* Sau khi bản cam kết đã lên chuỗi, nhà vận hành không thể thay đổi giá trị bí mật của ván: giao dịch tiết lộ sẽ thất bại với bất kỳ giá trị bí mật nào có hash không khớp.
* Một khi ván đã bắt đầu (slot hash đã được lưu), **điểm nổ đã được cố định**. Chốt lời sớm, muộn hay với số lượng lớn đều không thay đổi gì: kết quả đã được xác định trước khi hệ số nhân bắt đầu tăng.
* Điểm nổ do chương trình tính, không phải do backend báo cáo. Một giá trị sai không thể được ghi lên chuỗi.
* Mọi thứ cần để xác minh (bản cam kết, slot hash, giá trị bí mật, điểm nổ cuối cùng) đều được công bố vĩnh viễn trong các sự kiện on-chain.

**Những lưu ý thẳng thắn** (đây là commit-reveal, không phải VRF):

* **Thời điểm bắt đầu.** Nhà vận hành biết giá trị bí mật trước khi ván bắt đầu, và backend của họ quyết định khi nào gửi giao dịch bắt đầu ván. Vì các slot hash gần đây là công khai, về nguyên tắc họ có thể tính trước hệ số nhân tiềm năng cho các slot ứng viên và canh thời điểm bắt đầu để tác động tới slot hash nào được ghi nhận. Cơ chế không ngăn được điều này; nó khiến điều này có thể quan sát được: thời điểm bắt đầu ván là công khai, và mọi sai lệch có hệ thống sẽ lộ ra trong thống kê các điểm nổ đã công bố, mà ai cũng có thể tính lại hàng loạt.
* **Hủy ván.** Sau khi ván bắt đầu, nhà vận hành biết kết quả trước người chơi, và họ có thể hủy một ván bất lợi thay vì tiết lộ. Có hai giới hạn cứng: việc hủy **hoàn lại toàn bộ mọi khoản tiền cược** (chương trình không có đường tịch thu nào), và mọi lần hủy đều phát ra một sự kiện công khai; tần suất hủy là dấu hiệu nhận biết on-chain. Việc hủy tồn tại như một đường khôi phục khi mất giá trị bí mật (ví dụ backend gặp sự cố giữa lúc cam kết và lúc tiết lộ) và dự kiến gần như không bao giờ được dùng.

<h2 id="verify-a-round">
  Làm thế nào để xác minh một ván Crash?
</h2>

Chi tiết của mỗi ván đã kết thúc trong ứng dụng hiển thị giá trị bí mật đã công bố và block hash, kèm liên kết tới cả ba giao dịch cùng một công cụ kiểm chứng tính lại hệ số nhân cho bạn. Để xem hướng dẫn đầy đủ từng bước, bao gồm một đoạn script nhỏ để tự tính lại điểm nổ, xem [Xác minh một ván](/vi/docs/provably-fair/verify-a-round).

Về cách chơi game (chốt lời, thời gian đặt cược, giới hạn), xem [Hướng dẫn game Crash](/vi/docs/games/crash).
