Tốc độ tăng trưởng hiện tại của các dự án bằng chứng không có kiến thức (ZKP) trong ngành công nghiệp blockchain thật đáng kinh ngạc, đặc biệt là sự gia tăng của các ứng dụng ZKP ở hai cấp độ mở rộng và bảo vệ quyền riêng tư, điều này đã giúp chúng ta tiếp xúc với nhiều dự án bằng chứng không có kiến thức. Do tính chất cực kỳ toán học của ZKP, những người đam mê mã hóa sẽ khó hiểu sâu hơn về ZK. Do đó, chúng tôi cũng hy vọng có thể tìm ra một số thay đổi trong lý thuyết và ứng dụng ZKP ngay từ đầu, đồng thời cùng độc giả khám phá tác động và giá trị đối với ngành tiền điện tử - cùng nhau tìm hiểu thông qua một số báo cáo, cũng đóng vai trò là bản tóm tắt suy nghĩ của HashKey Nhóm nghiên cứu vốn. Bài viết này là bài đầu tiên trong loạt bài, chủ yếu giới thiệu lịch sử phát triển, ứng dụng và một số nguyên tắc cơ bản của ZKP.
Hệ thống chứng minh không có kiến thức hiện đại có nguồn gốc từ bài báo do Goldwasser, Micali và Rackoff cùng xuất bản: Sự phức tạp về kiến thức của các hệ thống chứng minh tương tác (GMR85), được đề xuất vào năm 1985 và xuất bản năm 1989. Bài viết này chủ yếu giải thích lượng kiến thức cần được trao đổi sau K vòng tương tác trong một hệ thống tương tác để chứng minh rằng một tuyên bố là đúng. Nếu kiến thức được trao đổi có thể trở về 0 thì nó được gọi là bằng chứng không có kiến thức. Người ta cho rằng người chứng minh có nguồn lực vô hạn và người xác minh chỉ có nguồn lực hạn chế. Vấn đề với các hệ thống tương tác là bằng chứng không hoàn toàn có thể chứng minh được về mặt toán học mà đúng theo nghĩa xác suất, mặc dù xác suất rất nhỏ (1/2^n).
Vì vậy, hệ thống tương tác không hoàn hảo và chỉ đạt mức độ hoàn thiện tương đối. Hệ thống hệ thống không tương tác (NP) ra đời trên cơ sở này đã hoàn thiện và trở thành sự lựa chọn hoàn hảo cho hệ thống chứng minh không có kiến thức.
Các hệ thống chứng minh không có kiến thức ban đầu thiếu hiệu quả và khả năng sử dụng nên chúng luôn chỉ ở mức lý thuyết. Phải đến 10 năm gần đây, họ mới bắt đầu phát triển mạnh mẽ. Khi mật mã trở nên nổi bật trong lĩnh vực tiền điện tử, bằng chứng không có kiến thức đã được đặt lên hàng đầu và trở thành một hướng đi quan trọng. Đặc biệt, việc phát triển một giao thức chứng minh không có kiến thức, không tương tác, chung với kích thước bằng chứng hạn chế là một trong những hướng khám phá quan trọng nhất.
Về cơ bản, bằng chứng không có kiến thức là sự đánh đổi giữa tốc độ chứng minh, tốc độ xác minh và quy mô của bằng chứng. Giao thức lý tưởng là bằng chứng nhanh, xác minh nhanh và kích thước bằng chứng nhỏ.
Bước đột phá quan trọng nhất trong bằng chứng không có kiến thức là bài báo 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 năm 2010 của Groth, cũng là bài báo tiên phong về mặt lý thuyết của nhóm zk-SNARK quan trọng nhất trong ZKP.
Sự phát triển quan trọng nhất trong việc áp dụng bằng chứng không có kiến thức 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 bảo vệ quyền riêng tư của các giao dịch và số tiền. Sau đó, nó phát triển thành sự kết hợp giữa zk-SNARK và hợp đồng thông minh, đồng thời zk-SNARK bước vào các kịch bản ứng dụng rộng rãi hơn.
Một số thành tích học tập quan trọng trong giai đoạn này bao gồm:
Các phát triển khác bao gồm PLONK, Halo2, v.v. cũng là những tiến bộ cực kỳ quan trọng và cũng đã thực hiện một số cải tiến cho zk-SNARK.
Hai ứng dụng phổ biến nhất của bằng chứng không có kiến thức là bảo vệ quyền riêng tư và mở rộng dung lượng. Trong những ngày đầu, với sự ra mắt của các giao dịch bảo mật và một số dự án nổi tiếng như Zcash và Monero, các giao dịch bảo mật đã từng trở thành một hạng mục rất quan trọng. Tuy nhiên, do nhu cầu giao dịch quyền riêng tư không nổi bật như ngành mong đợi nên loại dự án đại diện này bắt đầu chậm lại. Từ từ tiến vào trại hạng hai và hạng ba (không rút khỏi giai đoạn lịch sử). Ở cấp độ ứng dụng, nhu cầu mở rộng đã tăng lên đến mức Ethereum 2.0 (đã được đổi tên thành lớp đồng thuận) đã chuyển sang lộ trình tập trung vào triển khai vào năm 2020. Dòng ZK đã chính thức trở lại được giới công nghiệp chú ý và trở thành tâm điểm.
Giao dịch bảo mật: Có nhiều dự án đã triển khai giao dịch bảo mật, bao gồm Zcash sử dụng SNARK, Tornado, Monero sử dụng chống đạn và Dash. Dash không sử dụng ZKP theo nghĩa chặt chẽ mà là một hệ thống trộn tiền tệ đơn giản và thô sơ, chỉ có thể ẩn địa chỉ chứ không thể ẩn số tiền. Tôi sẽ không đề cập đến nó ở đây.
Các bước giao dịch zk-SNARK được Zcash áp dụng như sau:
Nguồn: Làm sáng tỏ vai trò của zk-SNARK trong Zcash
Zcash vẫn còn hạn chế trong việc sử dụng zero-know, tức là dựa trên UTXO nên một phần thông tin giao dịch chỉ được che chắn chứ chưa thực sự được che đậy. Vì là mạng riêng biệt dựa trên thiết kế của Bitcoin nên khó mở rộng (kết hợp với các ứng dụng khác). Tỷ lệ sử dụng thực tế của việc che chắn (tức là giao dịch riêng tư) là dưới 10%, điều này cho thấy các giao dịch riêng tư chưa được mở rộng thành công. (từ 2202)
Nhóm trộn lớn duy nhất được Tornado sử dụng linh hoạt hơn và dựa trên mạng “đã được thử và kiểm tra” như Ethereum. Torndao về cơ bản là một nhóm trộn tiền tệ sử dụng zk-SNARK và cài đặt độ tin cậy dựa trên bài báo Groth 16. Các tính năng có sẵn với Tornado Cash bao gồm:
Vitalik đề cập rằng so với việc mở rộng, quyền riêng tư tương đối dễ thực hiện. Nếu một số giao thức mở rộng có thể được thiết lập, quyền riêng tư về cơ bản sẽ không thành vấn đề.
Mở rộng: Việc mở rộng ZK có thể được thực hiện trên mạng cấp một, chẳng hạn như Mina hoặc trên mạng cấp hai, tức là zk-roll up. Ý tưởng về việc tổng hợp ZK có thể bắt nguồn từ bài đăng của Vitalik vào năm 2018, Mở rộng quy mô trên chuỗi lên mức tiềm năng ~500 tx/giây thông qua xác thực tx hàng loạt.
ZK-rollup có hai loại vai trò, một là Sequencer và hai là Aggregator. Trình sắp xếp chuỗi chịu trách nhiệm đóng gói các giao dịch và Trình tổng hợp chịu trách nhiệm hợp nhất một số lượng lớn giao dịch và tạo một bản tổng hợp cũng như hình thành bằng chứng SNARK (nó cũng có thể là bằng chứng không có kiến thức dựa trên các thuật toán khác). Bằng chứng này sẽ được so sánh với trạng thái trước đó của Layer1, sau đó cập nhật cây Ethereum Merkle, tính toán cây trạng thái mới.
Nguồn: Đa giác
Ưu điểm và nhược điểm của ZK rollup:
Nguồn: Nghiên cứu Ethereum
Dựa trên tính khả dụng của dữ liệu và phương pháp chứng minh, Starkware có sơ đồ phân loại cổ điển cho L2 (Lớp sẵn có dữ liệu của Volition có thể được chọn trên chuỗi hoặc ngoài chuỗi):
Nguồn: Starkware
Các dự án tổng hợp ZK cạnh tranh nhất hiện có trên thị trường bao gồm: StarkNet của Starkware, zkSync của Matterlabs và kết nối Aztec của Aztec, Hermez và Miden của Polygon, Loopring, Scroll, v.v.
Về cơ bản, lộ trình kỹ thuật nằm ở việc lựa chọn SNARK (và các phiên bản cải tiến của nó) và STARK, cũng như hỗ trợ EVM (bao gồm cả khả năng tương thích hoặc tương đương).
Thảo luận ngắn gọn các vấn đề tương thích EVM:
Khả năng tương thích giữa hệ thống ZK và EVM luôn là vấn đề đau đầu và hầu hết các dự án sẽ lựa chọn giữa hai điều này. Những người nhấn mạnh ZK có thể xây dựng một máy ảo trong hệ thống của riêng họ, có ngôn ngữ và trình biên dịch ZK của riêng họ, nhưng điều này sẽ khiến các nhà phát triển khó học hơn và vì về cơ bản nó không phải là nguồn mở nên nó sẽ trở thành một hộp đen . Nói chung, ngành hiện có hai lựa chọn. Một là hoàn toàn tương thích với các opcode của Solidity và hai là thiết kế một máy ảo mới thân thiện với ZK và tương thích với Solidity. Ngành công nghiệp ban đầu không mong đợi sự tích hợp nhanh chóng như vậy, nhưng sự lặp lại nhanh chóng của công nghệ trong một hoặc hai năm qua đã đưa khả năng tương thích EVM lên một tầm cao mới và các nhà phát triển có thể đạt được một mức độ di chuyển liền mạch nhất định (nghĩa là nền tảng chính Ethereum). chain to ZK rollup) là một sự phát triển thú vị, sẽ ảnh hưởng đến hệ sinh thái phát triển và bối cảnh cạnh tranh của ZK. Chúng tôi sẽ thảo luận chi tiết về vấn đề này trong các báo cáo tiếp theo.
Goldwasser, Micali và Rackoff đề xuất rằng bằng chứng không có kiến thức có ba đặc tính:
Vì vậy, để hiểu ZKP, chúng tôi bắt đầu với zk-SNARK, vì nhiều ứng dụng blockchain hiện tại đều bắt đầu bằng SNARK. Đầu tiên, chúng ta hãy xem zk-SNARK.
zk-SNARK có nghĩa là: Bằng chứng không có kiến thức (zh-SNARK) là không có kiến thức. Các đối số kiến thức không tương tác ngắn gọn.
Nguyên lý chứng minh zk-SNARK của Groth16 như sau:
Nguồn: https://learnblockchain.cn/article/3220
Các bước là:
Trong bài viết tiếp theo, chúng ta sẽ bắt đầu nghiên cứu các nguyên tắc và ứng dụng của zk-SNARK, xem xét quá trình phát triển ZK-SNARK qua một số trường hợp và khám phá mối quan hệ của nó với zk-STARK.
Tốc độ tăng trưởng hiện tại của các dự án bằng chứng không có kiến thức (ZKP) trong ngành công nghiệp blockchain thật đáng kinh ngạc, đặc biệt là sự gia tăng của các ứng dụng ZKP ở hai cấp độ mở rộng và bảo vệ quyền riêng tư, điều này đã giúp chúng ta tiếp xúc với nhiều dự án bằng chứng không có kiến thức. Do tính chất cực kỳ toán học của ZKP, những người đam mê mã hóa sẽ khó hiểu sâu hơn về ZK. Do đó, chúng tôi cũng hy vọng có thể tìm ra một số thay đổi trong lý thuyết và ứng dụng ZKP ngay từ đầu, đồng thời cùng độc giả khám phá tác động và giá trị đối với ngành tiền điện tử - cùng nhau tìm hiểu thông qua một số báo cáo, cũng đóng vai trò là bản tóm tắt suy nghĩ của HashKey Nhóm nghiên cứu vốn. Bài viết này là bài đầu tiên trong loạt bài, chủ yếu giới thiệu lịch sử phát triển, ứng dụng và một số nguyên tắc cơ bản của ZKP.
Hệ thống chứng minh không có kiến thức hiện đại có nguồn gốc từ bài báo do Goldwasser, Micali và Rackoff cùng xuất bản: Sự phức tạp về kiến thức của các hệ thống chứng minh tương tác (GMR85), được đề xuất vào năm 1985 và xuất bản năm 1989. Bài viết này chủ yếu giải thích lượng kiến thức cần được trao đổi sau K vòng tương tác trong một hệ thống tương tác để chứng minh rằng một tuyên bố là đúng. Nếu kiến thức được trao đổi có thể trở về 0 thì nó được gọi là bằng chứng không có kiến thức. Người ta cho rằng người chứng minh có nguồn lực vô hạn và người xác minh chỉ có nguồn lực hạn chế. Vấn đề với các hệ thống tương tác là bằng chứng không hoàn toàn có thể chứng minh được về mặt toán học mà đúng theo nghĩa xác suất, mặc dù xác suất rất nhỏ (1/2^n).
Vì vậy, hệ thống tương tác không hoàn hảo và chỉ đạt mức độ hoàn thiện tương đối. Hệ thống hệ thống không tương tác (NP) ra đời trên cơ sở này đã hoàn thiện và trở thành sự lựa chọn hoàn hảo cho hệ thống chứng minh không có kiến thức.
Các hệ thống chứng minh không có kiến thức ban đầu thiếu hiệu quả và khả năng sử dụng nên chúng luôn chỉ ở mức lý thuyết. Phải đến 10 năm gần đây, họ mới bắt đầu phát triển mạnh mẽ. Khi mật mã trở nên nổi bật trong lĩnh vực tiền điện tử, bằng chứng không có kiến thức đã được đặt lên hàng đầu và trở thành một hướng đi quan trọng. Đặc biệt, việc phát triển một giao thức chứng minh không có kiến thức, không tương tác, chung với kích thước bằng chứng hạn chế là một trong những hướng khám phá quan trọng nhất.
Về cơ bản, bằng chứng không có kiến thức là sự đánh đổi giữa tốc độ chứng minh, tốc độ xác minh và quy mô của bằng chứng. Giao thức lý tưởng là bằng chứng nhanh, xác minh nhanh và kích thước bằng chứng nhỏ.
Bước đột phá quan trọng nhất trong bằng chứng không có kiến thức là bài báo 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 năm 2010 của Groth, cũng là bài báo tiên phong về mặt lý thuyết của nhóm zk-SNARK quan trọng nhất trong ZKP.
Sự phát triển quan trọng nhất trong việc áp dụng bằng chứng không có kiến thức 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 bảo vệ quyền riêng tư của các giao dịch và số tiền. Sau đó, nó phát triển thành sự kết hợp giữa zk-SNARK và hợp đồng thông minh, đồng thời zk-SNARK bước vào các kịch bản ứng dụng rộng rãi hơn.
Một số thành tích học tập quan trọng trong giai đoạn này bao gồm:
Các phát triển khác bao gồm PLONK, Halo2, v.v. cũng là những tiến bộ cực kỳ quan trọng và cũng đã thực hiện một số cải tiến cho zk-SNARK.
Hai ứng dụng phổ biến nhất của bằng chứng không có kiến thức là bảo vệ quyền riêng tư và mở rộng dung lượng. Trong những ngày đầu, với sự ra mắt của các giao dịch bảo mật và một số dự án nổi tiếng như Zcash và Monero, các giao dịch bảo mật đã từng trở thành một hạng mục rất quan trọng. Tuy nhiên, do nhu cầu giao dịch quyền riêng tư không nổi bật như ngành mong đợi nên loại dự án đại diện này bắt đầu chậm lại. Từ từ tiến vào trại hạng hai và hạng ba (không rút khỏi giai đoạn lịch sử). Ở cấp độ ứng dụng, nhu cầu mở rộng đã tăng lên đến mức Ethereum 2.0 (đã được đổi tên thành lớp đồng thuận) đã chuyển sang lộ trình tập trung vào triển khai vào năm 2020. Dòng ZK đã chính thức trở lại được giới công nghiệp chú ý và trở thành tâm điểm.
Giao dịch bảo mật: Có nhiều dự án đã triển khai giao dịch bảo mật, bao gồm Zcash sử dụng SNARK, Tornado, Monero sử dụng chống đạn và Dash. Dash không sử dụng ZKP theo nghĩa chặt chẽ mà là một hệ thống trộn tiền tệ đơn giản và thô sơ, chỉ có thể ẩn địa chỉ chứ không thể ẩn số tiền. Tôi sẽ không đề cập đến nó ở đây.
Các bước giao dịch zk-SNARK được Zcash áp dụng như sau:
Nguồn: Làm sáng tỏ vai trò của zk-SNARK trong Zcash
Zcash vẫn còn hạn chế trong việc sử dụng zero-know, tức là dựa trên UTXO nên một phần thông tin giao dịch chỉ được che chắn chứ chưa thực sự được che đậy. Vì là mạng riêng biệt dựa trên thiết kế của Bitcoin nên khó mở rộng (kết hợp với các ứng dụng khác). Tỷ lệ sử dụng thực tế của việc che chắn (tức là giao dịch riêng tư) là dưới 10%, điều này cho thấy các giao dịch riêng tư chưa được mở rộng thành công. (từ 2202)
Nhóm trộn lớn duy nhất được Tornado sử dụng linh hoạt hơn và dựa trên mạng “đã được thử và kiểm tra” như Ethereum. Torndao về cơ bản là một nhóm trộn tiền tệ sử dụng zk-SNARK và cài đặt độ tin cậy dựa trên bài báo Groth 16. Các tính năng có sẵn với Tornado Cash bao gồm:
Vitalik đề cập rằng so với việc mở rộng, quyền riêng tư tương đối dễ thực hiện. Nếu một số giao thức mở rộng có thể được thiết lập, quyền riêng tư về cơ bản sẽ không thành vấn đề.
Mở rộng: Việc mở rộng ZK có thể được thực hiện trên mạng cấp một, chẳng hạn như Mina hoặc trên mạng cấp hai, tức là zk-roll up. Ý tưởng về việc tổng hợp ZK có thể bắt nguồn từ bài đăng của Vitalik vào năm 2018, Mở rộng quy mô trên chuỗi lên mức tiềm năng ~500 tx/giây thông qua xác thực tx hàng loạt.
ZK-rollup có hai loại vai trò, một là Sequencer và hai là Aggregator. Trình sắp xếp chuỗi chịu trách nhiệm đóng gói các giao dịch và Trình tổng hợp chịu trách nhiệm hợp nhất một số lượng lớn giao dịch và tạo một bản tổng hợp cũng như hình thành bằng chứng SNARK (nó cũng có thể là bằng chứng không có kiến thức dựa trên các thuật toán khác). Bằng chứng này sẽ được so sánh với trạng thái trước đó của Layer1, sau đó cập nhật cây Ethereum Merkle, tính toán cây trạng thái mới.
Nguồn: Đa giác
Ưu điểm và nhược điểm của ZK rollup:
Nguồn: Nghiên cứu Ethereum
Dựa trên tính khả dụng của dữ liệu và phương pháp chứng minh, Starkware có sơ đồ phân loại cổ điển cho L2 (Lớp sẵn có dữ liệu của Volition có thể được chọn trên chuỗi hoặc ngoài chuỗi):
Nguồn: Starkware
Các dự án tổng hợp ZK cạnh tranh nhất hiện có trên thị trường bao gồm: StarkNet của Starkware, zkSync của Matterlabs và kết nối Aztec của Aztec, Hermez và Miden của Polygon, Loopring, Scroll, v.v.
Về cơ bản, lộ trình kỹ thuật nằm ở việc lựa chọn SNARK (và các phiên bản cải tiến của nó) và STARK, cũng như hỗ trợ EVM (bao gồm cả khả năng tương thích hoặc tương đương).
Thảo luận ngắn gọn các vấn đề tương thích EVM:
Khả năng tương thích giữa hệ thống ZK và EVM luôn là vấn đề đau đầu và hầu hết các dự án sẽ lựa chọn giữa hai điều này. Những người nhấn mạnh ZK có thể xây dựng một máy ảo trong hệ thống của riêng họ, có ngôn ngữ và trình biên dịch ZK của riêng họ, nhưng điều này sẽ khiến các nhà phát triển khó học hơn và vì về cơ bản nó không phải là nguồn mở nên nó sẽ trở thành một hộp đen . Nói chung, ngành hiện có hai lựa chọn. Một là hoàn toàn tương thích với các opcode của Solidity và hai là thiết kế một máy ảo mới thân thiện với ZK và tương thích với Solidity. Ngành công nghiệp ban đầu không mong đợi sự tích hợp nhanh chóng như vậy, nhưng sự lặp lại nhanh chóng của công nghệ trong một hoặc hai năm qua đã đưa khả năng tương thích EVM lên một tầm cao mới và các nhà phát triển có thể đạt được một mức độ di chuyển liền mạch nhất định (nghĩa là nền tảng chính Ethereum). chain to ZK rollup) là một sự phát triển thú vị, sẽ ảnh hưởng đến hệ sinh thái phát triển và bối cảnh cạnh tranh của ZK. Chúng tôi sẽ thảo luận chi tiết về vấn đề này trong các báo cáo tiếp theo.
Goldwasser, Micali và Rackoff đề xuất rằng bằng chứng không có kiến thức có ba đặc tính:
Vì vậy, để hiểu ZKP, chúng tôi bắt đầu với zk-SNARK, vì nhiều ứng dụng blockchain hiện tại đều bắt đầu bằng SNARK. Đầu tiên, chúng ta hãy xem zk-SNARK.
zk-SNARK có nghĩa là: Bằng chứng không có kiến thức (zh-SNARK) là không có kiến thức. Các đối số kiến thức không tương tác ngắn gọn.
Nguyên lý chứng minh zk-SNARK của Groth16 như sau:
Nguồn: https://learnblockchain.cn/article/3220
Các bước là:
Trong bài viết tiếp theo, chúng ta sẽ bắt đầu nghiên cứu các nguyên tắc và ứng dụng của zk-SNARK, xem xét quá trình phát triển ZK-SNARK qua một số trường hợp và khám phá mối quan hệ của nó với zk-STARK.