Vậy để tôi dẫn bạn qua toàn bộ kiến trúc quyền riêng tư của Dusk. Thực sự nó được xây dựng dựa trên một bộ các nguyên thủy mật mã cụ thể, và điểm mấu chốt là: mỗi nguyên thủy đều làm một nhiệm vụ mà những nguyên thủy khác không thể nào làm thay được.

Bắt đầu với BLS12-381—đó là thứ @Dusk dùng để cung cấp chữ ký và hầu hết các mật mã liên quan đến ZK của nó. Tiếp theo, riêng với lớp quyền riêng tư Phoenix, Dusk dựa vào một thứ gọi là JubJub, là một đường cong thân thiện với SNARK. Và thành thật mà nói, nếu không có nó thì các chứng minh “shielded” trên Dusk sẽ chạy quá chậm để thực sự triển khai hiệu quả trong thực tế.

Để xác thực trên toàn mạng, $DUSK sử dụng chữ ký Schnorr—một lựa chọn gọn gàng, đã được kiểm chứng kỹ lưỡng, không phải thứ gì thử nghiệm. Bây giờ, bên trong các mạch ZK của Dusk, việc băm (hashing) được xử lý bằng Poseidon, và loại này được xây dựng đặc biệt để rẻ trong bối cảnh các hàm băm cũ sẽ trở nên đắt đỏ rất nhanh khi bạn đưa chúng vào trong một circuit.

Khi nói đến các chứng minh trạng thái và thành viên, #dusk dùng cây Merkle thưa (sparse Merkle tree), và toàn bộ lớp tạo chứng minh (proving) lẫn kiểm chứng (verification) chạy trên PLONK. Trên tất cả, Dusk còn áp dụng một thứ gọi là tổng hợp BLS—về cơ bản nó nén toàn bộ chữ ký của một ủy ban thành một gói duy nhất, thay vì mạng phải xác thực từng chữ ký một cách riêng lẻ.

Để tôi sắp xếp toàn bộ danh mục để bạn hình dung cho rõ ràng:

BLS12-381 — chữ ký và mật mã liên quan đến ZK
JubJub — đường cong thân thiện với SNARK dùng cho quyền riêng tư kiểu Phoenix
Schnorr — chữ ký và xác thực
Poseidon — băm thân thiện với ZK
Sparse Merkle tree — chứng minh thành viên và trạng thái
PLONK — tạo chứng minh và kiểm chứng ZK
BLS aggregation — nén chữ ký của ủy ban thành một

Giờ là một điều đáng lưu ý: không có nguyên thủy nào trong số này thực sự “có ý nghĩa” nếu bạn chỉ nhìn chúng nằm trên giấy. Mật mã của Dusk có thể hoàn toàn đúng đắn về mặt toán học, nhưng vẫn bị suy yếu trong thực tế—ví dụ như mã hóa/tuần tự hóa (serialization) tệ, bỏ sót kiểm tra subgroup, ràng buộc transcript yếu, hoặc bỏ qua tách miền (domain separation). Vì vậy, nếu bạn thật sự muốn đánh giá nền tảng mật mã của Dusk một cách công bằng.