Không có kiến ​​thức Thông minh dữ liệu Canon PlatoBlockchain. Tìm kiếm dọc. Ái.

Không Kiến Thức Canon

Lưu ý của biên tập viên: Tiền điện tử a16z đã có một chuỗi dài về “súng", từ của chúng tôi ĐẠO Canon năm ngoái của chúng tôi Canon NFT trước đó (và trước đó là bản gốc của chúng tôi Canon tiền điện tử) - hãy chắc chắn đăng ký của chúng tôi bản tin hàng tuần web3 để biết thêm thông tin cập nhật cũng như các tài nguyên được quản lý khác.

Vì vậy, bElow, chúng tôi đã tuyển chọn một bộ tài nguyên dành cho những người muốn hiểu, tìm hiểu sâu hơn và xây dựng bằng mọi thứ không có kiến ​​thức: công nghệ nền tảng, mạnh mẽ nắm giữ chìa khóa cho khả năng mở rộng của blockchain và đại diện cho tương lai của các ứng dụng bảo vệ quyền riêng tư và vô số đổi mới khác sắp tới. Nếu bạn có đề xuất về các tác phẩm chất lượng cao để thêm vào, hãy cho chúng tôi biết @a16zcrypto.

Các hệ thống bằng chứng không-tri thức đã tồn tại trong nhiều thập kỷ: Sự giới thiệu của họ bởi Shafi Goldwasser, Silvio Micali và Charles Rackoff vào năm 1985 đã có tác động biến đổi trong lĩnh vực mật mã và được công nhận bởi Giải thưởng ACM Turing trao cho Goldwasser và Micali trong 2012. Kể từ khi công việc này - bao gồm cả việc chuyển từ lý thuyết sang thực hành và các ứng dụng trong tiền điện tử / web3 ngày nay - đã được thực hiện trong nhiều thập kỷ, chúng tôi cũng chia sẻ lần đầu tiên trong loạt bài kinh điển của chúng tôi phần hai (hiện tại, bao gồm ở đây bên dưới): một danh sách đọc được chú thích bởi Justin thaler, theo dõi phần một bên dưới.

Lời cảm ơn: Cũng xin cảm ơn Michael Blau, Sam Ragsdale và Tim Roughgarden.

Cơ sở, bối cảnh, diễn biến

Một số bài báo này cũng nói nhiều hơn về mật mã nói chung (không phải tất cả đều không có kiến ​​thức), bao gồm việc phác thảo các vấn đề hoặc những tiến bộ quan trọng được giải quyết bằng các bằng chứng không có kiến ​​thức ngày nay: cách đảm bảo quyền riêng tư và xác thực trong các mạng mở.

Các hướng mới trong mật mã (1976)
của Whitfield Diffie và Martin Hellman
https://ee.stanford.edu/~hellman/publications/24.pdf

Phương pháp lấy chữ ký số và hệ thống mật mã khóa công khai
bởi Ronald Rivest, Adi Shamir, Leonard Adelman
https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=856E21BC2F75800D37FD611032C30B9C?doi=10.1.1.40.5588&rep=rep1&type=pdf

Các giao thức cho các hệ thống mật mã khóa công khai (1980)
bởi Ralph Merkle
http://www.merkle.com/papers/Protocols.pdf

Thông tin liên lạc an toàn qua các kênh không an toàn (1978)
bởi Ralph Merkle
https://www.merkle.com/1974/PuzzlesAsPublished.pdf

Sử dụng đường cong elliptic trong mật mã (1988)
bởi Victor Miller
https://link.springer.com/content/pdf/10.1007%2F3-540-39799-X_31.pdf

Sự phức tạp về kiến ​​thức của hệ thống bằng chứng tương tác (1985)
bởi Shafi Goldwasser, Silvio Micali, Charles Rackof
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.419.8132&rep=rep1&type=pdf

Tính toán cách âm (2000)
bởi Silvio Micali
https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/Computationally_Sound_Proofs.pdf

Từ khả năng chống va chạm có thể trích xuất đến các đối số không tương tác ngắn gọn của kiến ​​thức [SNARK] và quay lại (2011)
bởi Nir Bitansky, Ran Canetti, Alessandro Chiesa, Eran Tromer
https://eprint.iacr.org/2011/443.pdf

Lập luận hiệu quả về không kiến ​​thức cho tính đúng đắn của một lần xáo trộn (2012)
của Stephanie Bayer và Jens Groth
http://www0.cs.ucl.ac.uk/staff/J.Groth/MinimalShuffle.pdf

Tích lũy kiến ​​thức không tương tác không tương tác cho Kiến trúc von Neumann (2013)
bởi Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer và Madars Virza
https://eprint.iacr.org/2013/879.pdf

Tính toàn vẹn có thể mở rộng, minh bạch và bảo mật sau lượng tử (2018)
bởi Eli Ben-Sasson, Iddo Bentov, Yinon Horesh và Michael Riabzev
https://eprint.iacr.org/2018/046.pdf

Các đối số không-tri thức công khai với (gần như) chi phí tối thiểu về thời gian và không gian (2020)
bởi Alexander Block, Justin Holmgren, Alon Rosen, Ron Rothblum và Pratik Soni
https://www.iacr.org/cryptodb/data/paper.php?pubkey=30645

Tổng quan và giới thiệu

Chứng minh, lập luận và không có kiến ​​thức - Tổng quan về tính toán có thể xác minh và các bằng chứng và lập luận tương tác, các giao thức mật mã cho phép một câu châm ngôn cung cấp sự đảm bảo cho người xác minh rằng câu tục ngữ đã thực hiện một phép tính được yêu cầu một cách chính xác, bao gồm cả zero-knowledge (trong đó các bằng chứng không tiết lộ thông tin nào ngoài giá trị của chính chúng) . Các đối số Zk có vô số ứng dụng trong mật mã và đã tạo ra bước nhảy vọt từ lý thuyết sang thực hành trong thập kỷ qua.
bởi Justin Thaler
https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf

Sự phát triển của các mô hình cho các bằng chứng không có kiến ​​thức - Đánh giá về các bằng chứng không có kiến ​​thức, trong đó Meiklejohn (Đại học Cao đẳng London, Google) xem xét các ứng dụng đang thúc đẩy sự phát triển của chúng, các mô hình khác nhau đã xuất hiện để nắm bắt những tương tác mới này, các cấu trúc mà chúng tôi có thể đạt được và công việc còn lại để làm.
bởi Sarah Meiklejohn
https://www.youtube.com/watch?v=HO97kVMI3SE

Phiên bảng trắng ZK - mô-đun giới thiệu
với Dan Boneh và cộng sự
https://zkhack.dev/whiteboard/

Bảo mật và quyền riêng tư cho tiền điện tử với zkps - tiên phong trong việc chứng minh kiến ​​thức bằng không trong thực tế; zkps là gì và cách chúng hoạt động ... bao gồm cả sân khấu trực tiếp "demo"
bởi Zooko Wilcox
https://a16z.com/2019/08/29/security-and-privacy-for-crypto-with-zero-knowledge-proofs/

Các chủ đề công nghệ hàng đầu, được giải thích - bao gồm các định nghĩa và hàm ý của kiến ​​thức không nói chung
bởi Joe Bonneau, Tim Roughgarden, Scott Kominers, Ali Yahya, Chris Dixon
https://web3-with-a16z.simplecast.com/episodes/hot-research-summer-blockchain-crypto-tech-topics-explainers-overviews-seminar-videos

Cách lớp bảo mật sắp tới sẽ sửa web bị hỏng
bởi Howard Wu
https://future.com/a-privacy-layer-for-the-web-can-change-everything/

Giới thiệu về zkSNARKs
với Howard Wu, Anna Rose
https://zeroknowledge.fm/38-2/

Tại sao và cách thức hoạt động của zk-SNARK: một lời giải thích rõ ràng
bởi Maksym Petkus
https://arxiv.org/pdf/1906.07221.pdf

Giới thiệu về chứng minh không có kiến ​​thức
bởi Fredrik Harrysson và Anna Rose
https://www.zeroknowledge.fm/21 [+ bản ghi tóm tắt ở nơi khác tại đây]

Zk-SNARKs: dưới mui xe
bởi Vitalik Buterin
https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6
phần 1, phần 2, phần 3

Tốc độ phi tập trung - dựa trên những tiến bộ trong bằng chứng kiến ​​thức bằng không, phần cứng phi tập trung
bởi Elena Burger
https://a16z.com/2022/04/15/zero-knowledge-proofs-hardware-decentralization-innovation/

Nghiên cứu zk tiên tiến - với nhà nghiên cứu zk tại Ethereum Foundation
với Mary Maller, Anna Rose, Kobi Gurkan
https://zeroknowledge.fm/232-2/

Khám phá nghiên cứu zk - với giám đốc nghiên cứu tại DFINITY; cũng đứng sau những tiến bộ như Groth16
với Jens Groth, Anna Rose, Kobi Gurkan
https://zeroknowledge.fm/237-2/

Nghiên cứu & sư phạm SNARK - với một trong những người đồng sáng lập ZCash và Starkware
với Alessandro Chiesa, Anna Rose
https://zeroknowledge.fm/episode-200-snark-research-pedagogy-with-alessandro-chiesa/

Lặn sâu, hướng dẫn người xây dựng

Cơ sở của chứng minh xác suất - một khóa học với 5 đơn vị từ các bằng chứng tương tác và hơn thế nữa
bởi Alessandro Chiesa
https://www.youtube.com/playlist?list=PLGkwtcB-DfpzST-medFVvrKhinZisfluC

STARKs - phần I, II, III
bởi Vitalik Buterin
https://vitalik.ca/general/2017/11/09/starks_part_1.html
https://vitalik.ca/general/2017/11/22/starks_part_2.html
https://vitalik.ca/general/2018/07/21/starks_part_3.html

Giải phẫu của STARK - hướng dẫn sáu phần giải thích cơ chế của hệ thống bằng chứng STARK
bởi Alan Szepieniec
https://aszepieniec.github.io/stark-anatomy/

SNARK thiết kế, phần 1 - khảo sát, sử dụng trong bản tổng hợp, hơn thế nữa
bởi Justin Thaler
https://www.youtube.com/watch?v=tg6lKPdR_e4

SNARK thiết kế, phần 2 - tổng hợp, hiệu suất, bảo mật
bởi Justin Thaler
https://www.youtube.com/watch?v=cMAI7g3UcoI

Đo hiệu suất SNARK - giao diện người dùng, phụ trợ, hơn thế nữa
bởi Justin Thaler
https://a16zcrypto.com/measuring-snark-performance-frontends-backends-and-the-future/

Hiểu về PLONK
https://vitalik.ca/general/2019/09/22/plonk.html

Hệ thống kiểm chứng kiến ​​thức bằng không PLONK - chuỗi 12 video ngắn về cách PLONK hoạt động
bởi David Wong
https://www.youtube.com/playlist?list=PLBJMt6zV1c7Gh9Utg-Vng2V6EYVidTFCC

Từ AIRs đến RAPs - cách hoạt động của số học kiểu PLONK
bởi Ariel Gabizon
https://hackmd.io/@aztec-network/plonk-arithmetiization-air

Kiểm tra nhiều bộ trong PLONK và Plookup
bởi Ariel Gabizon
https://hackmd.io/@arielg/ByFgSDA7D

Thiết kế Halo2 - từ ECC
https://zcash.github.io/halo2/design.html

Plonky2
https://github.com/mir-protocol/plonky2/blob/main/plonky2/plonky2.pdf

Ứng dụng & hướng dẫn: bằng chứng về các khái niệm, bản trình diễn, công cụ, hơn thế nữa

Áp dụng zk - tài nguyên học tập
bởi 0xPARC
https://learn.0xparc.org/materials/intro

Môi trường phát triển trực tuyến cho zkSNARKs - zkREPL, một bộ công cụ mới để tương tác với bộ công cụ Circom trong trình duyệt
bởi Kevin Kwok
https://zkrepl.dev (+ chủ đề giải thích tại đây)

Các chương trình số học bậc hai từ số XNUMX đến số anh hùng
bởi Vitalik Buterin
https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649

Trên zkEVMs
với Alex Gluchowski và Anna Rose
https://zeroknowledge.fm/175-2/

Các loại zkEVM khác nhau
bởi Vitalik Buterin
https://vitalik.ca/general/2022/08/04/zkevm.html

Máy học ZK - hướng dẫn & demo để đưa mạng nơ-ron vào SNARK
bởi Horace Pan, Francis Ho và Henri Palacci
https://0xparc.org/blog/zk-mnist

Trên các ngôn ngữ ZK
với Alex Ozdemir và Anna Rose
https://zeroknowledge.fm/172-2/

Dark Forest - áp dụng mật mã zk vào trò chơi - một trò chơi RTS (chiến lược thời gian thực) hoàn toàn phi tập trung và bền bỉ
https://blog.zkga.me/announcing-darkforest

ZKP dành cho kỹ sư - một cái nhìn về ZKP của Dark Forest
https://blog.zkga.me/df-init-circuit

Đi sâu vào kiến ​​thức không
với Elena Nadolinkski, Anna Rose, James Prestwich
https://zeroknowledge.fm/182-2/

zkDocs: Chia sẻ thông tin không có kiến ​​thức
bởi Sam Ragsdale và Dan Boneh
https://a16zcrypto.com/zkdocs-zero-knowledge-information-sharing/

Airdrop tiền điện tử bảo vệ quyền riêng tư với không có bằng chứng kiến ​​thức
bởi Sam Ragsdale
https://a16z.com/2022/03/27/crypto-airdrop-privacy-tool-zero-knowledge-proofs/

Các buổi lễ thiết lập đáng tin cậy trên chuỗi -
bởi Valeria Nikolaenko và Sam Ragsdale
https://a16zcrypto.com/on-chain-trusted-setup-ceremony/

Các quy định về tiền điện tử, tài chính bất hợp pháp, quyền riêng tư và hơn thế nữa - bao gồm phần về kiến ​​thức không trong bối cảnh quy định / tuân thủ; sự khác biệt giữa công nghệ “bảo vệ quyền riêng tư” và công nghệ làm xáo trộn
với Michele Korver, Jai Ramaswamy, Sonal Chokshi
https://web3-with-a16z.simplecast.com/episodes/crypto-regulations-sanctions-compliance-aml-ofac-news-explained

Các nguồn lực khác

bản tin zkMesh - bản tin hàng tháng chia sẻ những thông tin mới nhất về công nghệ bảo vệ quyền riêng tư phi tập trung, phát triển giao thức quyền riêng tư và hệ thống không có kiến ​​thức
https://zkmesh.substack.com/

Podcast Zero Knowledge - về nghiên cứu zk & ứng dụng zk mới nhất và các chuyên gia xây dựng công nghệ bảo mật hỗ trợ mật mã
với Anna Rose
https://zeroknowledge.fm/

… Một danh sách đọc có chú thích, theo chủ đề và trình tự thời gian, của Justin Thaler:

SNARK từ PCP tuyến tính (hay còn gọi là SNARK với thiết lập dành riêng cho từng mạch)

Lập luận hiệu quả mà không có PCP ngắn (2007)
bởi Yuval Ishai, Eyal Kushilevitz và Rafail Ostrovsky

Trước khoảng năm 2007, SNARK chủ yếu được thiết kế thông qua Kilianmicali mô hình, lấy một bằng chứng “ngắn” có thể kiểm tra xác suất (PCP) và “biên dịch mật mã” nó thành một đối số ngắn gọn thông qua phép băm Merkle và phép biến đổi Fiat-Shamir. Thật không may, các PCP ngắn rất phức tạp và không thực tế, ngay cả ngày nay. Bài báo này (IKO) đã chỉ ra cách sử dụng mã hóa đồng hình để thu được các đối số tương tác ngắn gọn (không minh bạch) từ các PCP “dài nhưng có cấu trúc”. Những điều này có thể đơn giản hơn nhiều so với các PCP ngắn, và SNARK kết quả có các bằng chứng ngắn hơn nhiều và xác minh nhanh hơn. Những lập luận này lần đầu tiên được công nhận là có tiềm năng về hiệu quả thực tế, và được tinh chỉnh và thực hiện, trong Tiêu. Thật không may, các đối số của IKO có một phương thức thời gian bậc hai và chuỗi tham chiếu có cấu trúc kích thước bậc hai, vì vậy chúng không chia tỷ lệ với các phép tính lớn.

Chương trình Span bậc hai và NIZK ngắn gọn mà không có PCP (2012)
bởi Rosario Gennaro, Craig Gentry, Bryan Parno và Mariana Raykova

Bài báo mang tính đột phá này (GGPR) đã làm giảm chi phí phương pháp tiếp cận của IKO từ bậc hai về kích thước của mạch thành chuẩn tinh. Xây dựng dựa trên công việc trước đó của GrothLipmaa, nó cũng cung cấp SNARK thông qua mật mã dựa trên ghép nối, thay vì đối số tương tác như trong IKO. Nó đã mô tả SNARK của nó trong bối cảnh cái mà bây giờ được gọi là các bài toán thỏa mãn ràng buộc bậc 1 (R1CS), một sự tổng quát của khả năng thỏa mãn mạch số học.

Bài báo này cũng đóng vai trò là nền tảng lý thuyết của SNARK đầu tiên cho thấy việc triển khai thương mại (ví dụ: trong ZCash) và trực tiếp dẫn đến SNARK vẫn phổ biến cho đến ngày nay (ví dụ: Groth16). Các triển khai ban đầu của các đối số của GGPR đã đến Za'atarPinocchiovà các biến thể sau này bao gồm SNARK cho CBCTV. BCIOP đã đưa ra một khuôn khổ chung làm sáng tỏ các phép biến đổi tuyến tính-PCPs-thành-SNARK này (xem thêm Phụ lục A của Za'atar) và mô tả các cách thuyết minh khác nhau của chúng.

Về quy mô của các đối số không tương tác dựa trên ghép nối (2016)
bởi Jens Groth

Bài báo này, thường được gọi là Groth16, đã trình bày sự cải tiến SNARK của GGPR để đạt được chi phí xác minh cụ thể hiện đại thậm chí ngày nay (các bằng chứng là 3 yếu tố nhóm và việc xác minh bị chi phối bởi ba hoạt động ghép nối, ít nhất là giả định công khai đầu vào ngắn). Bảo mật được chứng minh trong mô hình nhóm chung.

SNARK với thiết lập đáng tin cậy chung

PlonK: Hoán vị trên cơ sở Lagrange cho các đối số không tương tác số của tri thức (2019)
bởi Ariel Gabizon, Zachary Williamson và Oana Ciobotaru

Marlin: Xử lý trước zkSNARK với SRS phổ biến và có thể cập nhật (2019)
của Alessandro Chiesa, Yuncong Hu, Mary Maller, Pratyush Mishra, Psi Vesely và Nicholas Ward

Cả PlonK và Marlin đều thay thế thiết lập tin cậy dành riêng cho từng mạch trong Groth16 bằng thiết lập chung. Điều này đi kèm với chi phí của các bằng chứng lớn hơn gấp 4 lần-6 lần. Người ta có thể nghĩ về PlonK và Marlin khi thực hiện công việc dành riêng cho mạch trong quá trình thiết lập đáng tin cậy trong Groth16 và các phiên bản tiền nhiệm và chuyển nó sang giai đoạn tiền xử lý sẽ xảy ra sau khi thiết lập đáng tin cậy, cũng như trong quá trình tạo bằng chứng SNARK.

Khả năng xử lý các mạch và hệ thống R1CS tùy ý theo cách này đôi khi được gọi là phép tính toán ba chiều hoặc cam kết tính toán, và cũng được mô tả trong Spartan (sẽ thảo luận sau trong phần biên soạn này). Bởi vì nhiều công việc xảy ra hơn trong quá trình tạo bằng chứng, trình duyệt của PlonK và Marlin chậm hơn Groth16 đối với một mạch hoặc phiên bản R1CS nhất định. Tuy nhiên, không giống như Groth16, PlonK và Marlin có thể được thực hiện để làm việc với nhiều biểu diễn trung gian tổng quát hơn so với R1CS.

Các lược đồ cam kết đa thức, một nguyên thủy mật mã khóa trong SNARK

Cam kết không đổi về kích thước đối với đa thức và ứng dụng của chúng (2010)
bởi Aniket Kate, Gregory Zaverucha và Ian Goldberg

Bài báo này đã giới thiệu khái niệm về các lược đồ cam kết đa thức. Nó đưa ra một lược đồ cho các đa thức đơn biến (thường được gọi là cam kết KZG) với các cam kết kích thước không đổi và các bằng chứng đánh giá. Lược đồ sử dụng thiết lập đáng tin cậy (tức là chuỗi tham chiếu có cấu trúc) và mật mã dựa trên ghép nối. Nó vẫn cực kỳ phổ biến trong thực tế ngày nay và được sử dụng trong SNARK bao gồm PlonK và Marlin đã được thảo luận ở trên (và Groth16 sử dụng các kỹ thuật mật mã cực kỳ tương tự).

Các bằng chứng về sự tiệm cận của Oracle tương tác nhanh Reed-Solomon (2017)
bởi Eli Ben-Sasson, Iddo Bentov, Ynon Horesh, Michael Riabzev

Cung cấp bằng chứng tiên tri tương tác (IOP) để kiểm tra Reed-Solomon - nghĩa là, chứng minh rằng một chuỗi đã cam kết gần với bảng đánh giá của một đa thức đơn biến. Kết hợp với phép băm Merkle và phép biến đổi Fiat-Shamir, điều này tạo ra một lược đồ cam kết đa thức minh bạch với các bằng chứng đánh giá có kích thước đa thức (xem VP19 để biết chi tiết). Ngày nay, đây vẫn là sơ đồ ngắn nhất trong số các sơ đồ cam kết hậu đa thức lượng tử hợp lý.

Ligero: Đối số tuyến tính nhẹ mà không cần thiết lập đáng tin cậy (2017)
bởi Scott Ames, Carmit Hazay, Yuval Ishai và Muthuramakrishnan Venkitasubramaniam

Tương tự như FRI, công việc này cung cấp IOP cho thử nghiệm Reed-Solomon, nhưng với độ dài bằng chứng căn bậc hai chứ không phải là đa thức. lý thuyết công trinh cho thấy rằng, bằng cách hoán đổi mã Reed-Solomon cho một mã sửa lỗi khác với mã hóa nhanh hơn, người ta có thể có được một câu tục ngữ thời gian tuyến tính hoạt động nguyên bản trên bất kỳ trường nào. Cách tiếp cận này đã được cải tiến và triển khai trong phanh gấpOrion, mang lại hiệu suất châm ngôn hiện đại.

Chống đạn: Bằng chứng ngắn cho các giao dịch bí mật và hơn thế nữa (2017)
bởi Benedikt Bunz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille và Greg Maxwell

Tinh chỉnh công việc trước đó bởi BCCGP, Bulletproofs đưa ra một lược đồ cam kết đa thức minh bạch (trên thực tế, tổng quát hóa được gọi là đối số sản phẩm bên trong) dựa trên độ cứng của tính toán logarit rời rạc với kích thước chứng minh logarit nhưng thời gian xác minh tuyến tính. Kế hoạch này vẫn còn phổ biến cho đến ngày nay do tính minh bạch và các bằng chứng ngắn (ví dụ: nó được sử dụng trong ZCash Orchard và Monero).

Dory: Lập luận minh bạch, hiệu quả cho các sản phẩm tổng quát bên trong và cam kết đa thức (2020)
bởi Jonathan Lee

Dory giảm thời gian xác minh trong Bulletproofs từ tuyến tính sang logarit, đồng thời duy trì độ trong suốt và các bằng chứng kích thước logarit (mặc dù lớn hơn Bulletproofs một cách cụ thể) và độ trong suốt. Sử dụng các cặp và dựa trên giả định SXDH.

Bằng chứng tương tác, Bằng chứng tương tác đa phương ngữ và SNARK liên quan

Tính toán ủy quyền: Chứng minh tương tác cho Muggles (2008)
bởi Shafi Goldwasser, Yael Tauman Kalai và Guy Rothblum

Trước bài báo này, các bằng chứng tương tác có mục đích chung yêu cầu siêu đa thức-thời gian tục ngữ. Bài báo này đưa ra một giao thức chứng minh tương tác, thường được gọi là giao thức GKR, với phương thức thời gian đa thức và bộ xác minh thời gian chuẩn tính, cho bất kỳ vấn đề nào sở hữu một thuật toán song song hiệu quả (tương đương, chứng minh tương tác áp dụng cho bất kỳ mạch số học nào có độ sâu nhỏ).

Tính toán được xác minh thực tế với các bằng chứng tương tác trực tuyến (2011)
bởi Graham Cormode, Michael Mitzenmacher, Justin Thaler

Bài báo này (đôi khi được gọi là CMT) đã giảm thời gian tục ngữ trong giao thức GKR từ tứ phân vị trong kích thước của mạch thành chuẩn tinh. Đã tạo ra bản triển khai đầu tiên của một bằng chứng tương tác có mục đích chung. Một dòng các tác phẩm tiếp theo (Tiêu, Thaler13, Hươu cao cổ Libra) đã giảm thời gian chạy của câu tục ngữ hơn nữa, từ chuẩn tinh thành tuyến tính trong kích thước của mạch.

vSQL: Xác minh Truy vấn SQL tùy ý qua Cơ sở dữ liệu động thuê ngoài (2017)
bởi Yupeng Zhang, Daniel Genkin, Jonathan Katz, Dimitrios Papadopoulos và Charalampos Papamanthou

Mặc dù tiêu đề đề cập đến một lĩnh vực ứng dụng cụ thể (cơ sở dữ liệu), những đóng góp của bài báo này mang tính khái quát hơn. Cụ thể, nó quan sát thấy rằng người ta có thể thu được các đối số ngắn gọn cho tính dễ hiểu của mạch bằng cách kết hợp các chứng minh tương tác với các lược đồ cam kết đa thức (đối với đa thức đa tuyến).

Sau công trinh trả lại các đối số không-kiến thức và giới thiệu các lược đồ cam kết khác nhau cho đa thức đa tuyến.

Spartan: Các zkSNARK có mục đích chung và hiệu quả mà không cần thiết lập đáng tin cậy (2019)
bởi Srinath Setty

Có được SNARK để đáp ứng mạch và R1CS bằng cách kết hợp các bằng chứng tương tác đa phương thức (MIP) với các sơ đồ cam kết đa thức, dựa trên công việc trước đó trên các MIP hiệu quả cụ thể được gọi là Clover. Hiệu quả là thu được SNARK với các bằng chứng ngắn hơn so với các SNARK có được từ các bằng chứng tương tác như giao thức GKR đã thảo luận ở trên. Tương tự như PlonK và Marlin, Spartan cũng chỉ ra cách xử lý các mạch và hệ thống R1CS tùy ý thông qua tiền xử lý và tạo bằng chứng SNARK.

Spartan đã sử dụng một lược đồ cam kết đa thức từ hyrax. Các tác phẩm tiếp theo được gọi là phanh gấpOrion kết hợp MIP của Spartan với các lược đồ cam kết đa thức khác để mang lại SNARK được triển khai đầu tiên với phương ngữ thời gian tuyến tính.

PCP ngắn và IOP

Các PCP ngắn có độ phức tạp của truy vấn Polylog (2005)
bởi Eli Ben-Sasson và Madhu Sudan

 Công trình lý thuyết này đã đưa ra bằng chứng xác suất có thể kiểm tra (PCP) đầu tiên với chuẩn tinh độ dài bằng chứng theo kích thước của phép tính cần được xác minh và chi phí truy vấn đa thức (mặc dù thời gian xác minh tuyến tính). Sau quá trình chuyển đổi Kilian-Micali của PCP thành SNARK, đây là một bước tiến tới SNARK với phương ngôn thời gian gần như tuyến tính và bộ xác minh thời gian đa thức.

Công việc lý thuyết sau này đã giảm thời gian xác minh thành đa số. Sau đó công việc tập trung vào thực tế đã cải tiến cách tiếp cận này, nhưng các PCP ngắn ngày nay vẫn không thực tế. Để có được SNARK thực tế, một lát sau công trinh quay đến một tổng quát tương tác của các PCP được gọi là Chứng minh Oracle tương tác (IOP). Những nỗ lực này đã dẫn đến và xây dựng Miễn phí, một lược đồ cam kết đa thức phổ biến được thảo luận trong phần cam kết đa thức của biên soạn này.

Các tác phẩm khác trong danh mục này bao gồm ZKBoo và con cháu của nó. Những điều này không đạt được các chứng minh ngắn gọn, nhưng chúng có các hệ số ổn định tốt và do đó rất hấp dẫn để chứng minh các tuyên bố nhỏ. Chúng đã dẫn đến các họ chữ ký hậu lượng tử như Đi chơi picnicđược tối ưu hóa in một số công trinh. ZKBoo được trình bày theo một mô hình thiết kế riêng biệt được gọi là MPC-trong-đầu, nhưng nó tạo ra IOP.

SNARK đệ quy

Tính toán ngày càng có thể xác minh hoặc bằng chứng về kiến ​​thức ngụ ý hiệu quả về thời gian / không gian (2008)
bởi Paul Valiant

Công trình này đã đưa ra khái niệm cơ bản về tính toán có thể kiểm chứng dần dần (IVC), trong đó các câu châm ngôn chạy một phép tính và luôn duy trì một bằng chứng cho thấy việc tính toán cho đến nay là đúng. Nó đã xây dựng IVC thông qua thành phần đệ quy của SNARK. Đây, sự hiểu biết thuộc tính của SNARK là điều cần thiết để thiết lập tính hợp lý của các đối số không tương tác được soạn đệ quy. Bài báo này cũng đưa ra một công cụ trích xuất kiến ​​thức cực kỳ hiệu quả cho SNARK có nguồn gốc từ PCP (theo mô hình Kilian-Micali).

Kiến thức Zero có thể mở rộng thông qua Chu kỳ của đường cong Elliptic (2014)
bởi Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer và Madars Virza

Sau công việc lý thuyết, bài báo này đã sử dụng ứng dụng đệ quy của một biến thể của SNARK của GGPR, để cung cấp việc triển khai IVC đầu tiên cho một máy ảo đơn giản (TinyRAM, từ SNARK cho C giấy).

Cũng giới thiệu khái niệm về chu kỳ của đường cong elliptic, rất hữu ích cho việc soạn thảo đệ quy SNARK sử dụng mật mã đường cong elliptic.

Thành phần bằng chứng đệ quy mà không có thiết lập đáng tin cậy (2019)
bởi Sean Bowe, Jack Grigg và Daira Hopwood

Công trình này (được gọi là Halo) nghiên cứu cách tạo đệ quy SNARK trong suốt. Điều này khó khăn hơn so với việc soạn thảo những cái không minh bạch vì thủ tục xác minh trong SNARK trong suốt có thể đắt hơn nhiều.

Điều này sau đó đã châm ngòi cho một hàng of công việc điều đó đã lên đến đỉnh điểm trong các hệ thống như Tân tinh đạt được hiệu suất IVC hiện đại, vượt trội hơn so với hiệu suất có được nhờ thành phần của SNARK không trong suốt như Groth16.

Ứng dụng

Zerocash: Thanh toán ẩn danh phi tập trung từ Bitcoin (2014)
bởi Eli Ben Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer, Madars Virza

Xây dựng dựa trên công việc trước đó bao gồm số không (và với Đồng xu Pinnochio như công việc đồng thời), bài báo này sử dụng SNARK có nguồn gốc từ GGPR để thiết kế một loại tiền điện tử riêng. Dẫn đến ZCash.

Geppetto: Tính toán đa năng có thể xác minh (2014)
bởi Craig Costello, Cédric Fournet, Jon Howell, Markulf Kohlweiss, Benjamin Kreuter, Michael Naehrig, Bryan Parno và Samee Zahur

Geppetto được cho là đã định trước sự bùng nổ quan tâm đến việc thực thi hợp đồng thông minh tư nhân, được viết khoảng một năm sau khi Ethereum ra đời. Do đó, nó không được trình bày trong bối cảnh thực thi hợp đồng thông minh riêng. Tuy nhiên, nó sử dụng đệ quy độ sâu có giới hạn của SNARK để cho phép một câu châm ngôn không đáng tin cậy thực thi bất kỳ chương trình máy tính riêng tư (đã cam kết / đã ký) nào trên dữ liệu cá nhân mà không tiết lộ thông tin về chương trình đang chạy hoặc dữ liệu mà nó được chạy. Theo đó, nó là tiền thân của hoạt động trên các nền tảng hợp đồng thông minh tư nhân, chẳng hạn như Zexe [được mô tả dưới đây].

ASIC có thể xác minh (2015)
bởi Riad Wahby, Max Howald, Siddharth Garg, abhi trú ẩn, Michael Walfish

Bài báo này xem xét vấn đề làm thế nào để sử dụng một cách an toàn và hiệu quả ASIC được sản xuất tại một xưởng đúc không đáng tin cậy (vào năm 2015, chỉ có năm quốc gia có xưởng đúc cao cấp nhất). Cách tiếp cận là để ASIC nhanh nhưng không đáng tin cậy chứng minh tính đúng đắn của đầu ra của nó cho một trình xác minh chạy trên một ASIC chậm hơn nhưng đáng tin cậy. Giải pháp rất thú vị miễn là tổng thời gian thực thi của hệ thống (tức là tổng thời gian chạy phương ngôn và trình xác minh cộng với bất kỳ chi phí truyền dữ liệu nào) ít hơn đường cơ sở ngây thơ: thời gian cần thiết để chạy tính toán đầy đủ càng chậm -nhưng ASIC đáng tin cậy. Sử dụng một biến thể của các bằng chứng tương tác GKR / CMT / Allspice, bài báo thực sự đánh bại đường cơ sở ngây thơ cho một số vấn đề cơ bản, bao gồm các phép biến đổi lý thuyết số, đối sánh mẫu và các phép toán đường cong elliptic. Công việc này cho thấy rằng một số hệ thống bằng chứng thích hợp cho việc triển khai phần cứng hơn những hệ thống khác. Việc tối ưu hóa hệ thống bằng chứng để triển khai phần cứng hiện đang nhận được đáng kể sự chú ý, nhưng vẫn còn nhiều điều cần được khám phá.

Kiểm chứng Chức năng trì hoãn (2018)
bởi Dan Boneh, Joseph Bonneau, Benedikt Bünz và Ben Fisch

Đã giới thiệu ký hiệu của các hàm trì hoãn có thể xác minh được (VDF), một dạng nguyên thủy mật mã rất hữu ích trong các ứng dụng blockchain, ví dụ, trong việc giảm thiểu thao tác có thể xảy ra đối với các giao thức đồng thuận bằng chứng cổ phần. SNARK (đặc biệt là đối với Tính toán có thể xác minh được gia tăng) cung cấp một lộ trình đến các VDF hiện đại nhất.

Zexe: Bật tính toán riêng tư phi tập trung (2018)
bởi Sean Bowe, Alessandro Chiesa, Matthew Green, Ian Miers, Pratyush Mishra và Howard Wu

Zexe là một thiết kế cho một nền tảng hợp đồng thông minh riêng. Người ta có thể xem Zexe như một phần mở rộng của Zerocash (đã mô tả ở trên). Zerocash cho phép một ứng dụng duy nhất được chạy trên chuỗi (cho phép người dùng chuyển mã thông báo) trong khi bảo vệ quyền riêng tư của dữ liệu người dùng, ví dụ: họ đang gửi mã thông báo cho ai, nhận mã thông báo từ ai, số lượng mã thông báo được chuyển, v.v. Zexe cho phép nhiều các ứng dụng khác nhau (hợp đồng thông minh) để chạy trên cùng một blockchain và tương tác với nhau. Các giao dịch được thực hiện ngoài chuỗi và bằng chứng về việc thực hiện đúng được đăng trên chuỗi. Không chỉ quyền riêng tư về dữ liệu được bảo vệ, quyền riêng tư về chức năng cũng vậy. Điều này có nghĩa là bằng chứng liên quan đến mỗi giao dịch thậm chí không tiết lộ (các) ứng dụng mà giao dịch liên quan đến. Một đóng góp kỹ thuật tổng quát hơn của Zexe là nó đã giới thiệu BLS12-377, một nhóm đường cong elliptic hữu ích cho thành phần độ sâu 1 hiệu quả của SNARK dựa trên ghép nối.

Máy trạng thái được sao chép mà không có thực thi sao chép (2020)
bởi Jonathan Lee, Kirill Nikitin và Srinath Setty

Đây là một trong số ít bài báo học thuật về việc cuộn lên cho khả năng mở rộng của blockchain. Nó không sử dụng thuật ngữ tổng hợp, bởi vì nó có từ trước hoặc đồng thời với khái niệm được đưa ra bên ngoài tài liệu học thuật.

Giao diện người dùng (chuyển đổi hiệu quả từ các chương trình máy tính sang các đại diện trung gian như khả năng đáp ứng của mạch, R1CS, v.v.)

Giảm nhanh từ RAM đến các vấn đề về thỏa mãn ràng buộc có thể ủy quyền (2012)
bởi Eli Ben-Sasson, Alessandro Chiesa, Daniel Genkin và Eran Tromer

Từ quan điểm hiện đại, đây là một công trình ban đầu về các phép biến đổi máy tính-chương trình thành mạch-SAT thực tế cho một máy ảo (VM) trừu tượng. Xây dựng dựa trên các tác phẩm từ cuối những năm 1970 đến những năm 1990 (ví dụ: tác phẩm của Robson) bài báo này giải thích sự giảm thiểu xác định từ việc thực hiện một VM cho các bước T đến mức độ thỏa mãn của một mạch có kích thước O (T * polylog (T)).

Các giấy tờ tiếp theo, ví dụ: SNARK cho CBCTV, tiếp tục phát triển giao diện người dùng thông qua sự trừu tượng hóa máy ảo và các khởi tạo hiện đại bao gồm các dự án như Cairo, RISC KhôngĐa giác Miden.

Thực hiện tính toán được xác minh dựa trên bằng chứng một vài bước gần hơn với thực tế (2012)
bởi Srinath Setty, Victor Vu, Nikhil Panpalia, Benjamin Braun, Muqeet Ali, Andrew J. Blumberg và Michael Walfish

Bài báo này, được gọi là Ginger, là một đóng góp ban đầu khác cho các kỹ thuật front-end thực tế. Ginger đã giới thiệu các tiện ích dành cho các nguyên tắc lập trình chung như điều kiện và biểu thức logic, so sánh và số học bit thông qua tách bit, số học dấu phẩy động nguyên thủy, v.v. Nó sử dụng các tiện ích này để cung cấp giao diện người dùng đầu tiên được triển khai từ ngôn ngữ cấp cao đến cấp độ thấp Các ràng buộc số học (tương tự như cái mà ngày nay được gọi là R1CS), một đại diện trung gian (IR) mà một phần sau SNARK có thể được áp dụng.

Trong khi bài báo “Giảm nhanh” và các hậu duệ của nó sử dụng cách tiếp cận “trình giả lập CPU” trong việc tạo ra IR (tức là IR thực thi rằng câu tục ngữ đã chạy đúng một chương trình cụ thể bằng cách áp dụng chức năng chuyển tiếp của CPU cho một số bước cụ thể) , Ginger và các hậu duệ của nó có cách tiếp cận giống ASIC hơn, tạo ra các IR được điều chỉnh cho phù hợp với chương trình máy tính mà câu tục ngữ tuyên bố sẽ thực thi chính xác.

Ví dụ, Buffet cho thấy rằng có thể xử lý luồng điều khiển phức tạp trong mô hình ASIC, bằng cách chuyển luồng điều khiển đó thành một máy trạng thái hữu hạn phù hợp với chương trình đang được thực thi và cách tiếp cận này có thể hiệu quả hơn đáng kể so với việc xây dựng một trình giả lập CPU có mục đích chung. xJsnark mang lại một cấu trúc hiệu quả cho số học đa độ chính xác, tối ưu hóa RAM và ROM, đồng thời cung cấp một ngôn ngữ cấp cao giống như Java cho một lập trình viên, ngôn ngữ này vẫn còn phổ biến cho đến ngày nay. CirC nhận thấy rằng việc biên dịch các chương trình máy tính sang R1CS có liên quan chặt chẽ đến các kỹ thuật nổi tiếng từ phân tích chương trình và xây dựng bộ công cụ xây dựng trình biên dịch kết hợp các ý tưởng từ cả hai cộng đồng (“LLVM cho các biểu diễn dạng mạch”). Các công trình trước đó đóng góp cho giao diện người dùng kiểu ASIC bao gồm Pinocchiobánh nướng xốp.

Bài báo "Giảm nhanh" đã sử dụng một cấu trúc phức tạp và tốn kém được gọi là "mạng định tuyến" cho cái gọi là kiểm tra bộ nhớ (nghĩa là, đảm bảo rằng câu tục ngữ không đáng tin cậy đang duy trì chính xác bộ nhớ truy cập ngẫu nhiên của VM trong suốt quá trình thực thi VM mà tính đúng đắn đang được chứng minh). Lựa chọn này được đưa ra vì các công trình ban đầu như công việc này đang tìm cách lấy PCP, điều này yêu cầu đầu cuối phải cả hai không tương tác và an toàn thông tin về mặt lý thuyết. Công việc sau đó được gọi là Nhà bếp (một tiền thân của Buffet công việc được đề cập ở trên) đã sử dụng Merkle-tree thay cho các mạng định tuyến, đạt được hiệu quả bằng cách biên dịch một hàm băm đại số (ví dụ: “thân thiện với SNARK”), do Ajtai, thành các ràng buộc. Điều này dẫn đến giao diện người dùng "an toàn về mặt tính toán". Ngày nay, có một tài liệu nghiên cứu lớn về các hàm băm thân thiện với SNARK, với các ví dụ bao gồm Poseidon, MiMC, Bê tông cốt thép, giải thoát, Và nhiều hơn nữa.

Các kỹ thuật hiện đại để đảm bảo rằng câu tục ngữ đang duy trì RAM một cách chính xác dựa vào cái gọi là phương pháp "lấy dấu vân tay bất biến hoán vị" có từ ít nhất là Lipton (1989) và được sử dụng để kiểm tra bộ nhớ bởi Blum và cộng sự. (1991). Những kỹ thuật này vốn liên quan đến sự tương tác giữa một phương ngôn và người xác minh, nhưng có thể được hiển thị không tương tác với phép biến đổi Fiat-Shamir. Theo như chúng tôi được biết, họ đã được giới thiệu với tài liệu về giao diện người dùng SNARK thực tế bởi một hệ thống có tên là vRAM.

Kỹ thuật lấy dấu vân tay bất biến-hoán vị hiện được sử dụng trong nhiều giao diện người dùng và SNARK để trừu tượng hóa máy ảo, bao gồm Cairo. Các ý tưởng liên quan chặt chẽ xuất hiện lại trong các bối cảnh liên quan trong hai tác phẩm dưới đây, được sử dụng rộng rãi trong thực tế ngày nay.

Chứng minh kiến ​​thức gần như tuyến tính-thời gian XNUMX để thực hiện đúng chương trình (2018)
bởi Jonathan Bootle, Andrea Cerulli, Jens Groth, Sune Jakobsen và Mary Maller

Plookup: Một giao thức đa thức đơn giản cho các bảng tra cứu (2020)
bởi Ariel Gabizon và Zachary Williamson

Các hoạt động ban đầu trên giao diện người dùng đại diện cho các phép toán “phi số học” (chẳng hạn như kiểm tra phạm vi, phép toán bit và so sánh số nguyên) bên trong mạch và IR có liên quan bằng cách chia các phần tử trường thành các bit, thực hiện các phép toán trên các bit này, rồi “đóng gói” kết quả trở lại thành một phần tử trường duy nhất. Về kích thước của mạch kết quả, điều này dẫn đến chi phí logarit cho mỗi hoạt động.

Hai công trình trên (BCGJM và Plookup) đưa ra các kỹ thuật có ảnh hưởng (dựa trên cái gọi là “bảng tra cứu”) để thể hiện hiệu quả hơn các hoạt động này bên trong mạch, theo nghĩa khấu hao. Nói một cách đơn giản, đối với một số tham số B do nhà thiết kế front-end chọn, những tham số này làm giảm số lượng cổng cần thiết để đại diện cho mỗi phép toán phi số học trong mạch bằng một hệ số logarit trong B, với chi phí của phương thức mật mã cam kết thêm Vectơ "lời khuyên" có độ dài khoảng B.

Dấu thời gian:

Thêm từ Andreessen Horowitz