
Giải thích chuyên sâu: Vì sao bằng chứng không kiến thức (ZK) lại quan trọng?
Tuyển chọn TechFlowTuyển chọn TechFlow

Giải thích chuyên sâu: Vì sao bằng chứng không kiến thức (ZK) lại quan trọng?
Tương lai của ZK rất tươi sáng, nó có thể biến một số điều từng bất khả thi trong quá khứ thành hiện thực.
Tác giả:Glaze & Nhóm nghiên cứu Fundamental Labs
Nếu bạn thích bài báo cáo này, vui lòng nhấn like, lưu lại và chia sẻ cho bạn bè quan tâm. Điều này rất hữu ích đối với chúng tôi.
TL;DR
Triển vọng của ZK là tươi sáng, nó có thể biến những điều trước đây không thể thành hiện thực. Trong những năm gần đây, lĩnh vực ZK đã đạt được nhiều bước tiến đột phá, chẳng hạn như hiệu suất mạnh hơn, khả năng nâng cấp và không cần thiết lập đáng tin cậy ban đầu. Những cải tiến này đều đưa ZK tiến vào giai đoạn ứng dụng. Do đó, nếu chúng ta nhìn thấy một hệ thống chứng minh ZK mới, có thể đánh giá theo các khía cạnh sau:
Thời gian tạo bằng chứng cho một giao dịch và mười giao dịch
Thời gian xác minh bằng chứng cho một giao dịch và mười giao dịch
Kích thước bằng chứng sau khi đóng gói một giao dịch và mười giao dịch
Thiết lập đáng tin cậy (Trusted Setup)
Độ dài chuỗi tham chiếu
Hỗ trợ CRS
Hỗ trợ SRS
Hỗ trợ chứng minh đệ quy
Có chống được máy tính lượng tử hay không
Bảo mật dựa trên giả định mật mã nào
ZKEVM là cột mốc tiếp theo của ZKRU, ZKEVM có ba giai đoạn:
Cấp độ đồng thuận
Cấp độ bytecode
Cấp độ ngôn ngữ
ZKRU vừa mới bước vào giai đoạn ứng dụng, hệ sinh thái vẫn chưa hoàn thiện. Các nhà phát triển vẫn chưa khai thác hết tiềm năng của ZK. Mọi người liên tục tìm cảm hứng từ các lý thuyết tiên phong này, dưới đây là những hướng đáng chú ý:
Ứng dụng tận dụng tối đa TPS cao và phí thấp
Giao thức/giao dịch giữa các Layer2
Tập trung thanh khoản
Công cụ/phần mềm phát triển
Công cụ phát triển dựa trên đám mây
Ứng dụng vượt tầng Layer2-Layer1 với chức năng đặc biệt
Các ZKVM khác nhau
Cầu nối ZK
Áp dụng ZK lên các chuỗi khác
Layer2 hỗ trợ đệ quy
Ứng dụng ZK trong DAO và quản trị cộng đồng
Thuật toán ZK thương mại hóa
Chip và điện toán đám mây
Ứng dụng của ZK tập trung vào hai khía cạnh: Rollup và riêng tư. Rollup có triển vọng tốt hơn riêng tư. Riêng tư ở một mức độ nào đó trái ngược tinh thần mở của blockchain. Ngoài ra, riêng tư có thể gặp vấn đề về tuân thủ pháp luật. Trong thời đại Web2, chúng ta chưa từng thấy ứng dụng riêng tư nào trở thành dẫn đầu. Mức độ bảo vệ riêng tư của mọi ứng dụng đều tăng dần, nhưng ứng dụng hàng đầu thường không phải là ứng dụng nổi bật về riêng tư mà là ứng dụng dễ dùng nhất. Bảo vệ riêng tư đi kèm chi phí, thường là hy sinh yếu tố dễ dùng—điều người dùng quan tâm nhất.
Khi xem xét các dự án riêng tư ZK, các điểm sau đây khá quan trọng:
ZK chỉ là công nghệ, chúng ta cần tập trung vào sức mạnh sản phẩm và đội ngũ
ZK là công nghệ phức tạp, sẽ làm chậm tiến độ phát triển
ZK có lợi cho quản trị DAO và xác thực danh tính
ZK là công nghệ bắt buộc để tổ chức lên chuỗi
Trực giác
Giới thiệu ngắn gọn về ZK (Zero Knowledge Proof): Bên chứng minh (Prover) thuyết phục bên xác minh (Verifier) tin rằng một tuyên bố nào đó là đúng, nhưng ngoài việc biết rằng tuyên bố đó đúng, bên xác minh không thu nhận thêm thông tin nào khác.
ZK được thiết kế nhằm mục đích ẩn danh. Hãy tưởng tượng ta có thể chứng minh số CMND của mình hợp lệ mà bên xác minh không thể biết chính xác số CMND đó. Điều này rất quan trọng trong bối cảnh ngày nay, khi thông tin bị thu thập quá mức.
Hãy xem một ví dụ sinh động hơn. Tiểu Minh và Tiểu Hồng đang chơi trò Sudoku. Tiểu Hồng muốn chứng minh với Tiểu Minh rằng cô ấy đã tìm ra đáp án, nhưng không tiết lộ đáp án vì Tiểu Minh chưa giải xong. Bạn sẽ thiết kế cách chứng minh như thế nào?

Chúng ta viết số Sudoku lên các thẻ bài. Mỗi thẻ chứa một chữ số, xếp chúng theo đáp án rồi úp mặt xuống. Tiểu Minh có thể chọn ngẫu nhiên một hàng, một cột hoặc một khối. Tiểu Hồng sẽ lấy các thẻ bài đó, xáo trộn ngẫu nhiên, rồi lật ngửa chúng lên. Nếu các thẻ bài hiển thị đủ 1-9 không trùng lặp, thì Tiểu Minh biết Tiểu Hồng đã giải đúng một phần, tuy nhiên cũng có thể do may mắn. Lặp lại quá trình này nhiều lần, nếu kết quả luôn đúng, thì gần như chắc chắn không phải do may mắn mà là Tiểu Hồng thực sự biết đáp án. Mặc dù Tiểu Minh biết Tiểu Hồng đã giải được Sudoku, nhưng anh ấy vẫn không biết đáp án thực tế.

Nếu bạn vẫn còn mơ hồ, hãy xem video này video. Giáo sư khoa học máy tính UCLA sẽ giải thích ZK theo 5 cấp độ khó khác nhau.
Các trường phái phổ biến của chứng minh kiến thức không
Trước khi giới thiệu các trường phái chứng minh kiến thức không, cần lưu ý rằng ZK-SNARK mà chúng ta thường nói đến không phải là một thuật toán đơn lẻ, mà là một trường phái. ZK-STARK là tên của một thuật toán chứng minh kiến thức không cụ thể.
Chúng ta thường gặp nhất có lẽ là ZK-SNARK. SNARK là viết tắt của succinct non-interactive arguments of knowledge. Đặc điểm đặc biệt nhất của SNARK nằm ở chữ N – tính không tương tác.
Tính súc tích (Succinct): Tài nguyên tính toán cần để xác minh nhỏ hơn rất nhiều so với chạy lại toàn bộ chương trình cần chứng minh.
Tính không tương tác (Non-interactive): Bên chứng minh và bên xác minh không cần phải liên lạc qua lại từng vòng. Họ chỉ cần hoàn thành thiết lập đáng tin cậy ban đầu. Sau đó, bất kỳ bên xác minh nào cũng có thể tham gia xác minh.
Lập luận (Argument): Nếu bên chứng minh có sức mạnh tính toán vô hạn, họ có thể tạo ra bằng chứng giả. Nếu điều này xảy ra, các mô hình mã hóa khóa công khai/chỉ riêng cũng không còn an toàn.
Kiến thức (Knowledge): Bên chứng minh phải biết một bí mật mà người khác không biết mới có thể tạo ra bằng chứng.
Vấn đề lớn nhất của ZK-SNARK là cần thiết lập đáng tin cậy (Trusted Setup). Thiết lập đáng tin cậy sẽ tạo ra chuỗi tham chiếu (Reference String). Nếu RS bị rò rỉ, ai cũng có thể tạo bằng chứng giả. Hơn nữa, việc thiết kế thiết lập đáng tin cậy có sự tham gia của nhiều người cũng rất thách thức. RS chỉ có thể dùng cho chương trình cụ thể. Với chương trình khác, cần thiết lập đáng tin cậy riêng. Vì vậy, ZK-SNARK không thể dùng cho tính toán tổng quát. Thêm nữa, RS không thể nâng cấp. Nếu nâng cấp chương trình, thiết lập đáng tin cậy phải thực hiện lại.
Để giải quyết loạt vấn đề này, các nhà khoa học tìm ra hai hướng:
Thiết lập minh bạch (Transparent Setup): Tạo ra chuỗi tham chiếu công khai (Common Reference String - CRS). CRS được công bố, không cần giữ bí mật. Fractal, Halo, ZK-STARK, SuperSonic đều đi theo hướng này. Vấn đề của hướng này là bằng chứng tạo ra chiếm nhiều dung lượng, lên tới mức kB. Đối với blockchain, lưu trữ rất đắt đỏ.
Thiết lập phổ quát (Universal Setup): Tạo ra chuỗi tham chiếu cấu trúc (Structure Reference String), cần giữ bí mật. SRS cho phép thiết lập đáng tin cậy dùng được cho nhiều chương trình khác nhau, khiến việc chứng minh tính toán tổng quát trở nên khả thi. Marlink, SuperSonic-RSA và Plonk đều đi theo hướng này.
Ngành công nghiệp đang áp dụng rộng rãi một số thuật toán sau:
Groth16: Zcash ban đầu sử dụng thuật toán này. Nó giống như "chuẩn mực" trong các thử nghiệm chứng minh ZK vì tốc độ chứng minh nhanh và kích thước bằng chứng nhỏ. Nhược điểm là cần thiết lập đáng tin cậy và mỗi lần thiết lập chỉ dành cho một chương trình duy nhất. Nó có hệ sinh thái công cụ hoàn chỉnh nhất.
Sonic: Hỗ trợ Universal Setup. Kích thước SRS tỷ lệ tuyến tính với kích thước chương trình. Bằng chứng tạo ra có kích thước cố định, nhưng xác minh tốn nhiều tài nguyên tính toán. Sonic giúp chứng minh kiến thức không cho tính toán tổng quát trở nên khả thi.
Fractal: Hỗ trợ đệ quy (Recursion). Bằng chứng tạo ra chiếm nhiều dung lượng.
Halo: Hỗ trợ đệ quy, nhưng không đạt tính súc tích vì thời gian tạo bằng chứng phi tuyến tính. Halo2 hiện là hệ thống chứng minh phổ biến nhất.
SuperSonic: ZK-SNARK minh bạch thực tế đầu tiên, có thể ứng dụng được.
Marlin: Chương trình có thể nâng cấp. Hiệu suất nằm giữa Sonic và Groth16.
Plonk: Chương trình có thể nâng cấp; các bên tham gia thiết lập đáng tin cậy theo thứ tự. Điều này giúp việc thiết lập đáng tin cậy với nhiều người tham gia trở nên đơn giản hơn; Plonk sử dụng cam kết Kate thay vì cam kết đa thức (bước đầu tiên của ZK-SNARK là chuyển đổi vấn đề tính toán thành vấn đề đa thức). Nhiều hệ thống chứng minh ZK hiện đại xây dựng trên nền tảng Plonk. Plonk có hệ sinh thái công cụ rất xuất sắc.
Nếu bạn muốn chọn vài thuật toán để nghiên cứu kỹ, Groth16, Halo và Plonk là lựa chọn tốt nhất.
CRS là chuỗi tham chiếu công khai được tạo ra bởi hướng Transparent Setup. SRS là chuỗi tham chiếu cấu trúc được tạo ra bởi hướng Universal Setup. Kích thước bằng chứng sẽ quyết định lượng lưu trữ trên Layer1. Thời gian tạo và xác minh bằng chứng quyết định lượng tài nguyên tính toán tiêu thụ.

Nguồn: Comparing General Purpose zk-SNARKs
Biểu đồ bên dưới là bảng xếp hạng các thuật toán chứng minh kiến thức không, dựa trên thí nghiệm này.

Nguồn: Comparing General Purpose zk-SNARKs
Dưới đây là thêm một số bảng xếp hạng và so sánh thuật toán:
Benchmarking Zero-Knowledge proofs with isekai | by Guillaume Drevon | Sikoba Network | Medium
Community Proposal: A Benchmarking Framework for (Zero-Knowledge) Proof Systems (zkproof.org)
Tóm lại, khi chúng ta nhìn thấy một thuật toán ZK mới, các chỉ số sau đây là điều cần quan tâm:
Thời gian tạo bằng chứng cho một giao dịch và mười giao dịch
Thời gian xác minh bằng chứng cho một giao dịch và mười giao dịch
Kích thước bằng chứng sau khi đóng gói một giao dịch và mười giao dịch
Thiết lập đáng tin cậy
Độ dài chuỗi tham chiếu
Hỗ trợ CRS
Hỗ trợ SRS
Hỗ trợ chứng minh đệ quy
Có chống được máy tính lượng tử hay không
Bảo mật dựa trên giả định mật mã nào
ZK trong vài năm gần đây đã bước ra khỏi phòng thí nghiệm, dần tiến vào giai đoạn ứng dụng. Hai hướng ứng dụng chính của ZK là Rollup và riêng tư. Sự thay đổi mà ZK mang lại cho sản phẩm riêng tư là rõ ràng, nhờ vào việc bên xác minh không thu được thông tin bổ sung nào. Rollup phụ thuộc vào hai đặc tính lớn của ZK: tính súc tích (Succinct) và tính đệ quy (Recursion). Tính súc tích giúp bên xác minh tiết kiệm rất nhiều tài nguyên tính toán. Bên xác minh không cần chạy lại toàn bộ chương trình. Tính đệ quy giúp tiết kiệm dung lượng lưu trữ. Thông qua đệ quy, blockchain có thể giữ kích thước cố định. Điều này cũng có lợi cho việc phi tập trung, vì các nút blockchain như vậy có thể chạy trên mọi loại phần cứng.

Quy trình phát triển ứng dụng ZK
Việc phát triển độc lập một ứng dụng ZK rất phức tạp, đòi hỏi nắm vững các kỹ năng sau:
Thuật toán, số học cơ bản, kỹ năng tối ưu hóa. Nhà phát triển cần các kỹ năng này để giải quyết các vấn đề về số học trên trường hữu hạn, cam kết đa thức và đường cong elliptic.
Hệ thống chứng minh ZK, như ZK-SNARKs, Plonkish và cách thiết lập đáng tin cậy. Nhà phát triển cần chọn hệ thống chứng minh ZK phù hợp và tùy chỉnh nó.
Kỹ năng lập trình mạch. Nhà phát triển cần viết các thuật toán mật mã thông dụng thành dạng mạch, như Merkle Tree và Hash.
Phát triển ứng dụng và giao thức mật mã.
Các công cụ phát triển hiệu quả có thể đẩy nhanh quá trình phát triển và giảm độ phức tạp. Ví dụ, các công cụ như Circom có thể giải quyết các vấn đề đại số cơ bản và hệ thống chứng minh. Nhà phát triển có thể bỏ qua đại số và hệ thống chứng minh ZK, tập trung vào lập trình mạch và phát triển ứng dụng.
Cơ chế Rollup
Ý tưởng của Rollup rất đơn giản. Vì tính toán trên chuỗi tốn kém, Rollup muốn di chuyển tính toán ra ngoài chuỗi một cách an toàn, chỉ lưu trữ kết quả tính toán trên chuỗi.
Gốc trạng thái cây băm được lưu trong hợp đồng Rollup. Hợp đồng thông minh Rollup cập nhật gốc trạng thái từ thông tin gửi từ Layer2.

Nguồn: An Incomplete Guide to Rollups (vitalik.ca)

Nguồn: An Incomplete Guide to Rollups (vitalik.ca)
ZK Rollup (ZKRU) sử dụng chứng minh kiến thức không để đảm bảo rằng gốc trạng thái mới gửi từ Layer2 là đúng. Bên xác minh chỉ cần xác minh bằng chứng này để xác nhận tính đúng đắn của gốc trạng thái mới. Bên xác minh không cần thực thi từng giao dịch mà Layer2 gửi. Điều này tiết kiệm rất nhiều công sức cho bên xác minh, nâng cao TPS. Phần tiết kiệm tài nguyên tính toán này thể hiện tính súc tích của chứng minh kiến thức không. Dựa vào tính súc tích, tính đầy đủ và tính âm thanh của chứng minh kiến thức không, ZKRU có thể an toàn nâng cao TPS. (Tính đầy đủ Completeness: Nếu bằng chứng hợp lệ, bên xác minh sẽ tin vào tuyên bố của bên chứng minh. Cái thật không thể sai; Tính âm thanh Soundness: Không thể tạo bằng chứng hợp lệ cho một tuyên bố giả. Cái giả không thể đúng.)
Nhìn chung, ZKRU vượt trội hơn Optimistic Rollup (OPRU). TPS của OPRU thấp hơn một chút, và cần chu kỳ rút tiền dài hơn vì nó dựa vào bằng chứng gian lận (Fraud Proof). Vậy khi ZKRU triển khai toàn diện, chẳng phải ZKRU sẽ áp đảo OPRU sao? Và OPRU hiện tại cũng chưa dẫn trước quá xa về hệ sinh thái. OPRU không ngồi yên, họ đang cố gắng tích hợp ZK vào giải pháp của mình để nâng cao TPS, giải quyết vấn đề chu kỳ rút tiền vốn có quá dài. Ví dụ, họ áp dụng ZK vào thay đổi trạng thái, nhờ đó rút ngắn thời gian cần cho bằng chứng gian lận.
Vai trò
Trong hệ thống Rollup, có ba vai trò:
Người dùng: Người dùng gửi giao dịch trên Layer2. Họ nạp tài sản từ Layer1 lên Layer2
Nút Rollup: Nút Rollup chịu trách nhiệm vận hành mạng Layer2 bình thường. Chúng cần tạo bằng chứng, thực thi giao dịch, đóng gói giao dịch, tham gia vào bằng chứng gian lận
Layer1: Layer1 đảm bảo tính an toàn cho Layere2 và chịu trách nhiệm đạt được sự đồng thuận. Phần lớn Layer1 hiện nay là Ethereum.

Nguồn: Understanding rollup economics from first principles
Mô hình kinh tế
Điều quan trọng nhất trong mô hình kinh tế là chi phí và doanh thu. Đối với Layer2, chi phí chủ yếu bao gồm:
Chi phí tính toán tạo bằng chứng
Chi phí tính toán thay đổi trạng thái
Phí giao dịch Layer1
Chi phí lưu trữ dữ liệu Layer1
Trong đó, chi phí lưu trữ dữ liệu Layer1 là đắt nhất. Biểu đồ này minh họa luồng truyền dữ liệu. Trước tiên, người dùng gửi giao dịch cho nút Rollup. Rollup đóng gói nhiều giao dịch và tạo bằng chứng, lưu trữ trên Layer1.

Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














