Điểm yếu chí mạng của blockchain là gì? Tính minh bạch. Tất cả các nút đều có thể nhìn thấy mọi dữ liệu, điều này khiến cho việc tạo ra số ngẫu nhiên thực sự hầu như không thể.
Nhưng các nhà phát triển Web3 lại rất cần nó — game cần rơi vật phẩm ngẫu nhiên, xổ số cần quay thưởng công bằng, hợp đồng thông minh cần đầu vào không thể đoán trước. Không có số ngẫu nhiên an toàn trên chuỗi, khóa bí mật có thể bị suy đoán, kết quả trò chơi có thể bị thao túng.
Oasis giải quyết thế nào?
Dùng hai chiêu:
Bước một: Tạo RNG cấp block
Sapphire (runtime EVM bảo mật của Oasis) lấy khóa bí mật từ trình quản lý khóa
Dùng khóa ngắn hạn (xoay vòng mỗi epoch) để mã hóa RNG, đảm bảo khóa cũ không thể phục hồi
Các khóa này chỉ tồn tại bên trong TEE (môi trường thực thi tin cậy), người ngoài không thấy được trạng thái RNG
Dùng thuật toán SHA-3 dẫn xuất (TupleHash, KMAC256) xử lý entropy, sinh ra RNG gốc độc nhất cho từng block
Bước hai: Phân tách RNG cấp giao dịch
Mỗi giao dịch cần số ngẫu nhiên riêng
Dùng Merlin transcripts dẫn xuất RNG cấp giao dịch từ RNG gốc
Tận dụng dữ liệu đặc trưng của giao dịch để tùy chỉnh tính ngẫu nhiên, đảm bảo riêng tư, công bằng, không thể đoán trước
✓ Trừu tượng hóa độ phức tạp — nhà phát triển không cần hiểu chi tiết kỹ thuật RNG trên chuỗi
✓ Thay đổi khóa — mỗi epoch sinh khóa mới, khóa cũ tự động hủy
✓ Bảo vệ quyền riêng tư — trạng thái RNG chỉ thấy được trong TEE
✓ Có thể xác minh — dựa trên VRF và nguyên thủy mật mã, có thể kiểm toán
Giải pháp này đã biến số ngẫu nhiên trên chuỗi từ “gần như không thể” thành “cắm là chạy”. Đó là bước đột phá cho game NFT, xổ số on-chain, bốc thăm phi tập trung và nhiều tình huống khác.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Làm sao để giải quyết vấn đề số ngẫu nhiên trên chuỗi? Oasis đã đưa ra câu trả lời
Điểm yếu chí mạng của blockchain là gì? Tính minh bạch. Tất cả các nút đều có thể nhìn thấy mọi dữ liệu, điều này khiến cho việc tạo ra số ngẫu nhiên thực sự hầu như không thể.
Nhưng các nhà phát triển Web3 lại rất cần nó — game cần rơi vật phẩm ngẫu nhiên, xổ số cần quay thưởng công bằng, hợp đồng thông minh cần đầu vào không thể đoán trước. Không có số ngẫu nhiên an toàn trên chuỗi, khóa bí mật có thể bị suy đoán, kết quả trò chơi có thể bị thao túng.
Oasis giải quyết thế nào?
Dùng hai chiêu:
Bước một: Tạo RNG cấp block
Bước hai: Phân tách RNG cấp giao dịch
Nhà phát triển dùng thế nào?
Chỉ một dòng code:
bytes memory randomPad = Sapphire.randomBytes(32, “”);
Hoặc dùng số ngẫu nhiên để tạo cặp khóa ký:
bytes memory pk; bytes memory sk; (pk, sk) = Sapphire.generateSigningKeyPair( Sapphire.SigningAlg.Ed25519Pure, Sapphire.randomBytes(32, “”) );
Lợi thế cốt lõi
✓ Trừu tượng hóa độ phức tạp — nhà phát triển không cần hiểu chi tiết kỹ thuật RNG trên chuỗi ✓ Thay đổi khóa — mỗi epoch sinh khóa mới, khóa cũ tự động hủy ✓ Bảo vệ quyền riêng tư — trạng thái RNG chỉ thấy được trong TEE ✓ Có thể xác minh — dựa trên VRF và nguyên thủy mật mã, có thể kiểm toán
Giải pháp này đã biến số ngẫu nhiên trên chuỗi từ “gần như không thể” thành “cắm là chạy”. Đó là bước đột phá cho game NFT, xổ số on-chain, bốc thăm phi tập trung và nhiều tình huống khác.