Bằng chứng không biết (ZKP) là một phương pháp mật mã cho phép một bên, gọi là người chứng minh, thuyết phục một bên khác, người xác minh, rằng một tuyên bố là đúng mà không tiết lộ bất kỳ thông tin nào ngoài sự thật của tuyên bố đó. Về mặt kỹ thuật, một ZKP thỏa mãn ba thuộc tính cốt lõi: tính hoàn chỉnh, tính hợp lệ và không biết. Tính hoàn chỉnh đảm bảo rằng những người chứng minh trung thực luôn có thể thuyết phục người xác minh nếu tuyên bố là đúng. Tính hợp lệ đảm bảo rằng những người chứng minh không trung thực không thể lừa người xác minh chấp nhận một tuyên bố sai. Không biết có nghĩa là người xác minh không học được gì ngoài tính hợp lệ của yêu cầu.
Khái niệm này không chỉ là lý thuyết. Chứng minh không tiết lộ (zero-knowledge proofs) đã được sử dụng trong các hệ thống mật mã hiện đại để xác minh danh tính, xác thực giao dịch và thực thi các chính sách mà không tiết lộ dữ liệu cá nhân. Chúng đặc biệt phù hợp với các ứng dụng blockchain, nơi mà tính riêng tư và phân quyền là rất quan trọng.
Các blockchain công cộng như Ethereum và Bitcoin hoạt động dựa trên nguyên tắc minh bạch hoàn toàn. Mỗi nút trong mạng phải thực hiện lại từng giao dịch để xác thực. Mặc dù mô hình này đảm bảo an ninh và sự đồng thuận, nhưng nó phải trả giá bằng khả năng mở rộng và quyền riêng tư. Các bằng chứng không biết (zero-knowledge proofs) giải quyết cả hai hạn chế này.
Để bảo mật, ZKP cho phép người dùng chứng minh điều gì đó — chẳng hạn như một giao dịch là hợp lệ — mà không tiết lộ nội dung của giao dịch. Điều này cho phép các giao dịch bí mật và logic hợp đồng thông minh riêng tư trong khi vẫn duy trì khả năng xác minh công khai. Để mở rộng quy mô, ZKP nén tính toán thành một chứng cứ ngắn gọn. Chứng cứ này có thể được xác minh nhanh chóng trên chuỗi, ngay cả khi tính toán ban đầu là tốn kém và mất thời gian. Thay vì thực hiện toàn bộ logic trên mỗi nút, chỉ cần kiểm tra chứng cứ. Điều này giảm đáng kể chi phí gas và cải thiện thông lượng.
Công nghệ bằng chứng không biết (zero-knowledge) cho phép mở rộng các chuỗi khối mà không hy sinh niềm tin, và xây dựng các ứng dụng riêng tư mà không cần đưa vào các trung gian tập trung. Khi các chuỗi khối trở nên phức tạp hơn và được áp dụng cho việc sử dụng chính thống, những khả năng này trở nên thiết yếu.
Hợp đồng thông minh đã biến các blockchain thành những nền tảng lập trình được. Chúng cho phép các nhà phát triển xây dựng các ứng dụng phi tập trung tự động thực hiện logic dựa trên các quy tắc đã được xác định trước. Tuy nhiên, hợp đồng thông minh bị hạn chế bởi giới hạn tính toán của chính blockchain. Chúng phải chạy trên chuỗi, nơi mà mọi hoạt động đều tốn kém và công khai.
Khi các ứng dụng phi tập trung ngày càng phát triển về độ phức tạp, những hạn chế này trở nên vấn đề hơn. Việc thực hiện các phép toán lớn hoặc truy cập vào các tập dữ liệu khổng lồ trên chuỗi là không thực tiễn. Đồng thời, người dùng ngày càng yêu cầu quyền riêng tư, điều mà các hợp đồng thông minh tiêu chuẩn không thể cung cấp.
Để giải quyết vấn đề này, các nhà phát triển đã bắt đầu di chuyển tính toán ra ngoài chuỗi trong khi vẫn duy trì sự tin cậy thông qua các bằng chứng mật mã. Đây là lúc các bằng chứng không biết xuất hiện. Thay vì thực hiện toàn bộ logic trên chuỗi, các phép tính nặng nề được thực hiện ngoài chuỗi và chỉ một bằng chứng ngắn gọn về kết quả được gửi lên blockchain. Điều này giữ cho blockchain an toàn và có thể xác minh trong khi cải thiện đáng kể hiệu suất và tính bảo mật.
Sự chuyển đổi từ logic trên chuỗi sang xác minh ngoài chuỗi đánh dấu một bước ngoặt lớn trong kiến trúc blockchain. Nó cho phép các ứng dụng mở rộng vượt qua giới hạn của Máy ảo Ethereum và hỗ trợ các trường hợp sử dụng mới mà nếu không sẽ không thể thực hiện được.
Bộ đồng xử lý không biết là một hệ thống chuyên biệt ngoài chuỗi thực hiện các phép toán và tạo ra các chứng minh mật mã về độ chính xác của chúng. Khác với các hợp đồng thông minh, chạy trực tiếp trên chuỗi khối, bộ đồng xử lý ZK hoạt động bên ngoài. Nó xử lý đầu vào, thực hiện một phép toán bằng cách sử dụng zkVM hoặc một mạch tùy chỉnh, và tạo ra một chứng minh không biết. Chứng minh này sau đó có thể được nộp trên chuỗi để chứng minh rằng phép toán đã được thực hiện chính xác.
Ý tưởng về một bộ đồng xử lý được mượn từ phần cứng máy tính. Trong các hệ thống truyền thống, một bộ đồng xử lý là một bộ xử lý riêng biệt được sử dụng để xử lý các tác vụ cụ thể như đồ họa hoặc số học dấu phẩy động. Tương tự, một bộ đồng xử lý ZK sẽ tải công logic phức tạp ra khỏi blockchain, cho phép chuỗi chính tập trung vào việc xác minh thay vì thực thi.
Coprocessors ZK giới thiệu một môi trường thực thi mô-đun. Các nhà phát triển có thể xây dựng logic trong các runtime ngoài chuỗi chuyên biệt, thực hiện các phép toán lớn hoặc riêng tư ở đó, và sau đó cam kết kết quả đã được xác minh trở lại bất kỳ blockchain nào. Tính mô-đun này cho phép khả năng kết hợp giữa các chuỗi, cải thiện hiệu suất và hỗ trợ thiết kế ứng dụng linh hoạt hơn.
Trong kiến trúc blockchain hiện đại, các coprocessor ZK chiếm một lớp giữa giữa các hợp đồng thông minh trên chuỗi và các nguồn dữ liệu hoặc tính toán bên ngoài. Ở cơ sở, bạn có chính blockchain, nơi ghi lại trạng thái, thực thi quy tắc và xác minh các bằng chứng. Phía trên đó là các hợp đồng thông minh, định nghĩa logic công khai của ứng dụng và chấp nhận đầu vào từ người dùng hoặc các hợp đồng khác.
Các đồng xử lý ZK hoạt động song song hoặc bên dưới các hợp đồng thông minh này. Chúng nhận đầu vào — thường ở dạng calldata hoặc tin nhắn đã ký — từ người dùng hoặc hợp đồng, thực hiện logic bên ngoài chuỗi, và tạo ra một chứng minh không biết. Chứng minh được nộp lại cho hợp đồng thông minh, hợp đồng này xác minh nó bằng cách sử dụng khóa xác minh. Nếu hợp lệ, hợp đồng cập nhật trạng thái của nó hoặc kích hoạt một phản hồi.
Kiến trúc này ngày càng trở nên mô-đun. Một bộ đồng xử lý có thể phục vụ nhiều hợp đồng hoặc ứng dụng. Tương tự, một hợp đồng có thể làm việc với nhiều bộ đồng xử lý. Hệ thống cũng có thể mở rộng qua các chuỗi. Một bộ đồng xử lý ZK có thể tính toán một chứng cứ cho dữ liệu trên một chuỗi và gửi nó đến chuỗi khác, cho phép khả năng tương tác giữa các chuỗi với các đảm bảo mạnh mẽ.