zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) là một giao thức chứng minh mật mã cho phép một bên chứng minh với bên khác rằng họ biết một bí mật mà không tiết lộ chính bí mật đó. Nó có thể được thêm vào các giải pháp sổ cái phân tán để tăng cường quyền riêng tư và khả năng mở rộng. Zcash là dự án đầu tiên áp dụng zk-SNARKs, sử dụng công nghệ này để tạo ra các giao dịch được bảo vệ, trong đó người gửi, người nhận và số tiền được giữ bí mật. Tuy nhiên, một số SNARK phụ thuộc vào một quy trình thiết lập đáng tin cậy, điều này đã bị chỉ trích là một điểm yếu tiềm ẩn về mặt bảo mật. Ngoài ra, một số SNARK không được coi là chống lại máy tính lượng tử, mặc dù những người ủng hộ cho rằng nếu máy tính lượng tử bắt đầu gây ra mối đe dọa, các vấn đề lớn hơn trong mật mã sẽ cần được giải quyết.
SNARKs và STARKs đều có những ưu điểm riêng biệt, và lựa chọn giữa chúng phụ thuộc vào yêu cầu cụ thể của từng trường hợp sử dụng. SNARKs nổi tiếng với hiệu quả và tốc độ của chúng nhưng có lỗ hổng bảo mật tiềm ẩn do quy trình thiết lập đáng tin cậy. Mặt khác, STARKs cung cấp bảo mật nâng cao bằng cách loại bỏ nhu cầu về quy trình thiết lập đáng tin cậy nhưng có thể mất nhiều thời gian hơn để xác minh và được coi là kém hiệu quả hơn. STARKs cũng dựa vào các hàm băm, khiến chúng có khả năng chống lại máy tính lượng tử, không giống như hầu hết các SNARK. Mặc dù có những nhược điểm về bảo mật liên quan đến nghi thức thiết lập đáng tin cậy, nhưng SNARKs đã được chấp nhận rộng rãi hơn do được phát triển sớm.
Cả zk-SNARK và zk-Rollup đều là công nghệ zero-knowledge proof được sử dụng bởi các loại tiền điện tử. Zk-Rollup, một giải pháp mở rộng thường được sử dụng cho Ethereum, gom và xác nhận một lượng lớn giao dịch ngoài chuỗi chính, sau đó kết hợp chúng thành một giao dịch duy nhất. Nó cung cấp nhiều loại khác nhau, bao gồm Optimistic rollup và zk-Rollup, trong đó loại sau xác minh giao dịch ngay lập tức và tạo ra các bằng chứng hợp lệ mật mã sử dụng zk-SNARKs hoặc các công nghệ zero-knowledge proof khác như zk-STARKs.
Áp dụng zk-SNARKs liên quan đến việc chuyển đổi thông tin cần chứng minh thành một phương trình toán học. Người gửi xây dựng một bằng chứng chứng minh sự phù hợp của các giá trị đầu vào và đầu ra của giao dịch và việc sở hữu các khóa chi tiêu riêng tư liên kết với chữ ký số để đảm bảo tính toàn vẹn của giao dịch. Các loại tiền điện tử sử dụng zk-SNARKs, như Zcash, đã trở nên phổ biến do các tính năng bảo mật của chúng. Tuy nhiên, các thách thức tiềm ẩn về quy định và tính biến động nên được xem xét trước khi đầu tư vào các privacy coin