Bố cục của Luận văn này gồm có 3 chương: Chương 1 - Tổng quan về bầu cử và bầu cử điện tử; Chương 2 - Blockchain và bầu cử điện tử; Chương 3 - Thử nghiệm và kết quả. Để hiểu rõ hơn mời các bạn cùng tham khảo nội dung chi tiết của Luận văn này.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Nguyễn Văn Quyết NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN CHO BẦU CỬ ĐIỆN TỬ LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) HÀ NỘI - 2020 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Nguyễn Văn Quyết NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN CHO BẦU CỬ ĐIỆN TỬ Chuyên ngành: Hệ thống thông tin Mã số: 8.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG MINH TUẤN HÀ NỘI - 2020 i LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tôi, kết đạt luận văn sản phẩm riêng cá nhân, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Tác giả luận văn Nguyễn Văn Quyết ii LỜI CẢM ƠN Lời tơi xin gửi lời cảm ơn lịng biết ơn sâu sắc đến thầy giáo TS.Đặng Minh Tuấn, người giúp tơi chọn đề tài, định hình hướng nghiên cứu, tận tình hướng dẫn bảo tơi suốt q trình thực luận văn tốt nghiệp Tơi xin gửi lời cảm ơn chân thành đến thầy, cô giáo trường Học viện Công nghệ Bưu Viễn thơng Các thầy, giáo dạy bảo truyền đạt cho nhiều kiến thức, giúp tơi có tảng kiến thức vững sau ngày tháng học tập trường Tôi xin gửi lời cảm ơn chân thành tới bạn khóa 2018 đợt ủng hộ khuyến khích tơi suốt q trình học tập trường Cuối cùng, tơi muốn gửi lời cảm ơn sâu sắc đến gia đình bạn bè – người thân u ln kịp thời động viên giúp đỡ vượt qua khó khăn học tập sống iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT v DANH SÁCH BẢNG vi DANH SÁCH HÌNH VẼ vii LỜI MỞ ĐẦU 1 Lý chọn đề tài Cấu trúc luận văn CHƯƠNG 1: TỔNG QUAN VỀ BẦU CỬ VÀ BẦU CỬ ĐIỆN TỬ 1.1 Giới thiệu chung bầu cử bầu cử Việt Nam 1.1.1 Giới thiệu chung bầu cử 1.1.2 Thực trạng bầu cử Việt Nam 1.2 Giới thiệu bầu cử truyền thống 1.2.1 Mơ hình triển khai 1.2.2 Ưu nhược điểm mơ hình bầu cử truyền thống 1.3 Giới thiệu bầu cử điện tử 1.3.1 Mơ hình triển khai 1.3.2 Ưu nhược điểm mơ hình bầu cử điện tử 1.4 Kết luận chương CHƯƠNG 2: BLOCKCHAIN VÀ BẦU CỬ ĐIỆN TỬ iv 2.1 Giới thiệu công nghệ blockchain 2.1.1 Khái niệm 2.1.2 Cơ cở lý thuyết nguyên tắc hoạt động blockchain 11 2.2 Ứng dụng blockchain cho bầu cử điện tử 22 2.2.1 Yêu cầu hệ thống bầu cử điện tử, mơ hình an tồn khả cơng vào hệ thống bầu cử điện tử 22 2.2.2 2.3 Giới thiệu mơ hình ứng dụng blockchain cho bầu cử điện tử 24 Kết luận chương 30 CHƯƠNG 3: THỬ NGHIỆM VÀ KẾT QUẢ 32 3.1 Phân tích thiết kế hệ thống 32 3.2 Lựa chọn công nghệ triển khai hệ thống 33 3.3 Xây dựng mơ hình kịch thử nghiệm 49 3.4 Một số kết quả, nhận xét đánh giá 54 KẾT LUẬN 56 DANH MỤC TÀI LIỆU THAM KHẢO 57 v DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt API Application Programing Interface Giao diện lập trình ứng dụng CPU Central Processing Unit Bộ xử lý trung tâm ECDSA Elliptic Curve Digital Signature Thuật toán chữ ký số Algorithm đường cong Elliptic Electronic voting Bầu cử điện tử e-voting HĐND HTTP Hội đồng nhân dân Hypertext Transfer Protocal Giao thức truyền tải siêu văn ID Identification Mã số định danh JSON JavaScript Object Notation Một kiểu liệu mở JavaScript P2P Peer to peer Mạng ngang hàng Txid Transaction identification Số định danh cho giao dịch vi DANH SÁCH BẢNG Bảng 2.1: So sánh số thuật toán băm [9] 11 Bảng 2.2: Các thành phần giao dịch 18 Bảng 2.3: Tìm số Nonce thỏa mãn Difficulty 21 Bảng 3.1: Các giao dịch trung bình giây Multichain 35 Bảng 3.2: Mô tả liệu cử tri 37 Bảng 3.3: Mô tả liệu quản trị viên 38 Bảng 3.4: Mô tả liệu ứng viên 38 Bảng 3.5: Thực nghiệm gửi yêu cầu lấy liệu hệ thống blockchain với nút 52 Bảng 3.6: Thực nghiệm gửi yêu cầu tạo liệu hệ thống blockchain với nút 52 Bảng 3.7: Thực nghiệm gửi yêu cầu lấy liệu hệ thống blockchain với nút 53 Bảng 3.8: Thực nghiệm gửi yêu cầu tạo liệu hệ thống blockchain với nút 53 Bảng 3.9: So sánh hình thức bầu cử 54 vii DANH SÁCH HÌNH VẼ Hình 1.1: Mơ hình triển khai bầu cử truyền thống Hình 1.2: Mơ hình triển khai bầu cử điện tử Hình 2.1: Đồ thị hệ mật đường cong elliptic 13 Hình 2.2: Nguyên lý hoạt động mạng blockchain [10] 16 Hình 2.3: Rẽ nhánh blockchain [11] 17 Hình 2.4: Các thành phần transaction [10] 18 Hình 2.5: Cấu trúc transaction [5] 19 Hình 2.6: Mơ hình khối chuỗi khối bitcoin [10] 20 Hình 2.7: Mơ hình bầu cử điện tử Estonian [14] 23 Hình 2.8: Giai đoạn – chuẩn bị bầu cử 25 Hình 2.9: Giai đoạn – Bỏ phiếu 27 Hình 2.10: Giai đoạn – Tổng hợp kết 28 Hình 3.1: Thiết kế hệ thống mơ hình bầu cử điện tử ứng dụng blockchain 32 Hình 3.2: Mơ hình thiết kế hệ thống sử dụng JavaEE Multichain 36 Hình 3.3: Cấu trúc mã nguồn ứng dụng 39 Hình 3.4: Mã nguồn dùng JSON-RPC API để tương tác với Multichain 40 Hình 3.5: Tạo blockchain 40 Hình 3.6: Khởi động blockchain 41 Hình 3.7: Tạo stream user 41 Hình 3.8: Đăng ký (subcribe) stream user 41 Hình 3.9: Tạo quản trị viên 41 Hình 3.10: Tạo ứng viên 42 Hình 3.11: Tạo cử tri 42 Hình 3.12: Gửi phiếu bầu cho cử tri 43 Hình 3.13: Xem thơng tin quản trị viên 43 Hình 3.14: Xem thơng tin ứng viên 44 Hình 3.15: Kiểm tra số lượng phiếu bầu ứng viên 44 Hình 3.16: Xem thơng tin cử tri 45 Hình 3.17: Lấy thơng tin số lượng phiếu bầu cử trị 45 Hình 3.18: Cử tri thực bỏ phiếu cập nhật trạng thái bỏ phiếu cho cử tri 46 Hình 3.19: Kiểm tra lại thơng tin cử tri sau bỏ phiếu 47 Hình 3.20: Lấy thơng tin số lượng phiếu bầu ứng viên 48 Hình 3.21: Kết nối nút vào mạng blockchain có 48 Hình 3.22: Đăng nhập hệ thống 49 Hình 3.23: Tiến hành bỏ phiếu 50 Hình 3.24: Tổng hợp kết 51 LỜI MỞ ĐẦU Lý chọn đề tài Bầu cử công khai hoạt động tảng để xây dựng nên quốc gia, tổ chức dân chủ, công minh bạch Từ trước đến nay, phương pháp bầu cử áp dụng hầu hết quốc gia bỏ phiếu dựa phiếu giấy hay bầu cử tảng điện tử Hệ thống bầu cử giấy hệ thống sử dụng rộng rãi toàn giới từ trước đến nay, nhiên bầu cử theo cách truyền thống gặp phải nhiều hạn chế như: lãng phí tài nguyên giấy; việc triển khai đến khu vực vùng sâu vùng xa khó khăn tốn nhiều chi phí; tính an ninh phiếu trình vận chuyển kiểm phiếu chưa thực đảm bảo; cần số lượng lớn nhân lực phục vụ cho bầu cử… Bằng chứng bầu cử ngày 17/04/2019 Indonesia, có 92 nhân viên phục vụ bầu cử tử vong làm việc tải 374 người ngã bệnh mệt mỏi [1] Những hạn chế thách thức vô lớn hệ thống bầu cử giấy Bầu cử điện tử (e-voting) khái niệm khơng cịn xa lạ với nước phát triển, đặc biệt Bắc Mỹ Châu Âu Tuy nhiên, khái niệm tương đối Việt Nam Bầu cử điện tử giải hạn chế phương pháp bầu cử giấy Bằng việc triển khai hệ thống bầu cử điện tử, cử tri tự tay bỏ phiếu cho dù họ nơi đâu, tính an ninh phiếu đảm bảo phải vận chuyển phiếu cách thủ công, bầu cử điện tử giảm số lượng nhân lực cần thiết để phục vụ cho công tác bầu cử xuống mức tối thiểu Mặc dù có nhiều tiến hệ thống bầu cử truyền thống, bầu cử điện tử tồn số hạn chế như: hệ thống máy chủ bị cơng cài mã độc phá hỏng kết bầu cử; kết phiếu bầu bị thay đổi có người cố tình can thiệp 44 Hình 3.14: Xem thơng tin ứng viên Hình 3.15: Kiểm tra số lượng phiếu bầu ứng viên 45 Hình 3.16: Xem thơng tin cử tri Hình 3.17: Lấy thông tin số lượng phiếu bầu cử trị 46 Hình 3.18: Cử tri thực bỏ phiếu cập nhật trạng thái bỏ phiếu cho cử tri 47 Hình 3.19: Kiểm tra lại thông tin cử tri sau bỏ phiếu 48 Hình 3.20: Lấy thơng tin số lượng phiếu bầu ứng viên Hình 3.21: Kết nối nút vào mạng blockchain có 49 3.3 Xây dựng mơ hình kịch thử nghiệm Sau triển khai hệ thống, luận văn thử nghiệm việc bỏ phiếu (vai trò cử tri) tổng hợp kết (vai trò quản tri viên) đạt kết sau: Hình 3.22: Đăng nhập hệ thống 50 Hình 3.23: Tiến hành bỏ phiếu 51 Hình 3.24: Tổng hợp kết Để đánh giá hiệu hệ thống, luận văn tiến hành thử nghiệm việc gửi yêu cầu lấy liệu (request get data) yêu cầu tạo liệu (request put data) hệ thống blockchain với nút nút sau: - Luận văn viết đoạn script giả lập (chạy multithread) để tạo số lượng yêu cầu cần thiết - Yêu cầu lấy liệu (request get data): Luận văn thực yêu cầu lấy tổng số phiếu bầu mà ứng viên sở hữu (Số phiếu mà ứng viên bầu) - Yêu cầu tạo liệu (request put data): Luận văn thực yêu cầu gửi phiếu bầu từ địa ví cử tri đến địa ví ứng viên (Thực bỏ phiếu) 52 - Tổng số yêu cầu: Là số lượng thread tạo để chạy thực nghiệm - Thời gian trung bình xử lý yêu cầu (ms): Là trung bình cộng thời gian xử lý yêu cầu - Số lượng yêu cầu xử lý giây: Là số yêu cầu mà hệ thống xử lý giây (Do yêu cầu xử lý đồng thời) - Thời gian trung bình xác nhận giao dịch (ms): Là trung bình cộng thời gian xác nhận yêu cầu Dưới số kết thực nghiệm: Bảng 3.5: Thực nghiệm gửi yêu cầu lấy liệu hệ thống blockchain với nút Tổng số Thời gian trung bình xử lý Số lượng yêu cầu xử lý yêu cầu yêu cầu (ms) giây 10 296.91 33.56 50 371.3 120.19 100 419.2 198.81 500 1033.69 299.4 1000 971.79 31.73 5000 6084.33 113.34 10000 11838.36 181.31 Bảng 3.6: Thực nghiệm gửi yêu cầu tạo liệu hệ thống blockchain với nút Tổng số Thời gian trung Số lượng yêu cầu Thời gian trung yêu cầu bình xử lý yêu cầu xử lý bình xác nhận giao (ms) giây dịch (ms) 10 108.32 12.87 4.6 50 221.72 74.96 3.58 100 369.28 96.71 7.95 500 2173.59 93.46 16.53 53 1000 64730.7 7.85 8.94 5000 483365.43 5.03 8.62 10000 1642601.62 2.91 8.29 Bảng 3.7: Thực nghiệm gửi yêu cầu lấy liệu hệ thống blockchain với nút Tổng số Thời gian trung bình xử lý Số lượng yêu cầu xử lý yêu cầu yêu cầu (ms) giây 10 298.21 32.01 50 380 117.37 100 448.63 186.92 500 1119.44 302.66 1000 1102.32 32.54 5000 4528.08 99.64 10000 11686.45 78.77 Bảng 3.8: Thực nghiệm gửi yêu cầu tạo liệu hệ thống blockchain với nút Tổng số Thời gian trung Số lượng yêu cầu Thời gian trung yêu cầu bình xử lý yêu cầu xử lý bình xác nhận giao (ms) giây dịch (ms) 10 114.42 12.34 17.77 50 237.13 75.58 4.72 100 342.15 91.53 20.88 500 2256.12 90.14 22.73 1000 65567.43 7.12 8.64 5000 491322.42 4.52 9.95 10000 1698271.32 2.89 8.85 54 3.4 Một số kết quả, nhận xét đánh giá Trong thực tế, hệ thống bầu cử điện tử bị cơng lúc Luận văn đưa vài tình giả định mà hệ thống bị cơng cách thức chống công hệ thống sau: - Hacker giả mạo ID cử tri để xâm nhập vào hệ thống: Để xâm nhập vào hệ thống, hacker cần có mã ID cử tri (là 32 ký tự bất kỳ), dùng phương pháp thử, hacker cần tối đa 36 lần thử, trường hợp tìm ID cử tri, hacker cần phải tìm tương ứng Ngồi ra, hacker tự sinh chuỗi ID gồm 32 ký tự thử đăng nhập vào hệ thống Tuy nhiên, danh sách ID quản lý blockchain ID mà hacker tự sinh không tồn blockchain hệ thống từ chối truy cập Như vậy, việc giả mạo ID cử tri để xâm nhập vào hệ thống khó khăn - Quản trị viên cố tình vào theo dõi xem cử tri bỏ phiếu cho ai: Việc không thể, hệ thống không lưu thông tin cá nhân cử tri Quản trị viên xem phiếu bầu gửi từ địa (tương ứng với ID) cử tri đến địa cử ứng viên mà Việc truy xuất thông tin cử tri - Quản trị viên cố tình đăng nhập ID cử tri để thực bỏ phiếu: Quản trị viên xem ID cử tri Tuy nhiên mật lưu blockchain mã hóa thuật tốn SHA256 có sử dụng salt Việc nhìn thấy mật mã hóa khơng thể giúp cho cử tri dịch ngược mật thực cử tri Sau xây dựng hệ thống bầu cử điện tử ứng dụng công nghệ blockchain, luận văn thực so sánh mơ hình bầu cử: bầu cử truyền thống, bầu cử điện tử (Client-Server), bầu cử điện tử ứng dụng blokchain Kết thể bảng đây: Bảng 3.9: So sánh hình thức bầu cử 55 Nội dung so sánh Thiết bị sử dụng Chi phí Quy mơ Bầu cử truyền Bầu cử điện tử Bầu cử điện tử thống (Client – Server) (Blockchain) Giấy Hòm bỏ Máy chủ thiết Máy chủ thiết phiếu bị điện tử có sử bị điện tử có sử dụng Internet dụng Internet Cao (Chi phí giấy Thấp (Chỉ tốn chi Thấp (Chỉ tốn chi nhân cơng) phí triển khai ban phí triển khai ban đầu) đầu) Dễ dàng mở rộng Dễ dàng mở rộng Phụ thuộc vào kích thước hịm bỏ quy mô lớn quy mô lớn phiếu Tổng hợp kết Khó khăn tốn Dễ dàng Dễ dàng Bảo mật cho cử tri Đảm bảo Không đảm bảo Đảm bảo Nguy công Không sợ bị Có thể cơng Xác suất cơng cơng vào máy chủ và thay đổi đổi kết thay đổi kết quả nhỏ nhân công Như vậy, luận văn đưa mơ hình ứng dụng công nghệ blockchain cho bầu cử điện tử, đồng thời xây dựng mơ hình thực nghiệm sử dụng JavaEE Multichain làm tảng Mơ hình chứng minh tính ứng dụng để thay mơ hình bầu cử giấy truyền thống đưa điểm mấu chốt để đảm bảo an tồn so với mơ hình bầu cử điện tử (Client-Server) Tuy nhiên, luận văn dừng lại việc thử nghiệm nút mạng blockchain web server Trong tương lai, luận văn mong muốn có điều kiện để mở rộng hệ thống đưa vào ứng dụng thực tế 56 KẾT LUẬN Luận văn tập trung nghiên cứu bầu cử ứng dụng công nghệ blockchain cho bầu cử điện tử Cụ thể, luận văn đạt số kết sau: Tìm hiểu bầu cử, bầu cử truyền thống bầu cử điện tử theo mô hình cũ (Client – Server) Tìm hiểu, nghiên cứu blockchain khả ứng dụng blockchain cho bầu cử điện tử Đưa mơ hình thử nghiệm với tảng Multichain đạt số kết định Luận văn tiếp tục phát triển theo hướng sau: Tìm hiểu thêm tảng blockchain khác, mở rộng số lượng nút mạng lưới blockchain số lượng web server để đưa vào ứng dụng thực tế 57 DANH MỤC TÀI LIỆU THAM KHẢO [1] Ánh Ngọc, “Hơn 90 nhân viên kiểm phiếu tử vong kiệt sức bầu cử Indonesia,” vnexpress, 2019 [Online] Available: https://vnexpress.net/the-gioi/hon-90-nhan-vien-kiem-phieu-tu-vong-vi-kietsuc-trong-cuoc-bau-cu-indonesia-3913896.html [Accessed: 28-Jul-2019] [2] L.K.Tùng, “Hỏi - Đáp: ABC bầu cử,” Nhà xuất Hồng Đức, 2016 [3] PGS.TS Nguyễn Quốc Sửu, “Bầu cử Việt Nam – Những nội dung cần quan tâm,” Quản lý nhà nước, 2019 [Online] Available: https://www.quanlynhanuoc.vn/2019/08/01/bau-cu-o-viet-nam-nhung-noidung-can-quan-tam/ [Accessed: 30-Aug-2019] [4] Wikipedia, “Blockchain,” Wikipedia, 2019 [Online] Available: https://vi.wikipedia.org/wiki/Blockchain [Accessed: 25-Sep-2019] [5] S Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” J Gen Philos Sci., vol 39, no 1, pp 53–67, 2008 [6] B Shahzad and J Crowcroft, “Trustworthy Electronic Voting Using Adjusted Blockchain Technology,” IEEE Access, vol 7, pp 24477–24488, 2019 [7] A Tar, “Smart Contracts, Explained,” Cointelegraph, 2017 [Online] Available: https://cointelegraph.com/explained/smart-contracts-explained [Accessed: 26-Sep-2019] [8] W Stallings and M J Horton, CRYPTOGRAPHY AND NETWORK SECURITY PRINCIPLES AND PRACTICE SEVENTH EDITION GLOBAL EDITION British Library Cataloguing-in-Publication Data [9] M Sumagita and I Riadi, “Analysis of Secure Hash Algorithm (SHA) 512 for Encryption Process on Web Based Application,” vol 7, no 4, pp 373– 381, 2018 [10] Dang Minh Tuan, “Tổng quan blockchain.” 2019 58 [11] A Kujawa, “Bitcoins, Pools and Thieves,” Malwarebytes lab blog, 2016 [Online] Available: https://blog.malwarebytes.com/cybercrime/2013/11/bitcoins-pools-andthieves/ [Accessed: 30-Sep-2019] [12] A Schneider, C Meter, and P Hagemeister, “Survey on Remote Electronic Voting,” 2017 [13] L Fouard, M Duclos, and P Lafourcade, “Survey on electronic voting schemes,” Support by ANR …, 2007 [14] R Verbij, “Dutch e-voting opportunities,” EEMCS Univ Twente, vol 8, no 33, p 44, 2014 [15] C S L Dr Gideon Greenspan, Founder and CEO, “MultiChain Private Blockchain — White Paper,” Web, vol 29, no 3, pp 274–279, 2002 [16] Gideon Greenspan, “MultiChain 1.0 beta and 2.0 roadmap,” MultiChain, 2017 [Online] Available: https://www.multichain.com/blog/2017/06/multichain-1-beta-2-roadmap/ [Accessed: 02-Oct-2019] [17] Multichain, “MultiChain JSON-RPC API commands,” Multichain, 2019 [Online] Available: https://www.multichain.com/developers/json-rpc-api/ [Accessed: 20-Aug-2019] [18] SimplyUb, “MultichainJavaAPI,” Github, 2019 [Online] Available: https://github.com/SimplyUb/MultiChainJavaAPI [Accessed: 01-Oct-2019] ... hình ứng dụng blockchain cho bầu cử điện tử 25 Dựa đặc tính blockchain yêu cầu hệ thống bầu cử điện tử Luận văn đưa mơ hình ứng dụng blockchain cho bầu cử điện tử sử dụng mạng blockchain riêng... công 2.2.2 Giới thiệu mơ hình ứng dụng blockchain cho bầu cử điện tử a Bài tốn Luận văn đưa mơ hình ứng dụng công nghệ blockchain cho bầu cử trường đại học, với mục đích chứng minh tính ứng dụng. .. lệch liệu khả bị công phá hỏng kết hệ thống bầu cử điện tử cũ Cấu trúc luận văn Luận văn gồm chương: - Chương 1: Tổng quan bầu cử bầu cử điện tử - Chương 2: Blockchain bầu cử điện tử - Chương 3: