Hệ thống chứng minh không kiến thức (零知识证明) lần đầu tiên được phát triển từ nghiên cứu của Goldwasser, Micali và Rackoff vào năm 1985. Họ đã khám phá lượng kiến thức cần trao đổi để chứng minh tính đúng đắn của một tuyên bố thông qua nhiều vòng tương tác trong các hệ thống tương tác. Nếu có thể hoàn thành chứng minh mà không cần trao đổi bất kỳ kiến thức nào, thì được gọi là chứng minh không kiến thức.
Các hệ thống zk-SNARK ban đầu có những thiếu sót về hiệu suất và tính thực tiễn, chủ yếu vẫn dừng lại ở cấp độ lý thuyết. Trong 10 năm qua, với sự phát triển của mật mã trong lĩnh vực tiền điện tử, zk-SNARK đã bắt đầu phát triển mạnh mẽ và trở thành một hướng nghiên cứu quan trọng. Trong đó, phát triển các giao thức zk-SNARK tổng quát, không tương tác và có quy mô chứng minh hạn chế là một trong những hướng khám phá quan trọng.
Một bước đột phá quan trọng của chứng minh không kiến thức là chứng minh không kiến thức ngắn không tương tác dựa trên cặp đối tượng được Groth đề xuất vào năm 2010. Điều này đã đặt nền tảng lý thuyết cho zk-SNARK. Năm 2015, Zcash đã áp dụng hệ thống chứng minh không kiến thức để bảo vệ quyền riêng tư giao dịch, đánh dấu sự bắt đầu ứng dụng rộng rãi của chứng minh không kiến thức.
Các thành tựu học thuật quan trọng khác bao gồm:
Pinocchio năm 2013: Nén thời gian chứng minh và xác minh vào phạm vi có thể sử dụng
Groth16 năm 2016: Rút gọn kích thước chứng minh, nâng cao hiệu quả xác minh
Bulletproofs năm 2017: đề xuất chứng minh ngắn mà không cần thiết lập đáng tin cậy
zk-STARKs của năm 2018: đề xuất giao thức mới không cần thiết lập tin cậy
Ngoài ra, PLONK, Halo2 cũng là những tiến bộ quan trọng, đã cải tiến zk-SNARK.
zk-SNARK của ứng dụng
zk-SNARK ứng dụng rộng rãi nhất là bảo vệ quyền riêng tư và mở rộng quy mô.
bảo vệ quyền riêng tư
Các dự án giao dịch riêng tư sớm như Zcash và Monero đã trở thành hướng đi quan trọng sau khi ra mắt. Tuy nhiên, do nhu cầu về giao dịch riêng tư không đạt kỳ vọng, các dự án này dần dần rơi vào nhóm thứ hai và thứ ba.
Zcash sử dụng công nghệ zk-SNARKs, các bước giao dịch của nó bao gồm: thiết lập hệ thống, tạo khóa công khai và khóa riêng, đúc tiền, tạo chứng nhận, xác minh và nhận. Tuy nhiên, Zcash dựa trên mô hình UTXO, chỉ che giấu một phần thông tin giao dịch, mà không hoàn toàn ẩn. Tỷ lệ giao dịch riêng tư của nó chưa đến 10%.
Tornado Cash sử dụng thiết kế bể trộn tiền tệ lớn duy nhất, dựa trên mạng Ethereum, sử dụng công nghệ zk-SNARK. Nó đảm bảo chỉ có đồng tiền đã gửi mới có thể được rút, mỗi đồng tiền chỉ có thể rút một lần, quy trình chứng minh được gắn với thông báo hủy bỏ.
mở rộng
Mở rộng zk có thể được thực hiện trên mạng lớp một ( như Mina ) hoặc mạng lớp hai ( tức là zk-rollup ). zk-rollup bao gồm hai loại vai trò là Sequencer và Aggregator. Sequencer có trách nhiệm đóng gói giao dịch, Aggregator sẽ hợp nhất nhiều giao dịch và tạo ra zk-SNARK, cập nhật cây trạng thái Ethereum.
Ưu điểm của zk-rollup là chi phí thấp, đạt được tính cuối nhanh chóng, nhược điểm là khối lượng tính toán lớn, có thể tồn tại vấn đề về an toàn.
Hiện tại, các dự án zk-rollup chính bao gồm: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, v.v. Chúng có sự khác biệt về lựa chọn SNARK/STARK và khả năng tương thích EVM.
Tính tương thích EVM luôn là một thách thức. Một số dự án chọn phát triển máy ảo và ngôn ngữ riêng, nhưng điều này làm tăng chi phí học tập cho các nhà phát triển. Hiện tại, trong ngành có hai giải pháp chính: hoàn toàn tương thích với mã thao tác Solidity, hoặc thiết kế máy ảo thân thiện với zk-SNARK và tương thích với Solidity. Gần đây, tính tương thích EVM đã đạt được tiến bộ quan trọng, hứa hẹn sẽ cho phép các nhà phát triển chuyển giao một cách liền mạch.
Nguyên lý thực hiện ZK-SNARK
ZK-SNARK(Lập luận không tương tác ngắn gọn về kiến thức không có kiến thức)là một hệ thống zk-SNARK, có những đặc điểm sau:
zk-SNARK: Quá trình chứng minh không rò rỉ thông tin bổ sung
Đơn giản: kích thước xác minh nhỏ
Không tương tác: Không cần tương tác nhiều vòng
Độ tin cậy: người chứng minh với khả năng tính toán hạn chế không thể làm giả chứng minh.
Tính kiến thức: Người chứng minh phải biết thông tin hợp lệ để xây dựng chứng minh
Quá trình chứng minh ZK-SNARK của Groth16 bao gồm:
Chuyển đổi vấn đề thành mạch điện
Chuyển đổi mạch thành dạng R1CS
Chuyển đổi R1CS sang dạng QAP
Thiết lập cấu hình đáng tin cậy, tạo ra proving key và verifying key
Tạo và xác minh chứng ZK-SNARK
Công nghệ zk-SNARK vẫn đang phát triển nhanh chóng, trong tương lai có khả năng đóng vai trò lớn hơn trong việc bảo vệ quyền riêng tư, mở rộng quy mô.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Phân tích toàn diện về sự phát triển và ứng dụng của công nghệ zk-SNARK: Từ bảo vệ quyền riêng tư đến mở rộng Layer2
zk-SNARK phát triển và ứng dụng
zk-SNARK của lịch sử
Hệ thống chứng minh không kiến thức (零知识证明) lần đầu tiên được phát triển từ nghiên cứu của Goldwasser, Micali và Rackoff vào năm 1985. Họ đã khám phá lượng kiến thức cần trao đổi để chứng minh tính đúng đắn của một tuyên bố thông qua nhiều vòng tương tác trong các hệ thống tương tác. Nếu có thể hoàn thành chứng minh mà không cần trao đổi bất kỳ kiến thức nào, thì được gọi là chứng minh không kiến thức.
Các hệ thống zk-SNARK ban đầu có những thiếu sót về hiệu suất và tính thực tiễn, chủ yếu vẫn dừng lại ở cấp độ lý thuyết. Trong 10 năm qua, với sự phát triển của mật mã trong lĩnh vực tiền điện tử, zk-SNARK đã bắt đầu phát triển mạnh mẽ và trở thành một hướng nghiên cứu quan trọng. Trong đó, phát triển các giao thức zk-SNARK tổng quát, không tương tác và có quy mô chứng minh hạn chế là một trong những hướng khám phá quan trọng.
Một bước đột phá quan trọng của chứng minh không kiến thức là chứng minh không kiến thức ngắn không tương tác dựa trên cặp đối tượng được Groth đề xuất vào năm 2010. Điều này đã đặt nền tảng lý thuyết cho zk-SNARK. Năm 2015, Zcash đã áp dụng hệ thống chứng minh không kiến thức để bảo vệ quyền riêng tư giao dịch, đánh dấu sự bắt đầu ứng dụng rộng rãi của chứng minh không kiến thức.
Các thành tựu học thuật quan trọng khác bao gồm:
Ngoài ra, PLONK, Halo2 cũng là những tiến bộ quan trọng, đã cải tiến zk-SNARK.
zk-SNARK của ứng dụng
zk-SNARK ứng dụng rộng rãi nhất là bảo vệ quyền riêng tư và mở rộng quy mô.
bảo vệ quyền riêng tư
Các dự án giao dịch riêng tư sớm như Zcash và Monero đã trở thành hướng đi quan trọng sau khi ra mắt. Tuy nhiên, do nhu cầu về giao dịch riêng tư không đạt kỳ vọng, các dự án này dần dần rơi vào nhóm thứ hai và thứ ba.
Zcash sử dụng công nghệ zk-SNARKs, các bước giao dịch của nó bao gồm: thiết lập hệ thống, tạo khóa công khai và khóa riêng, đúc tiền, tạo chứng nhận, xác minh và nhận. Tuy nhiên, Zcash dựa trên mô hình UTXO, chỉ che giấu một phần thông tin giao dịch, mà không hoàn toàn ẩn. Tỷ lệ giao dịch riêng tư của nó chưa đến 10%.
Tornado Cash sử dụng thiết kế bể trộn tiền tệ lớn duy nhất, dựa trên mạng Ethereum, sử dụng công nghệ zk-SNARK. Nó đảm bảo chỉ có đồng tiền đã gửi mới có thể được rút, mỗi đồng tiền chỉ có thể rút một lần, quy trình chứng minh được gắn với thông báo hủy bỏ.
mở rộng
Mở rộng zk có thể được thực hiện trên mạng lớp một ( như Mina ) hoặc mạng lớp hai ( tức là zk-rollup ). zk-rollup bao gồm hai loại vai trò là Sequencer và Aggregator. Sequencer có trách nhiệm đóng gói giao dịch, Aggregator sẽ hợp nhất nhiều giao dịch và tạo ra zk-SNARK, cập nhật cây trạng thái Ethereum.
Ưu điểm của zk-rollup là chi phí thấp, đạt được tính cuối nhanh chóng, nhược điểm là khối lượng tính toán lớn, có thể tồn tại vấn đề về an toàn.
Hiện tại, các dự án zk-rollup chính bao gồm: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, v.v. Chúng có sự khác biệt về lựa chọn SNARK/STARK và khả năng tương thích EVM.
Tính tương thích EVM luôn là một thách thức. Một số dự án chọn phát triển máy ảo và ngôn ngữ riêng, nhưng điều này làm tăng chi phí học tập cho các nhà phát triển. Hiện tại, trong ngành có hai giải pháp chính: hoàn toàn tương thích với mã thao tác Solidity, hoặc thiết kế máy ảo thân thiện với zk-SNARK và tương thích với Solidity. Gần đây, tính tương thích EVM đã đạt được tiến bộ quan trọng, hứa hẹn sẽ cho phép các nhà phát triển chuyển giao một cách liền mạch.
Nguyên lý thực hiện ZK-SNARK
ZK-SNARK(Lập luận không tương tác ngắn gọn về kiến thức không có kiến thức)là một hệ thống zk-SNARK, có những đặc điểm sau:
Quá trình chứng minh ZK-SNARK của Groth16 bao gồm:
Công nghệ zk-SNARK vẫn đang phát triển nhanh chóng, trong tương lai có khả năng đóng vai trò lớn hơn trong việc bảo vệ quyền riêng tư, mở rộng quy mô.