Vấn đề mà xác minh giải quyết
Mỗi trò chơi casino là một yêu cầu: "kết quả này là ngẫu nhiên, và chúng tôi không chọn nó sau khi thấy cược của bạn." Trong một phòng vật lý, bạn kiểm tra yêu cầu đó bằng mắt — bộ bài mới, xúc xắc trong suốt, bánh xe mà bạn có thể theo dõi. Trực tuyến, tính ngẫu nhiên xảy ra trên máy tính của người khác. Provably fair là sự thay thế mật mã học cho việc xem tay của người chia bài.
Cơ chế cốt lõi là commit-reveal. Trước khi bạn cược, nhà cái khóa tính ngẫu nhiên của nó tại chỗ và hiển thị cho bạn một dấu vân tay của nó — một băm SHA-256 của server seed. Một băm hoạt động theo một hướng: nhà cái không thể tìm thấy một seed thứ hai khớp với cùng một dấu vân tay, và bạn không thể đọc seed ra từ nó. Sau khi seed được tiết lộ sau đó, bạn kiểm tra nó so với dấu vân tay bạn được hiển thị, và tính toán lại mọi vòng mà nó tạo ra.
Ba đầu vào của mỗi vòng
| ĐẦU VÀO | AI CHỌN NÓ | NÓ LÀM GÌ |
|---|---|---|
| Server seed | Nhà cái — được cam kết dưới dạng băm trước khi chơi | Nửa tính ngẫu nhiên của nhà cái |
| Client seed | Bạn — có thể chỉnh sửa trong bảng công bằng | Nửa của bạn; nhà cái không thể dự đoán nó |
| Nonce | Không ai — nó đếm 0, 1, 2, … | Làm cho mỗi vòng duy nhất dưới cùng các seed |
Tính ngẫu nhiên thô của vòng là HMAC-SHA256(server seed, client seed : nonce) — một băm được khóa trộn lẫn các đầu vào của cả hai bên. Vì client seed của bạn tham gia vào hỗn hợp, nhà cái sẽ cần phải dự đoán lựa chọn của bạn để làm sai lệch kết quả; vì server seed được cam kết trước tiên, nó không thể được thay đổi sau mà không phá vỡ dấu vân tay bạn đã có.
Từ digest đó, các byte trở thành số. Các engine của chúng tôi đọc các byte đầu tiên là một giá trị đồng đều trong [0,1) — với làm tròn được thực hiện từng bit theo cùng một cách trong bộ tạo và trình xác minh — và mỗi trò chơi ánh xạ các giá trị đồng đều tới các kết quả thông qua các quy tắc được công bố của nó: một đường cong cuộn xúc xắc, một lượt rút thẻ từ một nhóm thu hẹp, xúc xắc chinchiro ở các vị trí con trỏ cố định.
Hướng dẫn
- Mở bất kỳ trò chơi gốc nào và mở bảng công bằng. Lưu ý băm server seed hiện tại — đây là cam kết. Đặt client seed của riêng bạn nếu bạn muốn.
- Chơi một hoặc hai vòng. Mỗi vòng được xác nhận sẽ ghi bộ ba (hash, client seed, nonce) của nó trong hồ sơ cược của bạn.
- Xoay cặp seed của bạn trong bảng điều khiển. Việc xoay loại bỏ server seed cũ và — đây là thời điểm quan trọng — tiết lộ nó.
- Hash server seed được tiết lộ bằng SHA-256 và so sánh với dấu vân tay từ bước 1. Chúng phải khớp chính xác.
- Tính toán lại vòng: HMAC-SHA256(revealed seed, "clientSeed:nonce"), ánh xạ digest qua quy tắc công bố của trò chơi, và so sánh với kết quả bạn nhận được.
- Bất kỳ công cụ độc lập nào cũng hoạt động cho các bước 4–5 — một máy tính SHA-256 trực tuyến, ba dòng Python, hoặc trình xác minh tích hợp của bảng điều khiển. Toán học không quan tâm ai chạy nó.
ENGINE-VERIFIEDMột chi tiết bất thường về việc triển khai của Betkyo: engine demo tạo ra kết quả và bảng điều khiển công bằng kiểm tra chúng nhập cùng một module derivation — một triển khai, không phải hai. Một trình xác minh chia sẻ mã của nó với generator không thể trôi ra khỏi sự thống nhất với nó.
Những gì xác minh không yêu cầu
Sự trung thực đòi hỏi đánh dấu những giới hạn. Provably fair chứng minh rằng kết quả được cố định tại thời điểm cam kết và ánh xạ qua quy tắc công bố. Nó không chứng minh rằng quy tắc là hào phóng — một trò chơi có thể provably fair và vẫn trả rất tệ, đó là lý do tại sao chúng tôi công bố mọi bảng thanh toán và house edge cùng với nó. Nó không ngăn chặn tổn thất, rút ngắn các chuỗi thua lỗ, hoặc đưa ra bất kỳ l承诺 nào về vòng tiếp theo; nó chỉ hứa rằng vòng tiếp theo không được chọn chống lại bạn.
Và nó không thể xác minh những gì nó không thể nhìn thấy: sơ đồ bao gồm kết quả trò chơi, không phải, nói cách khác, thứ tự mà các sự kiện bên ngoài trực tiếp được giải quyết. Khi một trong các trò chơi của chúng tôi phụ thuộc vào một nguồn cấp dữ liệu bên ngoài, trang công bằng nêu rõ điều đó một cách rõ ràng thay vì kéo dài yêu cầu.
Thuật ngữ
| THUẬT NGỮ | ĐỊNH NGHĨA |
|---|---|
| SHA-256 | Một hash một chiều: bất kỳ đầu vào → dấu vân tay 256-bit; không thể đảo ngược hoặc va chạm |
| HMAC | Một hash có khóa — trộn một khóa bí mật (server seed) với một thông điệp (client seed : nonce) |
| Commit-reveal | Công bố dấu vân tay trước, giá trị sau; dấu vân tay chứng minh giá trị không bao giờ thay đổi |
| Nonce | "Số được sử dụng một lần" — một bộ đếm làm cho digest của mỗi vòng chơi là duy nhất |
| Xoay vòng Seed | Thu hồi một cặp seed: server seed cũ được tiết lộ để kiểm toán, một commitment mới bắt đầu |
Câu hỏi thường gặp
Tôi có cần phải hiểu mật mã để xác minh một vòng chơi không?
Không. Bảng fairness tự động hóa mọi bước, và con đường thủ công chỉ cần dán các chuỗi vào bất kỳ máy tính SHA-256/HMAC nào. Hiểu tại sao nó hoạt động mất một đoạn văn; thực hiện nó mất một phút.
Tại sao tôi phải xoay vòng seed của mình để xác minh?
Bởi vì server seed phải giữ bí mật trong khi nó vẫn đang tạo ra các vòng chơi — tiết lộ sớm sẽ cho phép người chơi tính toán kết quả trong tương lai. Xoay vòng kết thúc vòng đời của seed, đó chính xác là điều giúp nó an toàn để tiết lộ và kiểm toán.
Nhà cái có thể tạo ra một seed may mắn cho chính nó không?
Commitment chặn phiên bản hữu ích của điều đó: seed được cố định trước khi bạn đặt cược và trộn với client seed mà bạn kiểm soát. Nhà cái sẽ cần phải dự đoán seed của bạn, cược của bạn và thời gian của bạn — tại thời điểm đó nó không còn là một sòng bạc nữa mà là một màn trình diễn đọc vị.
Provably fair có giống với việc được cấp phép hoặc kiểm toán không?
Không — chúng trả lời các câu hỏi khác nhau. Kiểm toán và giấy phép là lòng tin tổ chức; provably fair là lòng tin toán học trong mỗi kết quả riêng lẻ. Chúng tôi công bố toán học và bảng lương đầy đủ của chúng tôi để hai yêu cầu không bao giờ bị nhầm lẫn.
NGUỒN & TÀI LIỆU THAM KHẢO
- HMAC — RFC 2104, cấu trúc keyed-hash được sử dụng mỗi vòng chơi
- SHA-2 family — FIPS 180-4, commitment hash
- Betkyo engine source: chia sẻ các nguyên thủy RNG và các mô-đun dẫn xuất generator/verifier duy nhất
CÁC TRÒ CHƠI TRONG BÀI VIẾT NÀY
Limbo — rules & free play →Dice — rules & free play →Chinchiro — rules & free play →