Những điểm cần rút ra

  • Bằng chứng không kiến thức (ZKP) là một phương pháp mật mã cho phép một bên chứng minh rằng một mệnh đề là đúng mà không tiết lộ bất kỳ dữ liệu cơ sở nào.

  • ZKPs tăng cường quyền riêng tư và bảo mật trong blockchain bằng cách cho phép các giao dịch được xác minh mà không làm lộ các chi tiết nhạy cảm như địa chỉ ví hoặc số tiền.

  • zk-SNARKs và zk-STARKs là hai loại chính của các bằng chứng không kiến thức (zero-knowledge proofs) đang được sử dụng hiện nay, với các đánh đổi khác nhau về tốc độ, kích thước bằng chứng và nhu cầu thiết lập tin cậy.

  • zk-rollups sử dụng ZKP để gộp nhiều giao dịch ngoài chuỗi (off-chain) và gửi một bằng chứng mật mã duy nhất lên chuỗi (on-chain), giúp tăng thông lượng và giảm phí.

  • Các ứng dụng ZKP trong thế giới thực bao gồm giao dịch riêng tư, xác minh danh tính, tài chính phi tập trung (DeFi) và khả năng tương tác liên chuỗi.

Binance Academy courses banner

Giới thiệu

Blockchain được xây dựng dựa trên tính minh bạch. Mọi giao dịch trên mạng công khai đều có thể nhìn thấy bởi bất kỳ ai quan tâm. Tính minh bạch đó tạo ra niềm tin, nhưng đồng thời cũng tạo ra một mâu thuẫn cơ bản: đôi khi bạn cần xác minh điều gì đó mà không tiết lộ dữ liệu gốc.

Bằng chứng không kiến thức giải quyết vấn đề này. Chúng cho phép một bên, gọi là bên tạo chứng minh (prover), thuyết phục một bên khác, gọi là bên xác minh (verifier), rằng một mệnh đề là đúng mà không tiết lộ bất kỳ thông tin nào ngoài chính sự thật đó. Tên gọi xuất phát trực tiếp từ ý tưởng: bên xác minh nhận được không kiến thức về dữ liệu gốc, nhưng vẫn có thể tin rằng khẳng định đó là hợp lệ.

ZKPs đã là một khái niệm lý thuyết trong mật mã từ những năm 1980, nhưng các triển khai thực tế trong blockchain chỉ trở nên khả thi vào những năm 2010. Kể từ đó, chúng đã trở thành một trong những công nghệ được phát triển tích cực nhất trong lĩnh vực, làm nền tảng cho các đồng coin tăng tính riêng tư, các giải pháp mở rộng Layer 2 và các hệ thống danh tính.

Cách thức hoạt động của bằng chứng không kiến thức

Về cốt lõi, bằng chứng không kiến thức là một giao thức toán học trong đó bên tạo chứng minh tạo ra một bằng chứng thỏa mãn một tập hợp điều kiện mà bên xác minh có thể kiểm tra. Bên xác minh có thể xác nhận bằng chứng là đúng mà không cần có khả năng suy ngược đầu vào ban đầu.

Một phép so sánh cổ điển là một đường hầm với một cánh cửa khóa ở giữa. Người tạo chứng minh biết mã cửa có thể đi vào từ một phía và thoát ra từ phía còn lại một cách nhất quán. Bên xác minh quan sát từ bên ngoài sẽ thấy bằng chứng mà không bao giờ học được chính mã đó.

Để một ZKP hợp lệ, nó phải thỏa mãn ba thuộc tính. Tính hoàn chỉnh (completeness) có nghĩa là một bên tạo chứng minh trung thực luôn có thể thuyết phục bên xác minh. Tính đúng đắn về mặt suy luận (soundness) có nghĩa là một bên tạo chứng minh không trung thực không thể thuyết phục bên xác minh về một mệnh đề sai, ngoại trừ với xác suất không đáng kể. Tính không kiến thức (zero-knowledge) có nghĩa là bên xác minh không học được gì ngoài việc mệnh đề đó đúng hay không.

Trong thực tế, hầu hết các ZKP trong blockchain là không tương tác (non-interactive): bên tạo chứng minh tạo ra một bằng chứng như một mảnh dữ liệu duy nhất, và bên xác minh kiểm tra nó mà không cần trao đổi qua lại. Điều này khiến ZKPs trở nên phù hợp để sử dụng trong các hợp đồng thông minh on-chain và các giao thức Layer 2.

zk-SNARKs và zk-STARKs

Hai loại bằng chứng không kiến thức được sử dụng rộng rãi nhất trong blockchain là zk-SNARKs và zk-STARKs. Cả hai đều cho phép tính toán off-chain được xác minh on-chain, nhưng chúng khác nhau ở cách tiếp cận kỹ thuật.

zk-SNARKs

Các bằng chứng zero-knowledge succinct non-interactive argument of knowledge (zk-SNARK) gọn nhẹ và nhanh để xác minh, nhờ đó chúng trở nên phổ biến trong các ứng dụng ZKP ban đầu như giao dịch riêng tư của Zcash và xác minh hợp đồng thông minh của Ethereum.

Nhược điểm chính là zk-SNARKs yêu cầu thiết lập tin cậy (trusted setup), tức một buổi lễ mà ở đó một tập hợp các tham số mật mã được tạo ra. Nếu phần thiết lập bị xâm phạm, kẻ tấn công có thể (về lý thuyết) tạo ra các bằng chứng gian lận. Nhiều dự án sử dụng các buổi lễ tính toán đa bên (multi-party computation) để giảm thiểu rủi ro này.

zk-STARKs

Các bằng chứng zero-knowledge scalable transparent argument of knowledge (zk-STARK) không yêu cầu thiết lập tin cậy, do đó loại bỏ rủi ro liên quan đến trusted-setup. Chúng cũng được xem là có khả năng chống chịu các cuộc tấn công điện toán lượng tử tốt hơn so với zk-SNARKs. Đánh đổi là bằng chứng zk-STARK có kích thước lớn hơn, có thể đồng nghĩa với chi phí xác minh on-chain cao hơn. StarkNet là một mạng sản xuất đáng chú ý sử dụng zk-STARKs ở quy mô lớn.

zk-Rollups và Mở rộng Blockchain

Một trong những ứng dụng quan trọng nhất của ZKPs là zk-rollups, một giải pháp mở rộng Layer 2 cho blockchain. zk-rollup xử lý hàng trăm giao dịch ngoài chuỗi, đóng gói chúng thành một lô (batch), rồi gửi một ZKP duy nhất lên chuỗi chính (main chain) để chứng minh rằng tất cả các giao dịch đó đều hợp lệ.

Cách tiếp cận này có thể tăng đáng kể thông lượng giao dịch trong khi vẫn kế thừa bảo mật của lớp nền. Phương án chính thay thế là optimistic rollups, giả định các giao dịch là hợp lệ trừ khi bị thách thức, điều này tạo ra độ trễ khi rút tiền. zk-rollups không có độ trễ này vì tính hợp lệ được chứng minh bằng mật mã tại thời điểm đăng tải.

EIP-4844 của Ethereum, được kích hoạt vào tháng 3 năm 2024, đã giới thiệu "blobs" như một lớp lưu trữ dữ liệu chuyên dụng cho dữ liệu rollup Layer 1 và Layer 2. Điều này đã giảm đáng kể chi phí đăng tải các batch ZKP on-chain, khiến zk-rollups rẻ hơn đáng kể đối với người dùng cuối. Một số mạng zkEVM, bao gồm zkSync Era, Polygon zkEVM, Scroll và Taiko, hiện đang hoạt động trong môi trường sản xuất.

Các trường hợp sử dụng cho bằng chứng không kiến thức

Giao dịch riêng tư

ZKPs có thể che giấu địa chỉ người gửi, địa chỉ người nhận và số tiền giao dịch trên các blockchain công khai. Zcash đã tiên phong điều này bằng các giao dịch được che chắn (shielded transactions) sử dụng zk-SNARKs, cho phép người dùng giao dịch mà không lộ hoạt động tài chính của họ lên sổ cái công khai.

Xác minh danh tính số

ZKPs cho phép người dùng chứng minh rằng họ đáp ứng một yêu cầu, chẳng hạn như trên 18 tuổi hoặc có một chứng chỉ hợp lệ, mà không tiết lộ các tài liệu gốc. Điều này có ứng dụng trong các hệ thống danh tính phi tập trung, tuân thủ KYC và kiểm soát truy cập.

Quyền riêng tư trong DeFi

Các giao thức tài chính phi tập trung có thể sử dụng ZKPs để cho phép cho vay, vay mượn và giao dịch riêng tư. Người dùng có thể chứng minh họ có đủ tài sản thế chấp hoặc đáp ứng điều kiện cho vay mà không tiết lộ toàn bộ lịch sử ví hay số dư của họ.

Khả năng tương tác liên chuỗi

ZKPs có thể xác minh trạng thái của một blockchain sang blockchain khác mà không cần chạy một node đầy đủ. Điều này cho phép xây dựng các cầu nối liên chuỗi và các lớp tương tác kế thừa bảo mật mật mã thay vì dựa vào các bên trung gian được tin cậy.

Hạn chế của bằng chứng không kiến thức

ZKPs không phải là một giải pháp hoàn chỉnh cho mọi thách thức về quyền riêng tư và khả năng mở rộng. Việc tạo ra một ZKP đòi hỏi tính toán đáng kể, có thể đồng nghĩa với yêu cầu phần cứng cao hơn cho bên tạo bằng chứng (prover). Điều này đang được cải thiện khi phần mềm tạo chứng minh phát triển, nhưng vẫn là một cân nhắc đối với các mạng nhỏ hơn.

Yêu cầu thiết lập tin cậy (trusted setup) đối với zk-SNARKs tạo ra một giả định tin cậy mà một số nhà phát triển và người dùng mong muốn tránh. Và mặc dù ZKPs là xác suất trong các cam kết về tính đúng đắn (nghĩa là khả năng một bằng chứng sai vẫn vượt qua xác minh là cực kỳ nhỏ chứ không phải bằng 0), điều này nhìn chung được xem là chấp nhận được cho mục đích thực tiễn.

Cuối cùng, công nghệ ZKP vẫn đang trong giai đoạn trưởng thành. Kiểm toán các mạch (circuit) ZKP rất phức tạp và cần chuyên môn chuyên biệt. Một số lỗi nghiêm trọng đã được phát hiện trong các triển khai ZKP, nhấn mạnh tầm quan trọng của việc rà soát nghiêm ngặt trước khi triển khai chúng trong các hệ thống sản xuất.

Câu hỏi thường gặp

Bằng chứng không kiến thức là gì theo cách đơn giản?

Bằng chứng không kiến thức là một cách chứng minh rằng bạn biết một điều gì đó mà không tiết lộ nó là gì. Bên tạo chứng minh (prover) thuyết phục bên xác minh (verifier) rằng một mệnh đề là đúng, và bên xác minh không thu được gì khác ngoài việc khẳng định mệnh đề đó đúng.

Sự khác nhau giữa zk-SNARKs và zk-STARKs là gì?

zk-SNARKs tạo ra các bằng chứng nhỏ hơn và được xác minh nhanh hơn nhưng cần thiết lập tin cậy. zk-STARKs không cần thiết lập tin cậy và có khả năng kháng tấn công lượng tử tốt hơn, nhưng tạo ra bằng chứng lớn hơn. Cả hai đều được sử dụng trong các hệ thống blockchain vận hành thực tế.

Bằng chứng không kiến thức được dùng trong việc mở rộng Ethereum như thế nào?

zk-rollups sử dụng bằng chứng không kiến thức để gom nhiều giao dịch ra ngoài chuỗi (off-chain), sau đó gửi một bằng chứng duy nhất lên Ethereum để xác minh. Cách này tăng thông lượng và giảm phí giao dịch trong khi vẫn duy trì bảo mật của lớp nền Ethereum.

Bằng chứng không kiến thức có an toàn hoàn toàn không?

ZKPs cung cấp các cam kết mật mã rất mạnh, nhưng chúng không phải là tuyệt đối không thể sai. Bước thiết lập tin cậy trong zk-SNARKs đưa vào một giả định tin cậy. Đã có các lỗi triển khai trong các circuit ZKP được phát hiện ở một số dự án. Như với bất kỳ hệ thống mật mã nào, bảo mật phụ thuộc vào việc triển khai đúng đắn và quá trình rà soát liên tục.

Những suy nghĩ kết lại

Bằng chứng không kiến thức đã chuyển từ một khái niệm mang tính lý thuyết thành một thành phần nền tảng của hạ tầng blockchain hiện đại. Chúng giúp tăng tính riêng tư, cải thiện khả năng mở rộng và mở ra các ứng dụng mới trên DeFi, danh tính và khả năng tương tác.

Công nghệ tiếp tục phát triển nhanh chóng. Các mạng zkEVM hiện đã hoạt động trên Ethereum, chứng minh rằng chi phí đang giảm và các ứng dụng mới dựa trên ZKP đang được triển khai thường xuyên. ZKPs có khả năng sẽ đóng vai trò ngày càng trung tâm trong cách các blockchain xử lý quyền riêng tư và mở rộng trong những năm tới.

Tài liệu đọc thêm

  • Giải thích zk-SNARKs và zk-STARKs

  • Zk-Rollups là gì? Kỹ thuật mở rộng Lớp 2

  • Optimistic vs. Zero-Knowledge Rollups: Khác nhau ở điểm nào?

  • Giải pháp mở rộng Layer 1 vs. Layer 2 cho Blockchain

  • Cải thiện tính minh bạch của Crypto với bằng chứng không kiến thức


Miễn trừ trách nhiệm: Nội dung này chỉ được cung cấp cho bạn ở dạng "hiện có" nhằm mục đích thông tin chung và giáo dục, không có bất kỳ cam kết hoặc bảo đảm nào dưới mọi hình thức. Nội dung không nên được hiểu là lời khuyên tài chính, pháp lý hay tư vấn chuyên nghiệp khác, và cũng không nhằm mục đích khuyến nghị mua bất kỳ sản phẩm hoặc dịch vụ cụ thể nào. Bạn nên tìm kiếm ý kiến của các cố vấn chuyên môn phù hợp. Nếu nội dung được đóng góp bởi bên thứ ba, vui lòng lưu ý rằng các quan điểm được nêu thuộc về bên đóng góp thứ ba đó và không nhất thiết phản ánh quan điểm của Binance Academy. Giá tài sản kỹ thuật số có thể biến động. Giá trị khoản đầu tư của bạn có thể tăng hoặc giảm và bạn có thể không nhận lại được số tiền đã đầu tư. Bạn hoàn toàn chịu trách nhiệm cho các quyết định đầu tư của mình và Binance Academy không chịu trách nhiệm đối với bất kỳ khoản lỗ nào bạn có thể gặp phải. Để biết thêm thông tin, hãy xem Điều khoản sử dụng, Cảnh báo rủi ro và Điều khoản của Binance Academy.