Khi công nghệ sổ cái phi tập trung tiếp tục phát triển, việc hỗ trợ tiết lộ thông tin có chọn lọc đang nổi lên như một ưu tiên thiết kế chính. Trong khi blockchain công khai cung cấp tính minh bạch, nhiều ứng dụng yêu cầu phải che giấu một số chi tiết nhất định.
Bằng chứng không kiến thức đưa ra giải pháp mật mã cho thách thức này bằng cách cho phép xác minh các câu lệnh mà không tiết lộ dữ liệu cơ bản.
Thông qua các kỹ thuật của hệ thống chứng minh tương tác, mật mã không kiến thức chứng minh rằng người chứng minh biết thông tin cụ thể, mà không cần truyền đạt các chi tiết. Điều này làm giảm bớt mối lo ngại về việc tiết lộ tất cả dữ liệu bằng cách xác thực giao dịch hoặc tính toán riêng tư. Những tiến bộ gần đây trong các giao thức như zk-SNARK và zk-STARK đã cải thiện hiệu quả và triển khai thực tế các khái niệm toán học trừu tượng này.
Các dự án kết hợp bằng chứng không kiến thức hiện đang hiện thực hóa chức năng nâng cao cho sổ cái phân tán. Các mạng như Zcash và Zulu Network đã tiên phong trong việc tiết lộ dữ liệu có chọn lọc trên blockchain thông qua thiết lập không kiến thức. Công việc mới nổi về các bản tổng hợp và cầu nối không kiến thức đề xuất các phương pháp chia sẻ giá trị trên các nền tảng độc lập trong khi che giấu dữ liệu của người tham gia.
Khi nghiên cứu trong lĩnh vực này tiếp tục, các ứng dụng mới đang nổi lên tận dụng các đảm bảo tiết lộ dữ liệu có chọn lọc. Ví dụ bao gồm thực hiện hợp đồng thông minh riêng tư, giao dịch kỹ thuật số ẩn danh và kiểm toán cơ sở dữ liệu được mã hóa. Vượt qua những hạn chế trong quá khứ về độ phức tạp và hiệu suất, các chương trình không kiến thức hiện đại cho thấy tính khả thi về mặt kỹ thuật của các ứng dụng yêu cầu tiết lộ dữ liệu có chọn lọc trên các mạng phân tán.
Báo cáo này phân tích nền tảng mật mã và xây dựng các bằng chứng không kiến thức hiện đại. Sau đó, báo cáo khảo sát các dự án đáng chú ý kết hợp các kỹ thuật này và các trường hợp sử dụng tiềm năng trong tương lai mà chúng cho phép. Mục tiêu là cung cấp bối cảnh kỹ thuật xung quanh lĩnh vực đang phát triển nhanh chóng này và làm nổi bật sự liên quan ngày càng tăng của nó đối với các thiết kế sổ cái phân tán đòi hỏi phải tiết lộ dữ liệu có chọn lọc.
Lịch sử và nền tảng của Bằng chứng không kiến thức
Khái niệm về bằng chứng không kiến thức lần đầu tiên được giới thiệu về mặt toán học vào năm 1989 bởi Goldwasser, Micali và Rackoff trong bài báo quan trọng của họ. Họ đã chứng minh cách hai bên có thể thực hiện một cuộc trao đổi thuyết phục mà không cần phải học bất cứ điều gì ngoại trừ tính hợp lệ của tuyên bố đang được chứng minh [1].
Tuy nhiên, công trình ban đầu chủ yếu tập trung vào các cấu trúc lý thuyết với ứng dụng thực tế hạn chế. Các công trình sáng lập tập trung vào việc chứng minh kiến thức về mật khẩu hoặc giải pháp cho các vấn đề khó như hamiltonicity trong đồ thị. Mãi đến đầu những năm 2000, các hệ thống chứng minh có thể triển khai hiệu quả hơn mới bắt đầu xuất hiện.
Năm 1993, Bellare và Goldreich đề xuất khái niệm về tính hợp lý tính toán và sơ đồ cam kết không tương tác đầu tiên dựa trên các hoán vị trapdoor. Điều này đánh dấu một bước tiến tới các bằng chứng thực tế dựa trên logarit rời rạc cho các tuyên bố về các giá trị đã cam kết. Cùng thời điểm đó, các nhóm song tuyến tính tạo điều kiện cho các sơ đồ mật mã dựa trên ghép nối như chữ ký BGN và CBLS [2].
Những đột phá tiếp theo đến từ sự phát triển trong SNARK và STARK. Năm 2009, Groth đã giới thiệu một biến thể của các bằng chứng Schnorr được tối ưu hóa cho các bằng chứng không kiến thức của các phương trình, được gọi là Bằng chứng kiến thức. Điều này đặt nền tảng cho zk-SNARK cho phép các tuyên bố có thể xác minh được trong thời gian đa thức mục đích chung. Các tác phẩm sau đó đã cải thiện cách tiếp cận này, dẫn đến libSNARK và zcash [3] [4] [5].
STARK đại diện cho một bước nhảy vọt khác, cung cấp bằng chứng âm thanh cho bất kỳ hàm tính toán nào mà không có các giả định mật mã do Ben-Sasson, Chiesa, Tromer và Virza đưa ra. Điều này đã khơi dậy sự quan tâm do tính minh bạch và tính linh hoạt cao hơn so với các kỹ thuật zk-SNARK [6] [7].
Ngày nay, một không gian nghiên cứu sôi động tiếp tục phát triển các kỹ thuật như PLONK và Marlin để nâng cao khả năng mở rộng, hiệu quả và giảm yêu cầu thiết lập đáng tin cậy của các cấu trúc không kiến thức. Những tiến bộ về thuật toán này hiện hỗ trợ các triển khai trong thế giới thực trên các hệ thống phân tán được cấp phép và không được cấp phép.
Tổng quan kỹ thuật về Bằng chứng không kiến thức
Bằng chứng không kiến thức là một giao thức mật mã cho phép một bên, người chứng minh, thuyết phục bên kia, 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 bổ sung nào ngoài tính hợp lệ của chính tuyên bố đó. Trong bối cảnh của blockchain, ZKP cho phép những người tham gia tương tác với dữ liệu nhạy cảm trong khi giảm thiểu rủi ro tiết lộ dữ liệu đó cho những kẻ xấu [8].
Các thành phần của Bằng chứng không kiến thức
Bằng chứng không kiến thức bao gồm một số thành phần chính:
- Tuyên bố: Tuyên bố là lời khẳng định mà người chứng minh muốn chứng minh với người xác minh. Nó có thể là bất kỳ tuyên bố hoặc sự thật nào mà người chứng minh muốn thuyết phục người xác minh là đúng.
- Nhân chứng: Nhân chứng là thông tin liên quan đến Tuyên bố có thể được coi là bằng chứng chứng minh Tuyên bố là đúng sự thật.
- Người chứng minh: Người chứng minh (Prover) là bên sở hữu kiến thức hoặc thông tin cần thiết để chứng minh tính hợp lệ của tuyên bố. Mục tiêu của người chứng minh là thuyết phục người xác minh mà không tiết lộ bất kỳ thông tin bổ sung nào.
- Người xác minh: Người xác minh (Verifier) là bên muốn xác minh tính đúng đắn của tuyên bố mà không thu thập thêm bất kỳ kiến thức nào ngoài tính hợp lệ của nó. Người xác minh thách thức người chứng minh đưa ra bằng chứng thuyết phục.
Các bước chứng minh không có kiến thức
Bằng chứng không kiến thức dựa vào các thuật toán toán học phức tạp và các kỹ thuật mật mã để đạt được mục tiêu của chúng. Các bước sau đây phác thảo quy trình chung của bằng chứng không kiến thức:
- Thiết lập: Người chứng minh và người xác minh thống nhất về một tập hợp các tham số và nguyên hàm mật mã sẽ được sử dụng trong bằng chứng không kiến thức.
- Cam kết: Người chứng minh cam kết về tính hợp lệ của Tuyên bố mà không tiết lộ bất kỳ chi tiết nào. Cam kết này thường đạt được thông qua các kỹ thuật mật mã như hàm băm.
- Tương tác: Người chứng minh và Người xác minh tham gia vào một loạt các tương tác, trong đó người chứng minh cung cấp bằng chứng, Người làm chứng, để thuyết phục Người xác minh về tính đúng đắn của tuyên bố. Những tương tác này bao gồm trao đổi tin nhắn và thực hiện tính toán.
- Xác minh: Người xác minh kiểm tra bằng chứng do Người chứng minh cung cấp để xác định xem bằng chứng đó có đủ sức thuyết phục để chứng minh tính đúng đắn của tuyên bố hay không. Người xác minh không có thêm bất kỳ kiến thức nào ngoài tính hợp lệ của Tuyên bố.
Cam kết của Bằng chứng không kiến thức
Một sơ đồ cam kết đóng vai trò quan trọng trong Zero Knowledge Proofs (ZKP) bằng cách cho phép một bên, được gọi là người chứng minh, cam kết với một giá trị mà không tiết lộ giá trị đó cho bên kia, được gọi là người xác minh. Điều này cho phép người chứng minh chứng minh kiến thức về một giá trị cụ thể mà không thực sự tiết lộ giá trị đó. Sơ đồ cam kết phải có hai thuộc tính quan trọng: ràng buộc và ẩn. Các cấu trúc cam kết lý tưởng truyền đạt cả hai phẩm chất ràng buộc và ẩn.
- Ràng buộc: Sơ đồ cam kết đảm bảo rằng khi người chứng minh cam kết với một giá trị, họ không thể tính toán để thay đổi giá trị đã cam kết. Thuộc tính này đảm bảo tính toàn vẹn của cam kết và ngăn không cho người chứng minh thay đổi giá trị sau khi cam kết đã được thực hiện.
- Ẩn: Sơ đồ cam kết đảm bảo rằng người xác minh không thể xác định giá trị đã cam kết trước khi người chứng minh tiết lộ giá trị đó. Thuộc tính này đảm bảo tính bảo mật của giá trị đã cam kết và ngăn người xác minh lấy bất kỳ thông tin nào về giá trị đó chỉ thông qua cam kết.
Tính không khả thi về mặt tính toán củng cố các đặc tính này. Đối với Provers, ràng buộc được thực thi thông qua việc đảo ngược các mã hóa đã cam kết chứng minh là khó có thể xảy ra. Đối với Verifier, việc ẩn dựa trên các giả định rằng các đầu vào đã cam kết chống lại việc xác định trước khi tiết lộ provers.
Khi kết hợp lại với nhau, các kỹ thuật cam kết sẽ cô lập kiến thức của người chứng minh về mặt mật mã để xác minh sau này thông qua xác nhận có chọn lọc, không phải là tiết lộ không tự nguyện. Chúng cho phép xác nhận riêng tư thông tin được lưu giữ ngày hôm nay để tái tạo đã xác thực sau khi được ủy quyền. Với ràng buộc và ẩn, việc che giấu cam kết che giấu thông tin chi tiết của người chứng minh khỏi người xác minh trong khi cho phép tái tạo minh bạch trong tương lai theo các điều khoản của người chứng minh. Điều này tạo thành hộp khóa mật mã bảo mật lưu thông dữ liệu nhạy cảm trong các giao thức tiết lộ có chọn lọc.
- Cam kết dựa trên băm: Để che giấu giá trị, người chứng minh tạo ra một băm mật mã của dữ liệu và gửi đến người xác minh. Sau đó, việc tiết lộ ảnh trước cho phép người xác minh xác nhận nó tương ứng với cam kết băm ban đầu.
- Cam kết Pedersen: Người chứng minh tạo ra một cam kết ẩn bằng cách nhân một hệ số làm mù riêng tư với một trình tạo công khai và thêm giá trị. Việc tiết lộ hệ số làm mù và trình tạo sau đó cho phép người xác minh xác thực cam kết ban đầu trong khi vẫn giữ giá trị riêng tư.
- Cam kết đa thức: Một trình chứng minh làm mờ một đa thức bằng cách cung cấp các cam kết cho các hệ số của nó. Xác minh bao gồm việc kiểm tra đa thức đánh giá như mong đợi tại các điểm đã chọn, ẩn các giá trị hệ số khỏi trình xác minh nhưng vẫn chứng minh kiến thức thông qua ràng buộc đánh giá.
Các cam kết đa thức tạo thành các kỹ thuật nền tảng trong các bằng chứng không kiến thức hiện đại, cho phép xác thực tính toán bảo vệ quyền riêng tư trong zk-SNARK và zk-STARK thông qua việc tiết lộ dữ liệu có chọn lọc. Vai trò của chúng trong các hệ thống bằng chứng ngắn gọn tạo điều kiện xác nhận các tính toán riêng tư ở quy mô lớn. Kết hợp với các phép đồng cấu, kỹ thuật nội suy và tối ưu hóa tổng hợp, chúng mở khóa các ứng dụng mật mã mới mạnh mẽ [9].
Các loại Bằng chứng không kiến thức
Có nhiều thuộc tính khác nhau áp dụng cho bằng chứng không kiến thức, mỗi thuộc tính có các trường hợp sử dụng và thuộc tính riêng. Một số loại phổ biến bao gồm:
- Bằng chứng Zero-Knowledge tương tác: Những bằng chứng này bao gồm nhiều vòng tương tác giữa người chứng minh và người xác minh. Chúng tốn nhiều tính toán hơn nhưng cung cấp bảo mật mạnh hơn.
- Bằng chứng không có kiến thức không tương tác: Những bằng chứng này chỉ yêu cầu một thông điệp duy nhất từ người chứng minh đến người xác minh. Chúng hiệu quả hơn nhưng có thể có bảo đảm bảo mật yếu hơn [8].
- Bằng chứng không kiến thức cô đọng: Những bằng chứng này được thiết kế để có hiệu quả cao và yêu cầu tài nguyên tính toán tối thiểu. Chúng nhằm mục đích giảm thiểu chi phí tính toán liên quan đến bằng chứng không kiến thức. Để một ZKP được coi là cô đọng, nó phải giảm số lượng tin nhắn mà Người chứng minh và Người xác minh được yêu cầu truyền cho nhau để thiết lập độ chắc chắn về mặt xác suất hoặc để thiết lập nền tảng cho ZKP của họ. Bằng chứng không kiến thức cô đọng là một thuộc tính của bằng chứng Tương tác hoặc Không tương tác, chứ không phải là một danh mục riêng biệt, độc quyền [10].
ZKP TƯƠNG TÁC
Bằng chứng không kiến thức tương tác, còn được gọi là bằng chứng Arthur-Merlin, tạo thành nền tảng lý thuyết cho các ứng dụng hiện đại của mật mã không kiến thức. Ở đây chúng tôi trình bày chi tiết về mô hình tương tác và cách nó đạt được thuộc tính không kiến thức thông qua việc thực hiện lặp lại các giao thức thách thức-phản hồi.
Trong một bằng chứng tương tác, hai bên — Người chứng minh và Người xác minh — tham gia vào một cuộc giao tiếp qua lại để chứng minh hoặc bác bỏ một tuyên bố. Người chứng minh tìm cách chứng minh tuyên bố là đúng mà không tiết lộ bất cứ điều gì khác ngoài tính hợp lệ của nó.
Thuộc tính mật mã chính là zero-knowledge — sau khi tương tác, Verifier không biết gì ngoại trừ việc câu lệnh là đúng hay sai. Điều này ngăn chặn việc rò rỉ thông tin nhạy cảm.
Bằng chứng ZK tương tác tận dụng giao thức “thách thức-phản hồi” trong đó Người xác minh thách thức các tuyên bố của Người chứng minh và phản hồi của Người chứng minh thuyết phục mà không tiết lộ. Một ví dụ đơn giản liên quan đến vấn đề Hamiltonicity của Đồ thị.
Prover đề xuất một lộ trình sẽ dẫn đến giải pháp được khẳng định bởi Message, dưới dạng một loạt các điểm và cạnh trên đồ thị. Verifier ngẫu nhiên chọn Prover phải "chứng minh" chuyến tham quan là đúng hoặc tạo một chuyến tham quan mới cho cùng một đồ thị. Lặp lại sẽ ngẫu nhiên hóa chế độ xem của verifier, đảm bảo rằng nó không tiết lộ thông tin nào về đồ thị hoặc giải pháp.
Tính hợp lý đảm bảo rằng một Verifier bị giới hạn về mặt tính toán không thể bị thuyết phục về một tuyên bố sai trừ khi có xác suất không đáng kể. Nó dựa vào các cam kết trong quá trình tương tác được ẩn và ràng buộc bằng mật mã thông qua các giả định tính toán như nhật ký rời rạc.
Honest-Verifier Zero-Knowledge đảm bảo bản ghi thực thi thực tế không tiết lộ nhiều thông tin hơn một tương tác mô phỏng. Các thử thách ngẫu nhiên lặp đi lặp lại buộc quan điểm của Verifier phải gần với các thử nghiệm độc lập về mặt thống kê.
ZKP KHÔNG TƯƠNG TÁC
Trong khi các bằng chứng không kiến thức tương tác giới thiệu khuôn khổ lý thuyết, các ứng dụng thực tế đòi hỏi các biến thể không tương tác để thuận tiện. Các ZKP không tương tác cung cấp ba tính năng chính: tính cô đọng, không tương tác và lập luận về kiến thức. Phần này trình bày chi tiết các kỹ thuật mật mã cho phép loại bỏ tương tác thông qua việc tạo ra các bằng chứng có thể tái sử dụng.
Thuật toán Fiat-Shamir, được giới thiệu vào năm 1986, đã chuyển đổi các bằng chứng tương tác thành các đối số không tương tác bằng cách thay thế tính ngẫu nhiên của Verifier bằng một oracle ngẫu nhiên. Trong thực tế, hàm băm của bản ghi hoặc bản ghi các thông điệp mà Prover và Verifier đã trao đổi là thứ thực sự được sử dụng. Mô hình đối thủ "lười biếng" này giả định rằng hàm băm hoạt động như một oracle ngẫu nhiên.
Trong thực tế, Prover tạo ra một bằng chứng bằng cách sử dụng câu lệnh và các thử thách ngẫu nhiên có được bằng cách băm tất cả các tin nhắn trước đó. Verifier tính toán lại các thử thách và kiểm tra tính nhất quán. Trình mô phỏng cũng có thể tạo ra các bằng chứng mô phỏng mà không cần Witness bằng cách lập trình oracle ngẫu nhiên.
Toàn bộ quá trình được thực hiện ít phức tạp hơn so với các phiên bản Tương tác vì chỉ cần trao đổi một tin nhắn duy nhất và Người chứng minh và Người xác minh không cần phải trực tuyến cùng lúc để xác thực Tin nhắn [11] [12].
Giao thức Sigma tạo thành một lớp đặc biệt gồm 3 bước xác minh trung thực không có kiến thức, trong đó Prover gửi cam kết, Verifier gửi thách thức và Prover gửi phản hồi. Thuộc tính hợp lệ đặc biệt của chúng tận dụng hai bản sao chấp nhận trong các thách thức khác nhau để trích xuất một nhân chứng.
Được áp dụng với Fiat-Shamir, các giao thức Sigma tạo thành cơ sở của nhiều hệ thống chứng minh không tương tác thực tế như SNARK và STARK bằng cách loại bỏ tương tác thông qua các thử thách được xác định trong khi vẫn duy trì kiến thức bằng không [13] [14].
ZKP SÚC TÓM
Bằng chứng không kiến thức ngắn gọn cho phép xác minh các phép tính trên dữ liệu riêng tư với kích thước bằng chứng là dưới tuyến tính — nghĩa là khi kích thước tin nhắn tăng lên, kích thước của bằng chứng tăng chậm hơn — trong kích thước mạch tính toán. Điều này thể hiện sự cải thiện đáng kể so với các bằng chứng truyền thống có tỷ lệ tuyến tính.
Như đã đề cập trước đó, Succinct Zero-Knowledge Proofs là một thuộc tính của Interactive hoặc Non-Interactive Proofs, chứ không phải là một danh mục riêng biệt, độc quyền. Tuy nhiên, Non-Interactive ZKP là Succinct theo mặc định, nghĩa là chỉ có Interactive ZKP mới có thể được phân biệt là Succinct hoặc không Succinct [10].
Một số thuật toán chứng minh không có kiến thức
CHỐNG ĐẠN
Bulletproofs là một giao thức mật mã cho phép các bằng chứng không kiến thức hiệu quả và an toàn trên chuỗi khối Bitcoin. Nó cho phép xác minh các bằng chứng phạm vi, đảm bảo rằng một giá trị nằm trong phạm vi hoặc khoảng thời gian được chỉ định, mà không tiết lộ giá trị thực. Bulletproofs làm giảm đáng kể kích thước của các bằng chứng không kiến thức, khiến chúng có khả năng mở rộng hơn và tiết kiệm chi phí hơn khi sử dụng trên chuỗi khối Bitcoin
Bằng cách cho phép bằng chứng bảo vệ quyền riêng tư về số tiền, Bulletproofs đã tìm thấy cách sử dụng nổi bật trong các loại tiền điện tử như Monero để che giấu số tiền giao dịch. Phần này đi sâu vào cơ chế mã hóa hỗ trợ Bulletproofs.
Các lược đồ chứng minh phạm vi trước đây như Pinocchio dựa vào SNARK không có kiến thức xác minh trung thực, gây ra chi phí hằng số cao. Để giải quyết vấn đề này, Bünz và cộng sự đã trình bày một cách tiếp cận mới bằng cách sử dụng thành phần đệ quy của các giao thức Sigma. Các giao thức Sigma tạo thành xương sống của nhiều chứng minh không có kiến thức thông qua các thuộc tính về tính hợp lệ và không có kiến thức xác minh trung thực của chúng.
Bulletproofs đệ quy chia nhỏ một khoảng số thành các phân đoạn nhỏ hơn thông qua phân tích nhị phân. Ở mỗi bước, các cam kết đối với các điểm cuối của khoảng được công bố cùng với bằng chứng cho thấy giá trị đã cam kết nằm trong phạm vi con đó. Bằng cách kết hợp các bằng chứng trên các phạm vi con, câu lệnh cuối cùng được chứng minh mà không tiết lộ giá trị cụ thể.
Phương pháp thành phần đệ quy này mang lại sự cải thiện đáng kể so với chi phí đa thức. Các cam kết sử dụng lược đồ cam kết Pedersen với nhóm bậc nguyên tố để duy trì tính toàn vẹn của mật mã. Các bằng chứng tận dụng các giao thức Sigma như bằng chứng Schnorr chỉ tiết lộ rằng một giá trị đã cam kết thỏa mãn một số mối quan hệ đại số nhất định mà không làm rò rỉ nó [15] [16].
CỤT
PLONK, hay Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge, là một hệ thống chứng minh zero-knowledge ngắn gọn được Gabizon, Williamson và Ciobotaru giới thiệu vào năm 2019. Bằng cách cho phép chứng minh ZK hiệu quả cao thông qua các cam kết đa thức, PLONK đang được áp dụng trong các ứng dụng blockchain có thể mở rộng quy mô. Ở đây chúng ta thảo luận về cách các kỹ thuật mã hóa của PLONK hoạt động.
Các hệ thống chứng minh ZK trước đây như zk-SNARK dựa vào các ràng buộc đại số trên các nhóm song tuyến tính gây ra chi phí hằng số cao. Thay vào đó, PLONK sử dụng các cam kết đa thức cam kết với các đa thức trên một trường hữu hạn theo cách ngắn gọn nhưng có ràng buộc mật mã.
Các cam kết đa thức tận dụng thực tế là việc đánh giá các đa thức tại các điểm riêng biệt xác định duy nhất đa thức. Người chứng minh cam kết với một đa thức biểu diễn phép tính và chứng minh trong kiến thức bằng không rằng bằng chứng của nó thỏa mãn đa thức đã tuyên bố [17] [18] [19].
ZK SNARKS
zk-SNARK (zero-knowledge Succinct Non-interactive ARguments of Knowledge) là một dạng chứng minh zero-knowledge không tương tác cho phép xác minh hiệu quả các phép tính trên dữ liệu bí mật. Phần này trình bày chi tiết về cấu trúc mật mã cho phép zk-SNARK.
Các ZKP không tương tác truyền thống không hiệu quả và tốn nhiều tính toán, hạn chế các trường hợp sử dụng. zk-SNARK giải quyết vấn đề này thông qua một kỹ thuật gọi là “bằng chứng kiến thức”. Bằng cách giảm xác minh xuống một số tuyến tính các phép toán nhóm, chúng cung cấp các đối số không tương tác ngắn gọn cho các mối quan hệ NP.
Trực giác chính đến từ Bulletproofs, nơi xây dựng các bằng chứng phạm vi hiệu quả thông qua thành phần đệ quy của các giao thức Sigma. Tương tự như vậy, zk-SNARK tận dụng các giao thức Sigma như các chương trình khoảng bậc hai để chứng minh các mối quan hệ trong các mạch số học biểu diễn các phép tính.
zk-SNARK sử dụng chuỗi tham chiếu được tạo trong quá trình thiết lập đáng tin cậy để mô tả mạch số học mã hóa Statement/Witness. Provers cam kết với các đầu vào và chứng minh kiến thức của một Witness thỏa mãn mạch.
Cụ thể, họ cam kết các đầu vào cho một nhóm bậc nguyên tố và chứng minh khả năng thỏa mãn bằng cách cung cấp các đối số không có kiến thức tương tác mà các cam kết thỏa mãn các phương trình của mạch số học. Các mô phỏng trích xuất mà không có kiến thức Chứng kiến [6] [7] [10] [20] [21].
ZK STARKS
zk-STARK (zero-knowledge Scalable Transparent ARguments of Knowledge) là một cách tiếp cận khác đối với các bằng chứng ZK không tương tác hiệu quả, cung cấp thiết lập mạnh mẽ hơn và đảm bảo tính toán hơn zk-SNARK. Phần này đi sâu vào các kỹ thuật mật mã cho phép zk-STARK
Trong khi zk-SNARK hỗ trợ nhiều ứng dụng, việc chúng phụ thuộc vào chuỗi tham chiếu được tạo trong quá trình thiết lập đáng tin cậy là một hạn chế đang diễn ra. zk-STARK hướng đến mục tiêu hiện thực hóa “dữ liệu mang bằng chứng” mà không cần tin tưởng vào bên thứ ba.
Giống như zk-SNARK, zk-STARK biểu diễn các phép tính dưới dạng chương trình ARithmetiC bậc hai (QAP) bao gồm các bản đồ đa tuyến bậc hai. Tuy nhiên, chúng áp dụng các kỹ thuật PCP tuyến tính để tạo ra các bằng chứng trong đó tính hợp lệ có thể được kiểm tra hiệu quả trong thời gian tuyến tính, loại bỏ chuỗi tham chiếu.
zk-STARK cam kết cả đầu vào và biểu diễn QAP bằng cách sử dụng một lược đồ cam kết đa vectơ mới được bảo mật theo giả định Tuyến tính đa vectơ (MVL). Điều này liên kết mật mã các đầu vào với phép tính đã hứa.
Thay vì một chuỗi tham chiếu, zk-STARK tận dụng các hàm băm chống va chạm để đưa ra các thách thức một cách xác định, duy trì tính minh bạch. Các bằng chứng vẫn không tương tác thông qua phép biến đổi Fiat-Shamir.
Những tiến bộ trên trong việc biểu diễn, cam kết và suy luận thách thức tạo ra các lập luận có thể xác minh được theo thời gian chỉ tỷ lệ thuận với quy mô vấn đề mà không cần tham chiếu chung. Nhiều công việc đang diễn ra liên tục được cải thiện.
Tóm lại, bằng cách áp dụng các kỹ thuật PCP tuyến tính và các cam kết đa vectơ trong khuôn khổ STARK, zk-STARK mở ra tương lai của các đối số không tương tác, minh bạch, thực sự không cần tin cậy ở quy mô lớn [6] [7] [10] [20] [21].
GROTH
Jens Groth là người tiên phong trong việc phát triển các bằng chứng zero-knowledge hiệu quả phù hợp với các ứng dụng blockchain. Phần này của báo cáo trình bày chi tiết các kỹ thuật mật mã đằng sau bằng chứng Groth và cách sử dụng chúng trong sổ cái phân tán bảo vệ quyền riêng tư.
Các ZKP blockchain ban đầu như zk-SNARK biểu diễn các phép tính dưới dạng các chương trình số học bậc hai được cam kết theo một chuỗi tham chiếu. Mặc dù hiệu quả, nhưng điều này lại phát sinh chi phí thiết lập đáng tin cậy. Groth tìm kiếm các bằng chứng không cần thiết lập bằng cách dựa trên các cam kết trong các nhóm song tuyến tính.
Bằng chứng không kiến thức Groth dựa trên khái niệm mật mã dựa trên cặp, sử dụng các cấu trúc toán học được gọi là nhóm song tuyến tính — các cấu trúc toán học cho phép tính toán hiệu quả các cặp giữa các phần tử từ hai nhóm khác nhau. Bằng chứng Groth cam kết đầu vào cho các nhóm song tuyến tính bậc nguyên tố như các đường cong elliptic thân thiện với cặp. Các giá trị cam kết cho các phần tử nhóm, liên quan bằng các bản đồ đa tuyến tính bảo toàn các phụ thuộc tuyến tính. Điều này cho phép thể hiện các ràng buộc tính toán theo cách nhỏ gọn, do đó việc xác minh ít tốn kém hơn [22].
Những chỉ trích và hạn chế của Zero-Knowledge Proofs trên Blockchain
ZKP đã thu hút được sự chú ý đáng kể trong không gian blockchain do tiềm năng tăng cường quyền riêng tư và bảo mật. Tuy nhiên, giống như bất kỳ công nghệ nào, ZKP không miễn nhiễm với các lỗi và lỗ hổng khi không được triển khai hoặc thiết lập đúng cách.
Nếu một lược đồ ZK không đủ ràng buộc, tính toàn vẹn của nó không thể được đảm bảo. Những kẻ xấu có thể khai thác các giá trị đầu vào không bị ràng buộc để tạo ra các bằng chứng giả, làm tổn hại đến toàn bộ lược đồ [23].
Các vấn đề về tính toàn vẹn có thể phát sinh khi quá trình xác minh của ZKP không được triển khai đúng cách. Ví dụ, nếu thuật toán xác minh không xác thực được các giá trị đầu vào hoặc không thực hiện các kiểm tra cần thiết, điều này có thể dẫn đến việc chấp nhận các bằng chứng không hợp lệ [24].
Các vấn đề về tính hợp lệ xảy ra khi ZKP không từ chối các tuyên bố sai. Nếu thuật toán xác minh không xác thực đúng bằng chứng so với tuyên bố đang được chứng minh, nó có thể dẫn đến việc chấp nhận các bằng chứng sai.
Rò rỉ thông tin là tình huống mà thông tin không mong muốn được tiết lộ trong quá trình ZKP. Điều này có thể xảy ra do xử lý dữ liệu nhạy cảm không đúng cách hoặc cơ chế bảo vệ không đầy đủ. Rò rỉ thông tin có thể gây nguy hiểm cho quyền riêng tư và bảo mật của ZKP và hệ thống blockchain cơ bản.
Việc triển khai mật mã không chuẩn hóa có thể gây ra lỗ hổng trong ZKP. Nếu các thuật toán hoặc giao thức mật mã được sử dụng trong ZKP không được triển khai đúng cách hoặc không tuân theo các tiêu chuẩn đã thiết lập, điều này có thể dẫn đến các điểm yếu có thể bị kẻ tấn công khai thác.
Để giảm thiểu các sai sót và lỗ hổng của bằng chứng không kiến thức trên blockchain, có thể áp dụng một số chiến lược phòng thủ sau:
Đầu tiên, các dự án có thể áp dụng kiểm toán bảo mật nghiêm ngặt. Việc tiến hành kiểm toán bảo mật toàn diện đối với các triển khai ZKP có thể giúp xác định các lỗ hổng và lỗi thiết kế. Quy trình này phải bao gồm mô hình hóa mối đe dọa, kiểm tra mã và đánh giá chéo nội bộ để đánh giá toàn diện tính bảo mật của các mạch và ứng dụng ZKP [25].
Tiếp theo, các giá trị đầu vào có thể bị hạn chế. Việc triển khai các hạn chế thích hợp đối với các giá trị đầu vào có thể ngăn chặn việc tạo ra các bằng chứng giả mạo. Bằng cách hạn chế phạm vi các đầu vào có thể, tính toàn vẹn của ZKP có thể được đảm bảo tốt hơn [23].
Cuối cùng, khi xây dựng bằng ZKP, chỉ nên sử dụng các tiêu chuẩn mật mã chuẩn hóa. Việc tuân theo các tiêu chuẩn mật mã đã thiết lập và các thông lệ tốt nhất có thể giúp đảm bảo tính bảo mật và toàn vẹn của ZKP. Sử dụng các thuật toán và giao thức mật mã được kiểm tra kỹ lưỡng sẽ làm giảm nguy cơ lỗ hổng [25].
Các dự án tận dụng bằng chứng không kiến thức
Ví dụ chung
Tiền Zcash
Zcash là một loại tiền điện tử sử dụng zk-SNARK. Zcash cho phép người dùng bảo vệ thông tin chi tiết về giao dịch của họ, bao gồm người gửi, người nhận và số tiền giao dịch, đồng thời vẫn đảm bảo tính hợp lệ của giao dịch.
Mạng Stark
StarkNet hỗ trợ triển khai các chương trình phức tạp tùy ý trên Ethereum thông qua kiến trúc zk-rollup bảo vệ quyền riêng tư. Giao thức cho vay đáng chú ý Aave và dự án stablecoin Maker có ý định ra mắt các ứng dụng trên StarkNet để tận dụng khả năng của nó.
Khả năng mở rộng có thể được tối ưu hóa hơn nữa thông qua StarkEx zk-rollups được xây dựng trên nền tảng của StarkNet. Điều này tạo ra bằng chứng để giao dịch khối lượng vượt quá các lớp thanh toán cơ bản một cách bảo mật.
Để mở khóa hoàn toàn tiềm năng chứng minh STARK, StarkWare đã giới thiệu ngôn ngữ lập trình Cairo. Cairo hỗ trợ tạo siêu dữ liệu xác minh ngắn gọn tối ưu từ các phép tính hoàn chỉnh của Turing.
Để hiện thực hóa tầm nhìn của Cairo, cần phải vun đắp một hệ sinh thái hỗ trợ. StarkWare phải thiết lập tài liệu, khuôn khổ và các công cụ hỗ trợ để áp dụng Cairo một cách thực tế. Chỉ thông qua việc thiết lập các công cụ và hướng dẫn như vậy, Cairo mới có thể hợp lý hóa việc sắp xếp các hợp đồng thông minh bảo vệ quyền riêng tư và cơ sở hạ tầng mở rộng theo khối lượng công việc phức tạp. Sau khi được xác thực, Cairo sẽ mở đường cho các ứng dụng sổ cái phân tán bảo mật có hiệu suất cao.
Vòng lặp
Loopring là một sàn giao dịch phi tập trung (DEX) được xây dựng trên Ethereum, sử dụng zk-SNARK để cho phép giao dịch theo kiểu sổ lệnh mà không cần nắm giữ tài sản của người dùng. Nó đảm bảo quyền riêng tư và bảo mật trong các giao dịch.
Đồng bộ zk
zkSync bao gồm một giải pháp mở rộng Ethereum khai thác kiến trúc volition cho các chương trình phức tạp. Sử dụng zk-SNARKS, zkSync xác nhận các hoạt động trong khi che giấu dữ liệu cơ bản.
Tính khả dụng dựa trên giao thức bằng chứng cổ phần zkPorter xác nhận các lần gửi. Khác với StarkNet ngoại trừ logic biện minh, zkSync vẫn giữ nguyên khả năng tương thích với Ethereum Virtual Machine.
Điều này tạo điều kiện thực hiện hợp đồng quen thuộc trên nhiều môi trường. Các dự án bao gồm sàn giao dịch phi tập trung 1inch, đồng tiền ổn định thuật toán Alchemix và stableswap Curve dự định triển khai trên cơ sở hạ tầng zkSync để tận dụng các khả năng.
Tận dụng ngữ nghĩa EVM đã được thiết lập trong khi tăng thông lượng thông qua các giao dịch bí mật, zkSync định vị để tăng cường liền mạch các ứng dụng Ethereum hiện có. Áp dụng hợp đồng thông minh vào giao diện xác thực zk-SNARK các thành phần hệ sinh thái đã được thiết lập với việc giảm chi phí bảo vệ quyền riêng tư.
zkSync hứa hẹn mở rộng hợp đồng thông minh Ethereum thông qua việc tiết lộ dữ liệu có chọn lọc. Việc giữ lại ngữ nghĩa EVM trong khi tích hợp lý luận zk sẽ thúc đẩy quá trình chuyển đổi các chương trình phức tạp sang mạng lưới nâng cao một cách minh bạch [26] [27] [28] [29].
Giao thức Mina
Mina Protocol là một blockchain sử dụng bằng chứng không kiến thức (zkSNARK) làm một phần cơ bản của kiến trúc. Giao thức này nhằm mục đích cung cấp khả năng mở rộng, bảo mật và phi tập trung trong khi vẫn duy trì kích thước blockchain nhỏ khoảng 22KB. Bằng cách tận dụng zkSNARK, Mina Protocol cho phép người dùng chứng minh tính hợp lệ của các giao dịch và các tuyên bố khác bằng mật mã mà không tiết lộ dữ liệu cơ bản hoặc xâm phạm quyền riêng tư [1]. Cách tiếp cận này cho phép Mina Protocol đạt được xác minh hiệu quả và an toàn trong khi giảm thiểu các yêu cầu về lưu trữ và tính toán của blockchain. [30]
Giao thức Aztec
Aztec Protocol là một dự án tập trung vào quyền riêng tư nhằm mục đích đưa bằng chứng không kiến thức vào chuỗi khối Ethereum và Bitcoin. Nó sử dụng zk-SNARK (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) để cho phép các giao dịch bí mật trên mạng Bitcoin. Aztec Protocol cho phép người dùng giao dịch riêng tư bằng cách mã hóa thông tin chi tiết về giao dịch và chứng minh tính hợp lệ của chúng mà không tiết lộ bất kỳ thông tin nhạy cảm nào [31].
Ví dụ về Bitcoin
Mạng lưới Zulu
Zulu Network tận dụng bằng chứng không kiến thức để tăng cường quyền riêng tư, bảo mật và khả năng mở rộng. Thông qua việc tiết lộ dữ liệu có chọn lọc, bằng chứng không kiến thức cho phép chức năng quan trọng cho sổ cái phân tán.
Quyền riêng tư và bảo mật được cải thiện thông qua các giao dịch riêng tư. Người dùng có thể giao dịch mà không tiết lộ số tiền giao dịch, địa chỉ hoặc các chi tiết nhạy cảm khác. Điều này bảo vệ quyền riêng tư trên các blockchain mở.
Xác minh và kiểm toán cũng có thể thực hiện thông qua bằng chứng không kiến thức. Chúng cho phép xác minh tính toán và tính toàn vẹn của dữ liệu mà không tiết lộ thông tin thực tế. Điều này tạo điều kiện cho việc kiểm toán hiệu quả trong khi vẫn duy trì quyền riêng tư.
Lợi ích về khả năng mở rộng đáng kể phát sinh từ tính cô đọng của bằng chứng. Các phép tính phức tạp có thể được xác minh thông qua các bằng chứng cô đọng, giảm chi phí lưu trữ và xử lý. Điều này nâng cao thông lượng và khả năng mở rộng của nền tảng.
Xác minh danh tính và xác thực cũng được hỗ trợ thông qua bằng chứng không kiến thức. Chúng cho phép xác nhận thông tin xác thực an toàn và kiểm soát truy cập trong khi che giấu thông tin chi tiết của người dùng.
Đáng chú ý, khả năng tương tác giữa các chuỗi được tạo điều kiện thuận lợi thông qua việc chuyển giao tài sản bảo vệ quyền riêng tư. Bằng chứng không kiến thức hỗ trợ các tương tác trên các mạng bằng cách che giấu dữ liệu trong các giao dịch và truyền thông đa nền tảng.
Phần kết luận
Như báo cáo này đã nêu, bằng chứng không kiến thức là một giải pháp mật mã thanh lịch để xác minh các phép tính và giao dịch riêng tư. Nền tảng lý thuyết của chúng đã được thiết lập từ nhiều thập kỷ trước, nhưng những tiến bộ đang diễn ra hiện đang mang lại các ứng dụng thực tế trên các hệ thống phân tán có và không có quyền.
Các mạng blockchain đáng chú ý đã bắt đầu kết hợp các kỹ thuật ZKP để tăng cường quyền riêng tư của người dùng mà không phải hy sinh các yêu cầu về tính minh bạch. Các lĩnh vực như tiền điện tử, bỏ phiếu kỹ thuật số và dữ liệu được mã hóa đều có thể đạt được sự đảm bảo về quyền riêng tư thông qua các chứng thực mật mã này. Với những cải tiến về độ phức tạp và quy mô của bằng chứng, các chương trình mới đang nổi lên như khả thi về mặt kỹ thuật.
Nhìn về phía trước, các nghiên cứu bổ sung vẫn đang được tiến hành để củng cố các ZKP không bị hạn chế như STARK, cải thiện các giả định thiết lập đáng tin cậy và mở rộng lớp các tuyên bố có thể chứng minh được bằng các giao thức hiệu quả. Các nỗ lực chuẩn hóa cũng có thể thúc đẩy việc áp dụng rộng rãi hơn trong các ngành có nhu cầu bảo mật.
Khi khả năng của zero-knowledge mở rộng, việc tích hợp nó vào các giao thức sổ cái phân tán cốt lõi cũng như hợp đồng thông minh và các lớp ứng dụng có khả năng sẽ sâu hơn. Điều này có thể thấy các tương tác trên blockchain giống như sự kết hợp giữa tính minh bạch khi cần thiết cùng với sự mơ hồ có chọn lọc đối với dữ liệu nhạy cảm.
Các dự án gần đây đã đạt được tiến bộ đáng kể trong việc xây dựng bằng chứng không kiến thức trên chuỗi khối Bitcoin. Do đó, bằng chứng không kiến thức đã nổi lên như một công cụ mạnh mẽ để tăng cường quyền riêng tư và bảo mật trong hệ sinh thái Bitcoin. Nhiều dự án đã khám phá việc triển khai bằng chứng không kiến thức, tận dụng các kỹ thuật như zk-SNARK, một số để giải quyết các mối quan ngại về quyền riêng tư, một số khác để cải thiện khả năng mở rộng và nhiều hơn nữa để cho phép các loại giao dịch tiên tiến hơn. Các dự án này chứng minh tiềm năng của bằng chứng không kiến thức trong việc cách mạng hóa chuỗi khối Bitcoin và mở đường cho một hệ thống tài chính phi tập trung riêng tư và hiệu quả hơn. Khi nhu cầu về quyền riêng tư và khả năng mở rộng tăng lên, các dự án này đóng vai trò quan trọng trong việc định hình tương lai của hệ sinh thái chuỗi khối.
Nhìn chung, mật mã không kiến thức trao quyền xác thực các hoạt động nhạy cảm một cách riêng tư thông qua các kỹ thuật chứng minh khoa học nghiêm ngặt nhưng có thể triển khai thực tế. Tiến bộ liên tục trong lĩnh vực này sẽ hỗ trợ đáng kể cho các thiết kế lấy quyền riêng tư làm trọng tâm trong các hệ thống phân tán trong tương lai. Nghiên cứu sâu hơn nên tiếp tục khám phá các thuật toán, tối ưu hóa và phương tiện triển khai mới để hiện thực hóa đầy đủ lời hứa của nó.
Tác phẩm được trích dẫn
[1] SM a. CRS Goldwasser, “Độ phức tạp kiến thức của các hệ thống chứng minh tương tác,” Tạp chí SIAM về máy tính, tập 18, số 1, trang 186–208, 1989.
[2] MB a. O. Goldreich, “Về việc xác định bằng chứng kiến thức,” Advances in Cryptology — CRYPTO' 92, tập 740, trang 390–420, 1993.
[3] J. Groth, “Đại số tuyến tính với các đối số kiến thức bằng không dưới tuyến tính,” Advances in Cryptology — CRYPTO 2009, trang 192–208, 2009.
[4] A. Harp, “Jens Groth, Nhà mật mã học nổi tiếng thế giới và Nhà nghiên cứu chính tại DFINITY, nhận Giải thưởng Thử nghiệm thời gian của IACR lần thứ hai,” Medium.
[5] FBARMSedaghat, “Bằng chứng Groth-Sahai: Từ số không đến anh hùng!”, Mysten Labs, 2023.
[6] ACET a. MVE Ben-Sasson, “Kiến thức bằng không {không tương tác} ngắn gọn cho kiến trúc von Neumann,” USENIX, 2019.
[7] “Bằng chứng không kiến thức (zkps),” Quỹ Klaytn.
[8] C. Team, “Giới thiệu về bằng chứng không kiến thức”, Chainalysis.
[9] L. Franceschini, “Hướng dẫn về bằng chứng không kiến thức”, Medium.
[10] D. Bogdanov, “Giải thích về bằng chứng không kiến thức: ZK-SNARK so với ZK-Starks,” LimeChain.
[11] GeeksforGeeks, “Bằng chứng kiến thức bằng không không tương tác”, GeeksforGeeks.
[12] E. Vatsadze, “Sự biến đổi Fiat-Shamir: Cho phép các bằng chứng không tương tác,” Medium.
[13] JG a. M. Kohlweiss, “Một trong nhiều bằng chứng: Hoặc cách tiết lộ bí mật và tiêu một đồng xu,” Tiến bộ trong mật mã học — EUROCRYPT 2015, trang 253–280, 2015.
[14] L. Harchandani, “Bằng chứng không có kiến thức với Giao thức Sigma,” Medium.
[15] P. Team, “Crypto bulletproofs — phần giới thiệu,” Panther Protocol.
[16] BB e. al., “Bulletproofs: Bằng chứng ngắn cho các giao dịch bí mật và hơn thế nữa,” Hội thảo IEEE năm 2018 về Bảo mật và Quyền riêng tư (SP), trang 315–334, 2018.
[17] ZJW a. OCA Gabizon, “Plonk: Các hoán vị trên cơ sở Lagrange cho các đối số kiến thức không tương tác đại kết,” Kho lưu trữ bản in điện tử về mật mã học của IACR, 2019.
[18] C. Fairy, “Bên trong giao thức zkSNARK — PLONK: Phần 1–6,” Medium.
[19] 0x, “Plonk là gì?”, Trung bình.
[20] J. Singh, “giải thích về zk-STARK so với zk-SNARK,” Cointelegraph, 2022.
[21] IBYH a. MRE Ben-Sasson, “Tính toàn vẹn tính toán có thể mở rộng, minh bạch và an toàn sau lượng tử”, Kho lưu trữ bản in điện tử về mật mã của IACR, 2018.
[22] A. Harp, “Jens Groth, Nhà mật mã học nổi tiếng thế giới và Nhà nghiên cứu chính tại DFINITY, nhận Giải thưởng Thử nghiệm thời gian của IACR lần thứ hai,” Medium.
[23] Oxorio, “Những lỗ hổng phổ biến trong bằng chứng ZK,” Medium.
[24] O. Wright, “Những thất bại chuyên biệt của chứng minh không kiến thức”, Blog Trail of Bits.
[25] XT e. al., “Phân tích lỗ hổng bằng chứng không có kiến thức và kiểm toán bảo mật”, Kho lưu trữ bản in điện tử về mật mã, 2024.
[26] A. Williams, “Mở khóa tiềm năng của bằng chứng không kiến thức trong Blockchain,” Truyền thông của ACM, 2024.
[27] K. Wadhwani, “Bằng chứng kiến thức bằng không được sử dụng để làm gì?”, Công ty phát triển công nghệ chuỗi khối, di động, AI và IoT Hoa Kỳ, Canada.
[28] “Tổng quan về các dự án blockchain không kiến thức: Chainlink,” Chainlink, 2023.
[29] K. Learn, “Các dự án tiền điện tử chống bảo mật bằng không (ZK) hàng đầu năm 2024,” KuCoin Learn, 2024.
[30] Sarika, “Hướng dẫn nhanh về kiến trúc blockchain mina,” Medium, 2024.
[31] J. Wu, “Giải thích về “Mạng lưới” trong Mạng lưới Aztec,” Medium, 2022.
Giới thiệu về Zulu Network
Zulu Network là một lớp Bitcoin Layer 2 mới để thúc đẩy nền kinh tế Bitcoin, trao quyền cho hệ sinh thái Bitcoin thông qua những đổi mới thú vị. Zulu là Bitcoin Layer 2 đầu tiên đạt được bảo mật cấp độ Bitcoin bằng BitVM2, cho phép các nhà phát triển triển khai dApps liền mạch trên cả lớp EVM và UTXO.
Zulu là một đơn vị đóng góp chính được công nhận cho BitVM, sẵn sàng ra mắt cầu nối Bitcoin đầu tiên được tối thiểu hóa niềm tin. Hãy tham gia cùng hơn 755.000 người dùng của họ và bắt đầu kiếm tiền và định hình tương lai trên Bitcoin với Zulu.