Hệ thống chứng minh không biết xuất phát từ bài báo năm 1985 của Goldwasser, Micali và Rackoff có tiêu đề "Độ phức tạp kiến thức của hệ thống chứng minh tương tác". Bài báo này khám phá lượng kiến thức cần phải 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 hệ thống tương tác. Nếu việc chứng minh có thể hoàn thành mà không tiết lộ bất kỳ thông tin bổ sung nào, thì được gọi là zk-SNARK.
Hệ thống zk-SNARK trong giai đoạn đầu không có hiệu suất và tính thực tiễn cao, chủ yếu chỉ dừng lại ở cấp độ lý thuyết. Đến gần 10 năm qua, với việc ứng dụng rộng rãi của mật mã trong lĩnh vực tiền điện tử, zk-SNARK mới dần 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 chung, không tương tác, với quy mô chứng minh hạn chế là một mục tiêu then chốt.
Tiến bộ đột phá của zk-SNARK là bài báo mà Groth đã công bố vào năm 2010, đặt nền tảng lý thuyết cho zk-SNARK. Năm 2015, Zcash đã ứng dụng zk-SNARK để bảo vệ quyền riêng tư giao dịch, mở ra việc ứng dụng rộng rãi zk-SNARK trong các tình huống thực tiễn.
Kể từ đó, một số thành tựu học thuật quan trọng bao gồm:
Giao thức Pinocchio năm 2013 đã nâng cao hiệu quả chứng minh và xác minh.
Groth16 năm 2016, đã tinh giản quy mô chứng minh và nâng cao hiệu quả xác minh
Bulletproofs năm 2017, đã đề xuất một thuật toán chứng minh ngắn mà không cần thiết lập đáng tin cậy.
zk-STARKs năm 2018, đã đề xuất giao thức chứng minh không biết với khả năng chống lại lượng tử.
Các phát triển mới khác như PLONK, Halo2 cũng đã cải thiện zk-SNARK ở nhiều khía cạnh khác nhau.
Ứng dụng chính của zk-SNARK
zk-SNARK hiện đang được ứng dụng rộng rãi nhất trong hai lĩnh vực là bảo vệ quyền riêng tư và mở rộng quy mô.
Các ứng dụng giao dịch riêng tư từ sớm như Zcash và Monero đã từng thu hút nhiều sự chú ý, nhưng nhu cầu về quyền riêng tư không nổi bật như mong đợi, khiến cho các dự án này dần trở thành thứ yếu. Ngược lại, nhu cầu mở rộng ngày càng cấp bách. Đặc biệt, sau khi Ethereum 2.0 chuyển sang hướng tập trung vào rollup, các giải pháp mở rộng dựa trên zk-SNARK đã trở lại là tâm điểm của ngành.
giao dịch bảo mật
Các dự án đại diện cho giao dịch riêng tư bao gồm:
Zcash: Sử dụng zk-SNARKs để thực hiện quyền riêng tư giao dịch
Monero: Sử dụng thuật toán Bulletproofs
Tornado Cash: Bể trộn dựa trên Ethereum, sử dụng zk-SNARKs
Quy trình giao dịch riêng tư của Zcash bao gồm các bước như thiết lập hệ thống, tạo khóa, đúc tiền, tạo chứng minh giao dịch, xác minh và nhận. Tuy nhiên, Zcash cũng tồn tại một số hạn chế, chẳng hạn như dựa trên mô hình UTXO, khó kết hợp với các ứng dụng khác, tỷ lệ sử dụng giao dịch riêng tư thực tế không cao.
Tornado Cash áp dụng phương thức bể tiền lớn duy nhất, có tính linh hoạt cao hơn. Nó dựa trên việc triển khai zk-SNARK Groth16, đảm bảo rằng chỉ những đồng coin đã được gửi mới có thể được rút và mỗi đồng coin chỉ có thể được rút một lần.
mở rộng
zk-SNARK trong việc mở rộng chủ yếu được áp dụng là zk-rollup. Vai trò cốt lõi của zk-rollup là Sequencer và Aggregator. Sequencer chịu trách nhiệm đóng gói giao dịch, Aggregator sẽ kết hợp 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 độ giao dịch nhanh, có thể bảo vệ quyền riêng tư. Nhược điểm là lượng tính toán để tạo chứng minh lớn, và SNARK cần thiết lập đáng tin cậy.
Hiện tại, các dự án zk-rollup chính bao gồm:
StarkNet: sử dụng zk-STARKs, không hỗ trợ EVM
zkSync: sử dụng PLONK, hỗ trợ EVM
Aztec: Phát triển giao thức PLONK, ưu tiên quyền riêng tư
Scroll: Cam kết đạt được zk-rollup tương thích với EVM
Khả năng tương thích EVM là một thách thức lớn mà zk-rollup phải đối mặt. Hiện tại, có hai giải pháp chính: hoàn toàn tương thích với mã vận hành Solidity, hoặc thiết kế một máy ảo thân thiện với ZK mới và tương thích với Solidity. Việc nâng cao khả năng tương thích EVM sẽ ảnh hưởng lớn đến sự phát triển của hệ sinh thái ZK.
Nguyên lý cơ bản của zk-SNARK
zk-SNARK đại diện cho "零知识简洁非交互式知识论证". Nó có các đặc điểm sau:
zk-SNARK: không tiết lộ thông tin bổ sung
Đơn giản: chi phí xác minh thấp
Không tương tác: không cần tương tác nhiều vòng
Chứng minh: đáng tin cậy về mặt tính toán
Kiến thức: Người chứng thực phải biết thông tin hợp lệ
Nguyên lý thực hiện zk-SNARK Groth16 bao gồm các bước sau:
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
Tạo tham số thiết lập đáng tin cậy
Tạo và xác minh zk-SNARK
Công nghệ zk-SNARK đang phát triển nhanh chóng, trong tương lai có thể đóng vai trò quan trọng hơn trong nhiều lĩnh vực.
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.
Sự tiến hóa của công nghệ zk-SNARK: Từ đột phá lý thuyết đến ứng dụng mở rộng
zk-SNARK: Sự tiến hóa từ lý thuyết đến ứng dụng
zk-SNARK的发展历程
Hệ thống chứng minh không biết xuất phát từ bài báo năm 1985 của Goldwasser, Micali và Rackoff có tiêu đề "Độ phức tạp kiến thức của hệ thống chứng minh tương tác". Bài báo này khám phá lượng kiến thức cần phải 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 hệ thống tương tác. Nếu việc chứng minh có thể hoàn thành mà không tiết lộ bất kỳ thông tin bổ sung nào, thì được gọi là zk-SNARK.
Hệ thống zk-SNARK trong giai đoạn đầu không có hiệu suất và tính thực tiễn cao, chủ yếu chỉ dừng lại ở cấp độ lý thuyết. Đến gần 10 năm qua, với việc ứng dụng rộng rãi của mật mã trong lĩnh vực tiền điện tử, zk-SNARK mới dần 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 chung, không tương tác, với quy mô chứng minh hạn chế là một mục tiêu then chốt.
Tiến bộ đột phá của zk-SNARK là bài báo mà Groth đã công bố vào năm 2010, đặt nền tảng lý thuyết cho zk-SNARK. Năm 2015, Zcash đã ứng dụng zk-SNARK để bảo vệ quyền riêng tư giao dịch, mở ra việc ứng dụng rộng rãi zk-SNARK trong các tình huống thực tiễn.
Kể từ đó, một số thành tựu học thuật quan trọng bao gồm:
Các phát triển mới khác như PLONK, Halo2 cũng đã cải thiện zk-SNARK ở nhiều khía cạnh khác nhau.
Ứng dụng chính của zk-SNARK
zk-SNARK hiện đang được ứng dụng rộng rãi nhất trong hai lĩnh vực là bảo vệ quyền riêng tư và mở rộng quy mô.
Các ứng dụng giao dịch riêng tư từ sớm như Zcash và Monero đã từng thu hút nhiều sự chú ý, nhưng nhu cầu về quyền riêng tư không nổi bật như mong đợi, khiến cho các dự án này dần trở thành thứ yếu. Ngược lại, nhu cầu mở rộng ngày càng cấp bách. Đặc biệt, sau khi Ethereum 2.0 chuyển sang hướng tập trung vào rollup, các giải pháp mở rộng dựa trên zk-SNARK đã trở lại là tâm điểm của ngành.
giao dịch bảo mật
Các dự án đại diện cho giao dịch riêng tư bao gồm:
Quy trình giao dịch riêng tư của Zcash bao gồm các bước như thiết lập hệ thống, tạo khóa, đúc tiền, tạo chứng minh giao dịch, xác minh và nhận. Tuy nhiên, Zcash cũng tồn tại một số hạn chế, chẳng hạn như dựa trên mô hình UTXO, khó kết hợp với các ứng dụng khác, tỷ lệ sử dụng giao dịch riêng tư thực tế không cao.
Tornado Cash áp dụng phương thức bể tiền lớn duy nhất, có tính linh hoạt cao hơn. Nó dựa trên việc triển khai zk-SNARK Groth16, đảm bảo rằng chỉ những đồng coin đã được gửi mới có thể được rút và mỗi đồng coin chỉ có thể được rút một lần.
mở rộng
zk-SNARK trong việc mở rộng chủ yếu được áp dụng là zk-rollup. Vai trò cốt lõi của zk-rollup là Sequencer và Aggregator. Sequencer chịu trách nhiệm đóng gói giao dịch, Aggregator sẽ kết hợp 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 độ giao dịch nhanh, có thể bảo vệ quyền riêng tư. Nhược điểm là lượng tính toán để tạo chứng minh lớn, và SNARK cần thiết lập đáng tin cậy.
Hiện tại, các dự án zk-rollup chính bao gồm:
Khả năng tương thích EVM là một thách thức lớn mà zk-rollup phải đối mặt. Hiện tại, có hai giải pháp chính: hoàn toàn tương thích với mã vận hành Solidity, hoặc thiết kế một máy ảo thân thiện với ZK mới và tương thích với Solidity. Việc nâng cao khả năng tương thích EVM sẽ ảnh hưởng lớn đến sự phát triển của hệ sinh thái ZK.
Nguyên lý cơ bản của zk-SNARK
zk-SNARK đại diện cho "零知识简洁非交互式知识论证". Nó có các đặc điểm sau:
Nguyên lý thực hiện zk-SNARK Groth16 bao gồm các bước sau:
Công nghệ zk-SNARK đang phát triển nhanh chóng, trong tương lai có thể đóng vai trò quan trọng hơn trong nhiều lĩnh vực.