zk-SNARK là viết tắt của “zero-knowledge succinct non-interactive argument of knowledge” (đối số tri thức không tương tác cô đọng), và zk-STARK là viết tắt của “zero-knowledge succinct transparent argument of knowledge” (đối số tri thức không minh bạch cô đọng). Bằng chứng Zk-SNARK đã được sử dụng trên Zcash, trên hệ thống thanh toán dựa trên blockchain của JPMorgan Chase, và đóng vai trò như một phương thức để xác thực kết nối an toàn từ máy khách tới máy chủ. Trong khi zk-SNARK đã có những bước tiến đáng kể để được thiết lập và chấp nhận, zk-STARK hiện đang được quảng cáo là phiên bản giao thức mới và cải tiến, giúp giải quyết nhiều nhược điểm trước đây của zk-SNARK.
Câu chuyện ngụ ngôn về hang động kho báu của Alibaba
Chúng ta hãy tưởng tượng về một hang động với một lối vào duy nhất và có một ô cửa ma thuật ngăn thành hai đường hai bên. Để đi qua ô cửa ma thuật, người ta cần phải nói chính xác câu thần chú bí mật. Vì vậy, hãy xem xét trường hợp sau: Alice (màu vàng) muốn chứng minh với Bob (màu xanh) rằng cô ấy biết câu thần chú là gì trong khi vẫn giữ được bí mật của câu thần chú. Để làm được như vậy, Bob đồng ý đợi bên ngoài, trong khi Alice vào hang và đi bộ cho đến khi kết thúc một trong hai đường đi. Trong ví dụ này, cô quyết định đi trên Đường 1.
Sau một lúc, Bob đi qua lối vào và nói to lên rằng anh ta muốn Alice xuất hiện từ đường nào (trong trường hợp này là Đường 2).
Nếu Alice thực sự biết bí mật, cô ấy sẽ xuất hiện từ đường mà Bob gọi tên lên.
Toàn bộ quá trình có thể được lặp đi lặp lại nhiều lần như là một cách để xác nhận rằng Alice chọn đúng đường không phải là do may mắn.
Truyện ngụ ngôn hang động châu báu của Alibaba minh họa khái niệm về bằng chứng zero-knowledge, một phần của giao thức zk-SNARK và zk-STARK. Bằng chứng ZK có thể được sử dụng để chứng minh một đối tượng có tri thức về một cái thứ nào đó mà không phải tiết lộ bất kỳ thông tin nào về nó.
zk-SNARKs
Bằng chứng không tri thức cho phép một cá nhân chứng minh cho đối tượng khác rằng một tuyên bố nào đó là đúng, mà không phải tiết lộ bất kỳ thông tin nào ngoài tính hợp lệ của tuyên bố đó. Các bên liên quan thường được gọi là bên chứng minh và bên xác minh, và tuyên bố họ giữ bí mật với nhau được gọi là bằng chứng. Mục tiêu chính của các bằng chứng này là tiết lộ càng ít dữ liệu càng tốt giữa hai bên. Nói cách khác, người ta có thể sử dụng bằng chứng không tri thức để chứng minh rằng họ có tri thức nhất định mà không tiết lộ bất kỳ thông tin nào về tri thức đó.
Trong các từ viết tắt của SNARK, từ “succinct” (cô đọng), có nghĩa là những bằng chứng này có kích thước nhỏ và có thể được xác minh nhanh chóng. “Non-interactive” (không tương tác), có nghĩa là có ít hoặc không có tương tác giữa bên chứng minh và bên xác minh. Các phiên bản cũ hơn của giao thức không kiến thức thường yêu cầu bên chứng minh và bên xác minh giao tiếp qua lại, và do đó, được coi là bằng chứng zk “Interactive”(Tương tác). Nhưng với cách xây dựng “non-interactive” (không tương tác), bên chứng minh và bên xác minh chỉ phải trao đổi một bằng chứng.
Hiện tại, bằng chứng zk-SNARK phụ thuộc vào thiết lập tin cậy ban đầu giữa bên chứng minh và bên xác minh, nghĩa là cần phải có một bộ tham số công khai để xây dựng bằng chứng không tri thức, và theo cách đó cho phép thực hiện các giao dịch riêng tư. Các tham số này đóng vai trò gần giống như là các quy tắc của trò chơi. Chúng được mã hóa vào giao thức và là một trong những yếu tố cần thiết để chứng minh một giao dịch là hợp lệ. Tuy nhiên, điều này làm phát sinh vấn đề tính tập trung bởi vì các tham số thường được tạo bởi một nhóm người nhỏ.
Mảnh ghép cuối cùng trọng cụm viết tắt là “Knowledge” (Tri thức), nghĩa là bên chứng minh không thể xây dựng một bằng chứng mà không thực sự có tri thức (hoặc nhân chứng) để hỗ trợ cho tuyên bố của mình.
zk-Starks
zk-STARK đã được tạo ra như là một phiên bản thay thế của bằng chứng zk-SNARK và được coi là một phương thức triển khai công nghệ nhanh và rẻ hơn. Nhưng quan trọng hơn, zk-STARK không yêu cầu thiết lập tín thác ban đầu (do đó, “T” ở đây chính là minh bạch (transparent)).
Một trong những lý do chính tại sao Zk-STARK cho phép triển khai nhanh hơn và rẻ hơn là vì số lượng vòng giao tiếp giữa bên chứng minh và bên xác minh là không đổi bất chấp sự tăng về sức mạnh tính toán. Ngược lại, trong zk-SNARK, càng cần nhiều sức mạnh tính toán, số lượng giao tiếp giữa các bên càng tăng. Do đó, kích thước dữ liệu tổng thể của zk-SNARK lớn hơn nhiều so với zk-STARK.