#dusk $DUSK @Dusk
Trên thị trường có rất nhiều dự án miệng nói tương thích ZK, nhưng nếu chịu khó bóc tách chi tiết ở lớp thực thi, bạn sẽ thấy phần lớn chỉ là làm bề nổi: biến ZK thành một bản vá bổ sung, chứ không phải năng lực tầng nền bản địa. Nhiều người chỉ so sánh thời gian tạo proof của ZK, nhưng lại ít để ý đến chi phí gas phát sinh khi gọi logic ZK trong hợp đồng và độ trễ khi gọi—những “chi phí ẩn” nằm trong môi trường thực thi, và chính chúng sẽ quyết định liệu ứng dụng tài chính riêng tư có thể chạy được ở quy mô hay không.
Hầu hết các public chain khi xử lý việc xác thực ZK đều đi theo hướng “đem phụ trợ vào”: hoặc dựa vào hợp đồng precompile, hoặc đẩy toàn bộ phép tính nặng của proof ra ngoài chuỗi. Hướng triển khai này rào cản thấp, lên nhanh, nhưng nhược điểm rất rõ ràng: mỗi lần xác thực ZK, hợp đồng lại phải khởi tạo lời gọi chéo qua nhiều module; thêm một lớp tương tác là thêm một vòng tiêu hao gas. Thực nghiệm cho thấy chi phí gas phát sinh cho mỗi lần gọi thường bắt đầu từ hàng chục nghìn gas trở lên. Khi dịch vụ ngoài chuỗi bị tắc nghẽn, độ trễ khi trả về kết quả proof cũng sẽ trực tiếp “kéo kẹt” nghiệp vụ trên chuỗi. Điểm lỗi bị phân tán, và càng đi xa hơn trên chuỗi liên kết, xác suất xảy ra sai sót càng cao. Về bản chất, ZK chỉ là tính năng phụ trợ “trang trí thêm”, có mức ưu tiên thấp hơn so với logic nền tảng trên chuỗi.
Kiến trúc máy ảo của Dusk đi theo một tư duy hoàn toàn ngược lại: đưa toàn bộ năng lực xác thực mật mã xuống tầng nền tảng của thời gian chạy. Toàn bộ logic xác thực của các cơ chế zero-knowledge proof phổ biến, các thuật toán băm (hash), các thành phần chữ ký tổng hợp (aggregated signatures) đều được đóng gói thành các hàm chủ nhà (host function) của máy. Tầng hợp đồng có thể gọi trực tiếp, loại bỏ chi phí do phải chuyển nhánh qua precompile hay vòng qua lại với giao tiếp ngoài chuỗi. Với cùng một logic xác thực ZK, mức tiêu hao gas ở tầng hợp đồng có thể nén xuống gần 30%; độ trễ khi gọi cũng được đưa về mức mili giây.
Tầng nền không kế thừa mô hình bộ nhớ của EVM, mà thay vào đó thiết kế lại bố cục bộ nhớ dựa trên WASM. Mô hình bộ nhớ nguyên bản của EVM được tối ưu cho các smart contract thông thường, nhưng khi chạy phép toán ZK với tần suất đọc/ghi cao sẽ tạo ra nhiều lần sao chép bộ nhớ dư thừa; trong một số tình huống proof phức tạp, mức sử dụng bộ nhớ có thể tăng vọt nhiều lần. WASM có độ hạt (granularity) bộ nhớ linh hoạt hơn, có thể phù hợp với đặc trưng của ZK như lặp vòng hash và tính toán đa thức. Mức sử dụng bộ nhớ tối đa có thể giảm tới 40%, và hiệu quả thực thi rõ rệt được cải thiện.
Quan trọng hơn, đó là sự “thông suốt” tổng thể: năng lực ZK không phải là một thành phần cô lập. Giao diện hợp đồng và nguyên ngữ (primitive) giao dịch riêng tư trên chuỗi được kết nối liền mạch; việc xác thực proof, chuyển giao tài sản và logic riêng tư có thể tạo thành một vòng khép kín trong cùng một luồng giao dịch, không cần phải ghép nối nhiều hệ thống.
Trên thị trường có rất nhiều dự án miệng nói tương thích ZK, nhưng nếu chịu khó bóc tách chi tiết ở lớp thực thi, bạn sẽ thấy phần lớn chỉ là làm bề nổi: biến ZK thành một bản vá bổ sung, chứ không phải năng lực tầng nền bản địa. Nhiều người chỉ so sánh thời gian tạo proof của ZK, nhưng lại ít để ý đến chi phí gas phát sinh khi gọi logic ZK trong hợp đồng và độ trễ khi gọi—những “chi phí ẩn” nằm trong môi trường thực thi, và chính chúng sẽ quyết định liệu ứng dụng tài chính riêng tư có thể chạy được ở quy mô hay không.
Hầu hết các public chain khi xử lý việc xác thực ZK đều đi theo hướng “đem phụ trợ vào”: hoặc dựa vào hợp đồng precompile, hoặc đẩy toàn bộ phép tính nặng của proof ra ngoài chuỗi. Hướng triển khai này rào cản thấp, lên nhanh, nhưng nhược điểm rất rõ ràng: mỗi lần xác thực ZK, hợp đồng lại phải khởi tạo lời gọi chéo qua nhiều module; thêm một lớp tương tác là thêm một vòng tiêu hao gas. Thực nghiệm cho thấy chi phí gas phát sinh cho mỗi lần gọi thường bắt đầu từ hàng chục nghìn gas trở lên. Khi dịch vụ ngoài chuỗi bị tắc nghẽn, độ trễ khi trả về kết quả proof cũng sẽ trực tiếp “kéo kẹt” nghiệp vụ trên chuỗi. Điểm lỗi bị phân tán, và càng đi xa hơn trên chuỗi liên kết, xác suất xảy ra sai sót càng cao. Về bản chất, ZK chỉ là tính năng phụ trợ “trang trí thêm”, có mức ưu tiên thấp hơn so với logic nền tảng trên chuỗi.
Kiến trúc máy ảo của Dusk đi theo một tư duy hoàn toàn ngược lại: đưa toàn bộ năng lực xác thực mật mã xuống tầng nền tảng của thời gian chạy. Toàn bộ logic xác thực của các cơ chế zero-knowledge proof phổ biến, các thuật toán băm (hash), các thành phần chữ ký tổng hợp (aggregated signatures) đều được đóng gói thành các hàm chủ nhà (host function) của máy. Tầng hợp đồng có thể gọi trực tiếp, loại bỏ chi phí do phải chuyển nhánh qua precompile hay vòng qua lại với giao tiếp ngoài chuỗi. Với cùng một logic xác thực ZK, mức tiêu hao gas ở tầng hợp đồng có thể nén xuống gần 30%; độ trễ khi gọi cũng được đưa về mức mili giây.
Tầng nền không kế thừa mô hình bộ nhớ của EVM, mà thay vào đó thiết kế lại bố cục bộ nhớ dựa trên WASM. Mô hình bộ nhớ nguyên bản của EVM được tối ưu cho các smart contract thông thường, nhưng khi chạy phép toán ZK với tần suất đọc/ghi cao sẽ tạo ra nhiều lần sao chép bộ nhớ dư thừa; trong một số tình huống proof phức tạp, mức sử dụng bộ nhớ có thể tăng vọt nhiều lần. WASM có độ hạt (granularity) bộ nhớ linh hoạt hơn, có thể phù hợp với đặc trưng của ZK như lặp vòng hash và tính toán đa thức. Mức sử dụng bộ nhớ tối đa có thể giảm tới 40%, và hiệu quả thực thi rõ rệt được cải thiện.
Quan trọng hơn, đó là sự “thông suốt” tổng thể: năng lực ZK không phải là một thành phần cô lập. Giao diện hợp đồng và nguyên ngữ (primitive) giao dịch riêng tư trên chuỗi được kết nối liền mạch; việc xác thực proof, chuyển giao tài sản và logic riêng tư có thể tạo thành một vòng khép kín trong cùng một luồng giao dịch, không cần phải ghép nối nhiều hệ thống.