Ở Việt Nam, một tài liệu chỉ trở nên đáng tin cậy khi nó mang dấu đỏ con dấu chính thức (con dấu). Con dấu không nói gì về nội dung bên trong – nó chỉ chứng nhận rằng một cơ quan có thẩm quyền đã kiểm tra chúng. Một bằng chứng không tiết lộ hoạt động theo cách tương tự, nhưng cho các sự thật thay vì các tài liệu: nó cho phép bạn chứng minh một tuyên bố là đúng mà không tiết lộ bằng chứng phía sau nó. Nếu bạn từng hỏi "zero knowledge proof là gì" và bỏ cuộc vì toán học, hướng dẫn này sẽ giải thích bằng ngôn ngữ đơn giản thông qua một ẩn dụ mà mọi độc giả Việt Nam đều đã biết.
Đây là phiên bản một câu: Một bằng chứng không tiết lộ (ZKP) là một phương pháp mã hóa cho phép một bên chứng minh cho bên khác rằng một tuyên bố là đúng – mà không tiết lộ bất kỳ thông tin nào về thông tin làm cho nó đúng.
Hãy xem nó như một "con dấu số" (digital official seal): người xác minh có thể kiểm tra tính xác thực của con dấu và chấp nhận yêu cầu, nhưng họ không bao giờ thấy các hồ sơ cơ sở mà con dấu được xây dựng từ.
Hình 1: Zero knowledge proof là con dấu số — người xác minh thấy con dấu, không bao giờ thấy bằng chứng
Tại sao con dấu chính thức là ẩn dụ hoàn hảo
Mọi cơ quan chính phủ, công ty và ngân hàng ở Việt Nam đều hoạt động dựa trên con dấu. Khi bạn trình bày một hợp đồng được chứng thực, bên đối diện không phải đọc lại từng trang trong hồ sơ của người chứng nhận. Họ kiểm tra con dấu – con dấu đỏ cho biết "một cơ quan có thẩm quyền đã xác minh điều này". Con dấu chứng minh tính hợp lệ của tài liệu mà không tiết lộ toàn bộ quá trình kiểm tra của cơ quan đó.
Một bằng chứng không tiết lộ là phiên bản mã hóa của con dấu đó, với một đặc tính bổ sung: nó không tiết lộ bất kỳ thông tin nào về những gì đã được xác minh. Một con dấu thông thường được đặt trên tài liệu, mà bên đối phương vẫn có thể đọc được. Một con dấu ZKP đứng một mình – nó chứng minh tuyên bố mà không bao giờ hiển thị bằng chứng cơ bản.
Ba lời hứa làm nên một con dấu đáng tin cậy, và chính ba lời hứa đó xác định một ZKP thực sự:
- Tính đầy đủ: nếu tuyên bố là đúng, một người chứng minh trung thực luôn có thể tạo ra một bằng chứng hợp lệ.
- Tính vững chắc: nếu tuyên bố là sai, kẻ nói dối không thể làm giả một bằng chứng vượt qua kiểm tra.
- Không tiết lộ thông tin: người xác minh biết rằng tuyên bố là đúng – và hoàn toàn không biết gì khác.
Hình 2: Ba lời hứa làm nên một bằng chứng đáng tin
Một ví dụ thực tế: chứng minh bạn biết mật khẩu mà không cần nói ra
Bằng chứng không tiết lộ đơn giản nhất là trò chơi "cửa an toàn", và rất dễ hình dung với một biến thể Việt Nam: hãy tưởng tượng một câu lạc bộ riêng, nơi thành viên được xác minh không phải bằng việc trình bày thẻ căn cước, mà bằng cách giải một câu đố ở cửa.
Giả sử bạn muốn chứng minh cho người gác cửa rằng bạn biết mật khẩu của một két sắt – mà không tiết lộ mật khẩu đó. Giao thức cổ điển hoạt động như sau:
- Cấu trúc: két sắt có hai cánh cửa, A và B. Cả hai đều dẫn đến cùng một phòng. Người gác cửa đứng bên ngoài; anh ta không thể nhìn thấy bạn dùng cửa nào.
- Bước đi đầu tiên của bạn: bạn vào từ cửa A và chờ bên trong.
- Thử thách: người gác cửa hét lên "hãy ra bằng cửa B".
- Phản hồi của bạn: bạn ra bằng cửa B – điều này chỉ có thể xảy ra nếu bạn thực sự biết mật khẩu đã mở khóa bên trong.
- Phán quyết: người gác cửa lúc này chắc chắn bạn biết mật khẩu, nhưng anh ta không học được gì cả về mật khẩu thực sự là gì.
Lặp lại trò chơi nhiều lần, cơ hội đoán đúng sẽ giảm xuống gần như bằng 0. Đây là bằng chứng tương tác – một cuộc trò chuyện trong đó người xác minh đưa ra thử thách và người chứng minh trả lời, mà không bao giờ truyền chính bí mật đó.
Hình 3: Trò chơi hai cánh cửa — chứng minh bạn biết bí mật mà không nói ra
Từ năm 1985 đến chiếc điện thoại của bạn: một lịch sử nhanh chóng
Bằng chứng không tiết lộ không phải là một xu hướng mới. Chúng được phát minh vào năm 1985 bởi các nhà khoa học máy tính Shafi Goldwasser, Silvio Micali và Charles Rackoff trong một bài báo có tầm ảnh hưởng mang tên "The knowledge complexity of interactive proof-systems," trình bày tại Hội thảo về Lý thuyết Tính toán của ACM. Câu hỏi cốt lõi của bài báo rất tinh tế: một người xác minh thực sự thu được bao nhiêu kiến thức từ một bằng chứng? Câu trả lời của họ – rằng một bằng chứng có thể truyền tải sự thật của một tuyên bố và không có gì khác – đã sáng lập ra cả một lĩnh vực.
Trong khoảng ba thập kỷ, ZKP chủ yếu là một điều thú vị về mặt lý thuyết. Phần toán học rất đẹp nhưng quá chậm để sử dụng thực tế. Sau đó, bắt đầu từ cuối những năm 2010, kỹ thuật đã bắt kịp:
- zk-SNARKs (zero-knowledge Succinct Non-interactive Arguments of Knowledge) làm cho các bằng chứng trở nên nhỏ, nhanh và không tương tác – chỉ một tin nhắn thay vì một cuộc trò chuyện.
- zk-STARKs loại bỏ nhu cầu thiết lập tin cậy và mở rộng hơn nữa, với cái giá là bằng chứng lớn hơn.
- Ngày nay, ZKP cung cấp năng lượng cho các blockchain riêng tư, xác minh danh tính, các hệ thống mở rộng quy mô gọi là zk-rollups, và nhiều ứng dụng khác.
Định lý năm 1985 từng có vẻ chỉ mang tính học thuật giờ đang chạy trong phần mềm sản xuất trên toàn thế giới.
Hình 4: Từ định lý năm 1985 đến chiếc điện thoại của bạn
Những nơi sử dụng bằng chứng không tiết lộ hiện nay
Bằng chứng không tiết lộ đã chuyển từ lý thuyết sang cơ sở hạ tầng hàng ngày. Ba lĩnh vực quan trọng nhất đối với người mới bắt đầu:
1. Thanh toán riêng tư trên các blockchain công khai
Các blockchain công khai được thiết kế để minh bạch – mọi người đều có thể xem mọi giao dịch. ZKP cho phép người dùng ẩn số tiền và chi tiết trong khi mạng vẫn xác minh rằng chuyển khoản là hợp lệ. Các loại tiền điện tử tập trung vào quyền riêng tư sử dụng phương pháp này hàng ngày.
2. Zero-Knowledge Roll-Ups (mở rộng quy mô)
Một zk-rollup xử lý hàng nghìn giao dịch ngoài chuỗi chính, gói chúng lại và gửi một bằng chứng nhỏ duy nhất cho thấy mọi thứ đã được thực hiện đúng cách. Chuỗi chính xác minh một bằng chứng thay vì hàng nghìn giao dịch – rẻ hơn và nhanh hơn đáng kể. Vào tháng 4 năm 2025, EY đã ra mắt Nightfall_4, một zero-knowledge roll-up cho phép thực hiện các giao dịch doanh nghiệp riêng tư trực tiếp trên blockchain Ethereum với tính hoàn tất gần như tức thì.
3. Xác minh danh tính bảo vệ quyền riêng tư
Đây là ứng dụng thú vị nhất đối với độc giả hàng ngày. Một ZKP có thể chứng minh "tôi trên 18 tuổi" mà không tiết lộ ngày sinh của bạn, hoặc chứng minh "tài khoản này thuộc về tôi" mà không tiết lộ mật khẩu đầy đủ. Đó là eKYC tôn trọng quyền riêng tư: xác minh sự thật, không phải dữ liệu thô của người đó.
Hình 5: Nơi zero knowledge proof đang hoạt động ngày nay
Tại sao điều này quan trọng đối với độc giả Việt Nam
Bối cảnh bảo vệ dữ liệu mới của Việt Nam khiến ZKP trở nên đặc biệt quan trọng. Nghị định 13/2023/NĐ-CP thắt chặt các quy định về cách thu thập và chia sẻ dữ liệu cá nhân. Câu hỏi mà mọi doanh nghiệp Việt Nam hiện đang phải đối mặt là: làm thế nào để xác minh một khách hàng mà không thu thập toàn bộ hồ sơ danh tính của họ?
Bằng chứng không tiết lộ trả lời câu hỏi này. Thay vì sao chép thẻ căn cước, một doanh nghiệp có thể yêu cầu một bằng chứng mã hóa rằng khách hàng đúng là người họ tự xưng – và chỉ nhận được một câu "có" hoặc "không". Thay vì lưu trữ một số điện thoại đầy đủ hoặc số dư tài khoản, một ứng dụng có thể chứng minh "người dùng này đáp ứng yêu cầu" mà không cần giá trị thô nào rời khỏi thiết bị của người dùng.
Đối với cá nhân, lợi ích là sự kiểm soát. Dữ liệu của bạn ở lại với bạn; bạn chỉ tiết lộ đúng sự thật cụ thể mà một dịch vụ thực sự cần. Đó là tương đương kỹ thuật số của con dấu: tin vào sự thật, không tin vào hồ sơ.
Hình 6: Tin vào sự thật, không tin vào hồ sơ — zero knowledge dưới Nghị định 13/2023
Những câu hỏi thường gặp về bằng chứng không tiết lộ
Zero knowledge proof là gì theo nghĩa đơn giản?
Đó là cách để chứng minh một tuyên bố là đúng mà không tiết lộ thông tin chứng minh điều đó. Hãy nghĩ về một con dấu chính thức: con dấu chứng minh rằng tài liệu đã được kiểm tra mà không hiển thị bản kiểm tra đó."Không tiết lộ" thực sự có nghĩa là gì?
Nó có nghĩa là người xác minh biết rằng tuyên bố là đúng – và không thu được bất kỳ thông tin bổ sung nào. Không phải bí mật, không phải một gợi ý nào về nó, cũng không phải bất kỳ dữ liệu nào có thể giúp tái tạo nó.Sự khác biệt giữa bằng chứng không tiết lộ và mã hóa là gì?
Mã hóa bảo vệ dữ liệu bằng cách xáo trộn nó; người có khóa có thể đọc được nó. Một ZKP không lưu trữ hoặc truyền dữ liệu cả – nó chỉ chứng minh một tuyên bố về dữ liệu đó. Mã hóa trả lời "làm thế nào để tôi ẩn điều này?" ZKP trả lời "làm thế nào để tôi chứng minh điều này mà không cần hiển thị nó?"Một tuyên bố sai có thể vượt qua bằng chứng không tiết lộ (zero knowledge proof) không?
Không – đây là thuộc tính tính vững chắc. Việc làm giả một bằng chứng hợp lệ cho một tuyên bố sai là không khả thi về mặt mã hóa. Xác suất một bằng chứng giả vượt qua nhỏ đến mức được coi là bằng 0.Bằng chứng không tiết lộ có được sử dụng trong các sản phẩm thực tế hiện nay không?
Có. Chúng cung cấp năng lượng cho các loại tiền điện tử tập trung vào quyền riêng tư, các zk-rollup để mở rộng blockchain (bao gồm Nightfall_4 của EY trên Ethereum) và các hệ thống xác minh danh tính.Việc chứng minh có mất nhiều thời gian không?
Các bằng chứng hiện đại rất nhanh. zk-SNARKs được xác minh trong vài mili giây trên các thiết bị thông thường, đó là lý do chúng thực tế trong các ứng dụng di động và blockchain có thông lượng cao.Hướng dẫn nhanh
| Thuộc tính | Giá trị |
|---|---|
| Nó là gì | Chứng minh một tuyên bố là đúng mà không tiết lộ bằng chứng |
| Tính đầy đủ | Tuyên bố đúng luôn tạo ra một bằng chứng hợp lệ |
| Tính vững chắc | Tuyên bố sai không thể làm giả thành bằng chứng hợp lệ |
| Không tiết lộ thông tin | Người xác minh biết sự thật của tuyên bố – không có gì khác |
| Phát minh | 1985 — Goldwasser, Micali, Rackoff (STOC) |
| Các dạng hiện đại | zk-SNARKs, zk-STARKs |
| Ứng dụng chính | Thanh toán riêng tư, zk-rollups, danh tính bảo vệ quyền riêng tư |
| Ví dụ thực tế | EY Nightfall_4 — ZK roll-up cho các giao dịch Ethereum riêng tư (2025) |
| Liên quan đến VN | Xác minh danh tính theo Nghị định 13/2023 mà không tiết lộ dữ liệu thô |
