Sáng bầu cử, Minh — kỹ sư dữ liệu 26 tuổi tại Hà Nội — xếp hàng tại điểm bỏ phiếu, nghe một người lạ hỏi gia đình anh có tin chiếc máy đếm phiếu hay không. Ông của anh trả lời trước: "Cái máy làm theo điều lập trình viên bảo nó làm. Làm sao mình biết lập trình viên đã bảo gì?" Đó là câu hỏi lâu đời nhất của bỏ phiếu điện tử, được hỏi cách tòa nhà Quốc hội vài dãy phố — nơi các nhà lập pháp đã bắt đầu thử nghiệm công cụ bầu cử số. Bầu cử điện tử zk — bỏ phiếu điện tử được bảo vệ bằng zero-knowledge proof — đưa ra câu trả lời không phụ thuộc vào niềm tin: chiếc máy có thể chứng minh kết quả kiểm phiếu đúng mà không tiết lộ một lá phiếu nào. Bài viết này giải thích cách bỏ phiếu zero knowledge đưa bỏ phiếu điện tử từ "hãy tin phần mềm của chúng tôi" sang "hãy kiểm tra phép toán của chúng tôi", các chính phủ thật đã thử gì, và hạ tầng định danh số của Việt Nam có thể làm gì.
Vì sao bỏ phiếu điện tử vẫn còn vấn đề về niềm tin
Ba triển khai thực tế cho thấy rõ quy luật. Estonia đã chạy bỏ phiếu internet từ 2005 — thử nghiệm liên tục lâu nhất thế giới — với cử tri xác thực bằng thẻ căn cước quốc gia, mã hóa phiếu bầu, và tự do bỏ phiếu lại; chỉ phiếu cuối cùng được tính. Nhưng các cuộc kiểm toán học thuật (Springall et al., CCS 2014) phát hiện hệ thống không xác minh được đầu-cuối (end-to-end): thiết bị của cử tri bị xâm phạm có thể phá vỡ cam kết "phiếu bầu như đã định", và tại bầu cử Nghị viện châu Âu 2024, lá phiếu lỗi đầu tiên sống sót đến tận bước giải mã — bằng chứng rằng chưa ai có thể kiểm tra nội dung phiếu bầu. Trong khi đó, cử tri Brazil bỏ phiếu trên máy kín, ngoại tuyến, không có hồ sơ giấy cá nhân. Máy chưa từng được chứng minh làm mất cuộc bầu cử nào, nhưng theo lời các nhà nghiên cứu, hệ thống là hộp đen với kiểm toán hậu bầu cử "gần như bất khả thi" — lộ ra tàn nhẫn năm 2022 khi cáo buộc gian lận chỉ được trả lời bằng uy quyền, không phải số học.
Thụy Sĩ đi theo hướng ngược lại. Từ 2019, quy định liên bang đơn giản cấm các hệ thống không xác minh được: chỉ bỏ phiếu điện tử xác minh toàn phần mới hợp pháp, mã nguồn được công bố, chương trình bug bounty vĩnh viễn chạy từ 2021, và các cuộc tấn công xâm nhập công khai định kỳ (2023, 2024, 2025) kết thúc mà không có phát hiện lỗi nào được xác nhận. Điều phân biệt Bern với Tallinn và Brasília không phải trí tuệ mà là yêu cầu pháp lý về bằng chứng. Bài học cho Việt Nam: công nghệ quan trọng ít hơn mức sàn xác minh mà nhà quản lý đặt ra.
Các nhà khoa học máy tính đã đặt tên cho khác biệt này. Một hệ thống độc lập với phần mềm (software-independent) khi một lỗi hoặc thay đổi không bị phát hiện trong phần mềm không thể gây ra thay đổi hoặc sai sót không thể phát hiện trong kết quả. Phiếu giấy là độc lập với phần mềm; các hệ thống mã hóa xác minh đầu-cuối cũng vậy, bởi mọi sai sót đều để lại dấu vết công khai. Máy ghi phiếu trực tiếp không giấy thì không — một lỗi phần mềm có thể làm thay đổi kết quả mà không ai thấy, đúng là phương thức lỗi mà các giám sát viên Việt Nam lo sợ. Hệ quả khó chịu: "máy hoạt động tốt" không phải tuyên bố kiểm chứng được, trừ khi chiếc máy tạo ra bằng chứng ai cũng kiểm tra được.
Hình 1: Khoảng trống tin cậy bỏ phiếu điện tử qua ba con đường quốc gia — Estonia, Brazil và Thụy Sĩ
Cử tri thực sự cần gì: tam giác yêu cầu
Các nhà mật mã rút gọn danh sách mong muốn thành bốn thuộc tính. Bí mật phiếu bầu: không ai có thể gắn cử tri với lựa chọn. Xác minh cá nhân: cử tri tự kiểm tra phiếu của mình được ghi nhận đúng. Xác minh phổ quát: bất kỳ người quan sát nào cũng kiểm tra được kết quả khớp với các phiếu đã ghi. Đủ điều kiện: chỉ cử tri đã đăng ký được bỏ phiếu, mỗi người một phiếu.
Mọi hệ thống thông thường đều phải đánh đổi một thuộc tính. Estonia từ bỏ xác minh phổ quát (bạn phải tin bản kiểm toán máy chủ). Brazil từ bỏ xác minh cá nhân (sau buồng bỏ phiếu không còn gì để kiểm tra). Phiếu giấy từ bỏ khả năng xác minh từ xa — và không từ bỏ gì khác, đây là lý do Việt Nam vẫn dùng phiếu giấy. Phản ứng ngây thơ — "cứ mã hóa mọi thứ" — cũng thất bại: phiếu mã hóa vẫn có thể bị đếm sai hoặc bị ép tiết lộ bản rõ. Mã hóa cũng không ngăn kẻ tấn công thay thế bản mã trông hợp lệ này bằng bản mã khác, một lớp tấn công gọi là malleability của phiếu bầu mà dự án Helios phải mất nhiều năm mới vá xong. Khoảng trống niềm tin không được giải quyết bằng bí mật; nó được giải quyết bằng bằng chứng về kết quả kiểm phiếu mà không tiết lộ gì khác.
ZK proof phá vỡ tam giác như thế nào
Zero-knowledge proof cho phép một bên khẳng định "tuyên bố này đúng" và tạo ra chứng chỉ nhỏ mà bất kỳ verifier nào cũng kiểm tra được trong vài mili-giây, mà không biết vì sao nó đúng. Trong bầu cử, khẳng định đó chính là toàn bộ vấn đề niềm tin. Bốn thành quả theo sau.
(a) Đủ điều kiện mà không tiết lộ danh tính
Hệ thống hiện đại bắt đầu bằng một Merkle census: một root 32 byte cam kết toàn bộ danh sách cử tri hợp lệ. Cử tri chứng minh, theo cách zero knowledge, "khóa của tôi là một leaf trong cây này" — và chỉ tiết lộ một nullifier, chuỗi một chiều sinh từ khóa của họ và ID cuộc bầu. Nullifier được kiểm tra một lần rồi bị đốt. Người vận hành cuộc bầu biết một công dân hợp lệ đã bỏ phiếu; không bao giờ biết công dân nào. Đây chính là mẫu selective-disclosure trong các sản phẩm định danh ZK, khớp gọn với hạ tầng định danh số quốc gia.
(b) Bí mật phiếu bầu với kết quả kiểm phiếu chứng minh được
Phần khó nhất là kiểm phiếu. Trong hệ thống đồng cấu (homomorphic), các phiếu mã hóa nhân với nhau thành một tổng mã hóa duy nhất; kết quả được giải mã — một lần — bởi ngưỡng viên chức bầu cử, mỗi người phải công bố zero-knowledge proof rằng phép giải mã đúng. Lựa chọn của cử tri không bao giờ rời khỏi bản mã, thế mà tổng số buộc phải là tổng thật của các phiếu hợp lệ. Các nhà mật mã thậm chí đã chứng minh phiên bản kiến tạo: với zero-knowledge tallying proof, bí mật và xác minh có thể được thỏa mãn đồng thời (Smyth, 2015) — tam giác bị phá vỡ bằng toán học, không phải bằng quy trình.
Hai chi tiết kỹ thuật làm điều này thực tế thay vì lý thuyết. Thứ nhất, ballot-validity proof: bên cạnh mỗi lựa chọn mã hóa, thiết bị của cử tri phải chứng minh bản mã chứa đúng một ứng cử viên trong danh sách chính thức — không bao giờ trống, không bao giờ hai dấu. Đây là thứ hệ thống IVXV của Estonia còn thiếu hôm nay và là thứ một nghiên cứu 2025 đề xuất bổ sung bằng Bulletproofs gọn nhẹ. Thứ hai, tally-hiding: kiểm phiếu đồng cấu tiết lộ toàn bộ phân phối phiếu, tạo điều kiện cho "Italian attack" — kẻ ép buộc chế lá phiếu dấu hiệu hiếm và đọc nó trong kết quả công bố. Biện pháp phòng thủ là chỉ công bố người thắng, kèm zero-knowledge proof rằng họ là người thắng đúng, đúng như hệ thống tân tiến Kryvos làm.
(c) Kháng ép buộc và chống hối lộ — với trần trung thực
Yêu cầu thứ ba là không thể tạo receipt: cử tri không được có khả năng chứng minh mình đã bỏ phiếu thế nào, nếu không kẻ hối lộ có thể đòi bằng chứng đó. Câu trả lời của Estonia là bỏ phiếu lại: kẻ ép buộc không thể biết phiếu cuối cùng đã thắng. Các họ mạnh hơn tồn tại — hệ thống fake credential như JCJ/Civitas và lược đồ trapdoor tracker như Selene — nhưng mọi họ đều có giới hạn mà chính nhà nghiên cứu công bố: không lược đồ nào chống được camera sau lưng hoặc điện thoại bị xâm phạm, và bỏ phiếu lại giả định kẻ ép buộc ngừng gửi phiếu. Tuyên bố trung thực không phải "ép buộc là bất khả" mà là "hối lộ trở nên khó xác minh về mặt toán học" — đúng thứ một điểm bỏ phiếu ZK có giám sát đạt được.
(d) Xác minh đầu-cuối cho cử tri và kiểm toán viên
Ghép các mảnh lại, mọi mắt xích trở nên kiểm tra được. Phiếu bầu như đã định: thiết bị của cử tri phát phiếu mã hóa có thử thách, hoặc mã phản hồi (kiểu Thụy Sĩ). Ghi nhận như đã bỏ phiếu: phiếu nằm trên bảng công khai chỉ-được-thêm với tracker riêng của từng cử tri. Kiểm phiếu như đã ghi: ZK tally proof cộng verifier mã nguồn mở — cùng phần mềm ủy ban bầu cử dùng — cho phép bất kỳ ai kiểm đếm lại trong vài giây. Ý nghĩa của recount thay đổi: recount không còn là "chạy lại hộp đen" mà là "chạy lại verifier công khai".
Hình 2: Luồng bầu cử ZK — đủ điều kiện, ẩn ballot, recount công khai
Từ nghiên cứu đến lá phiếu: zk voting đã làm được gì thực tế
Công nghệ đã qua khỏi bảng vẽ. Helios, hệ thống đồng cấu mã nguồn mở dùng cho các cuộc bầu cử hiệp hội học thuật thật từ 2009, mã hóa mọi phiếu bầu kèm zero-knowledge proof về tính hợp lệ và công bố kết quả kèm bằng chứng; họ vá lỗi Helios'16 đóng các tấn công malleability. Scantegrity II chạy cuộc bầu cử chính phủ ràng buộc duy nhất có xác minh đầu-cuối thật (Takoma Park, Maryland) bằng cách in mã xác nhận trên phiếu giấy. Vocdoni / DAVINCI, giao thức bỏ phiếu công khai xây trên blockchain mang bằng chứng, chuỗi circuit cử tri, tổng hợp và kiểm phiếu sao cho không proof, không cập nhật trạng thái — mạng đơn giản từ chối ghi nhận kết quả không bị toán học ép buộc. Ở rìa nghiên cứu, các nghiên cứu khả thi cho thấy Groth16 ZK-SNARK thực dụng cho ballot validity ở quy mô quốc gia, và một nghiên cứu 2025 đề xuất thêm Bulletproofs range proof vào IVXV của Estonia để đóng đúng khoảng trống phiếu lỗi.
Một cách hữu ích để đọc bức tranh này là theo mô hình mối đe dọa. Hệ thống kiểu Helios giả định môi trường hợp tác, ép buộc thấp — tốt cho hội sinh viên, sai cho nghị viện quốc gia. Hệ thống giấy-cộng-mã-hóa kiểu Scantegrity chống lỗi máy móc và phần mềm bằng cách giữ giấy làm chân lý. Blockchain kiểu Vocdoni chống một nhà vận hành bị hỏng bằng cách biến proof thành điều kiện để sổ cái chấp nhận bất cứ điều gì. Nhà thiết kế Việt Nam không phải chọn một mô hình trước; tam giác yêu cầu ở phần trước chính là công cụ để quyết định mô hình nào hợp với cuộc bầu nào.
Các bất đồng cũng trung thực không kém. Nhà nghiên cứu an ninh máy tính (Appel, 2026; Rivest et al., 2015) lập luận rằng không hình thức bỏ phiếu internet nào an toàn cho bầu cử chính trị ràng buộc, bởi thiết bị bỏ phiếu nhiễm phần mềm độc hại phá vỡ "phiếu như đã định" và không có giao thức giải quyết tranh chấp nào tồn tại. Blockchain voting, họ nói thêm, tệ hẳn hơn bỏ phiếu internet. Phía bảo vệ — Swiss Post, Vocdoni — công bố mô hình mối đe dọa và thừa nhận cùng điểm yếu: thiết bị của cử tri là dặm cuối mà mật mã không thể bảo vệ. Đây là lý do các thiết kế thực dụng dưới đây không phải "bỏ phiếu từ điện thoại"; chúng là buồng bỏ phiếu có giám sát với phiếu giấy dự phòng và mã phản hồi.
Việt Nam có thể xây dựng điều gì
Việt Nam đang bước trên con đường này. Hiến pháp và Luật Bầu cử ĐBQH và HĐND đảm bảo bầu cử phổ thông, bình đẳng, trực tiếp và bí mật — bỏ phiếu kín là nguyên tắc hiến định, không phải chi tiết kỹ thuật. Nghị định 13/2023/NĐ-CP đưa bảo vệ dữ liệu cá nhân thành luật, xếp quan điểm chính trị và dữ liệu sinh trắc vào danh mục nhạy cảm phải có sự đồng ý và tối thiểu hóa nghiêm ngặt. VNeID, ứng dụng định danh số quốc gia, được đưa vào phục vụ chu kỳ bầu cử Quốc hội 2026 — rõ ràng để tra cứu nơi bỏ phiếu, xem danh sách ứng cử viên, đăng ký thay đổi nơi bỏ phiếu, không phải để bỏ phiếu trực tuyến. Thông tư 21/2025/TT-BNV thúc đẩy chuyển đổi số trong nghiệp vụ bầu cử trong khi nhấn mạnh an toàn dữ liệu và thử nghiệm. Đọc chung, ba văn bản này mô tả nhà nước muốn có công cụ bầu cử số nhưng không có hành lang pháp lý cho lá phiếu để lại dấu vết nhận dạng. Đó chính là khoảng trống ZK lấp đầy: kiến trúc giữ danh tính và lựa chọn ở hai ngăn tách biệt để lựa chọn không bao giờ bị "xử lý" theo nghĩa Nghị định 13 điều chỉnh.
Học thuật pháp lý Việt Nam về bỏ phiếu trực tuyến (Tạp chí Dân chủ và Pháp luật, Bộ Tư pháp) đã liệt kê các phản đối kinh điển: gian lận trên thiết bị không kiểm soát, bất bình đẳng tiếp cận giữa thành thị và nông thôn, giữa các thế hệ, và — ngoan cố nhất — vấn đề minh bạch rằng cử tri không thấy máy làm gì với lá phiếu. Đáng chú ý, mọi phản đối này đều nói về thiếu bằng chứng, không phải sự hiện diện của máy tính. Ki-ốt có giám sát trả lời nỗi lo gian lận bằng phiếu giấy dự phòng, nỗi lo tiếp cận bằng vị trí vật lý, và nỗi lo minh bạch bằng kết quả công bố, xác minh được. Văn bản pháp lý chưa lường trước thiết kế trong đó máy buộc phải chứng minh việc mình làm; đó chính là thứ ZK mang lại.
Một thí điểm Việt Nam theo giai đoạn có thể như sau. Giai đoạn một — ki-ốt ZK có giám sát: cử tri xác thực VNeID mức độ 2, ki-ốt chứng minh thành viên census bằng nullifier, phiếu được mã hóa trước mặt cử tri với mã phản hồi in ra để đối chiếu; phiếu giấy vẫn thắng cuộc theo mặc định. Giai đoạn hai — kiểm phiếu lai: phiếu ki-ốt mã hóa được kiểm đồng cấu và đối chiếu chéo với số đếm giấy. Giai đoạn ba — verifier công khai: sau bầu cử, tệp proof và verifier mã nguồn mở được công bố để công dân, báo chí và kỹ sư xã hội dân sự kiểm đếm độc lập — không cần chính quyền. Mỗi giai đoạn chạy như thí điểm có kiểm soát theo tinh thần Thông tư 21, và mỗi thí điểm công bố kết quả, proof và báo cáo thất bại của chính mình.
Lý do để đầu tư không phải sự mới lạ; đó là trình diễn recountability. Nỗi nghi ngờ sâu nhất của cử tri Việt Nam không phải "phiếu của tôi có được đếm không" mà là "có ai có thể kiểm tra số đếm mà không cần tin tôi không?" Ki-ốt ZK có giám sát trả lời cả hai: máy không bao giờ biết lựa chọn, và kết quả đi kèm chứng chỉ mà ai cũng xác minh được.
Hình 3: Bầu cử điện tử cũ vs bầu cử ZK — kiểm tra chuyển từ tin tưởng sang xác minh
Câu hỏi thường gặp
ZK e-voting có giống blockchain voting không?
Không. Blockchain chỉ hữu ích như bảng công khai chống giả mạo và verifier proof. Việc bỏ phiếu được làm bằng phiếu mật mã và ZK proof; chuỗi ghi nhận nullifier và hash proof. Rivest và các đồng nghiệp lập luận thuyết phục rằng "blockchain voting" không có ZK còn tệ hơn bỏ phiếu internet thường — nên ZK proof mới là trọng tâm.ZK ballot có chứng minh tôi đã bỏ phiếu cho ai không?
Nó chứng minh điều ngược lại: proof xác nhận phiếu hợp lệ (một ứng cử viên) trong khi không tiết lộ gì về lựa chọn. Verifier kiểm tra tính hợp lệ, không kiểm tra nội dung. Sự phân biệt đó là toàn bộ nền tảng của bí mật phiếu bầu.Chính phủ có biết tôi bỏ phiếu thế nào không?
Chỉ khi một ngưỡng viên chức cấu kết giải mã trong lúc kiểm phiếu — và ngay cả khi đó, các proof giải mã công bố cho phép kiểm toán viên tính lại kết quả. Một viên chức đơn lẻ, chiếc máy và phần mềm kiểm phiếu không bao giờ gắn phiếu với cử tri, bởi phiếu không mang danh tính.Điều này phù hợp với pháp luật Việt Nam thế nào?
Nghị định 13/2023 yêu cầu tối thiểu hóa dữ liệu nhạy cảm; ZK là thiết kế thực dụng duy nhất trong đó lựa chọn phiếu không bao giờ được gắn với danh tính. VNeID cung cấp census root. Thông tư 21 cung cấp khung thí điểm có kiểm soát. Không quy định nào hiện hành cấm kiểm phiếu mang bằng chứng.Kháng ép buộc có thực sự hoạt động?
Tính không-thể-tạo-receipt khiến việc xác minh bất kỳ ai đã bỏ phiếu thế nào trở nên khó về mặt toán học, bởi cử tri không thể tạo receipt đáng tin. Đe dọa vật lý — camera sau lưng, điện thoại bị xâm phạm — nằm ngoài tầm mật mã, nên ki-ốt có giám sát và phiếu giấy dự phòng vẫn nằm trong thiết kế.Khi nào Việt Nam có thể thực sự dùng?
Không phải cho một cuộc bầu cử toàn quốc sớm, và không kỹ sư trung thực nào nên hứa điều ngược lại. Chân trời thực tế là thí điểm ki-ốt có giám sát với phiếu giấy dự phòng ở một vài đơn vị bầu cử, rồi kiểm phiếu lai với output verifier được công bố — đúng quỹ đạo Thụy Sĩ, Estonia và Takoma Park từng đi suốt một thập kỷ.Kết luận
Ông của Minh đã hỏi đúng câu hỏi: làm sao biết máy được bảo làm gì? Bầu cử điện tử zk trả lời bằng một chứng chỉ thay vì một lời hứa. Zero-knowledge proof cho phép cuộc bầu cử tự chứng minh sự trung thực của chính nó — kết quả bị ép buộc về mặt toán học, phiếu bầu được giữ bí mật, đủ điều kiện là thật, và bất kỳ công dân nào cũng kiểm tra được phép tính. Bỏ phiếu zero knowledge không phải một chiếc máy bỏ phiếu tương lai; nó là sự thay đổi ở những gì cuộc bầu cử được yêu cầu chứng minh. Estonia chứng minh quy trình hoạt động, Brazil chứng minh khoảng trống kiểm toán là thật, Thụy Sĩ chứng minh nhà quản lý có thể đòi bằng chứng và nhận được nó. Việt Nam có hạ tầng định danh, luật bảo vệ dữ liệu và khát vọng bầu cử số — thứ cần có là thí điểm có giám sát đầu tiên với kết quả mà ai cũng xác minh được. Chiếc máy làm theo điều lập trình viên bảo nó làm; câu hỏi là liệu lập trình viên có thể bị kiểm tra. Với zero knowledge, câu trả lời là có — bởi tất cả mọi người.
Quick Reference
| Property | Traditional E-Voting | ZK E-Voting |
|---|---|---|
| Ballot secrecy | Trusted staff and software | Mathematical proof, threshold decrypt |
| Voter check | Usually impossible after the booth | Return code / challenge ballot (cast-as-intended) |
| Tally check | Trust the software or re-run a black box | Anyone runs the open verifier |
| Eligibility | Verified at registration | Merkle census + nullifier, identity never transmitted |
| Coercion resistance | Possible (proof of vote exists) | Receipt-free — no credible proof to give |
| Recount | Re-run the machine | Re-run the public verifier, seconds |
| Real deployments | Estonia, Brazil, US DREs | Helios, Scantegrity II (Takoma Park), Vocdoni pilots |
| Legal fit (VN) | No verifiability lane | Decree 13 minimization + Circular 21 pilots |
| Best fit | Any election today | Supervised kiosks with paper override, hybrid counting |
