Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Hệ thống thông tin của tác giả Nguyễn Ngọc Khương Duy và Vương Thịnh Lợi (Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP.HCM, năm 2023, do ThS. Nguyễn Hồ Duy Trí hướng dẫn) tập trung giải quyết bài toán bỏ phiếu trực tuyến dựa trên công nghệ chuỗi khối.
Trong thực tiễn, công nghệ chuỗi khối đã được ứng dụng trong các lĩnh vực như tài chính, chuỗi cung ứng và y tế. Đối với hệ thống bầu cử, các phương thức truyền thống và điện tử hiện hữu đang đối mặt với nhiều thách thức liên quan đến tính minh bạch, tính toàn vẹn dữ liệu, chi phí vận hành và sự tin tưởng của cử tri. Mặt khác, thị trường ứng dụng thực tế vẫn thiếu vắng các giải pháp bỏ phiếu trực tuyến quy mô vừa và nhỏ có tính bảo mật cao nhưng vẫn đảm bảo tính đơn giản, dễ tiếp cận và thân thiện khi thao tác trên trình duyệt.
Nghiên cứu xác định các mục tiêu cụ thể theo hai nhóm:
- Mục tiêu lý thuyết:
- Nắm vững kiến thức nền tảng về công nghệ chuỗi khối và quy trình xây dựng hệ thống trên nền tảng chuỗi khối.
- Tìm hiểu các cơ chế và kỹ thuật bảo mật dữ liệu áp dụng cho các ứng dụng có yêu cầu an toàn thông tin cao.
- So sánh, đánh giá khả năng bảo mật và hiệu suất của các phương pháp mật mã trong môi trường chuỗi khối.
- Củng cố kiến thức lập trình phát triển ứng dụng phân tán trên nền tảng trình duyệt trực tuyến.
- Mục tiêu sản phẩm:
- Xây dựng hệ thống lưu trữ kết quả bỏ phiếu dựa trên nền tảng chuỗi khối đảm bảo an toàn và bảo mật dữ liệu.
- Xây dựng ứng dụng web bỏ phiếu hoàn chỉnh, giao diện trực quan, đáp ứng các nghiệp vụ bầu cử cơ bản.
- Ứng dụng thành công các thuật toán mã hóa trong quá trình tiếp nhận, lưu trữ và công khai dữ liệu phiếu bầu.
Đối tượng nghiên cứu của đề tài là khả năng áp dụng và tính bảo mật của công nghệ chuỗi khối trong hệ thống bỏ phiếu bầu cử. Phạm vi nghiên cứu giới hạn ở việc tìm hiểu tính bảo mật của chuỗi khối thông qua các phương pháp mật mã cơ bản (hàm băm, mật mã đường cong elip); xây dựng kiến trúc kết nối giữa các nút mạng, cơ quan cấp chứng chỉ (CA) và giao diện người dùng qua API; hoàn thiện ứng dụng web trên trình duyệt đáp ứng các luồng nghiệp vụ cơ bản mà không mở rộng sang các hệ thống kiểm toán bên ngoài phức tạp.
Về các công trình liên quan, khóa luận phân tích hai bài báo khoa học: nghiên cứu của Hsin-Te Wu và Chang-Yi Yang về cơ chế bảo mật mạng cho hệ thống bỏ phiếu sử dụng chuỗi khối kết hợp ghép nối song tuyến tính; nghiên cứu của Kashif Mehboob Khan, Junaid Arshad và Muhammad Mubashir Khan về hệ thống bỏ phiếu an toàn trên nền tảng Multichain. Đồng thời, tác giả khảo sát ba giải pháp thương mại gồm Polys (nền tảng của Kaspersky ban đầu trên Ethereum sau chuyển sang Exonum), Follow My Vote và Voatz.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên nền tảng lý thuyết về chuỗi khối phân quyền, cơ chế đồng thuận, hợp đồng thông minh và mật mã học phi đối xứng. Trong quá trình khảo sát công nghệ, nhóm tác giả đã tiến hành phân tích ưu và nhược điểm của ba nền tảng chuỗi khối tiêu biểu:
| Nền tảng |
Loại hình |
Cơ chế & Đặc tính chính |
Hạn chế ghi nhận |
| Ethereum |
Chuỗi khối công khai |
Cơ chế Proof-of-Work (tại thời điểm nghiên cứu tham chiếu), hỗ trợ hợp đồng thông minh mạnh mẽ, cộng đồng lớn |
Thông lượng giới hạn (~15 giao dịch/giây), phát sinh phí gas biến động bằng Ether, tiêu tốn năng lượng |
| Exonum |
Chuỗi khối phân quyền |
Framework viết bằng Rust, thông lượng đạt tới 5.000 giao dịch/giây, độ trễ thấp |
Công nghệ còn mới, hệ sinh thái đang phát triển, độ phức tạp kỹ thuật cao |
| Hyperledger Fabric |
Chuỗi khối phân quyền (Permissioned) |
Kiến trúc mô-đun, quản lý danh tính qua Fabric CA, hỗ trợ phân chia kênh (Channel), hỗ trợ lưu trữ dữ liệu bí mật (Private Data) |
Độ phức tạp cấu hình cao, phụ thuộc vào nhiều thành phần (peer, orderer, CA) |
Dựa trên kết quả so sánh, Hyperledger Fabric được lựa chọn làm nền tảng cốt lõi do khả năng kiểm soát quyền riêng tư thông qua mạng phân quyền, không tốn phí giao dịch và cho phép thực thi logic nghiệp vụ linh hoạt thông qua chuỗi mã (chaincode).
Về kiến trúc ứng dụng web, hệ thống sử dụng:
- NestJS: Framework phía máy chủ (backend) xây dựng trên nền Node.js, sử dụng TypeScript, áp dụng kiến trúc mô-đun hóa, hỗ trợ Dependency Injection và đồng bộ tư duy thiết kế với Angular.
- Angular: Framework phía máy khách (frontend) sử dụng TypeScript, HTML và CSS để xây dựng giao diện người dùng động theo cấu trúc component, service và routing.
Phương pháp nghiên cứu được triển khai bao gồm:
- Phương pháp phân tích – tổng hợp tài liệu chuyên ngành về mật mã học và hệ thống phân tán.
- Phương pháp thiết kế hệ thống phần mềm hướng đối tượng, mô hình hóa quy trình bằng sơ đồ use case, sơ đồ luồng sự kiện và sơ đồ tuần tự.
- Phương pháp thực nghiệm đo lường hiệu suất (tính bằng mili-giây) giữa các thuật toán ký số (EdDSA, ECDSA, RSA) và so sánh giữa thư viện
elliptic với module nội bộ của Node.js.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình phân tầng, kết nối trực tiếp giữa giao diện người dùng, máy chủ backend và mạng chuỗi khối Hyperledger Fabric.
Kiến trúc mạng chuỗi khối
Mạng Hyperledger Fabric trong khóa luận được thiết lập với cấu hình gồm:
- Kênh (Channel): Sử dụng một kênh duy nhất cho toàn bộ hệ thống. Kênh này chứa số cái dùng chung lưu trữ danh sách các cuộc bầu chọn (CBC) và các giao dịch hợp lệ.
- Tổ chức (Organization): Mô hình gồm hai tổ chức (Tổ chức 1 và Tổ chức 2). Mỗi tổ chức vận hành các nút mạng ngang hàng (peer) đại diện cho cử tri, ban tổ chức và quản trị viên.
- Cơ quan cấp chứng chỉ (Fabric CA): Chịu trách nhiệm quản lý định danh số, phát hành chứng chỉ x.509 cho người tham gia và xác thực danh tính trong quá trình giao dịch.
- Vùng dữ liệu bí mật (Private Data Collections): Được định cấu hình trên từng tổ chức để lưu trữ khóa bí mật của CBC và nội dung phiếu bầu trước khi kết thúc cuộc bầu chọn, tránh việc lộ thông tin trên số cái công khai.
+--------------------------------------------------------------------------+
| KÊNH DUY NHẤT |
| |
| +--------------------------+ +--------------------------+ |
| | TỔ CHỨC 1 | | TỔ CHỨC 2 | |
| | - Peer (Endorser/Committer) | - Peer (Endorser/Committer) |
| | - Dữ liệu bí mật riêng | | - Dữ liệu bí mật riêng | |
| +------------+-------------+ +------------+-------------+ |
| ^ ^ |
| | [ CHUỖI MÃ ] | |
| +-------------------+-------------------+ |
| | |
| +------------+------------+ |
| | Cơ quan cấp chứng chỉ | |
| | (Fabric CA) | |
| +-------------------------+ |
+--------------------------------------------------------------------------+
Thiết kế chuỗi mã (Chaincode)
Chuỗi mã được lập trình bằng ngôn ngữ TypeScript và triển khai đồng thời lên các tổ chức trong mạng. Cấu trúc dữ liệu trung tâm là đối tượng Cuộc bầu chọn (CBC) được lưu trữ trên số cái với các trường thuộc tính: ID (chuỗi ngẫu nhiên 64 ký tự), ShortID (mã rút gọn để cử tri truy cập), Name, Options (danh sách lựa chọn), Type (hình thức bầu cử), Organizers (danh sách chữ ký ban tổ chức), MinimumConsent (số lượng đồng thuận tối thiểu của ban tổ chức để đóng bầu cử), OptionType (đơn lựa chọn hoặc đa lựa chọn), MultipleOptionLimit, Status (đang mở, đang tổng kết, đã đóng), Participants (danh sách định danh mã hóa), VotesPublic, Votes, EndorsingOrgs, PrivateKeys và ClosedOn.
Logic nghiệp vụ trong chuỗi mã được cụ thể hóa thông qua hệ thống 9 hàm:
| STT |
Tên hàm chuỗi mã |
Chức năng nghiệp vụ chi tiết |
| 1 |
CreateBallot |
Khởi tạo CBC, sinh ID (64 ký tự), sinh ShortID ngẫu nhiên không trùng lặp, tạo khóa bí mật cho từng tổ chức, lưu chữ ký BTC. |
| 2 |
AuthenticateVote |
Thực thi tại Fabric CA nhằm xác thực danh tính cử tri; ký kết hợp ID cuộc bầu chọn và định danh cử tri; kiểm tra chống bỏ phiếu lặp (trả về lỗi PARTICIPANT_ALREADY_VOTED nếu phát hiện trùng lặp). |
| 3 |
VoteBallot |
Tiếp nhận chữ ký phiếu bầu; ghi mã phiếu vào danh sách Votes trên số cái; nếu là hình thức công khai thì ghi trực tiếp vào VotesPublic. |
| 4 |
EndBallot |
Tiếp nhận yêu cầu đóng cuộc bầu chọn từ BTC; kiểm tra tỷ lệ đồng thuận đạt ngưỡng MinimumConsent; chuyển trạng thái CBC sang "finalizing" hoặc "closed". |
| 5 |
FinalizeBallotAsOrg |
Từng tổ chức đối chiếu chữ ký mã hóa giữa vùng dữ liệu bí mật và số cái công khai; trích xuất dữ liệu phiếu bầu hợp lệ để chuẩn bị công bố. |
| 6 |
FinalizeBallot |
Đưa toàn bộ nội dung phiếu bầu đã giải mật lên VotesPublic trên số cái; nếu là hình thức bí mật, tiến hành lọc và loại bỏ các phiếu không thuộc danh sách cử tri chỉ định trước. |
| 7 |
GetBallot |
Truy vấn thông tin CBC thông qua ID hoặc ShortID; thiết lập quy tắc vô hiệu hóa ShortID sau khi cuộc bầu chọn đã đóng được 2 giờ (trả về mã lỗi BALLOT_NOT_EXIST). |
| 8 |
GetVote |
Cho phép cử tri sử dụng mã định danh phiếu bầu cá nhân để tra cứu lại lựa chọn đã ghi nhận trong hệ thống. |
| 9 |
GetBallotHistory |
Truy xuất toàn bộ lịch sử các giao dịch thay đổi trạng thái của cuộc bầu chọn ghi nhận trên số cái chuỗi khối. |
Các hình thức cuộc bầu chọn
Khóa luận hỗ trợ 3 hình thức bầu chọn:
- Công khai: Mọi người dùng đều có thể tham gia; danh tính và nội dung bỏ phiếu được lưu trực tiếp trên số cái công khai ngay khi giao dịch hoàn tất.
- Riêng tư: Mọi cử tri có thể tham gia; phiếu bầu và định danh được mã hóa và lưu tại vùng dữ liệu bí mật; sau khi đóng cuộc bầu chọn, khóa bí mật được công khai để toàn bộ hệ thống giải mã và kiểm toán kết quả.
- Bí mật: Cơ chế mã hóa tương tự hình thức riêng tư, nhưng bổ sung danh sách định danh định trước (
Participants). Khi tổng kết, chuỗi mã sẽ đối soát chữ ký định danh; phiếu bầu của những cá nhân không nằm trong danh sách chỉ định trước sẽ bị loại bỏ.
Nội dung chính theo từng chương
Chương 1: Tổng quan về đề tài
Chương 1 trình bày lý do chọn đề tài xuất phát từ nhu cầu minh bạch hóa quy trình bỏ phiếu bằng công nghệ chuỗi khối. Tác giả xác định đối tượng nghiên cứu là tính khả thi và độ bảo mật của chuỗi khối trong bầu cử; phạm vi nghiên cứu tập trung vào các giải thuật mật mã (hàm băm, đường cong elip), kết nối API và ứng dụng giao diện web. Chương này cũng phân tích tổng quan các công trình nghiên cứu của Hsin-Te Wu & Chang-Yi Yang, Kashif Mehboob Khan cùng cộng sự, cùng các giải pháp ứng dụng thực tế Polys, Follow My Vote và Voatz để xác định khoảng trống nghiên cứu cho một ứng dụng gọn nhẹ, dễ triển khai.
Chương 2: Cơ sở lý thuyết
Chương 2 cung cấp nền tảng lý thuyết chi tiết về công nghệ chuỗi khối, phân biệt cơ sở dữ liệu truyền thống với số cái phân tán bất biến. Trọng tâm của chương là phân tích sâu cấu trúc của Hyperledger Fabric, bao gồm cơ chế phân quyền, kiến trúc kênh riêng, dịch vụ xác thực danh tính Fabric CA và cơ chế đồng thuận (Raft, Kafka). Đồng thời, tác giả khảo sát lý thuyết nền tảng của Ethereum và Exonum để làm cơ sở đối sánh; giới thiệu cấu trúc mô-đun của NestJS phía backend và các khái niệm cốt lõi của Angular (component, directive, service, pipeline) phía frontend.
Chương 3: Hệ thống lưu trữ sử dụng công nghệ chuỗi khối
Chương 3 trình bày chi tiết thiết kế hệ thống lưu trữ trên Hyperledger Fabric. Tác giả lập luận việc lựa chọn Hyperledger Fabric thay vì Ethereum (tránh phí gas và tắc nghẽn giao dịch) hoặc Exonum (tránh rủi ro từ framework chưa ổn định). Chương này mô tả kiến trúc 1 kênh 2 tổ chức, cơ chế chia sẻ dữ liệu qua Private Data Collections và chuẩn hóa quy trình nghiệp vụ: tạo CBC, bỏ phiếu và đóng CBC. Toàn bộ thông số của đối tượng CBC cùng cấu trúc mã nguồn của 9 hàm chuỗi mã viết bằng TypeScript được đặc tả chi tiết kèm sơ đồ luồng dữ liệu.
Chương 4: Phương pháp bảo mật
Chương 4 tập trung giải quyết bài toán mâu thuẫn giữa tính minh bạch của chuỗi khối và yêu cầu bảo mật thông tin cá nhân trong bầu cử kín. Giải pháp được đề xuất là ứng dụng mật mã đường cong elip (ECC) và lược đồ thỏa thuận khóa ECDH. Tác giả phân tích và so sánh ba lược đồ chữ ký điện tử: EdDSA, ECDSA và RSA. Nghiên cứu thực hiện đánh giá thực nghiệm đo lường hiệu suất (đơn vị: mili-giây) giữa việc sử dụng thư viện elliptic bên ngoài và module crypto nội bộ của Node.js. Đồng thời, giải thuật kiểm tra chữ ký mã hóa tại hàm AuthenticateVote được hoàn thiện để ngăn chặn triệt để hành vi gian lận bỏ phiếu hai lần.
Chương 5: Xây dựng ứng dụng
Chương 5 hiện thực hóa toàn bộ mô hình thiết kế thành phần mềm hoàn chỉnh. Tác giả mô tả chi tiết sơ đồ use case cho 3 tác nhân (Cử tri - NTG, Ban tổ chức - BTC, Cơ quan cấp chứng chỉ - CQCCC). Các luồng sự kiện và sơ đồ tuần tự được xây dựng cho từng nghiệp vụ:
- Nghiệp vụ Tạo CBC: Hỗ trợ cấu hình tên, danh sách phương án, loại lựa chọn (đơn lựa chọn, đa lựa chọn, đa lựa chọn có giới hạn số lượng), hình thức (công khai, riêng tư, bí mật), danh sách cử tri định trước và tỷ lệ đồng thuận đóng của ban tổ chức.
- Nghiệp vụ Xác thực và Bỏ phiếu: Giao diện cho phép cử tri nhập định danh, nhận diện mã phiếu bầu cá nhân.
- Nghiệp vụ Quản trị và Tổng kết: Giao diện dành cho ban tổ chức kiểm soát tiến trình, thực hiện quyền đóng cuộc bầu chọn và kích hoạt tiến trình giải mật phiếu bầu.
- Nghiệp vụ Kiểm tra phiếu bầu và Tra cứu lịch sử: Cho phép kiểm tra tính toàn vẹn của phiếu bầu thông qua ID giao dịch hoặc mã định danh phiếu bầu, đồng thời truy xuất toàn bộ lịch sử thay đổi của CBC.
- Tính năng giao diện: Hỗ trợ chuyển đổi song ngữ (Tiếng Việt - Tiếng Anh) và hai chế độ hiển thị giao diện (chế độ sáng / tối).
Chương 6: Kết quả đạt được, ưu và nhược điểm, hướng phát triển
Chương 6 tổng kết các kết quả đạt được đối chiếu với mục tiêu ban đầu; phân tích ưu điểm về tính an toàn, bảo mật dữ liệu, chi phí vận hành và tính tiện dụng của ứng dụng web. Đồng thời, tác giả chỉ ra các nhược điểm còn tồn tại về độ phức tạp khi vận hành mạng Hyperledger Fabric và đề xuất các hướng nghiên cứu hoàn thiện trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành các kết quả thực nghiệm và kỹ thuật cụ thể:
- Triển khai thành công mạng chuỗi khối Hyperledger Fabric: Thiết lập môi trường mạng gồm 1 kênh và 2 tổ chức, tích hợp dịch vụ Fabric CA và phân vùng dữ liệu bí mật (Private Data Collections) hoạt động ổn định.
- Xây dựng chuỗi mã nghiệp vụ hoàn chỉnh: Phát triển và kiểm thử thành công chuỗi mã gồm 9 hàm nghiệp vụ bằng TypeScript, xử lý trọn vẹn vòng đời của một cuộc bầu chọn từ khởi tạo, xác thực, bỏ phiếu, đóng bầu cử đến giải mật và kiểm toán.
- Hiện thực hóa cơ chế bảo mật kết hợp: Ứng dụng thành công mật mã đường cong elip (EdDSA/ECDH) kết hợp chữ ký số và Fabric CA. Giải thuật ngăn chặn hoàn toàn tình trạng cử tri bỏ phiếu nhiều lần thông qua kiểm tra đối soát chữ ký lịch sử (
PARTICIPANT_ALREADY_VOTED).
- Xây dựng ứng dụng web hoàn chỉnh: Hoàn thiện ứng dụng full-stack với backend NestJS và frontend Angular, cung cấp giao diện trực quan hỗ trợ đầy đủ 3 chế độ lựa chọn (đơn lựa chọn, đa lựa chọn, đa lựa chọn có giới hạn), 3 hình thức bảo mật (công khai, riêng tư, bí mật), tích hợp chuyển đổi ngôn ngữ Việt - Anh và giao diện sáng/tối.
- Đóng góp so với các nghiên cứu trước: Khắc phục được rào cản chi phí giao dịch (gas fee) và độ trễ giao dịch của nền tảng Ethereum mà các nghiên cứu trước đây (như giai đoạn đầu của Polys) gặp phải; cung cấp giải pháp chuỗi khối phân quyền có khả năng kiểm soát truy cập linh hoạt, phù hợp cho quy mô tổ chức vừa và nhỏ mà không phụ thuộc vào tiền mã hóa.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự xác định các hạn chế và hướng phát triển:
- Hạn chế:
- Kiến trúc Hyperledger Fabric có độ phức tạp cao trong cấu hình và quản trị, đòi hỏi nhiều tài nguyên điều phối giữa các nút peer, orderer và Fabric CA.
- Hiệu suất xử lý giao dịch phụ thuộc nhiều vào cấu hình mạng, số lượng nút xác thực (endorsers) và chính sách chứng thực (endorsement policy).
- Ứng dụng giao diện mới tập trung vào các chức năng nghiệp vụ cốt lõi, chưa tích hợp các cơ chế quản trị nâng cao hoặc kết nối với các hệ thống định danh công dân thực tế bên ngoài mạng nội bộ.
- Hướng nghiên cứu tiếp:
- Nghiên cứu tối ưu hóa cấu hình mạng chuỗi khối để nâng cao thông lượng giao dịch khi mở rộng quy mô cử tri.
- Tích hợp thêm các phương thức xác thực danh tính nâng cao (như sinh trắc học hoặc liên kết hệ thống định danh tập trung) trước khi cấp chứng chỉ qua Fabric CA.
- Nâng cấp giao diện người dùng, bổ sung biểu đồ thống kê kết quả trực quan theo thời gian thực và mở rộng ứng dụng trên nền tảng thiết bị di động.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo hữu ích cho:
- Sinh viên và học viên chuyên ngành Hệ thống thông tin, Kỹ thuật phần mềm và An toàn thông tin: Có thể sử dụng khóa luận làm tài liệu tham khảo chi tiết về quy trình xây dựng ứng dụng thực tế trên nền tảng Hyperledger Fabric kết hợp các framework hiện đại (NestJS, Angular).
- Nhà phát triển ứng dụng chuỗi khối doanh nghiệp: Cung cấp mẫu thiết kế (design pattern) điển hình về việc phân tách dữ liệu công khai và dữ liệu riêng tư (Private Data Collections) nhằm xử lý bài toán bảo vệ quyền riêng tư trên số cái phân tán.
- Các phần đáng tham khảo nhất trong văn bản: Chương 3 với đặc tả đối tượng và mã nguồn chuỗi mã 9 hàm TypeScript; Chương 4 với phương pháp triển khai mật mã đường cong elip để ẩn danh phiếu bầu; và Chương 5 với thiết kế luồng sự kiện, sơ đồ tuần tự của các nghiệp vụ bầu cử.
Câu hỏi thường gặp
1. Hệ thống ngăn chặn hành vi một cử tri bỏ phiếu hai lần bằng cách nào?
Hệ thống sử dụng hàm AuthenticateVote thực thi tại Cơ quan cấp chứng chỉ (Fabric CA). Tại đây, khóa bí mật của tổ chức sẽ ký lên chuỗi kết hợp gồm ID cuộc bầu chọn và định danh của người tham gia. Chữ ký tạo ra được đối soát với lịch sử giao dịch trên hệ thống; nếu phát hiện chữ ký này đã tồn tại, hệ thống sẽ từ chối giao dịch và đưa ra thông báo lỗi PARTICIPANT_ALREADY_VOTED.
2. Sự khác biệt cốt lõi giữa ba hình thức bầu chọn Công khai, Riêng tư và Bí mật là gì?
Ở hình thức "Công khai", danh tính và nội dung bỏ phiếu được công bố ngay lên số cái chung. Ở hình thức "Riêng tư", phiếu bầu được mã hóa và lưu tại vùng dữ liệu bí mật của tổ chức, chỉ được giải mật và đưa lên số cái sau khi cuộc bầu chọn kết thúc. Ở hình thức "Bí mật", quy trình mã hóa diễn ra tương tự hình thức riêng tư, nhưng chuỗi mã sẽ thực hiện thêm bước lọc: chỉ những phiếu bầu có định danh trùng khớp với danh sách cử tri được chỉ định từ trước mới được công nhận và ghi vào kết quả tổng kết; các phiếu ngoài danh sách sẽ bị loại bỏ.
3. Vùng dữ liệu bí mật (Private Data Collections) đóng vai trò gì trong việc bảo vệ lá phiếu?
Trong Hyperledger Fabric, vùng dữ liệu bí mật cho phép lưu trữ nội dung phiếu bầu và khóa bí mật của cuộc bầu chọn riêng biệt tại các nút của tổ chức được ủy quyền, trong khi số cái chung chỉ lưu trữ hàm băm của dữ liệu đó. Điều này đảm bảo trong suốt thời gian diễn ra cuộc bầu chọn, không ai (kể cả các bên tham gia mạng) có thể xem trước nội dung bỏ phiếu hoặc kết quả tạm thời, ngăn chặn việc thao túng ý chí cử tri.
4. Vì sao nhóm nghiên cứu lựa chọn Hyperledger Fabric thay vì Ethereum hay Exonum?
Tác giả không chọn Ethereum do nền tảng này có thông lượng thấp (~15 giao dịch/giây), phát sinh chi phí xác minh (phí gas bằng Ether) biến động cao và tính công khai không phù hợp cho bỏ phiếu kín. Nhóm cũng không chọn Exonum vì đây là framework còn mới, hệ sinh thái đang trong giai đoạn phát triển và tiềm ẩn lỗi tương thích. Hyperledger Fabric được chọn vì là framework phân quyền ổn định, hỗ trợ kiến trúc mô-đun, phân kênh riêng biệt, quản lý định danh chặt chẽ qua CA và cho phép lưu trữ dữ liệu bí mật không tốn phí.
5. Mã ShortID của cuộc bầu chọn có hiệu lực trong bao lâu?
Mã ShortID được hệ thống sinh ngẫu nhiên để cử tri dễ dàng nhập liệu khi tham gia cuộc bầu chọn trên giao diện web. Theo quy tắc xử lý trong hàm GetBallot, sau khi cuộc bầu chọn chuyển sang trạng thái đã đóng đủ 2 giờ đồng hồ, việc truy vấn thông qua ShortID sẽ bị khóa lại và hệ thống sẽ trả về mã lỗi BALLOT_NOT_EXIST. Cử tri muốn kiểm tra sau thời gian này phải sử dụng mã ID đầy đủ gồm 64 ký tự.
Kết luận
Khóa luận tốt nghiệp của tác giả Nguyễn Ngọc Khương Duy và Vương Thịnh Lợi đã nghiên cứu và ứng dụng thành công nền tảng chuỗi khối Hyperledger Fabric kết hợp kỹ thuật mật mã đường cong elip để giải quyết bài toán an toàn và bảo mật cho hệ thống bầu cử trực tuyến. Đề tài đã thiết kế và triển khai trọn vẹn từ chuỗi mã nghiệp vụ 9 hàm bằng TypeScript đến ứng dụng web đa nền tảng sử dụng NestJS và Angular với đầy đủ các nghiệp vụ bầu cử cơ bản. Kết quả nghiên cứu chứng minh tính khả thi của mô hình chuỗi khối phân quyền trong việc đảm bảo tính minh bạch, tính toàn vẹn dữ liệu và quyền riêng tư của cử tri mà không phát sinh chi phí giao dịch tiền mã hóa.