Hệ thống chứng minh không kiến thức hiện đại bắt nguồn từ bài báo hợp tác giữa Goldwasser, Micali và Rackoff vào năm 1985. Bài báo này 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ố trong hệ thống tương tác thông qua nhiều vòng tương tác. Nếu việc trao đổi không kiến thức có thể thực hiện được, thì được gọi là chứng minh không kiến thức. Các hệ thống chứng minh không kiến thức ban đầu còn thiếu sót về hiệu suất và tính thực tiễn, chủ yếu dừng lại ở cấp độ lý thuyết.
Trong suốt mười 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ẽ. Trong đó, việc xây dựng các giao thức zk-SNARK chung, không tương tác và có quy mô chứng minh hạn chế đã trở thành một trong những hướng khám phá quan trọng. Cốt lõi của zk-SNARK nằm ở việc cân bằng giữa tốc độ chứng minh, tốc độ xác minh và kích thước của chứng minh.
Năm 2010, bài báo của Groth đã có một bước đột phá quan trọng trong lĩnh vực chứng minh không kiến thức, đặ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ự tiến bộ quan trọng của công nghệ này ở cấp độ ứng dụng. Sau đó, zk-SNARK kết hợp với hợp đồng thông minh, mở rộng những bối cảnh ứng dụng rộng rãi hơn.
Các kết quả học thuật quan trọng khác bao gồm:
Pinocchio năm 2013: Nén bằng chứng và thời gian xác minh đến phạm vi thực tế
Groth16 năm 2016: Quy mô chứng minh tinh gọn và nâng cao hiệu quả xác minh
Bulletproofs năm 2017: đề xuất chứng minh không tương tác ngắn gọn mà không cần thiết lập tin cậy zk-SNARK
zk-STARKs năm 2018: đề xuất giao thức ZK-STARK không cần thiết lập tin cậy
Sự xuất hiện của các công nghệ như PLONK, Halo2 cũng đã mang đến những cải tiến hơn nữa cho zk-SNARK.
Hai, ứng dụng của zk-SNARK
Hai ứng dụng rộng rãi nhất của zk-SNARK là bảo vệ quyền riêng tư và mở rộng quy mô. Các dự án giao dịch riêng tư sớm như Zcash và Monero đã từng thu hút nhiều sự chú ý, nhưng do nhu cầu thực tế không đạt kỳ vọng, chúng dần rút lui khỏi dòng chính. Gần đây, với việc 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 lại trở thành tâm điểm.
giao dịch riêng tư
Các dự án đại diện cho giao dịch riêng tư bao gồm:
Sử dụng zk-SNARK của Zcash và Tornado
Sử dụng Monero của Bulletproof
Lấy Zcash làm ví dụ, quy trình giao dịch zk-SNARKs của nó bao gồm: thiết lập hệ thống, tạo khóa, đúc coin, giao dịch, xác minh và nhận. Tuy nhiên, Zcash vẫn tồn tại một số hạn chế, như dựa trên mô hình UTXO, khó mở rộng, v.v. Tỷ lệ thực sự sử dụng giao dịch riêng tư chưa đến 10%, cho thấy sự phổ biến của nó không thành công.
So với Tornado, việc sử dụng một bể trộn lớn duy nhất là cách tiếp cận phổ biến hơn và dựa trên mạng Ethereum. Tornado về bản chất là một bể trộn sử dụng zk-SNARK, có thể cung cấp nhiều tính năng bảo vệ quyền riêng tư.
mở rộng
Việc ứng dụng ZK trong mở rộng có thể được chia thành mạng lớp một ( như Mina ) và mạng lớp hai ( tức là zk-rollup ). Ý tưởng cốt lõi của zk-rollup được Vitalik đề xuất lần đầu vào năm 2018.
zk-rollup chủ yếu liên quan đến hai loại vai trò là Sequencer và Aggregator. Sequencer chịu trách nhiệm đóng gói giao dịch, Aggregator chịu trách nhiệm hợp nhất giao dịch và tạo ra ZK chứng minh, được sử dụng để cập nhật cây trạng thái Ethereum.
Lợi ích của zk-rollup bao gồm: chi phí thấp, tốc độ hoàn tất nhanh, bảo vệ quyền riêng tư, v.v. Nhược điểm bao gồm: khối lượng tính toán lớn, các vấn đề về an ninh ( như SNARK cần thiết lập đáng tin cậy ), có thể thay đổi thứ tự giao dịch, v.v.
Hiện tại, các dự án zk-rollup chính trên thị trường bao gồm: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, v.v. Những dự án này chủ yếu lựa chọn giữa SNARK( và các phiên bản cải tiến của nó ) cùng với STARK, cũng như mức độ hỗ trợ cho EVM.
Tính tương thích của hệ thống ZK với EVM luôn là điểm chú ý của ngành công nghiệp. 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. Trong những năm gần đây, công nghệ đã phát triển nhanh chóng, tính tương thích EVM đã được cải thiện đáng kể, mang lại nhiều thuận lợi hơn cho các nhà phát triển.
Ba, Nguyên lý cơ bản của zk-SNARK
zk-SNARK cần phải đáp ứng ba tính chất: tính toàn vẹn, tính đáng tin cậy và tính không biết. zk-SNARK( Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) là một phương án chứng minh không biết quan trọng, có các đặc điểm sau:
zk-SNARK: quá trình chứng minh không tiết lộ 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 nhiều vòng tương tác
Độ tin cậy: Người chứng minh có 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
Lấy zk-SNARK Groth16 làm ví dụ, nguyên lý chứng minh của nó bao gồm các bước sau:
Chuyển vấn đề thành mạch điện
Chuyển đổi mạch điện 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 tham số ngẫu nhiên
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.
zk-SNARK: Từ đột phá lý thuyết đến các tình huống ứng dụng Web3
zk-SNARK: Lịch sử, Ứng dụng và Nguyên lý
Một, sự phát triển của zk-SNARK
Hệ thống chứng minh không kiến thức hiện đại bắt nguồn từ bài báo hợp tác giữa Goldwasser, Micali và Rackoff vào năm 1985. Bài báo này 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ố trong hệ thống tương tác thông qua nhiều vòng tương tác. Nếu việc trao đổi không kiến thức có thể thực hiện được, thì được gọi là chứng minh không kiến thức. Các hệ thống chứng minh không kiến thức ban đầu còn thiếu sót về hiệu suất và tính thực tiễn, chủ yếu dừng lại ở cấp độ lý thuyết.
Trong suốt mười 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ẽ. Trong đó, việc xây dựng các giao thức zk-SNARK chung, không tương tác và có quy mô chứng minh hạn chế đã trở thành một trong những hướng khám phá quan trọng. Cốt lõi của zk-SNARK nằm ở việc cân bằng giữa tốc độ chứng minh, tốc độ xác minh và kích thước của chứng minh.
Năm 2010, bài báo của Groth đã có một bước đột phá quan trọng trong lĩnh vực chứng minh không kiến thức, đặ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ự tiến bộ quan trọng của công nghệ này ở cấp độ ứng dụng. Sau đó, zk-SNARK kết hợp với hợp đồng thông minh, mở rộng những bối cảnh ứng dụng rộng rãi hơn.
Các kết quả học thuật quan trọng khác bao gồm:
Sự xuất hiện của các công nghệ như PLONK, Halo2 cũng đã mang đến những cải tiến hơn nữa cho zk-SNARK.
Hai, ứng dụng của zk-SNARK
Hai ứng dụng rộng rãi nhất của zk-SNARK là bảo vệ quyền riêng tư và mở rộng quy mô. Các dự án giao dịch riêng tư sớm như Zcash và Monero đã từng thu hút nhiều sự chú ý, nhưng do nhu cầu thực tế không đạt kỳ vọng, chúng dần rút lui khỏi dòng chính. Gần đây, với việc 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 lại trở thành tâm điểm.
giao dịch riêng tư
Các dự án đại diện cho giao dịch riêng tư bao gồm:
Lấy Zcash làm ví dụ, quy trình giao dịch zk-SNARKs của nó bao gồm: thiết lập hệ thống, tạo khóa, đúc coin, giao dịch, xác minh và nhận. Tuy nhiên, Zcash vẫn tồn tại một số hạn chế, như dựa trên mô hình UTXO, khó mở rộng, v.v. Tỷ lệ thực sự sử dụng giao dịch riêng tư chưa đến 10%, cho thấy sự phổ biến của nó không thành công.
So với Tornado, việc sử dụng một bể trộn lớn duy nhất là cách tiếp cận phổ biến hơn và dựa trên mạng Ethereum. Tornado về bản chất là một bể trộn sử dụng zk-SNARK, có thể cung cấp nhiều tính năng bảo vệ quyền riêng tư.
mở rộng
Việc ứng dụng ZK trong mở rộng có thể được chia thành mạng lớp một ( như Mina ) và mạng lớp hai ( tức là zk-rollup ). Ý tưởng cốt lõi của zk-rollup được Vitalik đề xuất lần đầu vào năm 2018.
zk-rollup chủ yếu liên quan đến hai loại vai trò là Sequencer và Aggregator. Sequencer chịu trách nhiệm đóng gói giao dịch, Aggregator chịu trách nhiệm hợp nhất giao dịch và tạo ra ZK chứng minh, được sử dụng để cập nhật cây trạng thái Ethereum.
Lợi ích của zk-rollup bao gồm: chi phí thấp, tốc độ hoàn tất nhanh, bảo vệ quyền riêng tư, v.v. Nhược điểm bao gồm: khối lượng tính toán lớn, các vấn đề về an ninh ( như SNARK cần thiết lập đáng tin cậy ), có thể thay đổi thứ tự giao dịch, v.v.
Hiện tại, các dự án zk-rollup chính trên thị trường bao gồm: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, v.v. Những dự án này chủ yếu lựa chọn giữa SNARK( và các phiên bản cải tiến của nó ) cùng với STARK, cũng như mức độ hỗ trợ cho EVM.
Tính tương thích của hệ thống ZK với EVM luôn là điểm chú ý của ngành công nghiệp. 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. Trong những năm gần đây, công nghệ đã phát triển nhanh chóng, tính tương thích EVM đã được cải thiện đáng kể, mang lại nhiều thuận lợi hơn cho các nhà phát triển.
Ba, Nguyên lý cơ bản của zk-SNARK
zk-SNARK cần phải đáp ứng ba tính chất: tính toàn vẹn, tính đáng tin cậy và tính không biết. zk-SNARK( Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) là một phương án chứng minh không biết quan trọng, có các đặc điểm sau:
Lấy zk-SNARK Groth16 làm ví dụ, nguyên lý chứng minh của nó bao gồm các bước sau: