Giải thích bằng toán học và cơ chế về cách bộ máy onetappy bảo đảm tính ngẫu nhiên, và vì sao kiến trúc mới mang lại mô hình bảo mật vượt trội so với cam kết băm truyền thống.
[01] — Ba thách thức cốt lõi
Dữ liệu trên chuỗi như block hash và timestamp có thể được miner hoặc validator quan sát trước khi khối được tạo ra. Kẻ tấn công có thể xây dựng mô hình dự đoán để tính phân phối xác suất trước khi số ngẫu nhiên được chốt. Đồng thời, miner hoặc validator có thể chọn bỏ các khối bất lợi và chỉ công bố block hash có lợi cho họ, từ đó ảnh hưởng trực tiếp đến kết quả ngẫu nhiên cuối cùng.
Commit-Reveal truyền thống yêu cầu mỗi người tham gia thực hiện hai thao tác trên chuỗi (Commit và Reveal), nên độ phức tạp giao tiếp và số vòng tương tác tăng tuyến tính theo số lượng người tham gia. Ngoài ra, việc sinh số ngẫu nhiên phải chờ nhiều chu kỳ block để hoàn tất giai đoạn commit và reveal; tổng thời gian tăng theo số người tham gia và thời gian xác nhận mạng, làm giảm hiệu năng thời gian thực.
Trong giao thức Commit-Reveal truyền thống, kẻ tấn công sau khi quan sát cam kết của những người tham gia khác có thể lựa chọn có reveal số ngẫu nhiên của mình hay không, lợi dụng bất cân xứng thông tin để giành lợi thế chiến lược.
[02] — Commit-Reveal cũ · Nguyên nhân gốc rễ
Cách tiếp cận truyền thống có hai giai đoạn: giai đoạn một gửi
hash(secret),
giai đoạn hai gửi chính secret.
Giao thức không thể kết hợp nguyên tử giữa "cam kết" và "ràng buộc danh tính" trong một giao dịch duy nhất, nên bắt buộc phải tách thành hai bước. Khoảng chờ giữa hai giai đoạn chính là nguyên nhân gốc rễ của tấn công hậu thủ.
[03] — Bộ máy mới · Nguyên lý cốt lõi
Onetappy
áp dụng cơ chế sinh số ngẫu nhiên bằng cách trộn đóng góp ngẫu nhiên từ nhiều bên với dữ liệu trên chuỗi.
Số ngẫu nhiên cuối cùng không đến từ một nguồn duy nhất trên chuỗi; thay vào đó nó được đồng tạo bởi các nguồn entropy độc lập sau:
Đóng góp ngẫu nhiên từ N người chơi tham gia ∞
Dữ liệu trên chuỗi của block hiện tại +1
Số ngẫu nhiên do đối tác gửi khi khởi tạo đợt mua chung +2
Tất cả nguồn entropy được trộn và tính toán theo từng lớp dựa trên các quy tắc định sẵn để tạo ra số ngẫu nhiên cuối cùng.
const R1 = keccak256(block_data || player1_random);
const R2 = keccak256(R1 || block_data || player2_random);
// ...
const Rn = keccak256(Rn-1 || block_data || playerN_random);
const R_final = keccak256(Rn || block_data || organizer_random);
Onetappy
giới thiệu một mô hình cải tiến chia người tham gia thành hai vai trò: partners và players:
Đối tác gửi cam kết số ngẫu nhiên của họ trước; người chơi chỉ cần gửi số ngẫu nhiên một lần và không cần thao tác reveal. Cuối cùng, đối tác reveal số ngẫu nhiên và tạo ra kết quả cuối cùng.
Số thao tác của người chơi được giảm từ hai xuống một. Độ trễ tích lũy của giai đoạn reveal truyền thống được loại bỏ. Số vòng tương tác, độ trễ giao tiếp và mức tiêu thụ Gas đều giảm đáng kể.
Commit của nhà tổ chức
↓
Commit của người chơi
↓
【Người chơi không còn cần Reveal】
↓
Reveal của nhà tổ chức
↓
Sinh ra số ngẫu nhiên cuối cùng
Onetappy nâng chi phí để kẻ tấn công trục lợi thông qua việc chọn lọc reveal số ngẫu nhiên lên rất cao bằng cách đưa vào các hình phạt kinh tế và trách nhiệm rõ ràng, khiến hành vi thao túng trở nên không khả thi về mặt kinh tế và giảm thiểu hiệu quả vấn đề tấn công hậu thủ trong giao thức Commit-Reveal truyền thống.
Phân tích động lực kinh tế và bảo mật:
Gọi 𝐺 là lợi ích tiềm năng tối đa mà kẻ tấn công có thể đạt được thông qua việc chọn lọc reveal số ngẫu nhiên,
và khoản ký quỹ bảo mật mà đối tác phải thế chấp trước khi tham gia vào thỏa thuận là 𝐷.
Trong thiết kế giao thức, hệ thống yêu cầu:
𝐷≥𝐺
Tức là tài sản thế chấp của đối tác không được nhỏ hơn lợi ích tối đa mà họ có thể đạt được thông qua thao túng số ngẫu nhiên.
Khi một đối tác cố thực hiện tấn công hậu thủ bằng cách từ chối reveal số ngẫu nhiên hoặc can thiệp vào quá trình quay,
cơ chế phạt của giao thức sẽ được kích hoạt và toàn bộ tài sản thế chấp 𝐷 sẽ bị tịch thu.
Vì vậy, lợi nhuận kỳ vọng của kẻ tấn công là:
𝐸=𝐺−𝐷
Dưới điều kiện 𝐷≥𝐺:
𝐸≤0
Nghĩa là một cuộc tấn công sẽ không đem lại lợi nhuận kinh tế dương. Sau khi cân nhắc lợi ích và rủi ro, những người tham gia hành xử hợp lý sẽ chọn tuân theo quy tắc của giao thức và hoàn thành quá trình reveal số ngẫu nhiên cũng như quay thưởng.
1. Giới thiệu đối tác
Mỗi vòng hoạt động mua chung sẽ chỉ định một đối tác,
người chịu trách nhiệm tham gia vào quá trình tạo số ngẫu nhiên
và hoàn tất lần mở thưởng cuối cùng.
2. Thế chấp khoản ký quỹ bảo mật
Trước khi tham gia vào quá trình tạo số ngẫu nhiên của vòng đó,
đối tác phải thế chấp trên chuỗi một khoản ký quỹ bảo mật giá trị cao (100%).
Số tiền ký quỹ phải đủ để bao phủ lợi ích thao túng tiềm năng,
từ đó ràng buộc hành vi của họ bằng động lực kinh tế.
3. Ràng buộc trách nhiệm mở thưởng
Trong giai đoạn tạo số ngẫu nhiên, đối tác phải hoàn thành
việc reveal số ngẫu nhiên và kích hoạt quá trình mở thưởng cuối cùng
theo đúng các quy tắc của giao thức.
4. Cơ chế phạt khi vi phạm
Nếu đối tác không hoàn tất việc reveal trong
khung thời gian đã chỉ định hoặc từ chối thực hiện thao tác mở thưởng,
hệ thống sẽ tự động kích hoạt cơ chế phạt ký quỹ
và tịch thu toàn bộ khoản ký quỹ đã thế chấp của họ.
Thông qua cơ chế ràng buộc kinh tế dựa trên ký quỹ này,
hệ thống có thể làm giảm động cơ của người tham gia
trong việc cố tình trì hoãn reveal hoặc thao túng
số ngẫu nhiên — mà không cần thêm các giả định
về niềm tin — từ đó cải thiện tính công bằng tổng thể và
độ tin cậy của quá trình tạo số ngẫu nhiên.
| # | Nguồn entropy | Lớp nguồn | Kẻ tấn công có thể kiểm soát? |
|---|---|---|---|
| 01 | secret của người dùng | Riêng tư ngoài chuỗi | Không (thuộc người dùng) |
| 02 | block_data | Công khai trên chuỗi | Không (cố định sau khi ra khối) |
| 03 | secret của đối tác | Riêng tư ngoài chuỗi | Không (thuộc đối tác) |
[04] — Ma trận so sánh
| Giải pháp | Số thao tác | Chống hậu thủ | Phi tập trung | Chi phí Gas | Độ trễ giao tiếp | Chia doanh thu |
|---|---|---|---|---|---|---|
| Commit-Reveal truyền thống | 2x | ✗ | ✓ | Cao | Cao | × |
| RANDAO | Multi | △ | ✓ | Trung bình | Rất cao | × |
| Chainlink VRF | 1x | ✓ | △ | Rất cao | Thấp | × |
| Onetappy RNG ★ | 1x | ✓ | ✓ | Thấp | Thấp | ✓ |