Tiết lộ chọn lọc là câu trả lời kỹ thuật số cho một câu hỏi mà mọi công dân Việt Nam từng cảm thấy ở quầy giao dịch ngân hàng, cửa quán bar hoặc cửa tiếp nhận của cơ quan nhà nước: tại sao chứng minh một sự thật lại phải đưa ra tất cả? CCCD hoặc hộ chiếu của bạn chứa tên, ngày sinh, địa chỉ, số chứng minh nhân dân và ảnh – nhưng người bảo vệ chỉ cần biết bạn đã đủ 18 tuổi, còn nhân viên cho vay chỉ cần biết mức thu nhập của bạn. Tiết lộ chọn lọc cho phép bạn chứng minh chính xác điều cần thiết – không hơn không kém.
Nói gọn: tiết lộ chọn lọc là khả năng tiết lộ một tập hợp con cụ thể của các claim trong một chứng chỉ – hoặc một thuộc tính của chúng – trong khi phần còn lại vẫn được khóa bằng mật mã, và người xác minh vẫn có thể kiểm tra rằng toàn bộ chứng chỉ là thật.
Nếu bạn đang thắc mắc tiết lộ có chọn lọc zk thực sự nghĩa là gì, nó bảo vệ danh tính riêng tư zk của bạn như thế nào, hoặc tại sao các công ty công nghệ và chính phủ quốc gia đang chuẩn hóa nó ngay lúc này – bài viết này sẽ giải thích từng mảnh ghép, một trang một lần.
Hình 1: Bậc thang tiết lộ — quyền riêng tư leo từ tiết lộ toàn bộ đến tiết lộ chọn lọc vị từ/ZK
Vấn đề: Tài liệu vật lý là tất cả hoặc không
Đưa cho ai đó một thẻ ID vật lý nghĩa là trao cho họ mọi thứ ghi trên đó.
- Tiết lộ quá mức: hiển thị ngày sinh, địa chỉ và số CMND chỉ để chứng minh bạn đã đủ tuổi trưởng thành
- Rủi ro sao chép: một khi ảnh hoặc bản photocopy tồn tại, nó có thể bị lưu trữ, bán hoặc làm giả
- Mất kiểm soát: bạn không thể thu hồi những gì đã hiển thị
- Xác minh lại: mỗi dịch vụ lại thu thập cùng một dữ liệu (re-KYC), nhân rủi ro lộ dữ liệu
Đây là mô hình "sao chép và thu thập" mà mọi người Việt Nam đều biết khi mở tài khoản ngân hàng hoặc mua thẻ SIM. Tài liệu làm nhiệm vụ chứng minh, và tài liệu là tất cả hoặc không.
Tiết lộ chọn lọc là gì?
Tiết lộ chọn lọc (đôi khi viết là tiết lộ dữ liệu có chọn lọc) là một kỹ thuật mật mã cho phép người giữ (người sở hữu chứng chỉ) chỉ tiết lộ những claim mà bên xác minh thực sự cần, đồng thời vẫn chứng minh chứng chỉ là xác thực và không bị chỉnh sửa.
Hãy xem hộ chiếu số của bạn như một cuốn sách có nhiều trang:
- Trang 1: tên và ảnh
- Trang 2: ngày sinh
- Trang 3: địa chỉ
- Trang 4: số chứng minh nhân dân
- Trang 5: quốc tịch
Nếu không có tiết lộ chọn lọc, hiển thị bất kỳ một sự thật nào cũng đồng nghĩa với việc đưa ra cả cuốn sách. Với tiết lộ chọn lọc, bạn chỉ mở đúng trang bên xác minh yêu cầu – trang tuổi cho quán bar, trang quốc tịch cho ngân hàng – còn các trang khác vẫn đóng, không đọc được, và được ràng buộc mật mã với toàn bộ cuốn sách.
Điều kỳ diệu là bên xác minh không cần tin bạn để tự lật trang. Toán học đảm bảo trang bạn đưa ra thực sự thuộc về một chứng chỉ do bên phát hành ký – chứ không phải một bản photocopy bạn ghép lại.
Ba cấp độ kiểm soát tiết lộ
Để hiểu tiết lộ chọn lọc hoạt động thế nào, hãy hình dung nó như một bậc thang:
| Cấp độ | Điều gì xảy ra | Bên xác minh biết gì | Công nghệ ví dụ |
|---|---|---|---|
| 0 — Tiết lộ toàn bộ | Đưa ra toàn bộ chứng chỉ | Mọi thứ (tên, ngày sinh, địa chỉ, CMND) | KYC hiện tại, trình bày VC đơn giản |
| 1 — Tiết lộ chọn lọc cấp trường | Tiết lộ giá trị chính xác của một tập con đã chọn | Chỉ các trường đã chọn | SD-JWT (RFC 9901), mDL ISO/IEC 18013-5 |
| 2 — Vị từ / Tiết lộ chọn lọc ZK | Chứng minh một thuộc tính về một giá trị | Chỉ rằng thuộc tính đó đúng | BBS+ ZK, Semaphore, World ID, zk-creds |
Mức 1 trả lời câu "cho tôi biết tuổi của bạn." Mức 2 trả lời câu "bạn ít nhất 18 tuổi chứ?" – mà không bao giờ nói rõ tuổi thực là bao nhiêu. Chính câu hỏi thứ hai đó là nơi tiết lộ có chọn lọc zk (tiết lộ chọn lọc zero-knowledge) xuất hiện.
Hình 2: Cơ chế SD-JWT — băm có muối cho phép người giữ tiết lộ tập con đã chọn, phần còn lại vẫn niêm phong
Mức 1: SD-JWT – thủ thuật băm có muối
Dạng tiết lộ chọn lọc đơn giản và được triển khai rộng rãi nhất là SD-JWT (RFC 9901) – tiêu chuẩn đã được tích hợp vào Ví EUDI của EU và chứng chỉ xác minh được của W3C.
Đây là cách nó hoạt động, bằng ngôn ngữ đơn giản:
- Bên phát hành (ví dụ, chính phủ) tạo chứng chỉ và, với mỗi trường có thể tiết lộ sau này, tính một băm có muối:
digest = hash(muối + giá_trị_claim). - Bên phát hành ký một JWT chỉ chứa các digest – không chứa giá trị thực.
- Người giữ nhận JWT đã ký cùng toàn bộ claim gốc và muối của chúng.
- Khi một bên xác minh hỏi, chẳng hạn, ngày sinh, người giữ gửi: JWT đã ký, ngày sinh dạng rõ, và muối của trường đó.
- Bên xác minh tính lại
hash(muối + giá trị)và xác nhận nó khớp với digest bên trong JWT đã ký.
Vì bên phát hành đã ký digest, bên xác minh biết giá trị được tiết lộ là xác thực – bên phát hành đã cam kết với nó. Vì có muối ngẫu nhiên trộn vào, không ai có thể đoán các giá trị ẩn bằng cách brute-force băm. Và vì mỗi lần tiết lộ là một digest riêng biệt, người giữ có thể tiết lộ bất kỳ tập con nào mà không đụng đến các phần khác.
Gắn khóa tùy chọn (SD-JWT+KB): để ngăn người khác trình bày một SD-JWT bị đánh cắp, người giữ ký một JWT "gắn khóa" nhỏ lên một nonce + hash của SD-JWT. Bên xác minh kiểm tra nó với một khóa công khai bên trong chứng chỉ – bằng chứng về quyền sở hữu, chứ không chỉ là kiến thức.
Sự đánh đổi
SD-JWT rẻ, hoạt động tốt khi offline và đã được chuẩn hóa. Nhưng nó có hai giới hạn:
- Bên phát hành quyết định ranh giới: bên phát hành đánh dấu trước trường nào có thể tiết lộ chọn lọc. Bạn chỉ có thể ẩn những gì bên phát hành đánh dấu là ẩn được.
- Khả năng liên kết: nếu bạn trình cùng một SD-JWT cho quán bar hôm nay và ngân hàng ngày mai, người quan sát tinh ý có thể nhận ra đây là cùng một chứng chỉ – các lần trình không ẩn danh.
Đó chính là khoảng trống mà Mức 2 sinh ra để lấp đầy.
Mức 2: Tiết lộ chọn lọc ZK – chứng minh mà không tiết lộ
Tiết lộ chọn lọc zero-knowledge đi xa hơn một bước: thay vì tiết lộ giá trị của một trường đã chọn, bạn chứng minh một vị từ về nó – và không gì khác.
- Bằng chứng khoảng giá trị: "tuổi của tôi ≥ 18" (không tiết lộ tuổi)
- Bằng chứng thành viên tập hợp: "quốc tịch của tôi nằm trong danh sách cho phép" (không tiết lộ là quốc tịch nào)
- Bằng chứng không phải thành viên: "CMND của tôi không nằm trong danh sách đen"
Bộ máy đứng sau là họ chữ ký BBS+ và họ hàng của nó (CL, PS) – những "chữ ký tiết lộ chọn lọc": bên phát hành ký cả một tập thuộc tính bằng một chữ ký duy nhất, và người giữ có thể suy ra một bằng chứng ngẫu nhiên mới chứng nhận chỉ một tập con đã chọn – đồng thời chứng minh theo zero-knowledge rằng các thuộc tính ẩn cũng đã được ký.
Vì mỗi bằng chứng trình bày là mới và ngẫu nhiên, hai lần trình cùng một chứng chỉ là không thể liên kết – quán bar không thể nối chuyến ghé thăm của bạn với lần kiểm tra ở ngân hàng, và cả hai đều không thể truy lại ngày sinh hay tên của bạn.
Cách chứng minh "trên 18 tuổi" mà không cần ngày sinh
Hãy đi qua chính xác luồng mà một công dân Việt Nam sẽ trải nghiệm với VNeID hoặc một ví kiểu World ID:
- Quán bar yêu cầu: "Chứng minh bạn ≥ 18"
- Ví đọc chứng chỉ (riêng tư: ngày_sinh = 2005-03-14)
- Mạch ZK tính: ngày_hiện - ngày_sinh ≥ 18 tuổi → ĐÚNG
- Ví tạo một bằng chứng zero-knowledge cho vị từ đó
(bằng chứng gắn với chữ ký bên phát hành, giấu ngày sinh)
- Quán bar xác minh bằng chứng trong vài mili-giây
→ biết: "đủ 18 = ĐÚNG" (không bao giờ biết ngày sinh)
Bên xác minh nhận một bằng chứng gọn – không phải ngày sinh, không phải tên, không phải liên kết với bất kỳ lần trình nào khác. Đây chính là bản chất của danh tính riêng tư zk: một danh tính có thể tự xác thực đúng đến mức độ cần thiết, không thừa một bit nào.
Mô hình tinh thần "Hai chữ ký"
Một chứng chỉ chỉ hữu ích bằng hai lớp mật mã:
- Chữ ký bên phát hành – đảm bảo tính xác thực ("tài liệu này thực sự từ chính phủ").
- Bằng chứng người giữ – kiểm soát quyền riêng tư ("tôi chỉ trình những gì bên xác minh này cần").
Tiết lộ chọn lọc không bao giờ làm yếu lớp 1. Nó thay đổi cách lớp 2 được xây dựng: thay vì phát lại chữ ký của bên phát hành, người giữ suy ra một bằng chứng mới trên tập con đã chọn. Bên xác minh vẫn kiểm tra tính xác thực với độ tin cậy tuyệt đối trong khi biết ít hơn về người giữ. Bảo mật và quyền riêng tư đi cùng một hướng – một sự kết hợp hiếm có và mạnh mẽ.
Hình 3: Tiết lộ chọn lọc ZK — ngày sinh không bao giờ rời khỏi ví, và các bằng chứng không thể liên kết
Ai đang xây dựng điều này hôm nay
Tiết lộ chọn lọc không còn là lý thuyết. Ba làn sóng đang hội tụ:
1. Tiêu chuẩn toàn cầu
- IETF RFC 9901 (SD-JWT) – nền tảng cho tiết lộ chọn lọc trong JWT
- W3C VC 2.0 – các bộ mật mã
ecdsa-sd-2023vàbbs-2023cho tiết lộ tập con; mô-đun hóa mật mã để hỗ trợ ZKP - mDL ISO/IEC 18013-5 – giấy phép lái xe di động, dùng các cam kết che giấu
2. Hạ tầng quyền riêng tư cho người tiêu dùng
- World ID – "một thẻ ID chỉ chứng minh người giữ đủ 18+, không tiết lộ tên hay ngày sinh"; thành viên ẩn danh dựa trên Semaphore
- Microsoft Crescent – thêm tiết lộ chọn lọc + khả năng không liên kết cho JWT và mDL hiện có bằng ZKP, không cần bên phát hành mới
- zk-creds (UMD) – chứng chỉ dựa trên zkSNARK trên cây Merkle; chứng minh "trên 18" với không rò rỉ danh tính nào
3. Chương trình định danh số quốc gia
- EU (eIDAS 2 / Ví EUDI) – tiết lộ chọn lọc được bắt buộc trên 27 quốc gia thành viên
- Việt Nam – VNeID (70M+ người dùng) cấp eID cấp 2 và chứng chỉ xác minh được; NDAKey đề xuất VC + tiết lộ chọn lọc + ZKP cho 100M+ công dân; Nghị định 69/2024/NĐ-CP tạo nền tảng pháp lý
Tiết lộ chọn lọc ở Việt Nam: ý nghĩa với bạn
Việt Nam đi trước hầu hết các quốc gia về hạ tầng – nhưng tiết lộ chọn lọc là lớp quyền riêng tư còn thiếu.
- VNeID đã cấp cho mỗi công dân một eID cấp 2 với các giấy tờ tích hợp (CCCD, giấy phép lái xe, bảo hiểm xã hội).
- Nghị định 69/2024/NĐ-CP làm thẻ căn cước điện tử có giá trị pháp lý tương đương CCCD vật lý.
- ND 13/2023 (từ bài 23 trong loạt bài này) đặt nguyên tắc giảm thiểu dữ liệu – chỉ thu thập những gì cần thiết.
Tiết lộ chọn lọc biến nguyên tắc pháp lý đó thành một bảo đảm toán học:
| Tình huống hiện nay | Với tiết lộ chọn lọc |
|---|---|
| Chứng minh tuổi ở quán bar → đưa cả CCCD | Chứng minh tuổi ≥ 18 → quán bar không bao giờ thấy ngày sinh |
| Thuê xe máy → photocopy CMND của bạn | Chỉ hiển thị tên + trạng thái tài xế, từng trang |
| Mở tài khoản ngân hàng → KYC đầy đủ mỗi lần | Tái sử dụng một chứng chỉ, chỉ chia sẻ claim cần thiết |
| Đăng nhập app xã hội → chia sẻ số điện thoại, email, vị trí | Chứng minh "Tôi là người, 18+, không bị cấm" – không gì khác |
Phép loại suy "sổ đỏ" từ phần trước trong loạt bài này lại đúng: bạn không đưa toàn bộ giấy chứng nhận quyền sử dụng đất để chứng minh đất thuộc về mình – bạn chứng minh quyền sở hữu của riêng thửa đất đó. Tiết lộ chọn lọc là cùng một bản năng, được áp dụng cho tất cả tài liệu số của bạn cùng lúc.
Hình 4: Lộ trình triển khai tại Việt Nam — hạ tầng, tiêu chuẩn và pháp lý sẵn sàng cho lớp quyền riêng tư
Những đánh đổi trung thực
Tiết lộ chọn lọc rất mạnh, nhưng không miễn phí:
Điều bạn được lợi
- Tiết lộ tối thiểu: chứng minh chính xác điều cần thiết, không hơn
- Giảm thiểu dữ liệu ngay từ thiết kế: không còn "thu thập hết, hỏi sau"
- Danh tính không thể liên kết (cấp ZK): bên xác minh không thể theo dõi bạn qua các dịch vụ
- Kháng gian lận: chứng chỉ giả hoặc bị sửa sẽ trượt kiểm tra toán học
- Bề mặt lộ dữ liệu nhỏ hơn: dịch vụ ngừng tích trữ dữ liệu chúng không cần
Điều bạn phải đánh đổi
- Chi phí phía bên xác minh: dịch vụ phải triển khai quy trình xác minh mới
- Thiết kế phía bên phát hành: SD-JWT yêu cầu bên phát hành định nghĩa trước ranh giới tiết lộ
- Chi phí tính toán: bằng chứng ZK nặng hơn kiểm tra chữ ký thông thường (thời gian chứng minh > thời gian xác minh)
- Phức tạp cho người dùng: ví phải giúp người dùng hiểu họ đang đồng ý điều gì
- Tin tưởng bên phát hành: bạn vẫn tin bên phát hành ký các claim đúng – tiết lộ chọn lọc không sửa được bên phát hành nói dối
Những câu hỏi thường gặp về tiết lộ chọn lọc
"Tiết lộ chọn lọc" theo nghĩa đơn giản là gì?
Đó là khả năng chỉ tiết lộ một phần thông tin của bạn khi chứng minh điều gì đó. Giống như chỉ đưa trang "tuổi" của hộ chiếu thay vì nộp cả cuốn sách – trong khi bên xác minh vẫn tin được rằng trang đó là xác thực."Tiết lộ có chọn lọc zk" khác gì với chỉ ẩn dữ liệu trong một file PDF?
File PDF có thể bị sửa hoặc làm giả; người đọc phải tin bạn. Tiết lộ chọn lọc ZK là mật mã: bằng chứng gắn với chữ ký của bên phát hành, nên bên xác minh biết sự thật được tiết lộ là xác thực và không có gì khác bị can thiệp – mà không cần thấy dữ liệu ẩn.Tiết lộ chọn lọc có nghĩa là chứng chỉ xác minh được là ẩn danh?
Không tự động. Tiết lộ các trường đã chọn (Mức 1, SD-JWT) vẫn cho bên xác minh liên kết các lần trình. Ẩn danh thực sự cần Mức 2 (ZK), nơi các bằng chứng ngẫu nhiên mới khiến mỗi lần trình không thể liên kết. Một chứng chỉ chỉ riêng tư đến mức lớp bằng chứng phía trên nó.VNeID của Việt Nam có thể hỗ trợ tiết lộ chọn lọc ngay hôm nay không?
VNeID đã cấp chứng chỉ xác minh được và vận hành với 70M+ người dùng. Tiết lộ chọn lọc là một nâng cấp phần mềm ở phía ví và phía bên xác minh – định dạng chứng chỉ (W3C VC, SD-JWT) đã hỗ trợ sẵn. Các ví kiểu NDAKey cho thấy bản thiết kế nội địa để thêm lớp ZK.Tại sao "danh tính riêng tư zk" lại quan trọng với người dùng hàng ngày?
Vì nếu không, mỗi dịch vụ bạn chạm tới – quán bar, ngân hàng, thuê nhà, app – đều thu thập một bản sao đầy đủ danh tính của bạn và trở thành mục tiêu bị xâm nhập. Một danh tính riêng tư zk nghĩa là dịch vụ có thể xác minh bạn mà không bao giờ nắm giữ dữ liệu nhạy cảm của bạn.Tiết lộ chọn lọc có được công nhận về mặt pháp lý không?
Có. Quy định eIDAS 2 của EU bắt buộc dùng nó cho Ví EUDI; W3C chuẩn hóa các bộ mật mã; nguyên tắc giảm thiểu dữ liệu trong ND 13/2023 của Việt Nam và Nghị định 69/2024/NĐ-CP tạo móc pháp lý cho hành vi tương tự ở Việt Nam.Kết luận
Tiết lộ chọn lọc trả lời câu hỏi lâu đời nhất về danh tính: làm sao tôi chứng minh tôi đúng là tôi – mà không phô ra cho cả thế giới biết tôi là ai?
Câu trả lời vật lý là "đưa ra tất cả." Câu trả lời số là tiết lộ có chọn lọc zk: mở đúng trang bên xác minh cần, chứng minh trang đó là thật, và giữ kín phần còn lại của cuốn sách – suốt đời.
VNeID của Việt Nam có hạ tầng định danh. Các tiêu chuẩn (SD-JWT, W3C, ZK) đã sẵn sàng. Nền tảng pháp lý (ND 13, Nghị định 69/2024) đã được thiết lập. Điều còn lại là triển khai lớp quyền riêng tư – và mỗi công dân lấy lại quyền kiểm soát danh tính riêng tư zk của mình chính là lý do vì sao điều đó phải xảy ra ngay bây giờ.
Hộ chiếu của bạn là một cuốn sách. Bạn không cần nộp cả cuốn để chứng minh một trang.
Tham khảo nhanh
| Thuộc tính | Tiết lộ chọn lọc |
|---|---|
| Định nghĩa | Tiết lộ một tập con chính xác các claim của chứng chỉ – hoặc một thuộc tính của chúng – kèm bằng chứng xác thực |
| Mức 0 | Tiết lộ toàn bộ (KYC hiện tại) |
| Mức 1 | Tiết lộ cấp trường — SD-JWT (RFC 9901), mDL ISO/IEC 18013-5 |
| Mức 2 | Tiết lộ vị từ/ZK — BBS+/CL/PS, Semaphore, World ID, zk-creds |
| Thủ thuật cốt lõi (SD-JWT) | Băm có muối: ký các digest, tiết lộ giá trị đã chọn + muối |
| Thủ thuật cốt lõi (ZK) | Bằng chứng ngẫu nhiên mới trên tập con đã chọn — không thể liên kết |
| Vị từ ví dụ | now - birth ≥ 18 years, nationality ∈ allowed, id ∉ blacklist |
| Bên xác minh biết | Chỉ các claim đã tiết lộ / chỉ vị từ đã chứng minh |
| Tiêu chuẩn | RFC 9901, W3C VC 2.0 (ecdsa-sd-2023, bbs-2023), ISO/IEC 18013-5 |
| Bối cảnh Việt Nam | VNeID 70M+, NDAKey, Nghị định 69/2024/NĐ-CP, ND 13/2023 giảm thiểu dữ liệu |
| Rủi ro chính | Tin cậy bên phát hành, chi phí tích hợp phía bên xác minh, chi phí tính toán ZK |
