
Zero-Knowledge Proofs: ZK-SNARK vs ZK-STARK — So sánh và ứng dụng blockchain
Zero-Knowledge Proofs (ZKP) cho phép một bên chứng minh họ biết một bí mật mà không tiết lộ bí mật đó. Công nghệ này đang là xương sống của sự mở rộng quy mô blockchain và bảo mật dữ liệu riêng tư.
Hai kỹ thuật ZKP phổ biến nhất là ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) và ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge). Cả hai đều đạt được tính zero-knowledge nhưng khác biệt về thiết kế, trade-offs và ứng dụng thực tế.

Ví dụ kinh điển để hiểu ZKP là bài toán Ali Baba cave. Peggy muốn chứng minh mình biết mật khẩu mở cửa bí mật trong hang mà không tiết lộ mật khẩu. Victor (người xác thực) yêu cầu Peggy ra từ một lối ngẫu nhiên. Nếu Peggy biết mật khẩu, cô luôn xuất hiện đúng lối Victor yêu cầu sau nhiều lần lặp lại.
ZK-SNARK sử dụng trusted setup (cài đặt tin cậy) để tạo ra tham số chung. Điều này tạo ra bằng chứng nhỏ gọn (khoảng 200 bytes) và xác thực nhanh, nhưng yêu cầu một buổi tạo tham số tin cậy — nếu bị xâm phạm, hệ thống có thể bị tạo ra bằng chứng giả. Các dự án sử dụng ZK-SNARK: Zcash, Tornado Cash (trước khi bị sanction), và các Layer 2 như zkSync Era.

So sánh nhanh: ZK-SNARK ưu tiên kích thước bằng chứng và tốc độ xác thực (phù hợp Layer 1, privacy coin), ZK-STARK ưu tiên minh bạch, an toàn lượng tử và không trusted setup (phù hợp Layer 2 scaling, rollup). Xu hướng hiện tại là các ZK rollup mới (StarkNet, Linea, Scroll) chọn ZK-STARK hoặc các biến thể của nó.
Ứng dụng thực tế: ZKP cho phép xác thực giao dịch mà không tiết lộ số dư/người gửi/người nhận (privacy), rollup để scale Ethereum (zkEVM), xác thực identity không tiết lộ dữ liệu cá nhân (ZK identity), và machine learning zero-knowledge (zkML).
Tham khảo thêm: Wikipedia: Zero-knowledge proof, Wikipedia: ZK-SNARK, StarkNet Documentation
