Tiêu đề gốc: " Cùng tìm hiểu về sơ đồ zkSNARK phổ biến nhất - Giới thiệu Zero-Knowledge Proof (3) 》
Nguồn gốc: Cộng đồng người Trung Quốc Nervos
Trong bài viết trước, chúng tôi đã giới thiệu Các khái niệm cơ bản về bằng chứng không có kiến thức vàÝ tưởng cơ bản và phương pháp xây dựng zkSNARK. Bắt đầu từ bài viết này, chúng tôi sẽ giới thiệu từng giải pháp zkSNARK phổ biến nhất. Mục đích của bài viết này là cung cấp cho người đọc sự hiểu biết về lý do cơ bản của các kế hoạch này. Để thuận tiện cho việc mô tả và dễ hiểu, chúng tôi sẽ thực hiện một số đơn giản hóa khi mô tả kế hoạch, tập trung vào việc truyền tải ý tưởng cốt lõi của kế hoạch.
Bài viết này giới thiệu giải phápGroth16. Giải pháp Groth16, đúng như tên gọi, là giải pháp được Groth đề xuất trong một bài báo [Gro16] xuất bản năm 2016. Groth16 cho đến nay là zkSNARK được sử dụng rộng rãi nhất trong thực tế. Đặc biệt, giải pháp zkSNARK hiện được Zcash sử dụng là Groth16. Về hiệu suất, hiệu suất của Trình xác minh của Groth16 là nhanh nhất trong số tất cả các zkSNARK và chuỗi bằng chứng của nó cũng ngắn nhất.
Nhược điểm lớn nhất của Groth16 là nó yêu cầu khởi tạo đáng tin cậy cho mỗi mạch.
Trước khi giới thiệu Groth16, hãy cùng điểm qua ngắn gọn những vấn đề mà zkSNARK muốn giải quyết. Chúng tôi gọi vấn đề này là "vấn đề xác minh tính toán".
Bất kỳ phép tính nào cũng có thể được mô tả như một mạch số học. Mạch số học thực hiện các phép tính số học trên các số. Mạch bao gồm các cổng cộng, cổng nhân và một số cổng không đổi, như trong hình bên dưới:





Tóm tắt bài toán xác minh phép tính trong một câu: Trình xác minh có thể xác minh hiệu quả kết quả tính toán mà không cần biết dữ liệu đầu vào bí mật không?






p>



Bây giờ, chúng tôi thay thế trực tiếp các vectơ cột trong ma trận R1CS bằng phép nội suy đa thức của chúng và kết quả như trong hình bên dưới.









Cái này bài viết, chúng tôi đã giải thích nguyên lý xây dựng của sơ đồ Groth16 zkSNARK. Chúng tôi bắt đầu với các mạch số học và chỉ ra cách chuyển đổi các bài toán xác minh tính toán thành các bài toán R1CS và bài toán QAP. Sau đó, chúng tôi đã giải thích cách sử dụng sơ đồ Groth16 để chứng minh việc biết giải pháp cho vấn đề QAP. Sơ đồ Groth16 sử dụng giả định KoE và ghép nối song tuyến. Nhược điểm của nó là cần có bên thứ ba đáng tin cậy để khởi tạo và quá trình khởi tạo cần được thực hiện một lần cho mỗi mạch. Đồng thời, Groth16 có thuật toán Xác minh hiệu quả nhất và chuỗi bằng chứng ngắn nhất, khiến Groth16 trở thành sơ đồ zkSNARK được sử dụng rộng rãi nhất cho đến ngày nay.
Tài liệu tham khảo: [Gro16] Jen Groth. Về quy mô của đối số không tương tác dựa trên ghép nối. 2016.
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia