> ## 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ổng quan công bằng có thể kiểm chứng

> Commit-reveal giải thích dễ hiểu, entropy từ chuỗi bổ sung điều gì, và những gì bạn có thể tự kiểm tra.

<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 công bằng có thể kiểm chứng" width="1376" height="516" data-path="images/illustrations/banner-provably-fair.webp" />
</Frame>

Mọi kết quả game tại My Crypto Casino đều công bằng có thể kiểm chứng (Provably Fair): chúng được tạo ra bởi **cơ chế commit-reveal (cam kết – tiết lộ) kết hợp với entropy từ chuỗi Solana**, do chương trình on-chain thực thi. Với bạn, một người chơi, điều đó có hai ý nghĩa:

1. **Kết quả không thể bị thay đổi sau khi đã có.** Nhà vận hành khóa phần đóng góp của mình (một giá trị bí mật) *trước* khi chơi, bằng cách công bố một dấu vân tay mật mã của nó on-chain. Về sau, chương trình từ chối thanh toán trừ khi giá trị bí mật được công bố khớp chính xác với dấu vân tay đó.
2. **Bạn có thể tự kiểm tra mọi thứ.** Tất cả dữ liệu đầu vào và công thức chính xác đều công khai. Sau bất kỳ ván hay lượt cược nào, bạn có thể tính lại kết quả từ dữ liệu on-chain và so sánh với số tiền game đã trả.

Trang này giải thích cơ chế bằng ngôn ngữ dễ hiểu. Các trang riêng của từng game đưa ra công thức chính xác, còn [Xác minh một ván](/vi/docs/provably-fair/verify-a-round) hướng dẫn bạn kiểm tra một ván thật từng bước một.

<img src="https://mintcdn.com/cyberiantechnology/gEC6nhtd6-33erkH/diagrams/vi/commit-reveal-timeline.svg?fit=max&auto=format&n=gEC6nhtd6-33erkH&q=85&s=c8cbdf8dca526b69f821529a9f24266c" alt="Cam kết, chơi, tiết lộ, xác minh: giá trị bí mật được niêm phong on-chain trước khi chơi, được chương trình kiểm tra khi tiết lộ, và sau đó bất kỳ ai cũng có thể tính lại mọi kết quả" width="920" height="310" data-path="diagrams/vi/commit-reveal-timeline.svg" />

<h2 id="the-three-building-blocks">
  Công bằng có thể kiểm chứng được xây dựng từ đâu?
</h2>

**Một giá trị bí mật đã cam kết.** Với những game mà kết quả phải được giữ kín trong lúc chơi (Crash, Mines), 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ó (*bản cam kết*) on-chain trước khi ván bắt đầu. Hash giống như một phong bì dán kín: nó không tiết lộ gì về giá trị bí mật, nhưng một khi đã công bố thì chỉ đúng giá trị bí mật đó mới khớp được. Khi giá trị bí mật được công bố ở cuối ván, chính chương trình sẽ băm nó và từ chối giao dịch nếu không khớp với bản cam kết.

**Entropy từ chuỗi Solana.** Kết quả không bao giờ chỉ phụ thuộc vào giá trị bí mật. Nó còn trộn thêm một **slot hash**: hash của một slot Solana gần đây, được chương trình đọc từ sysvar `SlotHashes` của Solana vào một thời điểm xác định. Giá trị này do mạng Solana tạo ra, không phải do sòng bạc, và chưa hề tồn tại khi bản cam kết được tạo.

**Một công thức công khai và tất định.** Kết quả là một hàm toán học cố định của các đầu vào trên. Cùng một hàm chạy bên trong chương trình on-chain (backend không thể báo sai kết quả; chương trình tự tính), và nó được công bố trên các trang này để bạn tự chạy.

<h2 id="the-flow">
  Một ván diễn ra từng bước thế nào?
</h2>

```mermaid theme={null}
sequenceDiagram
    participant MCC as Backend MCC (nhà vận hành)
    participant SOL as Chương trình Solana
    participant You as Người chơi

    Note over MCC,SOL: 1. Cam kết
    MCC->>SOL: Công bố cam kết = sha256(giá trị bí mật)
    Note over You,SOL: 2. Chơi
    You->>SOL: Các lượt cược được đặt on-chain
    Note over SOL: 3. Entropy từ chuỗi
    SOL->>SOL: Ghi nhận slot hash Solana mới nhất
    Note over MCC,SOL: 4. Tiết lộ
    MCC->>SOL: Gửi giá trị bí mật
    SOL->>SOL: Xác minh sha256(giá trị bí mật) khớp với cam kết
    SOL->>SOL: Tính kết quả bằng công thức công khai
    Note over You: 5. Xác minh (bất cứ lúc nào sau đó)
    You->>SOL: Đọc cam kết, slot hash và giá trị bí mật từ chuỗi
    You->>You: Tính lại kết quả và so sánh
```

Dice gói gọn luồng này vào một giao dịch duy nhất: game không có trạng thái ẩn nào cần bảo vệ, nên hoàn toàn không có giá trị bí mật của nhà vận hành. Kết quả tung được suy ra từ slot hash, tài khoản của bạn và bộ đếm lượt cược của bạn, rồi được thanh toán ngay trong chính chỉ lệnh tạo ra nó.

## Mỗi game cam kết điều gì, và khi nào

| Game | Giá trị bí mật của nhà vận hành | Entropy từ chuỗi | Kết quả được cố định lúc | Được thực thi on-chain |
| - | - | - | - | - |
| [Crash](/vi/docs/provably-fair/crash) | Giá trị bí mật 32 byte, cam kết **trước khi mở cược** | Slot hash ghi nhận khi ván bắt đầu | Lúc bắt đầu ván | Kiểm tra cam kết + điểm nổ do chương trình tính khi tiết lộ |
| [Dice](/vi/docs/provably-fair/dice) | Không có | Slot hash tại thời điểm giao dịch cược của bạn lên chuỗi | Khi giao dịch cược được đưa vào khối | Kết quả tung do chương trình suy ra và thanh toán trong một chỉ lệnh |
| [Mines](/vi/docs/provably-fair/mines) | Seed 32 byte, cam kết **trong giao dịch bắt đầu game của bạn** | Slot hash ghi nhận trong chính giao dịch bắt đầu đó | Lúc bắt đầu game, trước lần chọn đầu tiên | Kiểm tra seed + toàn bộ bàn chơi được chương trình suy lại khi thanh toán |

## Điều này đảm bảo gì, và giả định gì

Ở đây sự trung thực quan trọng hơn marketing, nên hãy nói cho chính xác. Cơ chế này là **commit-reveal với entropy công khai từ chuỗi, không phải VRF** (hàm ngẫu nhiên có thể kiểm chứng). Dưới đây là ranh giới chính xác giữa những gì *được mã thực thi* và những gì *dựa vào việc nhà vận hành hành xử đúng mực*.

### Được chương trình on-chain thực thi

* **Không thể đánh tráo kết quả sau khi cam kết.** Chương trình băm giá trị bí mật được công bố và từ chối mọi lần thanh toán không khớp với bản cam kết đã công bố. Nhà vận hành không thể chọn một giá trị bí mật khác sau khi thấy ván đang diễn biến ra sao.
* **Entropy không do nhà vận hành tạo ra.** Slot hash đến từ mạng Solana. Nó chưa được biết khi bản cam kết được công bố, và sòng bạc không tạo ra nó.
* **Kết quả được tính on-chain.** Điểm nổ, kết quả tung Dice và bàn chơi Mines đều do chính chương trình tính (hoặc suy lại và kiểm tra). Backend không thể báo một kết quả mà công thức không tạo ra.
* **Có thể kiểm toán công khai hoàn toàn.** Mỗi ván và mỗi lượt cược đều phát ra các sự kiện on-chain chứa toàn bộ đầu vào suy dẫn và kết quả. Bất kỳ ai, không chỉ người chơi liên quan, đều có thể tính lại mọi kết quả trong lịch sử.

### Được giả định: những lưu ý thẳng thắn

* **Ảnh hưởng về thời điểm.** Backend của nhà vận hành chọn *khi nào* gửi một số giao dịch, điều này cho nó một phần ảnh hưởng tới việc *slot hash nào* được ghi nhận. Trang riêng của từng game nêu rõ điều này có thể và không thể đạt được gì trong game đó.
* **Có thể hủy, nhưng chỉ để hoàn tiền.** Nhà vận hành có thể hủy một ván Crash hoặc một game Mines. Việc hủy luôn hoàn lại toàn bộ mọi khoản tiền cược (chương trình không có cách nào tịch thu thông qua việc hủy), và mọi lần hủy đều được ghi lại công khai, nên ai cũng có thể kiểm toán tần suất hủy. Hủy thường xuyên sẽ là dấu hiệu on-chain rõ ràng của một nhà vận hành có hành vi sai trái.
* **Nhà vận hành biết bàn chơi Mines trong lúc chơi.** Đây là điều mang tính cấu trúc: việc lật ô được phục vụ tức thì ngoài chuỗi (off-chain), và bên phục vụ phải biết bàn chơi. Bản cam kết đảm bảo bàn chơi đã được cố định trước lần chọn đầu tiên của bạn và không thể bị viết lại sau đó. Xem [Tính công bằng của Mines](/vi/docs/provably-fair/mines) để biết chính xác điều đó được thực thi thế nào.

### Vì sao chấp nhận những đánh đổi này?

Vì đó là cái giá của trải nghiệm chơi tức thì và liền mạch, không phải đường tắt. Mỗi game nằm đúng vị trí cần thiết trên phổ đó:

* **Mines**: để phục vụ một lần lật ô trong vài mili giây, về mặt cấu trúc cần một bên đã biết sẵn bàn chơi. Các phương án khác (một giao dịch on-chain cho mỗi lần nhấp, hoặc một lượt gọi oracle cho mỗi lần lật) sẽ biến mỗi ô thành một khoản phí và một lần chờ. Một nhà vận hành biết bàn chơi là điều không thể thiếu để Mines vừa tức thì vừa thanh toán on-chain; cơ chế cam kết tồn tại để giới hạn những gì hiểu biết đó có thể làm.
* **Crash**: một ván trực tiếp dùng chung cần có ai đó điều khiển nó cho tất cả người chơi cùng lúc. Đó là một lựa chọn thực dụng chứ không phải tất yếu về cấu trúc, và vì vậy chương trình có sẵn lộ trình chuyển sang tính ngẫu nhiên dựa trên oracle (VRF), một giai đoạn tương lai sẽ loại bỏ các lưu ý về thời điểm khi điều kiện kinh tế cho phép.
* **Dice**: đầu kia của phổ. Không có gì cần giấu trong lúc chơi, nên hoàn toàn không có giá trị bí mật của nhà vận hành. Ở đâu việc loại bỏ sự tin tưởng vào nhà vận hành không tốn gì, thiết kế sẽ loại bỏ nó.

Tóm lại: nhà vận hành điều hành các game, còn chuỗi khiến gian lận hoặc là **bất khả thi** (mọi thứ sau khi cam kết) hoặc là **có thể phát hiện công khai** (quy luật thời điểm, tần suất hủy, thống kê tỷ lệ thắng).

<Info>
  **Công bằng của kết quả và lưu ký tiền**

  Phần này nói về cách *kết quả* được tạo ra. Cách tiền nạp, số dư và lệnh rút được nắm giữ on-chain là một chủ đề riêng; xem [Kiến trúc on-chain](/vi/docs/security/on-chain-architecture).
</Info>

## Tự xác minh

* Trong ứng dụng, mỗi ván Crash đã kết thúc đều hiển thị dữ liệu kiểm chứng (giá trị bí mật đã công bố, block hash và liên kết tới các giao dịch on-chain) trong chi tiết ván, kèm một công cụ kiểm chứng chỉ với một cú nhấp.
* Dice và Mines công bố mọi đầu vào suy dẫn trong sự kiện thanh toán của chính giao dịch cược.

[Xác minh một ván](/vi/docs/provably-fair/verify-a-round) hướng dẫn toàn bộ quy trình, từ dữ liệu trong ứng dụng đến việc tính lại kết quả bằng vài dòng mã.
