Bằng chứng không có kiến thức (ZKP) là một công nghệ mật mã lần đầu tiên được đề xuất bởi S. Goldwasser, S. Micali và C. Rackoff vào đầu những năm 1980 trong một bài báo có tựa đề Sự phức tạp về kiến thức của các hệ thống chứng minh tương tác. Trong bài báo này, nó được khái niệm hóa như một mô hình lý thuyết để giải quyết vấn đề xác minh các phát biểu toán học mà không tiết lộ bằng chứng. Khái niệm này đã thu hút được sự chú ý đáng kể trong cộng đồng học thuật vì nó thách thức các giới hạn của kỹ thuật mã hóa truyền thống và cung cấp một cách tiếp cận mới để xử lý thông tin nhạy cảm.
Theo thời gian, ZKP đã phát triển từ một khái niệm lý thuyết trừu tượng thành các giao thức cụ thể có thể được tích hợp vào nhiều ứng dụng khác nhau. Vào năm 2010, Groth đã xuất bản một bài báo có tiêu đề Các đối số không có kiến thức không tương tác dựa trên ghép nối ngắn, bài báo này đã trở thành một công trình quan trọng trong việc phát triển zk-SNARK, một giải pháp quan trọng trong ZKP. Ứng dụng thực tế quan trọng nhất của ZKP là hệ thống bằng chứng không có kiến thức được Z-cash sử dụng vào năm 2015, hệ thống này đã đạt được sự bảo vệ quyền riêng tư cho các giao dịch và số tiền. Sau đó, zk-SNARK kết hợp với hợp đồng thông minh, dẫn đến phạm vi ứng dụng rộng hơn.
Các nguyên tắc mà ZKP truyền thống cần tuân thủ như sau:
Nguyên lý của ZKP có thể hiểu qua một ví dụ đơn giản: Nếu tôi cần chứng minh cho A rằng tôi có số điện thoại của B thì tôi không cần phải nói trực tiếp số điện thoại của A B. Thay vào đó, tôi có thể quay trực tiếp vào số điện thoại của B và sau khi cuộc gọi được kết nối, điều đó có thể chứng minh rằng tôi thực sự có số điện thoại của B. Quá trình này không tiết lộ thông tin số của B.
Và zk-SNARK nâng cấp thêm trên cơ sở này, với các đặc điểm sau:
Trong bài báo của Groth, ông đã đề xuất một phương pháp chứng minh không có kiến thức không tương tác dựa trên các cặp biến đổi một vấn đề tính toán thành Chương trình số học bậc hai (QAP), sau đó xây dựng một bằng chứng hiệu quả bằng cách sử dụng mật mã đường cong elip và hàm băm. Các thiết kế sau này của zk-SNARK thường bao gồm bốn bước:
Để hiểu rõ hơn, chúng ta hãy xem xét một ví dụ đơn giản: Giả sử bạn có một bản đồ kho báu có thể hướng dẫn bạn đến vị trí chính xác của kho báu bị chôn vùi. Bạn muốn chứng minh cho ai đó rằng bạn biết vị trí của kho báu mà không tiết lộ nội dung trên bản đồ hay vị trí thực sự của kho báu. Nếu bạn sử dụng công nghệ zk-SNARK, bạn sẽ cần tạo một câu đố phức tạp về bản đồ kho báu. Bạn chọn một mảnh nhỏ của câu đố (bằng chứng) và đưa cho người đó xem, điều này thuyết phục họ rằng bạn biết câu đố hoàn chỉnh khớp với nhau như thế nào, tức là vị trí của kho báu mà không cần nhìn thấy toàn bộ câu đố. Tuy nhiên, để đạt được điều này, bạn cần phải có được những dấu hiệu đặc biệt từ một nhà in đáng tin cậy, những dấu hiệu này dùng làm bằng chứng cho thấy mảnh ghép của bạn là thật.
Cách tiếp cận truyền thống đối với các bằng chứng không có kiến thức bao gồm các phương pháp chứng minh tương tác, trong đó người chứng minh liên tục hỏi người xác minh “có hay không?” câu hỏi cho đến khi tìm được câu trả lời đúng. Quá trình này là không hiệu quả. Tuy nhiên, zk-SNARK loại bỏ nhu cầu tương tác lặp đi lặp lại bằng cách lấy CRS từ bên thứ ba đáng tin cậy. Tất cả những người chứng minh có thể so sánh trực tiếp CRS để xác định tính trung thực. Điều này cải thiện đáng kể hiệu quả của bằng chứng không có kiến thức.
Ngoài ra, zk-SNARK còn có những ưu điểm sau:
Ứng dụng đầu tiên của zk-SNARK là Zcash, cho phép người dùng tham gia vào các giao dịch hoàn toàn ẩn danh bằng cách ẩn thông tin như người gửi, người nhận và số tiền bằng zk-SNARK. Trong không gian Web3 hiện tại, công nghệ zk-SNARK đóng một vai trò quan trọng trong khả năng mở rộng chuỗi khối và quản lý dự trữ trao đổi.
Do cơ chế đồng thuận và yêu cầu bảo mật của blockchain nên thông lượng và hiệu quả của nó bị hạn chế rất nhiều. Để giải quyết vấn đề này, một giải pháp phổ biến là sử dụng công nghệ Layer2, xây dựng một lớp bổ sung trên blockchain để di chuyển một số lượng lớn giao dịch hoặc tính toán từ chuỗi chính (Layer1) sang Layer2, từ đó cải thiện hiệu suất và khả năng sử dụng của hệ thống .
zk-SNARK đóng một vai trò quan trọng trong giải pháp này, vì nó có thể nén các giao dịch hoặc tính toán trên Layer2 thành một bằng chứng nhỏ và nhanh chóng, sau đó được gửi để xác minh trên chuỗi chính, đảm bảo tính chính xác và nhất quán của Layer2. Hiện tại, có hai giải pháp Layer2 chính thống dựa trên zk-SNARK: ZK-rollup và Validium.
Do sự biến động và không chắc chắn của thị trường tiền điện tử, nhiều sàn giao dịch cần nắm giữ một lượng tiền dự trữ nhất định để giải quyết các rủi ro hoặc nhu cầu tiềm ẩn. Tuy nhiên, các quỹ dự trữ này thường thiếu tính minh bạch và độ tin cậy, khiến người dùng không chắc chắn liệu sàn giao dịch có thực sự có đủ quỹ dự trữ để bảo vệ tài sản của họ hay không.
zk-SNARK có thể cung cấp giải pháp về vấn đề này bằng cách cho phép các sàn giao dịch chứng minh với người dùng hoặc cơ quan quản lý rằng họ sở hữu đủ số lượng và giá trị của quỹ dự trữ mà không tiết lộ chi tiết hoặc vị trí tài sản cụ thể.
Một ví dụ điển hình là Gate.io, sử dụng kết hợp cây zk-SNARK và Merkle. Họ mã hóa dữ liệu người dùng và tạo bằng chứng về quỹ dự trữ của 100 mã thông báo khác nhau bằng cách sử dụng các mạch bị ràng buộc để chứng minh khả năng thanh toán 100% của chúng.
Nguồn: https://www.gate.io/proof-of-reserves
Đọc thêm: Cách zk-SNARK cải thiện Bằng chứng dự trữ của Gate.io
Ngoài các ứng dụng Web3, zk-SNARK cũng có thể được sử dụng trong các miền không phải blockchain, chẳng hạn như:
Trong phần trước, chúng tôi đã giới thiệu các nguyên tắc kỹ thuật của zk-SNARK, trong đó đề cập rằng zk-SNARK cải thiện hiệu quả chứng minh bằng cách tìm một bên thứ ba đáng tin cậy để tạo CRS. Tuy nhiên, điều này cũng dẫn đến một số hạn chế và thách thức cố hữu của zk-SNARK.
Tóm lại, có nhiều cách tiếp cận khác nhau để giải quyết những hạn chế cố hữu của zk-SNARK.
zk-SNARK, với tư cách là một công nghệ mã hóa tiên tiến, có nhiều kịch bản ứng dụng trong tương lai, đặc biệt là trong lĩnh vực quyền riêng tư:
Công nghệ zk-SNARK thể hiện bước đột phá đáng kể trong lĩnh vực bảo vệ quyền riêng tư và xác minh được mã hóa. Nó không chỉ hứa hẹn trong việc cung cấp sự đảm bảo quyền riêng tư mạnh mẽ mà còn thiết thực trong việc nâng cao khả năng mở rộng của blockchain và nhiều ứng dụng khác. Bất chấp sự tồn tại của những thách thức và hạn chế về kỹ thuật, thông qua nghiên cứu và đổi mới liên tục, chúng tôi hy vọng zk-SNARK sẽ tiếp tục phát triển, tối ưu hóa các hệ thống hiện có và truyền cảm hứng cho các mô hình ứng dụng mới nhằm thúc đẩy sự tiến bộ của công nghệ mã hóa và bảo vệ quyền riêng tư. Với sự trưởng thành của công nghệ và sự chú trọng ngày càng tăng vào quyền riêng tư dữ liệu trong xã hội, zk-SNARK có tiềm năng trở thành một công cụ không thể thiếu trong thời đại kỹ thuật số, trao quyền cho người dùng kiểm soát tốt hơn thông tin của họ và thúc đẩy các tương tác kỹ thuật số an toàn và minh bạch.
Bằng chứng không có kiến thức (ZKP) là một công nghệ mật mã lần đầu tiên được đề xuất bởi S. Goldwasser, S. Micali và C. Rackoff vào đầu những năm 1980 trong một bài báo có tựa đề Sự phức tạp về kiến thức của các hệ thống chứng minh tương tác. Trong bài báo này, nó được khái niệm hóa như một mô hình lý thuyết để giải quyết vấn đề xác minh các phát biểu toán học mà không tiết lộ bằng chứng. Khái niệm này đã thu hút được sự chú ý đáng kể trong cộng đồng học thuật vì nó thách thức các giới hạn của kỹ thuật mã hóa truyền thống và cung cấp một cách tiếp cận mới để xử lý thông tin nhạy cảm.
Theo thời gian, ZKP đã phát triển từ một khái niệm lý thuyết trừu tượng thành các giao thức cụ thể có thể được tích hợp vào nhiều ứng dụng khác nhau. Vào năm 2010, Groth đã xuất bản một bài báo có tiêu đề Các đối số không có kiến thức không tương tác dựa trên ghép nối ngắn, bài báo này đã trở thành một công trình quan trọng trong việc phát triển zk-SNARK, một giải pháp quan trọng trong ZKP. Ứng dụng thực tế quan trọng nhất của ZKP là hệ thống bằng chứng không có kiến thức được Z-cash sử dụng vào năm 2015, hệ thống này đã đạt được sự bảo vệ quyền riêng tư cho các giao dịch và số tiền. Sau đó, zk-SNARK kết hợp với hợp đồng thông minh, dẫn đến phạm vi ứng dụng rộng hơn.
Các nguyên tắc mà ZKP truyền thống cần tuân thủ như sau:
Nguyên lý của ZKP có thể hiểu qua một ví dụ đơn giản: Nếu tôi cần chứng minh cho A rằng tôi có số điện thoại của B thì tôi không cần phải nói trực tiếp số điện thoại của A B. Thay vào đó, tôi có thể quay trực tiếp vào số điện thoại của B và sau khi cuộc gọi được kết nối, điều đó có thể chứng minh rằng tôi thực sự có số điện thoại của B. Quá trình này không tiết lộ thông tin số của B.
Và zk-SNARK nâng cấp thêm trên cơ sở này, với các đặc điểm sau:
Trong bài báo của Groth, ông đã đề xuất một phương pháp chứng minh không có kiến thức không tương tác dựa trên các cặp biến đổi một vấn đề tính toán thành Chương trình số học bậc hai (QAP), sau đó xây dựng một bằng chứng hiệu quả bằng cách sử dụng mật mã đường cong elip và hàm băm. Các thiết kế sau này của zk-SNARK thường bao gồm bốn bước:
Để hiểu rõ hơn, chúng ta hãy xem xét một ví dụ đơn giản: Giả sử bạn có một bản đồ kho báu có thể hướng dẫn bạn đến vị trí chính xác của kho báu bị chôn vùi. Bạn muốn chứng minh cho ai đó rằng bạn biết vị trí của kho báu mà không tiết lộ nội dung trên bản đồ hay vị trí thực sự của kho báu. Nếu bạn sử dụng công nghệ zk-SNARK, bạn sẽ cần tạo một câu đố phức tạp về bản đồ kho báu. Bạn chọn một mảnh nhỏ của câu đố (bằng chứng) và đưa cho người đó xem, điều này thuyết phục họ rằng bạn biết câu đố hoàn chỉnh khớp với nhau như thế nào, tức là vị trí của kho báu mà không cần nhìn thấy toàn bộ câu đố. Tuy nhiên, để đạt được điều này, bạn cần phải có được những dấu hiệu đặc biệt từ một nhà in đáng tin cậy, những dấu hiệu này dùng làm bằng chứng cho thấy mảnh ghép của bạn là thật.
Cách tiếp cận truyền thống đối với các bằng chứng không có kiến thức bao gồm các phương pháp chứng minh tương tác, trong đó người chứng minh liên tục hỏi người xác minh “có hay không?” câu hỏi cho đến khi tìm được câu trả lời đúng. Quá trình này là không hiệu quả. Tuy nhiên, zk-SNARK loại bỏ nhu cầu tương tác lặp đi lặp lại bằng cách lấy CRS từ bên thứ ba đáng tin cậy. Tất cả những người chứng minh có thể so sánh trực tiếp CRS để xác định tính trung thực. Điều này cải thiện đáng kể hiệu quả của bằng chứng không có kiến thức.
Ngoài ra, zk-SNARK còn có những ưu điểm sau:
Ứng dụng đầu tiên của zk-SNARK là Zcash, cho phép người dùng tham gia vào các giao dịch hoàn toàn ẩn danh bằng cách ẩn thông tin như người gửi, người nhận và số tiền bằng zk-SNARK. Trong không gian Web3 hiện tại, công nghệ zk-SNARK đóng một vai trò quan trọng trong khả năng mở rộng chuỗi khối và quản lý dự trữ trao đổi.
Do cơ chế đồng thuận và yêu cầu bảo mật của blockchain nên thông lượng và hiệu quả của nó bị hạn chế rất nhiều. Để giải quyết vấn đề này, một giải pháp phổ biến là sử dụng công nghệ Layer2, xây dựng một lớp bổ sung trên blockchain để di chuyển một số lượng lớn giao dịch hoặc tính toán từ chuỗi chính (Layer1) sang Layer2, từ đó cải thiện hiệu suất và khả năng sử dụng của hệ thống .
zk-SNARK đóng một vai trò quan trọng trong giải pháp này, vì nó có thể nén các giao dịch hoặc tính toán trên Layer2 thành một bằng chứng nhỏ và nhanh chóng, sau đó được gửi để xác minh trên chuỗi chính, đảm bảo tính chính xác và nhất quán của Layer2. Hiện tại, có hai giải pháp Layer2 chính thống dựa trên zk-SNARK: ZK-rollup và Validium.
Do sự biến động và không chắc chắn của thị trường tiền điện tử, nhiều sàn giao dịch cần nắm giữ một lượng tiền dự trữ nhất định để giải quyết các rủi ro hoặc nhu cầu tiềm ẩn. Tuy nhiên, các quỹ dự trữ này thường thiếu tính minh bạch và độ tin cậy, khiến người dùng không chắc chắn liệu sàn giao dịch có thực sự có đủ quỹ dự trữ để bảo vệ tài sản của họ hay không.
zk-SNARK có thể cung cấp giải pháp về vấn đề này bằng cách cho phép các sàn giao dịch chứng minh với người dùng hoặc cơ quan quản lý rằng họ sở hữu đủ số lượng và giá trị của quỹ dự trữ mà không tiết lộ chi tiết hoặc vị trí tài sản cụ thể.
Một ví dụ điển hình là Gate.io, sử dụng kết hợp cây zk-SNARK và Merkle. Họ mã hóa dữ liệu người dùng và tạo bằng chứng về quỹ dự trữ của 100 mã thông báo khác nhau bằng cách sử dụng các mạch bị ràng buộc để chứng minh khả năng thanh toán 100% của chúng.
Nguồn: https://www.gate.io/proof-of-reserves
Đọc thêm: Cách zk-SNARK cải thiện Bằng chứng dự trữ của Gate.io
Ngoài các ứng dụng Web3, zk-SNARK cũng có thể được sử dụng trong các miền không phải blockchain, chẳng hạn như:
Trong phần trước, chúng tôi đã giới thiệu các nguyên tắc kỹ thuật của zk-SNARK, trong đó đề cập rằng zk-SNARK cải thiện hiệu quả chứng minh bằng cách tìm một bên thứ ba đáng tin cậy để tạo CRS. Tuy nhiên, điều này cũng dẫn đến một số hạn chế và thách thức cố hữu của zk-SNARK.
Tóm lại, có nhiều cách tiếp cận khác nhau để giải quyết những hạn chế cố hữu của zk-SNARK.
zk-SNARK, với tư cách là một công nghệ mã hóa tiên tiến, có nhiều kịch bản ứng dụng trong tương lai, đặc biệt là trong lĩnh vực quyền riêng tư:
Công nghệ zk-SNARK thể hiện bước đột phá đáng kể trong lĩnh vực bảo vệ quyền riêng tư và xác minh được mã hóa. Nó không chỉ hứa hẹn trong việc cung cấp sự đảm bảo quyền riêng tư mạnh mẽ mà còn thiết thực trong việc nâng cao khả năng mở rộng của blockchain và nhiều ứng dụng khác. Bất chấp sự tồn tại của những thách thức và hạn chế về kỹ thuật, thông qua nghiên cứu và đổi mới liên tục, chúng tôi hy vọng zk-SNARK sẽ tiếp tục phát triển, tối ưu hóa các hệ thống hiện có và truyền cảm hứng cho các mô hình ứng dụng mới nhằm thúc đẩy sự tiến bộ của công nghệ mã hóa và bảo vệ quyền riêng tư. Với sự trưởng thành của công nghệ và sự chú trọng ngày càng tăng vào quyền riêng tư dữ liệu trong xã hội, zk-SNARK có tiềm năng trở thành một công cụ không thể thiếu trong thời đại kỹ thuật số, trao quyền cho người dùng kiểm soát tốt hơn thông tin của họ và thúc đẩy các tương tác kỹ thuật số an toàn và minh bạch.