Tổng quan về công nghệ zk-SNARK và triển vọng tương lai
Tóm tắt
zk-SNARK ( ZKP ) là một công nghệ mật mã quan trọng, được coi là một trong những đổi mới cách mạng nhất trong lĩnh vực blockchain sau công nghệ sổ cái phân tán. Bài viết này cung cấp một cái nhìn tổng quát có hệ thống về quá trình phát triển gần bốn mươi năm của công nghệ ZKP và các nghiên cứu mới nhất.
Đầu tiên giới thiệu khái niệm cơ bản và bối cảnh lịch sử của ZKP, phân tích trọng tâm công nghệ ZKP dựa trên mạch, bao gồm thiết kế, ứng dụng và phương pháp tối ưu hóa của các mô hình như zk-SNARK, Pinocchio, Bulletproofs. Về môi trường tính toán, bài viết giới thiệu ZKVM và ZKEVM, khám phá cách mà chúng nâng cao khả năng xử lý giao dịch, bảo vệ quyền riêng tư và cải thiện hiệu quả xác thực. Bài viết cũng trình bày cơ chế làm việc và phương pháp tối ưu hóa của ZK Rollup như một giải pháp mở rộng Layer 2, cũng như những tiến triển mới nhất trong tăng tốc phần cứng, giải pháp hỗn hợp và ZK EVM chuyên dụng.
Cuối cùng, bài viết đã nhìn về các khái niệm mới nổi như ZKCoprocessor, ZKML, ZKThreads, ZK Sharding và ZK StateChannels, cũng như khám phá tiềm năng của chúng trong việc mở rộng blockchain, khả năng tương tác và bảo vệ quyền riêng tư.
Bằng cách phân tích những công nghệ và xu hướng phát triển mới nhất, bài viết này cung cấp một góc nhìn toàn diện để hiểu và áp dụng công nghệ ZKP, cho thấy tiềm năng to lớn của nó trong việc nâng cao hiệu quả và độ an toàn của hệ thống blockchain, cung cấp tham khảo quan trọng cho quyết định đầu tư trong tương lai.
Mục lục
Lời mở đầu
Một, kiến thức cơ bản về zk-SNARK
Tóm tắt
zk-SNARK示例
Hai, zk-SNARK không tương tác
Bối cảnh
Sự đề xuất của NIZK
Biến đổi Fiat-Shamir
Jens Groth và nghiên cứu của ông
Nghiên cứu khác
Ba, chứng minh không có kiến thức dựa trên mạch điện.
Bối cảnh
Khái niệm và đặc điểm cơ bản của mô hình mạch
Thiết kế và ứng dụng mạch trong zk-SNARK
Các thiếu sót và thách thức tiềm ẩn
Bốn, mô hình zk-SNARK
Bối cảnh
Mô hình thuật toán thường gặp
Giải pháp dựa trên PCP tuyến tính và vấn đề logarit rời rạc
Giải pháp dựa trên chứng minh của người bình thường
Bằng chứng zero-knowledge có thể kiểm tra dựa trên xác suất
Phân loại giai đoạn thiết lập dựa trên CPC
V. Tổng quan và phát triển của máy ảo zk-SNARK.
Bối cảnh
Phân loại ZKVM hiện có
Mô hình phía trước và phía sau
Ưu nhược điểm của mô hình ZKVM
Sáu, Tổng quan và phát triển của Máy ảo Ethereum không biết
Bối cảnh
Nguyên lý hoạt động của ZKEVM
Quy trình thực hiện ZKEVM
Đặc điểm của ZKEVM
Bảy, Tóm tắt và phát triển kế hoạch mạng lớp hai zk-SNARK
Bối cảnh
Cơ chế hoạt động của ZK Rollup
Nhược điểm và tối ưu hóa của ZK Rollup
Tám, hướng phát triển tương lai của zk-SNARK.
Tăng tốc phát triển môi trường tính toán
Sự ra đời và phát triển của ZKML
Các phát triển liên quan đến công nghệ mở rộng ZKP
Sự phát triển của tính tương tác của zk-SNARK
Chín, kết luận
Lời giới thiệu
Với sự ra đời của thời đại Web3, các ứng dụng blockchain (DApps) đang tăng trưởng bùng nổ, hàng ngày có nhiều ứng dụng mới xuất hiện. Trong những năm gần đây, các nền tảng blockchain đã tiếp nhận hàng triệu hoạt động của người dùng mỗi ngày, xử lý hàng tỉ giao dịch. Lượng dữ liệu khổng lồ phát sinh từ các giao dịch này thường chứa thông tin cá nhân nhạy cảm, như danh tính người dùng, số tiền giao dịch, địa chỉ tài khoản và số dư. Do tính mở và minh bạch của blockchain, dữ liệu được lưu trữ này đều công khai cho mọi người, do đó đã nảy sinh nhiều vấn đề về an ninh và quyền riêng tư.
Hiện tại, có một số công nghệ mã hóa có thể đối phó với những thách thức này, bao gồm mã hóa đồng nghiệp, chữ ký vòng, tính toán đa bên an toàn và zk-SNARK. Mã hóa đồng nghiệp cho phép thực hiện các phép toán mà không cần giải mã văn bản mã hóa, giúp bảo vệ an toàn cho số dư tài khoản và số tiền giao dịch, nhưng không thể bảo vệ địa chỉ tài khoản. Chữ ký vòng cung cấp một hình thức chữ ký số đặc biệt, có khả năng ẩn danh tính của người ký, từ đó bảo vệ địa chỉ tài khoản, nhưng không thể bảo vệ số dư tài khoản và số tiền giao dịch. Tính toán đa bên an toàn cho phép phân bổ nhiệm vụ tính toán giữa nhiều người tham gia, mà không cần bất kỳ người tham gia nào biết dữ liệu của những người tham gia khác, hiệu quả bảo vệ số dư tài khoản và số tiền giao dịch, nhưng cũng không thể bảo vệ địa chỉ tài khoản. Hơn nữa, những công nghệ này không thể xác minh xem người chứng minh có đủ số tiền giao dịch trong môi trường blockchain mà không tiết lộ số tiền giao dịch, địa chỉ tài khoản và số dư tài khoản.
zk-SNARK(ZKP) là một giải pháp toàn diện hơn, giao thức xác minh này cho phép xác minh tính chính xác của một số tuyên bố mà không tiết lộ bất kỳ dữ liệu trung gian nào. Giao thức này không yêu cầu cơ sở hạ tầng khóa công khai phức tạp, việc thực hiện lặp lại của nó cũng không cung cấp cơ hội cho người dùng độc hại để lấy thêm thông tin hữu ích. Thông qua ZKP, người xác minh có thể xác minh xem người chứng minh có đủ số tiền giao dịch hay không mà không tiết lộ bất kỳ dữ liệu giao dịch cá nhân nào. Quy trình xác minh bao gồm việc tạo ra một chứng minh chứa số tiền giao dịch mà người chứng minh tuyên bố, sau đó chuyển chứng minh đó cho người xác minh, người xác minh thực hiện các tính toán đã định trước trên chứng minh và đưa ra kết quả tính toán cuối cùng, từ đó đưa ra kết luận về việc có chấp nhận tuyên bố của người chứng minh hay không. Nếu tuyên bố của người chứng minh được chấp nhận, điều này có nghĩa là họ có đủ số tiền giao dịch. Quy trình xác minh trên có thể được ghi lại trên blockchain, không có bất kỳ sự giả mạo nào.
Tính năng ZKP này khiến nó đóng vai trò trung tâm trong giao dịch blockchain và ứng dụng tiền điện tử, đặc biệt trong việc bảo vệ quyền riêng tư và mở rộng mạng lưới, khiến nó không chỉ trở thành tâm điểm nghiên cứu học thuật, mà còn được coi là một trong những đổi mới công nghệ quan trọng nhất kể từ khi công nghệ sổ cái phân tán (, đặc biệt là Bitcoin ), được triển khai thành công. Đồng thời, nó cũng là một lĩnh vực trọng điểm cho ứng dụng trong ngành và đầu tư mạo hiểm.
Từ đó, nhiều dự án mạng dựa trên ZKP đã lần lượt ra đời, như ZkSync, StarkNet, Mina, Filecoin và Aleo. Cùng với sự phát triển của những dự án này, các đổi mới thuật toán liên quan đến ZKP liên tục xuất hiện, theo báo cáo, hầu như mỗi tuần đều có thuật toán mới ra đời. Ngoài ra, việc phát triển phần cứng liên quan đến công nghệ ZKP cũng đang tiến triển nhanh chóng, bao gồm các chip được tối ưu hóa đặc biệt cho ZKP. Ví dụ, các dự án như Ingonyama, Irreducible và Cysic đã hoàn thành việc huy động vốn quy mô lớn, những phát triển này không chỉ cho thấy sự tiến bộ nhanh chóng của công nghệ ZKP, mà còn phản ánh sự chuyển mình từ phần cứng thông dụng sang phần cứng chuyên dụng như GPU, FPGA và ASIC.
Các tiến bộ này cho thấy công nghệ zk-SNARK không chỉ là một bước đột phá quan trọng trong lĩnh vực mật mã học, mà còn là động lực chính để thực hiện các ứng dụng công nghệ blockchain rộng rãi hơn (, đặc biệt là trong việc nâng cao bảo vệ quyền riêng tư và khả năng xử lý ).
Do đó, chúng tôi quyết định hệ thống hóa các kiến thức liên quan đến zk-SNARK ( ZKP ) để hỗ trợ tốt hơn cho việc ra quyết định đầu tư trong tương lai. Để thực hiện điều này, chúng tôi đã tổng hợp và xem xét các tài liệu học thuật cốt lõi liên quan đến ZKP ( theo mức độ liên quan và số lần trích dẫn ); đồng thời, chúng tôi cũng đã phân tích chi tiết các tài liệu và tài liệu trắng của các dự án hàng đầu trong lĩnh vực này ( theo quy mô tài chính của họ ). Những tài liệu thu thập và phân tích toàn diện này đã cung cấp nền tảng vững chắc cho việc viết bài này.
Một, zk-SNARK kiến thức cơ bản
1.Tổng quan
Năm 1985, các học giả Goldwasser, Micali và Rackoff lần đầu tiên đề xuất chứng minh không biết (zero-knowledge proof) trong bài báo "The Knowledge Complexity of Interactive Proof-Systems", trong đó họ đã đưa ra các khái niệm như chứng minh không biết (Zero-Knowledge Proof, ZKP ) và kiến thức tương tác (Interactive Zero-Knowledge, IZK ). Bài báo này là nền tảng cho chứng minh không biết, định nghĩa nhiều khái niệm ảnh hưởng đến nghiên cứu học thuật sau này. Ví dụ, định nghĩa về kiến thức là "đầu ra không thể tính toán", tức là kiến thức phải là một đầu ra và là một phép tính không thể thực hiện, có nghĩa là nó không thể chỉ là một hàm đơn giản, mà cần phải là một hàm phức tạp. Phép tính không thể thực hiện thường có thể hiểu là một bài toán NP, tức là một bài toán có thể xác minh tính đúng đắn của nó trong thời gian đa thức, thời gian đa thức có nghĩa là thời gian chạy của thuật toán có thể được biểu diễn bằng hàm đa thức của kích thước đầu vào. Đây là tiêu chí quan trọng trong khoa học máy tính để đo lường hiệu suất và tính khả thi của thuật toán. Do quá trình giải bài toán NP phức tạp, nên nó được coi là phép tính không thể thực hiện; nhưng quá trình xác minh của nó tương đối đơn giản, vì vậy rất phù hợp để sử dụng trong xác minh chứng minh không biết.
Một ví dụ cổ điển về vấn đề NP là bài toán người du lịch, trong đó cần tìm đường đi ngắn nhất để truy cập một loạt các thành phố và trở về điểm xuất phát. Mặc dù việc tìm đường đi ngắn nhất có thể rất khó khăn, nhưng việc xác minh một đường đi đã cho có phải là đường đi ngắn nhất thì tương đối dễ dàng. Bởi vì việc xác minh tổng khoảng cách của một đường đi cụ thể có thể được thực hiện trong thời gian đa thức.
Goldwasser và các cộng sự đã giới thiệu khái niệm "độ phức tạp kiến thức" trong bài báo của họ, nhằm định lượng lượng kiến thức mà người chứng minh tiết lộ cho người xác thực trong hệ thống chứng minh tương tác. Họ cũng đã đề xuất hệ thống chứng minh tương tác (Interactive Proof Systems, IPS), trong đó người chứng minh (Prover) và người xác thực (Verifier) tương tác qua nhiều vòng để chứng minh tính xác thực của một câu lệnh.
Tóm lại, định nghĩa về zk-SNARK mà Goldwasser và các cộng sự tóm tắt là một loại chứng minh tương tác đặc biệt, trong đó người xác minh sẽ không nhận được bất kỳ thông tin bổ sung nào ngoài giá trị đúng sai của câu; và đã đưa ra ba đặc điểm cơ bản bao gồm:
Tính hoàn chỉnh: Nếu chứng minh là đúng, người chứng minh trung thực có thể thuyết phục người xác minh trung thực về thực tế này;
Độ tin cậy: Nếu người chứng minh không biết nội dung tuyên bố, họ chỉ có thể lừa gạt người xác minh với xác suất không đáng kể;
Tính không biết: Sau khi quá trình chứng minh hoàn tất, người xác thực chỉ nhận được thông tin "người chứng minh có kiến thức này", mà không thể có thêm nội dung nào khác.
2.zk-SNARK ví dụ
Để hiểu rõ hơn về zk-SNARK và các thuộc tính của nó, dưới đây là một ví dụ xác minh chứng minh viên có sở hữu một số thông tin riêng tư hay không, ví dụ này được chia thành ba giai đoạn: thiết lập, thách thức và phản hồi.
Bước đầu tiên: Thiết lập
Trong bước này, mục tiêu của người chứng minh là tạo ra một bằng chứng, chứng minh rằng anh ta biết một số bí mật s, nhưng không trực tiếp hiển thị s. Giả sử số bí mật s;
Chọn hai số nguyên tố lớn p và q, tính tích của chúng là n. Giả sử số nguyên tố p và q, tính toán giá trị n thu được;
Tính v=s^2 mod n, ở đây, v được gửi cho người xác minh như một phần của chứng minh, nhưng nó không đủ để người xác minh hoặc bất kỳ người ngoài nào suy ra s.
Chọn ngẫu nhiên một số nguyên r, tính toán x=r^2 mod n và gửi cho người xác thực. Giá trị x này được sử dụng trong quá trình xác thực tiếp theo, nhưng cũng không tiết lộ s. Gọi r là số nguyên ngẫu nhiên, tính toán được x.
Bước hai: Thách thức
Người xác thực ngẫu nhiên chọn một vị trí a( có thể là 0 hoặc 1), sau đó gửi cho người chứng minh. "Thách thức" này quyết định các bước tiếp theo mà người chứng minh cần thực hiện.
Bước ba: Phản hồi
Theo giá trị a do người xác thực phát ra, người chứng minh sẽ thực hiện phản hồi:
Nếu a=0, người chứng minh gửi g=r(, đây là số ngẫu nhiên mà anh ta đã chọn trước đó ).
Nếu a=1, người chứng minh tính toán g=rs mod n và gửi đi. Giả sử người xác minh gửi bit ngẫu nhiên a, dựa trên giá trị của a, người chứng minh tính toán g;
Cuối cùng, người xác thực dựa vào g nhận được để xác minh x có bằng g^2 mod n hay không. Nếu phương trình đúng, người xác thực chấp nhận chứng minh này. Khi a=0, người xác thực tính toán g^2 mod n, bên phải xác minh x; khi a=1, người xác thực tính toán g^2 mod n, bên phải xác minh xv.
Ở đây, chúng ta thấy rằng giá trị x = g^2 mod n mà người xác thực tính toán được cho thấy rằng người chứng minh đã thành công trong quá trình xác thực mà không tiết lộ số bí mật s của mình. Tại đây, vì a chỉ có thể nhận giá trị 0 hoặc 1, chỉ có hai khả năng, xác suất để người chứng minh vượt qua xác thực nhờ vào may mắn là 50%( khi a nhận giá trị 0). Nhưng người xác thực sau đó lại thách thức người chứng minh n lần, người chứng minh liên tục thay đổi các số liên quan và gửi cho người xác thực, và luôn thành công trong việc vượt qua quá trình xác thực, do đó xác suất để người chứng minh vượt qua xác thực nhờ vào may mắn trở thành (1/2)^n( tiến gần đến 0), từ đó kết luận rằng người chứng minh thực sự biết một số bí mật s đã được chứng minh. Ví dụ này chứng minh tính toàn vẹn, độ tin cậy và tính không biết của hệ thống chứng minh không biết.
Hai, chứng minh không tương tác zk-SNARK
1.Nền tảng
zk-SNARK(ZKP) trong khái niệm truyền thống thường là hình thức giao thức tương tác và trực tuyến; ví dụ, giao thức Sigma thường cần từ ba đến năm vòng tương tác để hoàn tất xác thực. Tuy nhiên, trong các tình huống như giao dịch ngay lập tức hoặc bỏ phiếu, thường không có cơ hội để thực hiện nhiều vòng tương tác, đặc biệt trong ứng dụng công nghệ blockchain, chức năng xác thực ngoại tuyến trở nên đặc biệt quan trọng.
2.Sự xuất hiện của NIZK
Năm 1988, Blum, Feldman và Micali lần đầu tiên đề xuất khái niệm chứng minh không tương tác bằng kiến thức không tiết lộ (NIZK), chứng minh rằng trong điều kiện không cần nhiều vòng tương tác, người chứng minh (Prover) và người xác minh (Verifier) vẫn có thể hoàn thành quá trình xác thực. Bước đột phá này đã làm cho việc thực hiện giao dịch tức thì, bỏ phiếu và ứng dụng blockchain trở nên khả thi.
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.
15 thích
Phần thưởng
15
7
Chia sẻ
Bình luận
0/400
BlockDetective
· 07-15 23:55
zksnark thật tuyệt
Xem bản gốcTrả lời0
FunGibleTom
· 07-15 04:16
Ai có thể hiểu cái này chứ... sắp phát điên rồi.
Xem bản gốcTrả lời0
FlashLoanLord
· 07-14 05:09
Đọc không vào, chó cũng không hiểu.
Xem bản gốcTrả lời0
wagmi_eventually
· 07-14 05:05
Tôi chỉ sử dụng Stark, còn lại tôi không hiểu.
Xem bản gốcTrả lời0
JustHereForMemes
· 07-14 04:55
zk công nghệ này thực sự tuyệt vời
Xem bản gốcTrả lời0
ImpermanentPhilosopher
· 07-14 04:55
DOGE ở đâu không được rồi zkp không sớm đã dùng rồi sao
Xem bản gốcTrả lời0
DaoGovernanceOfficer
· 07-14 04:53
*thở dài* lại một cuộc khảo sát nữa thiếu những hiểu biết quan trọng của Vitalik từ bài báo zk năm 2022 của anh ấy...
Lịch sử phát triển 40 năm của công nghệ zk-SNARK: Phân tích toàn diện từ cơ bản đến ZK Rollup
Tổng quan về công nghệ zk-SNARK và triển vọng tương lai
Tóm tắt
zk-SNARK ( ZKP ) là một công nghệ mật mã quan trọng, được coi là một trong những đổi mới cách mạng nhất trong lĩnh vực blockchain sau công nghệ sổ cái phân tán. Bài viết này cung cấp một cái nhìn tổng quát có hệ thống về quá trình phát triển gần bốn mươi năm của công nghệ ZKP và các nghiên cứu mới nhất.
Đầu tiên giới thiệu khái niệm cơ bản và bối cảnh lịch sử của ZKP, phân tích trọng tâm công nghệ ZKP dựa trên mạch, bao gồm thiết kế, ứng dụng và phương pháp tối ưu hóa của các mô hình như zk-SNARK, Pinocchio, Bulletproofs. Về môi trường tính toán, bài viết giới thiệu ZKVM và ZKEVM, khám phá cách mà chúng nâng cao khả năng xử lý giao dịch, bảo vệ quyền riêng tư và cải thiện hiệu quả xác thực. Bài viết cũng trình bày cơ chế làm việc và phương pháp tối ưu hóa của ZK Rollup như một giải pháp mở rộng Layer 2, cũng như những tiến triển mới nhất trong tăng tốc phần cứng, giải pháp hỗn hợp và ZK EVM chuyên dụng.
Cuối cùng, bài viết đã nhìn về các khái niệm mới nổi như ZKCoprocessor, ZKML, ZKThreads, ZK Sharding và ZK StateChannels, cũng như khám phá tiềm năng của chúng trong việc mở rộng blockchain, khả năng tương tác và bảo vệ quyền riêng tư.
Bằng cách phân tích những công nghệ và xu hướng phát triển mới nhất, bài viết này cung cấp một góc nhìn toàn diện để hiểu và áp dụng công nghệ ZKP, cho thấy tiềm năng to lớn của nó trong việc nâng cao hiệu quả và độ an toàn của hệ thống blockchain, cung cấp tham khảo quan trọng cho quyết định đầu tư trong tương lai.
Mục lục
Lời mở đầu
Một, kiến thức cơ bản về zk-SNARK
Hai, zk-SNARK không tương tác
Ba, chứng minh không có kiến thức dựa trên mạch điện.
Bốn, mô hình zk-SNARK
V. Tổng quan và phát triển của máy ảo zk-SNARK.
Sáu, Tổng quan và phát triển của Máy ảo Ethereum không biết
Bảy, Tóm tắt và phát triển kế hoạch mạng lớp hai zk-SNARK
Tám, hướng phát triển tương lai của zk-SNARK.
Chín, kết luận
Lời giới thiệu
Với sự ra đời của thời đại Web3, các ứng dụng blockchain (DApps) đang tăng trưởng bùng nổ, hàng ngày có nhiều ứng dụng mới xuất hiện. Trong những năm gần đây, các nền tảng blockchain đã tiếp nhận hàng triệu hoạt động của người dùng mỗi ngày, xử lý hàng tỉ giao dịch. Lượng dữ liệu khổng lồ phát sinh từ các giao dịch này thường chứa thông tin cá nhân nhạy cảm, như danh tính người dùng, số tiền giao dịch, địa chỉ tài khoản và số dư. Do tính mở và minh bạch của blockchain, dữ liệu được lưu trữ này đều công khai cho mọi người, do đó đã nảy sinh nhiều vấn đề về an ninh và quyền riêng tư.
Hiện tại, có một số công nghệ mã hóa có thể đối phó với những thách thức này, bao gồm mã hóa đồng nghiệp, chữ ký vòng, tính toán đa bên an toàn và zk-SNARK. Mã hóa đồng nghiệp cho phép thực hiện các phép toán mà không cần giải mã văn bản mã hóa, giúp bảo vệ an toàn cho số dư tài khoản và số tiền giao dịch, nhưng không thể bảo vệ địa chỉ tài khoản. Chữ ký vòng cung cấp một hình thức chữ ký số đặc biệt, có khả năng ẩn danh tính của người ký, từ đó bảo vệ địa chỉ tài khoản, nhưng không thể bảo vệ số dư tài khoản và số tiền giao dịch. Tính toán đa bên an toàn cho phép phân bổ nhiệm vụ tính toán giữa nhiều người tham gia, mà không cần bất kỳ người tham gia nào biết dữ liệu của những người tham gia khác, hiệu quả bảo vệ số dư tài khoản và số tiền giao dịch, nhưng cũng không thể bảo vệ địa chỉ tài khoản. Hơn nữa, những công nghệ này không thể xác minh xem người chứng minh có đủ số tiền giao dịch trong môi trường blockchain mà không tiết lộ số tiền giao dịch, địa chỉ tài khoản và số dư tài khoản.
zk-SNARK(ZKP) là một giải pháp toàn diện hơn, giao thức xác minh này cho phép xác minh tính chính xác của một số tuyên bố mà không tiết lộ bất kỳ dữ liệu trung gian nào. Giao thức này không yêu cầu cơ sở hạ tầng khóa công khai phức tạp, việc thực hiện lặp lại của nó cũng không cung cấp cơ hội cho người dùng độc hại để lấy thêm thông tin hữu ích. Thông qua ZKP, người xác minh có thể xác minh xem người chứng minh có đủ số tiền giao dịch hay không mà không tiết lộ bất kỳ dữ liệu giao dịch cá nhân nào. Quy trình xác minh bao gồm việc tạo ra một chứng minh chứa số tiền giao dịch mà người chứng minh tuyên bố, sau đó chuyển chứng minh đó cho người xác minh, người xác minh thực hiện các tính toán đã định trước trên chứng minh và đưa ra kết quả tính toán cuối cùng, từ đó đưa ra kết luận về việc có chấp nhận tuyên bố của người chứng minh hay không. Nếu tuyên bố của người chứng minh được chấp nhận, điều này có nghĩa là họ có đủ số tiền giao dịch. Quy trình xác minh trên có thể được ghi lại trên blockchain, không có bất kỳ sự giả mạo nào.
Tính năng ZKP này khiến nó đóng vai trò trung tâm trong giao dịch blockchain và ứng dụng tiền điện tử, đặc biệt trong việc bảo vệ quyền riêng tư và mở rộng mạng lưới, khiến nó không chỉ trở thành tâm điểm nghiên cứu học thuật, mà còn được coi là một trong những đổi mới công nghệ quan trọng nhất kể từ khi công nghệ sổ cái phân tán (, đặc biệt là Bitcoin ), được triển khai thành công. Đồng thời, nó cũng là một lĩnh vực trọng điểm cho ứng dụng trong ngành và đầu tư mạo hiểm.
Từ đó, nhiều dự án mạng dựa trên ZKP đã lần lượt ra đời, như ZkSync, StarkNet, Mina, Filecoin và Aleo. Cùng với sự phát triển của những dự án này, các đổi mới thuật toán liên quan đến ZKP liên tục xuất hiện, theo báo cáo, hầu như mỗi tuần đều có thuật toán mới ra đời. Ngoài ra, việc phát triển phần cứng liên quan đến công nghệ ZKP cũng đang tiến triển nhanh chóng, bao gồm các chip được tối ưu hóa đặc biệt cho ZKP. Ví dụ, các dự án như Ingonyama, Irreducible và Cysic đã hoàn thành việc huy động vốn quy mô lớn, những phát triển này không chỉ cho thấy sự tiến bộ nhanh chóng của công nghệ ZKP, mà còn phản ánh sự chuyển mình từ phần cứng thông dụng sang phần cứng chuyên dụng như GPU, FPGA và ASIC.
Các tiến bộ này cho thấy công nghệ zk-SNARK không chỉ là một bước đột phá quan trọng trong lĩnh vực mật mã học, mà còn là động lực chính để thực hiện các ứng dụng công nghệ blockchain rộng rãi hơn (, đặc biệt là trong việc nâng cao bảo vệ quyền riêng tư và khả năng xử lý ).
Do đó, chúng tôi quyết định hệ thống hóa các kiến thức liên quan đến zk-SNARK ( ZKP ) để hỗ trợ tốt hơn cho việc ra quyết định đầu tư trong tương lai. Để thực hiện điều này, chúng tôi đã tổng hợp và xem xét các tài liệu học thuật cốt lõi liên quan đến ZKP ( theo mức độ liên quan và số lần trích dẫn ); đồng thời, chúng tôi cũng đã phân tích chi tiết các tài liệu và tài liệu trắng của các dự án hàng đầu trong lĩnh vực này ( theo quy mô tài chính của họ ). Những tài liệu thu thập và phân tích toàn diện này đã cung cấp nền tảng vững chắc cho việc viết bài này.
Một, zk-SNARK kiến thức cơ bản
1.Tổng quan
Năm 1985, các học giả Goldwasser, Micali và Rackoff lần đầu tiên đề xuất chứng minh không biết (zero-knowledge proof) trong bài báo "The Knowledge Complexity of Interactive Proof-Systems", trong đó họ đã đưa ra các khái niệm như chứng minh không biết (Zero-Knowledge Proof, ZKP ) và kiến thức tương tác (Interactive Zero-Knowledge, IZK ). Bài báo này là nền tảng cho chứng minh không biết, định nghĩa nhiều khái niệm ảnh hưởng đến nghiên cứu học thuật sau này. Ví dụ, định nghĩa về kiến thức là "đầu ra không thể tính toán", tức là kiến thức phải là một đầu ra và là một phép tính không thể thực hiện, có nghĩa là nó không thể chỉ là một hàm đơn giản, mà cần phải là một hàm phức tạp. Phép tính không thể thực hiện thường có thể hiểu là một bài toán NP, tức là một bài toán có thể xác minh tính đúng đắn của nó trong thời gian đa thức, thời gian đa thức có nghĩa là thời gian chạy của thuật toán có thể được biểu diễn bằng hàm đa thức của kích thước đầu vào. Đây là tiêu chí quan trọng trong khoa học máy tính để đo lường hiệu suất và tính khả thi của thuật toán. Do quá trình giải bài toán NP phức tạp, nên nó được coi là phép tính không thể thực hiện; nhưng quá trình xác minh của nó tương đối đơn giản, vì vậy rất phù hợp để sử dụng trong xác minh chứng minh không biết.
Một ví dụ cổ điển về vấn đề NP là bài toán người du lịch, trong đó cần tìm đường đi ngắn nhất để truy cập một loạt các thành phố và trở về điểm xuất phát. Mặc dù việc tìm đường đi ngắn nhất có thể rất khó khăn, nhưng việc xác minh một đường đi đã cho có phải là đường đi ngắn nhất thì tương đối dễ dàng. Bởi vì việc xác minh tổng khoảng cách của một đường đi cụ thể có thể được thực hiện trong thời gian đa thức.
Goldwasser và các cộng sự đã giới thiệu khái niệm "độ phức tạp kiến thức" trong bài báo của họ, nhằm định lượng lượng kiến thức mà người chứng minh tiết lộ cho người xác thực trong hệ thống chứng minh tương tác. Họ cũng đã đề xuất hệ thống chứng minh tương tác (Interactive Proof Systems, IPS), trong đó người chứng minh (Prover) và người xác thực (Verifier) tương tác qua nhiều vòng để chứng minh tính xác thực của một câu lệnh.
Tóm lại, định nghĩa về zk-SNARK mà Goldwasser và các cộng sự tóm tắt là một loại chứng minh tương tác đặc biệt, trong đó người xác minh sẽ không nhận được bất kỳ thông tin bổ sung nào ngoài giá trị đúng sai của câu; và đã đưa ra ba đặc điểm cơ bản bao gồm:
Tính hoàn chỉnh: Nếu chứng minh là đúng, người chứng minh trung thực có thể thuyết phục người xác minh trung thực về thực tế này;
Độ tin cậy: Nếu người chứng minh không biết nội dung tuyên bố, họ chỉ có thể lừa gạt người xác minh với xác suất không đáng kể;
Tính không biết: Sau khi quá trình chứng minh hoàn tất, người xác thực chỉ nhận được thông tin "người chứng minh có kiến thức này", mà không thể có thêm nội dung nào khác.
2.zk-SNARK ví dụ
Để hiểu rõ hơn về zk-SNARK và các thuộc tính của nó, dưới đây là một ví dụ xác minh chứng minh viên có sở hữu một số thông tin riêng tư hay không, ví dụ này được chia thành ba giai đoạn: thiết lập, thách thức và phản hồi.
Bước đầu tiên: Thiết lập
Trong bước này, mục tiêu của người chứng minh là tạo ra một bằng chứng, chứng minh rằng anh ta biết một số bí mật s, nhưng không trực tiếp hiển thị s. Giả sử số bí mật s;
Chọn hai số nguyên tố lớn p và q, tính tích của chúng là n. Giả sử số nguyên tố p và q, tính toán giá trị n thu được;
Tính v=s^2 mod n, ở đây, v được gửi cho người xác minh như một phần của chứng minh, nhưng nó không đủ để người xác minh hoặc bất kỳ người ngoài nào suy ra s.
Chọn ngẫu nhiên một số nguyên r, tính toán x=r^2 mod n và gửi cho người xác thực. Giá trị x này được sử dụng trong quá trình xác thực tiếp theo, nhưng cũng không tiết lộ s. Gọi r là số nguyên ngẫu nhiên, tính toán được x.
Bước hai: Thách thức
Người xác thực ngẫu nhiên chọn một vị trí a( có thể là 0 hoặc 1), sau đó gửi cho người chứng minh. "Thách thức" này quyết định các bước tiếp theo mà người chứng minh cần thực hiện.
Bước ba: Phản hồi
Theo giá trị a do người xác thực phát ra, người chứng minh sẽ thực hiện phản hồi:
Nếu a=0, người chứng minh gửi g=r(, đây là số ngẫu nhiên mà anh ta đã chọn trước đó ).
Nếu a=1, người chứng minh tính toán g=rs mod n và gửi đi. Giả sử người xác minh gửi bit ngẫu nhiên a, dựa trên giá trị của a, người chứng minh tính toán g;
Cuối cùng, người xác thực dựa vào g nhận được để xác minh x có bằng g^2 mod n hay không. Nếu phương trình đúng, người xác thực chấp nhận chứng minh này. Khi a=0, người xác thực tính toán g^2 mod n, bên phải xác minh x; khi a=1, người xác thực tính toán g^2 mod n, bên phải xác minh xv.
Ở đây, chúng ta thấy rằng giá trị x = g^2 mod n mà người xác thực tính toán được cho thấy rằng người chứng minh đã thành công trong quá trình xác thực mà không tiết lộ số bí mật s của mình. Tại đây, vì a chỉ có thể nhận giá trị 0 hoặc 1, chỉ có hai khả năng, xác suất để người chứng minh vượt qua xác thực nhờ vào may mắn là 50%( khi a nhận giá trị 0). Nhưng người xác thực sau đó lại thách thức người chứng minh n lần, người chứng minh liên tục thay đổi các số liên quan và gửi cho người xác thực, và luôn thành công trong việc vượt qua quá trình xác thực, do đó xác suất để người chứng minh vượt qua xác thực nhờ vào may mắn trở thành (1/2)^n( tiến gần đến 0), từ đó kết luận rằng người chứng minh thực sự biết một số bí mật s đã được chứng minh. Ví dụ này chứng minh tính toàn vẹn, độ tin cậy và tính không biết của hệ thống chứng minh không biết.
Hai, chứng minh không tương tác zk-SNARK
1.Nền tảng
zk-SNARK(ZKP) trong khái niệm truyền thống thường là hình thức giao thức tương tác và trực tuyến; ví dụ, giao thức Sigma thường cần từ ba đến năm vòng tương tác để hoàn tất xác thực. Tuy nhiên, trong các tình huống như giao dịch ngay lập tức hoặc bỏ phiếu, thường không có cơ hội để thực hiện nhiều vòng tương tác, đặc biệt trong ứng dụng công nghệ blockchain, chức năng xác thực ngoại tuyến trở nên đặc biệt quan trọng.
2.Sự xuất hiện của NIZK
Năm 1988, Blum, Feldman và Micali lần đầu tiên đề xuất khái niệm chứng minh không tương tác bằng kiến thức không tiết lộ (NIZK), chứng minh rằng trong điều kiện không cần nhiều vòng tương tác, người chứng minh (Prover) và người xác minh (Verifier) vẫn có thể hoàn thành quá trình xác thực. Bước đột phá này đã làm cho việc thực hiện giao dịch tức thì, bỏ phiếu và ứng dụng blockchain trở nên khả thi.