Hướng dẫn 5

Tự kiểm tra tính công bằng

Mọi điều trang web nói về hợp đồng đều có thể đối chiếu trong dữ liệu mở của mạng. Dưới đây là các bước kiểm tra từ đơn giản nhất (hai phút) đến sâu nhất (build mã). Với phần lớn các bước, không cần biết lập trình.

Cách kiểm tra vận hành

Trang web có thể bị giả mạo hoặc có thể sai, còn bản ghi trong blockchain thì không. Vì vậy hãy kiểm tra không phải trên trang của dự án mà trong trình khám phá blockchain: một trang độc lập hiển thị nội dung của blockchain (Solscan, Solana Explorer, SolanaFM và những trang tương tự). Hãy tự mở một trong số đó, đừng đi theo liên kết trong tin nhắn của người khác.

Để kiểm tra cần hai địa chỉ: chương trình (hợp đồng) và token. Trang “Bảo mật” hiển thị chúng. Hãy đối chiếu chúng thêm ở ít nhất hai nơi độc lập (kho mã, các kênh chính thức): nếu các địa chỉ lệch nhau, đang có người tìm cách lừa bạn.

Kiểm tra nhanh (2–10 phút)

Kiểm tra gìXem ở đâuPhải như thế nàoNếu khác
1. Có thể in thêm token mới khôngTrang của token trong trình khám phá, trường Mint AuthorityTrống (đã thu hồi)Người có địa chỉ ghi ở đó có thể phát hành bao nhiêu token tùy ý và làm token của bạn mất giá.
2. Có thể đóng băng token khôngCùng trang đó, trường Freeze AuthorityTrốngChủ sở hữu có thể đóng băng bất kỳ ví nào, kể cả ví của bạn.
3. Ai có thể thay đổi mãTrang của chương trình, trường Upgrade AuthorityTrống (mã bị đóng băng) hoặc địa chỉ multisig có độ trễ cập nhậtMột địa chỉ thường duy nhất nghĩa là chủ sở hữu có thể tải lên quy tắc khác bất cứ lúc nào.
4. Tổng cung của tokenTrang của token: SupplyKhông quá 100.000.000.000 và chỉ giảm do đốtNhiều hơn nghĩa là nguồn cung đã bị tăng.
5. Token có trùng khớp khôngĐịa chỉ token trong ví của bạn so với trang “Bảo mật”Hai địa chỉ giống hệt nhau từng ký tựĐây không phải FAIRDRUM thật. Đừng mua và đừng nạp.
6. Trong kho có đủ token khôngĐịa chỉ kho từ trang “Bảo mật”, số dư token; các khoản trong hũ trên trang “Kinh tế”Số dư của kho không ít hơn tổng các hũ (cộng thêm số dư trong game của người chơi)Hợp đồng phải luôn được bảo chứng đủ bằng token. Lệch nhau là một tín hiệu nghiêm trọng.

Bảng trên cùng của trang “Bảo mật” đọc đúng các trường này ngay từ mạng và đánh dấu ✔ hoặc ⚠, nhưng đừng chỉ dựa vào nó: hãy tự đối chiếu một lần.

Kiểm tra lượt quay của bạn

Mỗi lượt quay để lại một bản ghi trên mạng, và kết quả trên màn hình có thể đối chiếu với nó.

  1. Tìm giao dịch

    Sau lượt quay, dưới nút sẽ xuất hiện liên kết “Giao dịch”. Nó mở bản ghi trong trình khám phá. Hoặc hãy mở lịch sử ví của bạn trong trình khám phá và chọn giao dịch với chương trình FAIRDRUM.

    Phải thấy: trạng thái Success và danh sách các lệnh.

  2. Tìm hai cặp lời gọi

    Trong giao dịch thứ nhất có lời gọi Switchboard (yêu cầu số ngẫu nhiên, commit) và lời gọi chương trình FAIRDRUM spin_commit (đặt cược). Trong giao dịch thứ hai: lời gọi Switchboard (tiết lộ, reveal) và spin_settle (tính kết quả). Tên hiển thị trong các trình khám phá hơi khác nhau (SpinCommit, spinCommit).

  3. So sánh thứ tự

    Tiền cược được ghi trước khi con số được tiết lộ: giao dịch thứ nhất có số block (Slot) nhỏ hơn giao dịch thứ hai. Nghĩa là cả bạn lẫn dự án đều không biết kết quả tại thời điểm đặt cược.

  4. Xem nhật ký (Logs) của giao dịch thứ hai

    Ở đó ghi sự kiện SpinSettled với số lượt quay, các giải, các lần trúng mini jackpot, jackpot và siêu jackpot. Đó chính là những con số vòng quay đã hiển thị.

  5. Kiểm tra chủ sở hữu của số ngẫu nhiên

    Tài khoản ngẫu nhiên nêu trong giao dịch phải thuộc về chương trình Switchboard. Hợp đồng tự từ chối mọi tài khoản khác, nhưng vẫn nên chắc chắn: hãy mở tài khoản đó và xem trường Owner.

Kiểm tra sâu

Build mã và so sánh hash

Lấy kho mã của dự án trên GitHub (liên kết sẽ xuất hiện sau khi công bố), build chương trình ở chế độ tái lập được (anchor build --verifiable) và so sánh hash với bản trên mạng (solana-verify). Trùng khớp nghĩa là trên mạng đang chạy đúng phần mã mở này.

Đọc các hằng số

Mọi con số của trò chơi gom trong một tệp consts.rs: các tỷ lệ, xác suất, thang giải thưởng, phí, thời hạn. Trang web vẽ các bảng của mình đúng từ tệp đó, nên giữa trang web và hợp đồng không được phép có sai lệch.

Chạy kiểm thử

Trong kho mã có kiểm thử cho quy tắc và các phép tính (cargo test) và cho ứng dụng khách (npm test). Chúng kiểm tra, chẳng hạn, rằng tổng mọi quỹ và số dư không vượt quá số token trong kho.

Mổ xẻ cách chọn kết quả

Từ 32 byte số ngẫu nhiên được tiết lộ, hợp đồng tạo các con số qua SHA-256. Với vòng quay chính là các khối SHA-256("FDRM-M" + số ngẫu nhiên + số block), từ đó lấy từng 4 byte (little-endian) thành một con số cho mỗi lượt quay được thực hiện. Với vòng quay vàng: SHA-256("FDRM-G" + số ngẫu nhiên + số thứ tự lượt quay được thực hiện). Con số được so với các ngưỡng tính theo phần của 232; bản thân các ngưỡng phụ thuộc vào khối lượng tuần và kích thước các hũ tại thời điểm tính, nên chỉ có thể tính lại trọn vẹn một lượt quay cũ cùng với trạng thái chương trình ở slot đó. Các công thức nằm trong math.rs và engine.rs.

Đọc nhật ký theo giai đoạn

Bất kỳ ai cũng có thể trích xuất từ mạng tất cả các sự kiện SpinSettled trong một giai đoạn và tự đếm tần suất ra vàng cùng kích thước các hũ. Hãy so sánh với “Xác suất”. Với số lượt quay ít, độ dao động là rất lớn: để thấy xác suất 1%, cần hàng nghìn lượt quay.

Những gì không kiểm tra được

  • Tính trung thực của oracle. Số ngẫu nhiên đến từ mạng Switchboard. Hợp đồng kiểm tra rằng con số đến từ đúng tài khoản và được tiết lộ sau khi đặt cược, nhưng không thể kiểm tra việc các nút của oracle không thông đồng. Đây là phụ thuộc bên ngoài.
  • Việc không có lỗi trong mã. Kiểm thử và mã mở tăng độ tin cậy, nhưng không thay thế được kiểm toán độc lập. Chừng nào liên kết tới kiểm toán chưa được đăng, tức là chưa có kiểm toán.
  • Tương lai. Chừng nào quyền cập nhật chưa bị thu hồi, quy tắc có thể bị thay đổi bằng phiên bản mới. Hãy theo dõi các giao dịch cập nhật chương trình.
  • Những gì quản trị viên làm ngoài hợp đồng. Việc bán token của họ, marketing, các quyết định niêm yết, hợp đồng không kiểm soát. Các khoản chi từ quỹ quảng bá công khai, nhưng chi “vào việc gì” thì hợp đồng không kiểm tra.

Dấu hiệu cảnh báo

Địa chỉ trong tin nhắn không khớp với trang webToken hoặc chương trình bị tráo.
Mint hoặc Freeze Authority có giá trịQuyền phát hành hoặc đóng băng vẫn nằm trong tay ai đó.
Quyền cập nhật thuộc một địa chỉ duy nhất, không độ trễQuy tắc có thể bị thay bất cứ lúc nào.
“Thắng chắc chắn”, “mẹo”, “chương trình giới thiệu”Trò chơi không có giới thiệu và không có bảo đảm, mức trả lại trung bình khoảng 73–74%.
Bị hỏi cụm từ khôi phục hoặc yêu cầu “xác nhận ví”Đây là trộm cắp. Hãy đóng trang lại.
Giao dịch đòi nhiều hơn bạn dự kiếnHãy đọc kỹ cửa sổ ví. Không chắc: hãy từ chối.