1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng công nghệ blockchain để xây dựng hệ thống bầu cử công khai

77 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Công Nghệ Blockchain Để Xây Dựng Hệ Thống Bầu Cử Công Khai
Tác giả Nguyễn Văn Côn
Người hướng dẫn PGS. TSKH. Trần Quốc Chiến
Trường học Trường Đại học Sư phạm Đà Nẵng
Chuyên ngành Hệ thống thông tin
Thể loại luận văn
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 77
Dung lượng 8,56 MB

Cấu trúc

  • 1. Lý do chọn đề tài (11)
  • 2. Mục tiêu nghiên cứu (12)
  • 3. Đối tượng và phạm vi nghiên cứu (0)
  • 4. Phương pháp nghiên cứu (0)
  • 5. Ý nghĩa của đề tài (0)
  • 6. Bố cục luận văn (13)
    • 1.1. Tổng quan về công nghệ Blockchain (14)
      • 1.1.1. Giới thiệu công nghệ Blockchain (14)
      • 1.1.2. Nền tảng lý thuyết (15)
      • 1.1.3. Tính chất của Blockchain (20)
      • 1.1.4. Phân loại các hệ thống blockchain (21)
      • 1.1.5. Các phiên bản Blockchain hiện nay (21)
      • 1.1.6. Các ứng dụng điển hình của công nghệ Blockchain (24)
    • 1.2. Bầu cử (28)
      • 1.2.1. Khái niệm Bầu cử (28)
      • 1.2.2. Các nguyên tắc của bầu cử (28)
      • 1.2.3. Bỏ phiếu kín (28)
    • 2.1. Đặt vấn đề (0)
      • 2.1.1. Một số vấn đề tồn tại trong mô hình bầu cử hiện nay (34)
      • 2.1.2. Bỏ phiếu điện tử (34)
      • 2.1.3. Mô hình bầu cử công khai ứng dụng công nghệ Blockchain (37)
      • 2.1.4. Một số dự án ứng dụng công nghệ blockchain trong việc bầu cử trên thế giới (39)
    • 2.2. Phân tích hệ thống (40)
      • 2.2.1. Đặc tả chức năng (40)
      • 2.2.2. Sơ đồ Use Case và sơ đồ nghiệp vụ (41)
      • 2.2.3. Kiến trúc tổng quan (43)
    • 3.1. Ethereum Network (45)
    • 3.2. Công nghệ và cài đặt môi trường (0)
      • 3.2.1. Ví điện tử và cách sử dụng (47)
      • 3.2.2. Cài đặt môi trường và thiết lập nút blockchain cục bộ (49)
    • 3.3. Thực nghiệm và đánh giá (0)
      • 3.3.1. Môi trường phát triển và công cụ (51)
      • 3.3.2. Kết quả thử nghiệm (51)
      • 3.3.3. Đánh giá kết quả (59)
  • PHỤ LỤC (0)

Nội dung

Mục tiêu nghiên cứu

 Hiểu rõ về bầu cử, các mô hình bầu cử, các quy trình và nguyên tắt của bầu cử

 Hiểu rõ về công nghệ blockchain

 Áp dụng công nghệ blockchain vào quy trình bầu cử

 Thiết kế được mô hình ứng dụng blockchain vào việc bầu cử

 Sử dụng nền tảng Blockchain để cài đặt hệ thống

3 ối tƣợng và phạm vi nghiên cứu

- Công nghệ, kỹ thuật, nền tảng xây dựng hệ thống Blockchain

- Bầu cử, mô hình bầu cử và quy trình bầu cử

- Mô hình blockchain cho các quy trình bầu cử

- Xây dựng mô hình ứng dụng kỹ thuật blockchain cho các quy trình bầu cử

- Sử dụng nền tảng blockchain Ethereum network để cài đặt mô hình bầu cử

4 Phươn pháp n hiên cứu Đề tài luận văn được thực hiện nghiên cứu theo quy trình sau:

Nghiên cứu tổng quan: Nghiên cứu về công nghệ blockchain, các kỹ thuật cơ bản và tính chất của Blockchain

Nghiên cứu mô hình Xây dựn c i đặt và thử nghiệm

Nghiên cứu mô hình: Nghiên cứu các mô hình bầu cử và đề xuất mô hình ứng dụng công nghệ blockchain cho bầu cử

Xây dựng cài đặt và thử nghiệm: Xây dựng hệ thống bầu cử và cài đặt lên blockchain network sau đó chạy thử nghiệm hệ thống

5 Ý n hĩa của đề tài Đề xuất được giải pháp ứng dụng công nghệ blockchain vào bầu cử để nâng cao chất lượng bầu cử

Thiết kế và xây dựng được hệ thống bầu cử công khai trên mô hình Blockchain

Các kết quả của luận văn thu được sau khi thực hiện các nội dung nghiên cứu trên được tổng hợp trên bản thảo gồm 3 chương chính như sau:

Chương 1: Nghiên cứu tổng quan về công nghệ Blockchain cung cấp cái nhìn tổng quát về lý thuyết và các kỹ thuật chính liên quan Ngoài ra, chương này cũng trình bày mô hình bầu cử hiện đang được áp dụng, giúp hiểu rõ hơn về ứng dụng của Blockchain trong lĩnh vực này.

Chươn 2: Mô hình bầu cử ứng dụng công nghệ blockchain

Trong chương này, luận văn phân tích những hạn chế của các mô hình bầu cử hiện tại và đề xuất giải pháp để khắc phục các khuyết điểm này Đồng thời, bài viết cũng trình bày ứng dụng công nghệ Blockchain vào mô hình bầu cử nhằm cải thiện những vấn đề còn tồn tại trong các phương pháp bầu cử truyền thống.

Chươn 3: Xây dựng hệ thống và thử nghiệm

Hệ thống bầu cử công khai sử dụng công nghệ Blockchain nhằm đảm bảo tính minh bạch và bảo mật Bài viết trình bày các công nghệ được áp dụng trong việc xây dựng hệ thống, đặc biệt là việc triển khai trên mạng Ethereum Toàn bộ quy trình bầu cử được mô tả chi tiết, nhấn mạnh lợi ích của việc ứng dụng Blockchain trong quản lý bầu cử công khai.

Xu hướng phát triển của công nghệ blockchain đang ngày càng mạnh mẽ, với nhiều ứng dụng tiềm năng trong các lĩnh vực khác nhau Luận văn đã đạt được những kết quả đáng kể, chứng minh tính khả thi và hiệu quả của các giải pháp blockchain trong việc nâng cao tính minh bạch và bảo mật dữ liệu Để tiếp tục phát triển, các định hướng nghiên cứu tiếp theo sẽ tập trung vào việc cải thiện hiệu suất và khả năng mở rộng của công nghệ này, cũng như khám phá các ứng dụng mới trong các ngành công nghiệp khác nhau.

1.1 Tổng quan về công nghệ Blockchain

1.1.1 Giới thiệu công nghệ Blockchain

Blockchain là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối được liên kết bằng mã hóa và mở rộng theo thời gian Mỗi khối chứa thông tin về thời gian khởi tạo, liên kết với khối trước đó, kèm theo mã thời gian và dữ liệu giao dịch Thiết kế của Blockchain nhằm chống lại việc thay đổi dữ liệu, và một khi dữ liệu đã được mạng lưới chấp nhận, không thể thay đổi được.

Blockchain được thiết kế với hệ thống tính toán phân cấp và khả năng chịu lỗi byzantine cao, cho phép đạt được sự đồng thuận phân cấp Công nghệ này rất phù hợp để ghi lại các sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, danh tính và chứng minh nguồn gốc Điều này có tiềm năng xóa bỏ những hậu quả nghiêm trọng khi dữ liệu bị thay đổi trong bối cảnh thương mại toàn cầu.

Một số trích dẫn đáng chú ý về công nghệ này được liệt kê dưới đây:

Thế hệ đầu tiên của cuộc cách mạng kỹ thuật số đã cung cấp cho chúng ta thông tin từ Internet, trong khi thế hệ thứ hai, nhờ vào công nghệ blockchain, mang lại giá trị cho Internet Điều này tạo ra một nền tảng mới, giúp định hình lại thế giới kinh doanh và cải thiện trật tự công việc của con người.

Blockchain là một cơ sở dữ liệu phân tán toàn cầu, hoạt động trên hàng triệu thiết bị và mở cho mọi người, cho phép lưu trữ và quản lý thông tin cũng như tài sản một cách an toàn và riêng tư Sự tin tưởng trong hệ thống này được xây dựng thông qua sự hợp tác của cộng đồng và các hợp đồng thông minh, thay vì phụ thuộc vào các trung gian như chính phủ và ngân hàng.

Blockchain được Satoshi Nakamoto phát minh vào năm 2008 và ra mắt vào năm 2009 như một phần quan trọng của Bitcoin, hoạt động như một cuốn sổ cái cho tất cả các giao dịch Công nghệ này sử dụng mạng lưới ngang hàng và hệ thống dữ liệu phân cấp, giúp quản lý Bitcoin blockchain một cách tự động Sự ra đời của blockchain đã giúp Bitcoin trở thành loại tiền tệ kỹ thuật số đầu tiên giải quyết vấn đề chi tiêu gian lận (double spending) Công nghệ này đã mở ra nguồn cảm hứng cho nhiều ứng dụng khác.

Hàm băm (hash function) là một thuật toán tạo ra giá trị băm cho từng khối dữ liệu, giúp phân biệt chúng như một khóa Mặc dù hiện tượng trùng khóa (đụng độ) có thể xảy ra, các nhà phát triển luôn cố gắng cải thiện thuật toán để giảm thiểu tình trạng này Hàm băm thường được ứng dụng trong bảng băm, giúp giảm chi phí tính toán khi tìm kiếm khối dữ liệu trong tập hợp, vì so sánh giá trị băm nhanh hơn so với so sánh các khối dữ liệu lớn.

Với sự phổ biến của bảng băm, hầu hết các ngôn ngữ lập trình hiện nay đều cung cấp thư viện ứng dụng bảng băm, thường được gọi là thư viện collection Thư viện này bao gồm các cấu trúc như tập hợp, danh sách, bảng, ánh xạ và từ điển Các lập trình viên thường chỉ cần viết hàm băm cho các đối tượng để tích hợp với thư viện bảng băm đã có sẵn.

Một hàm băm tốt phải thỏa mãn các điều kiện sau:

- Các khoá được phân bố đều trong bảng

- Ít xảy ra đụng độ

- Xử lý được các loại khóa có kiểu dữ liệu khác nhau

Một số hàm băm phổ biến:

MD5, được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế hàm băm MD4, đã trở thành tiêu chuẩn vào năm 1992 trong RFC 1321 Hàm băm này tạo ra bản tóm tắt 128 bit (16 byte) Tuy nhiên, từ đầu những năm 2000, MD5 đã trở nên không an toàn trước sức mạnh tính toán của các hệ thống hiện đại Sự phát triển của công nghệ thám mã gần đây cho phép tính toán các va chạm trong MD5 với độ phức tạp chỉ 2^21, thực hiện trong vài giây, làm cho thuật toán này không còn phù hợp với hầu hết các ứng dụng thực tế.

SHA-1, viết tắt của Secure Hash Algorithm, được phát triển trong khuôn khổ dự án Capstone của Chính phủ Hoa Kỳ Phiên bản đầu tiên, gọi là SHA-0, được công bố vào năm 1993 dưới tiêu đề Secure Hash Standard, FIPS PUB 180 bởi NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ) Tuy nhiên, phiên bản này đã bị NSA rút lại ngay sau khi phát hành và được thay thế bởi SHA-1, phiên bản sửa đổi được công bố vào năm 1995 trong FIPS PUB 180-1 SHA-1 tạo ra bản tóm tắt có kích thước 160 bit, được sử dụng rộng rãi trong các ứng dụng bảo mật.

Thuật toán SHA-1, với kích thước 160 bit (20 byte), đã bị coi là không đủ an toàn do có khả năng xảy ra va chạm Các va chạm này có thể được tạo ra thông qua các tấn công phá vỡ, làm giảm độ tin cậy của hàm băm này trong việc bảo vệ dữ liệu.

SHA-2 là một tập hợp các hàm băm mật mã do Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) thiết kế và được công bố lần đầu vào năm 2001 Các hàm băm này được xây dựng dựa trên cấu trúc Merkle–Damgård và sử dụng chức năng nén một chiều được phát triển từ cấu trúc Davies–Meyer, dựa trên một hệ mật mã khối chuyên dụng.

Bố cục luận văn

Tổng quan về công nghệ Blockchain

1.1.1 Giới thiệu công nghệ Blockchain

Blockchain là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối liên kết với nhau qua mã hóa Mỗi khối chứa thông tin về thời gian khởi tạo, mã thời gian và dữ liệu giao dịch, đồng thời liên kết với khối trước đó Thiết kế của blockchain đảm bảo tính toàn vẹn của dữ liệu, khiến cho việc thay đổi thông tin đã được mạng lưới chấp nhận là không thể.

Blockchain được thiết kế với hệ thống tính toán phân cấp và khả năng chịu lỗi byzantine cao, cho phép đạt được sự đồng thuận phân cấp Nhờ vào đặc điểm này, Blockchain rất phù hợp để ghi lại các sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, quản lý danh tính và chứng minh nguồn gốc Công nghệ này có tiềm năng lớn trong việc loại bỏ các hậu quả nghiêm trọng khi dữ liệu bị thay đổi trong bối cảnh thương mại toàn cầu.

Một số trích dẫn đáng chú ý về công nghệ này được liệt kê dưới đây:

Thế hệ đầu tiên của cuộc cách mạng kỹ thuật số đã cung cấp cho chúng ta thông tin qua Internet, trong khi thế hệ thứ hai, nhờ vào công nghệ blockchain, mang đến giá trị cho Internet Điều này tạo ra một nền tảng mới để tái định hình thế giới kinh doanh và cải thiện cách thức làm việc của con người.

Blockchain là một cơ sở dữ liệu phân tán toàn cầu, hoạt động trên hàng triệu thiết bị và mở cho mọi người, cho phép lưu trữ không chỉ thông tin mà còn các tài sản giá trị như danh hiệu, hành vi, danh tính và phiếu bầu Công nghệ này đảm bảo việc di chuyển, lưu trữ và quản lý an toàn, riêng tư Sự tin tưởng trong blockchain được xây dựng qua sự hợp tác giữa cộng đồng và mã thông minh, thay vì phụ thuộc vào các trung gian mạnh mẽ như chính phủ và ngân hàng.

Blockchain được Satoshi Nakamoto phát minh vào năm 2008 và ra mắt vào năm 2009 như một phần cốt lõi của Bitcoin, hoạt động như một cuốn sổ cái cho tất cả các giao dịch Công nghệ này sử dụng mạng lưới ngang hàng và hệ thống dữ liệu phân cấp, cho phép quản lý tự động Bitcoin blockchain Sự ra đời của blockchain đã giúp Bitcoin trở thành loại tiền tệ kỹ thuật số đầu tiên giải quyết vấn đề chi tiêu gian lận (double spending), từ đó mở ra cơ hội cho nhiều ứng dụng khác.

Hàm băm (hash function) là một thuật toán tạo ra giá trị băm cho mỗi khối dữ liệu, như chuỗi ký tự hay đối tượng lập trình Giá trị băm hoạt động như một khóa để phân biệt các khối dữ liệu, mặc dù hiện tượng trùng khóa (đụng độ) có thể xảy ra, do đó, các thuật toán cần được cải thiện để giảm thiểu tình trạng này Hàm băm thường được sử dụng trong bảng băm để tối ưu hóa chi phí tính toán khi tìm kiếm khối dữ liệu trong tập hợp, nhờ vào việc so sánh giá trị băm nhanh hơn so với so sánh các khối dữ liệu có kích thước lớn.

Bảng băm hiện nay rất phổ biến và hầu hết các ngôn ngữ lập trình đều cung cấp thư viện ứng dụng cho bảng băm, thường được gọi là thư viện collection Thư viện này bao gồm các cấu trúc dữ liệu như tập hợp, danh sách, bảng, ánh xạ và từ điển Các lập trình viên chỉ cần viết hàm băm cho các đối tượng để tích hợp với thư viện bảng băm đã có sẵn.

Một hàm băm tốt phải thỏa mãn các điều kiện sau:

- Các khoá được phân bố đều trong bảng

- Ít xảy ra đụng độ

- Xử lý được các loại khóa có kiểu dữ liệu khác nhau

Một số hàm băm phổ biến:

MD5, được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế hàm băm MD4, đã trở thành tiêu chuẩn vào năm 1992 theo RFC 1321, với khả năng tạo ra bản tóm tắt 128 bit (16 byte) Tuy nhiên, vào đầu những năm 2000, MD5 đã trở nên không an toàn do sức mạnh tính toán của các hệ thống hiện đại Sự phát triển công nghệ thám mã gần đây cho phép tính toán các va chạm trong MD5 với độ phức tạp 2^21 chỉ trong vài giây, làm cho thuật toán này không còn phù hợp với nhiều ứng dụng thực tế.

SHA-1, viết tắt của Secure Hash Algorithm, được phát triển trong khuôn khổ dự án Capstone của Chính phủ Hoa Kỳ Phiên bản đầu tiên, gọi là SHA-0, được NIST công bố vào năm 1993 trong FIPS PUB 180 nhưng ngay lập tức bị NSA thu hồi Phiên bản sửa đổi, SHA-1, được phát hành vào năm 1995 trong FIPS PUB 180-1 và tạo ra bản tóm tắt có kích thước 160 bit, đóng vai trò quan trọng trong bảo mật dữ liệu.

Thuật toán SHA-1, với độ dài 160 bit (20 byte), đã chứng minh rằng có thể tạo ra các va chạm thông qua tấn công phá vỡ Vì lý do này, SHA-1 hiện nay được xem là không đủ an toàn cho các ứng dụng bảo mật.

SHA-2 là một bộ hàm băm mật mã do Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) thiết kế và công bố lần đầu vào năm 2001 Các hàm này được xây dựng dựa trên cấu trúc Merkle–Damgård, với chức năng nén một chiều được phát triển từ cấu trúc Davies–Meyer, sử dụng một hệ mật mã khối chuyên dụng.

Hàm băm là công cụ quan trọng trong khoa học máy tính, đặc biệt trong việc xử lý dữ liệu lớn Khi kết hợp với mã hóa, các thuật toán băm cung cấp khả năng bảo mật và xác thực linh hoạt, phục vụ nhiều mục đích khác nhau.

Hàm băm được sử dụng trong nhiều ứng dụng thực tế, sau đây là một số ứng dụng nổi bật của hàm băm:

Để đảm bảo tính toàn vẹn của dữ liệu, khi C gửi tài liệu T cho V, C sẽ gửi kèm theo giá trị băm của T và thuật toán băm Khi nhận tài liệu, V sử dụng thuật toán băm đã nhận để băm lại T và so sánh với giá trị băm do C cung cấp Nếu hai giá trị băm không trùng khớp, điều đó chứng tỏ tài liệu T đã bị chỉnh sửa.

Hàm băm hỗ trợ các thuật toán chữ ký số bằng cách tạo ra đại diện cho tài liệu, cho phép ký lên đại diện này thay vì ký trực tiếp trên tài liệu gốc có dung lượng lớn Điều này giúp rút ngắn thời gian thực hiện của quá trình ký số một cách đáng kể.

Bảng băm là một cấu trúc dữ liệu hiệu quả, cho phép tổ chức, lưu trữ và tìm kiếm dữ liệu nhanh chóng và thuận tiện.

Bầu cử

Bầu cử là phương pháp cho phép nhóm người, như trong các cuộc họp hoặc đơn vị bầu cử, đưa ra quyết định tập thể hoặc thể hiện ý kiến sau khi thảo luận Trong nền dân chủ, cử tri bầu chọn người đại diện thông qua bỏ phiếu Cư dân của một khu vực do quan chức được bầu đại diện được gọi là "cử tri", và những người bỏ phiếu cho ứng cử viên của họ cũng được gọi là "cử tri" Có nhiều hệ thống thu thập phiếu bầu khác nhau, nhưng chỉ những hệ thống phục vụ cho đại diện theo tỷ lệ mới được sử dụng trong các cuộc bầu cử.

1.2.2 Các nguyên tắc của bầu cử

Nguyên tắc phổ thông đầu phiếu là một trong những nguyên tắc cơ bản của chế độ bầu cử, khẳng định rằng mọi công dân đều có quyền bầu cử mà không phân biệt dân tộc, giới tính, thành phần xã hội, tín ngưỡng, tôn giáo, trình độ văn hóa, nghề nghiệp hay thời hạn cư trú Tuy nhiên, những người mất trí hoặc bị tước quyền bầu cử theo quy định của pháp luật sẽ không được tham gia Nguyên tắc bình đẳng trong bầu cử cũng đảm bảo rằng mọi công dân có cơ hội ngang nhau để tham gia, nghiêm cấm mọi hình thức phân biệt.

Bầu cử trực tiếp cho phép cử tri thể hiện ý chí của mình thông qua lá phiếu, trực tiếp bầu ra đại biểu mà không cần qua bất kỳ cấp đại diện nào.

Nguyên tắc bỏ phiếu kín đảm bảo rằng cử tri có thể thể hiện ý chí của mình mà không bị theo dõi hay kiểm soát từ bên ngoài Mục đích của nguyên tắc này là tạo ra một môi trường tự do, cho phép cử tri bày tỏ quan điểm một cách đầy đủ và chính xác.

Bỏ phiếu kín là nguyên tắc thiết yếu, đảm bảo quyền tự do thể hiện nguyện vọng của cử tri.

Thủ tục bỏ phiếu được quy định rõ ràng bởi pháp luật bầu cử của từng quốc gia, mặc dù có sự khác biệt về thể thức Tuy nhiên, một nguyên tắc chung là việc bỏ phiếu phải được thực hiện một cách kín đáo, và chỉ những cá nhân có tên trong danh sách cử tri mới được quyền tham gia bỏ phiếu.

Khi đến phòng bỏ phiếu, cử tri cần xuất trình giấy tờ tùy thân hoặc thẻ cử tri do nhân viên bầu cử cấp Sau khi nhận phiếu bầu, cử tri sẽ thực hiện việc ghi phiếu trong phòng kín, sau đó gấp lại hoặc cho vào phong bì và tự tay bỏ vào thùng phiếu.

Theo thông lệ trên, pháp luật hiện hành ở Việt Nam cũng quy định rất cụ thể về thể thức bỏ phiếu

Trong trường hợp xảy ra sự kiện bất ngờ làm gián đoạn việc bỏ phiếu, Tổ bầu cử cần nhanh chóng niêm phong hòm phiếu và các tài liệu liên quan, đồng thời báo cáo kịp thời cho Ban bầu cử Ngoài ra, cần thực hiện các biện pháp cần thiết để đảm bảo việc bỏ phiếu có thể tiếp tục diễn ra.

Nếu cần hoãn ngày bỏ phiếu vì lý do đặc biệt, tổ bầu cử phải nhanh chóng thông báo cho ban bầu cử để hội đồng bầu cử xem xét và quyết định.

Trước khi tiến hành bỏ phiếu, Tổ bầu cử cần kiểm tra hòm phiếu dưới sự chứng kiến của cử tri Mỗi cử tri có quyền nhận và bỏ một phiếu bầu, phiếu này phải được tổ bầu cử phát ra và có dấu xác nhận Cử tri bắt buộc phải xuất trình thẻ cử tri và tự mình đến phòng bỏ phiếu, không được bầu qua thư Tất cả mọi người cần tuân thủ nội quy tại phòng bỏ phiếu.

Luật quy định rằng cử tri phải tự mình tham gia bầu cử, tự nhận phiếu bầu và không được nhờ người khác nhận thay Cử tri cũng phải tự viết phiếu bầu và gạch tên ứng cử viên mà mình không tín nhiệm, tuân thủ nguyên tắc bầu cử trực tiếp.

Cử tri không thể tự viết phiếu bầu có thể nhờ người khác viết hộ, nhưng cần tự mình bỏ phiếu và đảm bảo bí mật Những người tàn tật không thể tự bỏ phiếu có thể nhờ người khác thực hiện việc này Đối với cử tri ốm đau, già yếu hoặc tàn tật không thể đến phòng bỏ phiếu, Tổ bầu cử sẽ mang hòm phiếu phụ và phiếu bầu đến nơi cư trú của họ để hỗ trợ quá trình bầu cử.

Người vừa câm vừa điếc không nằm trong các trường hợp bị cấm ghi tên vào danh sách cử tri Do đó, họ hoàn toàn có quyền được ghi tên vào danh sách cử tri và tham gia bầu cử đại biểu Quốc hội.

Khi cử tri không thể tự viết phiếu bầu, họ có thể nhờ người khác viết hộ, nhưng cần tự mình thực hiện việc bỏ phiếu Người viết hộ phải đảm bảo bí mật của phiếu bầu Trong trường hợp cử tri tàn tật không thể tự bỏ phiếu, họ có quyền nhờ người khác thực hiện việc này vào hòm phiếu.

Người viết phiếu hộ cần đảm bảo giữ bí mật thông tin về phiếu bầu của cử tri mà mình hỗ trợ, không được tiết lộ cho bất kỳ ai, kể cả thành viên trong tổ chức bầu cử, về lựa chọn ứng cử viên của cử tri Việc tiết lộ thông tin này sẽ vi phạm nguyên tắc bỏ phiếu kín, ảnh hưởng đến tính bảo mật và quyền riêng tư của cử tri.

Đặt vấn đề

MÔ ÌN BẦU CỬ ỨN DỤN CÔN N Ệ BLOCKC A N

2.1.1 Một số vấn đề tồn tại trong mô hình bầu cử hiện nay

Hiện nay, hình thức bỏ phiếu phổ biến trong các cuộc bầu cử là bỏ phiếu bằng giấy, trong đó cử tri trực tiếp cho phiếu bầu vào hòm phiếu Việc bỏ phiếu phải tuân thủ nguyên tắc bỏ phiếu kín, như đã nêu trong chương I Quá trình bỏ phiếu và kiểm phiếu thường diễn ra trong một khoảng thời gian dài.

Ban bầu cử cần chuẩn bị một số lượng lớn phiếu bầu, xây dựng cơ sở vật chất và tập trung nhân lực cho quá trình bỏ phiếu Việc in ấn số lượng lớn phiếu bầu tiêu tốn nhiều nguồn tài nguyên như giấy, mực và điện Hơn nữa, in phiếu bầu thủ công yêu cầu các biện pháp đảm bảo tính chính xác và ngăn chặn việc giả mạo phiếu bầu.

Cử tri cần trực tiếp đến địa điểm bầu cử để thực hiện quyền bỏ phiếu, trong khi những người ở xa phải ủy quyền cho người khác, dẫn đến nhiều bất đồng trong cộng đồng cử tri Sau khi bỏ phiếu, kết quả phụ thuộc vào ban kiểm phiếu, gây ra sự nghi ngờ về giá trị của phiếu bầu Để giải quyết những vấn đề của việc bỏ phiếu giấy, hình thức bỏ phiếu điện tử đã ra đời, giúp tiết kiệm tài nguyên và giảm thiểu bất cập cho cả ban bầu cử lẫn cử tri.

Bỏ phiếu điện tử là quá trình hiện đại hóa hình thức bỏ phiếu truyền thống, cho phép cử tri truy cập thông tin về cuộc bầu cử và các ứng cử viên qua internet Nhờ đó, cử tri có thể thực hiện quyền bầu chọn trực tuyến một cách thuận tiện và nhanh chóng.

Cử tri có thể truy cập vào địa chỉ máy chủ bầu cử qua trình duyệt web hoặc ứng dụng web được chỉ định bởi ban bầu cử Mỗi cử tri sẽ được xác thực qua tài khoản cá nhân của mình, sau đó điền vào lá phiếu điện tử và gửi về máy chủ của ban bầu cử.

Bỏ phiếu điện tử cần tuân thủ các nguyên tắc của quy trình bỏ phiếu, đảm bảo rằng tất cả các bước thực hiện được thực hiện đầy đủ và minh bạch.

Việc sử dụng dịch vụ bỏ phiếu điện tử không chỉ tăng cường sự tham gia của cử tri mà còn nâng cao hiệu quả tổ chức bầu cử Ban bầu cử có thể theo dõi số lượng cử tri đã bỏ phiếu và xác định số phiếu còn lại một cách dễ dàng Hệ thống này mang lại kết quả nhanh chóng, chính xác và khách quan, đồng thời tiết kiệm giấy tờ và chi phí quản lý Cử tri có thể thực hiện quyền bỏ phiếu của mình một cách thuận tiện mà không cần đến địa điểm bầu cử, giảm thiểu chi phí đi lại, đặc biệt cho những người ở xa Họ có thể bỏ phiếu từ bất kỳ đâu có kết nối internet, với thời gian linh hoạt trong suốt thời hạn bỏ phiếu Hơn nữa, hệ thống bỏ phiếu điện tử đảm bảo tính đơn giản, trung thực và bảo mật cao.

Khi cử tri sử dụng ứng dụng web, họ kết nối với máy chủ trung tâm thông qua trình duyệt web Tất cả mã nguồn và dữ liệu của ứng dụng đều được lưu trữ trên máy chủ này Mỗi khi người dùng thực hiện giao dịch, việc giao tiếp với máy chủ trung tâm là cần thiết để xử lý thông tin.

Mô hình dưới đây diễn tả khái quát về một hệ thống bỏ phiếu điện tử thường thấy hiện nay

- Browser là trình duyệt web cũng có thể là ưng dụng web đóng vai trò giúp người dùng tương tác với hệ thống bỏ phiếu

- Server là hệ thống máy chủ được ban bầu cử sử dụng Mọi mã nguồn của hệ thống đều s được lưu trên server này bào gồm:

+ Mã nguồn giao diện người dùng

+ Mã nguồn hệ thống xử lý các yêu cầu của người dùng và tương tác với cơ sở dữ liệu

+ Toàn bộ cơ sở dữ liệu bao gồm thông tin ứng cử viên, thông tin cử tri và cả kết quả bầu cử

Hình 2.1: Mô hình ứng dụng web

Hệ thống bỏ phiếu điện tử được xây dựng trên nền ứng dụng web, chúng ta s gặp phải một số vấn đề sau:

- Dữ liệu trên cơ sở dữ liệu có thể bị thay đổi: nó có thể được đếm nhiều lần hoặc bị xóa hoàn toàn

Mã nguồn trên máy chủ client có thể được thay đổi bất kỳ lúc nào Chúng ta sử dụng một client front-end truyền thống được viết bằng HTML, CSS và Javascript, kết nối với một chuỗi khối Ethereum cục bộ thay vì một máy chủ back-end Tất cả điều khoản của Smartcontract được viết bằng ngôn ngữ lập trình Solidity và sau đó được triển khai cho Blockchain Ethereum cục bộ, cho phép các tài khoản bắt đầu bỏ phiếu.

2.1.3 Mô hình bầu cử công khai ứng dụng công nghệ Blockchain

Mô hình bỏ phiếu điện tử hiện tại lưu trữ mã nguồn và cơ sở dữ liệu trên server của ban bầu cử, điều này có thể dẫn đến sai sót không mong muốn như thay đổi hoặc xóa dữ liệu Để đảm bảo mọi người có thể tham gia bầu cử một cách công bằng và phiếu bầu của họ được đếm chỉ một lần, cần thiết phải xây dựng hệ thống bỏ phiếu trên nền tảng Blockchain, giúp đảm bảo rằng kết quả không thể bị thay đổi hay xóa.

Blockchain là một mạng và cơ sở dữ liệu kết hợp, hoạt động như một mạng ngang hàng với các nút máy tính chia sẻ dữ liệu và mã Mỗi thiết bị kết nối với blockchain trở thành một nút, giao tiếp với các nút khác và giữ bản sao của toàn bộ dữ liệu trong mạng Điều này loại bỏ sự cần thiết của một máy chủ trung tâm, tạo ra một hệ thống mà các máy tính tương tác trực tiếp với nhau.

Thay vì sử dụng cơ sở dữ liệu tập trung, blockchain chia sẻ dữ liệu giao dịch qua các nút, được tổ chức thành các khối liên kết với nhau, tạo thành một sổ cái công khai Sổ cái này chứa toàn bộ dữ liệu blockchain và được bảo mật bằng băm mật mã, đồng thời được xác thực qua thuật toán đồng thuận Các nút trong mạng đảm bảo rằng tất cả các bản sao dữ liệu trên mạng đều nhất quán.

Chúng ta chỉ cần một server để lưu trữ mã nguồn phục vụ tương tác với người dùng, trong khi toàn bộ mã nguồn hệ thống xử lý yêu cầu và cơ sở dữ liệu hiện được lưu trữ và vận hành trên mạng lưới Blockchain Sơ đồ hệ thống được mô tả như sau:

Hình 2.2: Sơ đồ Ứng dụng trên Blockchain

Toàn bộ mã nguồn và cơ sở dữ liệu được lưu trữ trong một tệp gọi là Smartcontract, sau đó được đưa lên mạng lưới Blockchain Chúng ta có thể tương tác với Smartcontract thông qua các phương thức được định nghĩa trong tệp đó Dữ liệu trên Blockchain không thể bị thay đổi, đảm bảo tính toàn vẹn và bảo mật.

Người dùng ứng dụng bầu cử trên blockchain cần có một tài khoản với địa chỉ ví và một lượng Ether, tiền điện tử của Ethereum Khi kết nối với mạng, họ thực hiện việc bỏ phiếu và trả một khoản phí giao dịch nhỏ, được gọi là “gas”, để ghi lại giao dịch vào blockchain Trong quá trình này, các nút mạng, hay còn gọi là thợ đào, cạnh tranh để hoàn thành giao dịch, và người khai thác hoàn tất giao dịch sẽ nhận được Ether tương ứng với phí bỏ phiếu.

Phân tích hệ thống

Chức năng của client-server:

- Hiển thị danh sách ứng cử viên

- Cho người dùng liên kết với ví điện tử của mình

- Cho cử tri bầu chọn cho ứng cử viên mình thích

- Đóng bình chọn khi cử tri đó đã bầu chọn

- Lưu trữ danh sách ứng viên

- Lưu trữ phương thức cho phép phía client thực hiện bầu chọn

- Lưu trữ kết quả bầu cử

Các bước khởi chạy của hệ thống bầu cử:

Khi cử tri truy cập hệ thống, client sẽ kết nối với Blockchain để đọc dữ liệu từ Smartcontract mà ban bầu cử đã cung cấp Sau đó, các thông tin này sẽ được hiển thị để cử tri dễ dàng nắm bắt.

Để thực hiện quyền bỏ phiếu, cử tri cần liên kết ví điện tử của mình, quy trình này tương tự như việc tạo và đăng nhập vào tài khoản cử tri.

Nếu hệ thống liên kết thành công, nó sẽ kiểm tra xem cử tri đã thực hiện bỏ phiếu hay chưa Nếu cử tri chưa bỏ phiếu, hệ thống sẽ hiển thị phiếu bầu để cử tri có thể tiến hành bỏ phiếu.

- Khi cử tri bỏ phiếu và xác nhận giao dịch thì blockchain s tạo ra một block và lưu trữ nó

- Kết thúc quá trình smartcontract s trả lại thông tin cho client và kết thúc trả thông báo cho cử tri

2.2.2 Sơ đồ Use Case và sơ đồ nghiệp vụ

Hình 2.3: Sơ đồ use case hệ thống

Hình 2.4: Sơ đồ nghiệp vụ

Hình 2.5: Kiến trúc hệ thống

Hệ thống được xây dựng dựa trên ba thành phần chính

- Client-server: Hiển thị giao diện, cho phép người dùng xem danh sách ứng cử viên

- Hệ thống Ethereum network: Lưu trữ Smartcontract, liên kết tương tác giữa client-server với smartcontract

- Smartcontract: Nơi chứa các điều khoản, thông tin các ứng cử viên, điều kiện thắng và các phương thức tương tác

Khi người dùng thực hiện bầu chọn, một giao dịch tương tác với smart contract được tạo ra và xác nhận bởi các người dùng khác trên blockchain Ethereum Để thực hiện thao tác này, người dùng cần trả một khoản phí nhỏ bằng ETH.

Chương 2 đã trình bày chi tiết về mô hình bầu cử và các vấn đề mà các nhà phát hành nội dung số đang gặp phải Đồng thời chương này cũng trình bày về mô hình hoạt động của mô hình bầu cử công khai trên Blockchain Phần tiếp theo luận văn s trình bày về cách xây dựng một hệ thống bầu cử công khai trên blockchain Dựa vào các phân tích ở chương 2, chương tiếp theo s trình bày cụ thể về phương pháp cài đặt một blockchain và kết quả thực nghiệm thu được

C ƢƠN 3 XÂY DỰN Ệ T ỐN V T Ử N ỆM.

Ethereum Network

Ethereum là một chuỗi khối mã nguồn mở và phi tập trung, nổi bật với tính năng hợp đồng thông minh Ether (ETH hoặc Ξ) là đồng tiền điện tử gốc của nền tảng này, đứng thứ hai sau Bitcoin về vốn hóa thị trường Ethereum hiện là blockchain được sử dụng nhiều nhất.

Hình 3.1: Trị giá ETH trên thị trường

Ethereum, được đề xuất bởi lập trình viên Vitalik Buterin vào năm 2013, đã huy động vốn cộng đồng và chính thức hoạt động vào ngày 30 tháng 7 năm 2015 với nguồn cung ban đầu 72 triệu đồng tiền Nền tảng này cho phép các nhà phát triển xây dựng và vận hành ứng dụng phi tập trung, mang lại cho người dùng khả năng tương tác mà không cần trung gian tài chính Các ứng dụng tài chính phi tập trung (DeFi) cung cấp dịch vụ tài chính đa dạng, cho phép người dùng vay hoặc cho vay dựa trên tài sản của họ Hơn nữa, Ethereum hỗ trợ việc tạo và trao đổi NFT, các mã thông báo độc nhất liên kết với tác phẩm nghệ thuật kỹ thuật số và các sản phẩm thực tế, cũng như cho phép nhiều loại tiền điện tử hoạt động dưới dạng mã thông báo ERC-20 trên blockchain của nó.

Ethereum đang triển khai các nâng cấp mang tên Ethereum 2.0, trong đó bao gồm việc chuyển sang cơ chế bằng chứng cổ phần Mục tiêu của những nâng cấp này là tăng cường khả năng xử lý giao dịch thông qua công nghệ sharding.

Ethereum (ETH) là nền tảng điện toán phân tán, công cộng và mã nguồn mở dựa trên công nghệ Blockchain, cho phép triển khai ứng dụng và sử dụng hợp đồng thông minh để thực hiện thỏa thuận trực tuyến Nó bao gồm Ethereum Virtual Machine (EVM), một máy ảo hoàn toàn Turing, có khả năng thực thi các kịch bản thông qua mạng lưới máy tính Ethereum Ether, loại tiền mã hóa của nền tảng, có thể được chuyển giữa các tài khoản và được dùng để trả công cho thợ đào Hệ thống "Gas" giúp quản lý chi phí giao dịch và giảm thiểu tình trạng giao dịch rác, đồng thời phân bổ nguồn lực hiệu quả trên mạng lưới.

Chúng ta không thể kết nối với mạng Blockchain Ethereum chính thức do chi phí cao, với giá 1 Ethereum gần 2 nghìn đô la Do đó, giải pháp là sử dụng một mạng Blockchain Ethereum giả lập chạy trên máy tính cục bộ.

Ganache là một blockchain cục bộ, có thể được cài đặt dễ dàng bằng cách tải xuống từ trang web của Truffle Framework Nó cung cấp cho người dùng 10 tài khoản với địa chỉ trên blockchain Ethereum cục bộ, mỗi tài khoản được nạp sẵn 100 ether giả.

2 Smart contract (Hợp đồng thông minh)

Hợp đồng thông minh là chương trình máy tính hoặc giao thức giao dịch tự động thực hiện, kiểm soát và ghi lại các sự kiện pháp lý theo điều khoản hợp đồng Mục tiêu của hợp đồng thông minh là giảm thiểu sự cần thiết của trung gian, trọng tài và chi phí thực thi, đồng thời giảm thiểu tổn thất do gian lận và các ngoại lệ không mong muốn.

Máy bán hàng tự động được coi là một trong những công nghệ lâu đời nhất, tương tự như việc thực hiện hợp đồng thông minh Sách trắng về tiền điện tử Ethereum năm 2014 đã mô tả giao thức Bitcoin như một phiên bản yếu hơn của khái niệm hợp đồng thông minh.

Công nghệ và cài đặt môi trường

Việc triển khai hợp đồng thông minh trên blockchain diễn ra thông qua việc gửi một giao dịch từ ví đến blockchain, bao gồm mã đã biên dịch và một địa chỉ nhận đặc biệt Giao dịch này cần được bao gồm trong một khối mới trên blockchain, tại đó mã của hợp đồng thông minh được thực thi để thiết lập trạng thái ban đầu Các thuật toán Byzantine bảo vệ hợp đồng thông minh một cách phi tập trung khỏi các nỗ lực giả mạo Sau khi được triển khai, hợp đồng thông minh không thể được cập nhật và có khả năng lưu trữ trạng thái tùy ý cũng như thực hiện các phép tính phức tạp Khách hàng cuối có thể tương tác với hợp đồng thông minh thông qua các giao dịch, cho phép gọi các hợp đồng thông minh khác và dẫn đến việc thay đổi trạng thái cũng như chuyển tiền giữa các hợp đồng hoặc tài khoản khác nhau.

3.2 Công nghệ v c i đặt môi trường

3.2.1 Ví điện tử và cách sử dụng

Ví điện tử là ứng dụng giúp bạn quản lý tài khoản Ethereum mà không cần đến ngân hàng, tương tự như ngân hàng trực tuyến Nó cho phép bạn kiểm tra số dư, thực hiện giao dịch và kết nối với các ứng dụng khác.

Ví online được sử dụng qua website, cho phép bạn đăng ký tài khoản và lưu trữ khóa bí mật cùng địa chỉ ví trên máy tính của bên thứ ba Tuy nhiên, nhược điểm lớn nhất là website mà bạn tin tưởng có thể kiểm soát khóa bí mật, thực hiện giao dịch và quản lý toàn bộ số bitcoin của bạn.

Một số website uy tín đang được nhiều người sử dụng như:

- Coinbase: https://www.coinbase.com

- Circle: https://www.circle.com

Để tham gia bỏ phiếu trong ứng dụng Bầu cử công khai trên Blockchain Ethereum, người dùng cần kết nối ví điện tử của mình với ứng dụng.

Ví điện tử của cử tri cần được tích hợp trên cùng một hệ thống Blockchain Network với hệ thống bầu cử, đảm bảo rằng tệp smart contract của ban bầu cử cũng được lưu trữ trên mạng Blockchain này.

Và để tương tác với tài khoản ETH của mình chúng ta cần một ví điện tử Ethereum

MetaMask là ví tiền điện tử phần mềm giúp người dùng tương tác với chuỗi khối Ethereum Thông qua tiện ích mở rộng trình duyệt hoặc ứng dụng di động, người dùng có thể truy cập ví Ethereum và tương tác với các ứng dụng phi tập trung một cách dễ dàng.

Tải và cài đặt tiện ích MetaMask trên trình duyệt để quản lý các tài khoản điện tử của bạn Tiện ích này sử dụng Private key để thêm tài khoản, cho phép bạn thực hiện mọi giao dịch một cách thuận tiện thông qua MetaMask.

Tiện ích sau khi được thêm vào trình duyệt s có giao diện như hình dưới đây:

Hình 3.2: Tiện ích ví điện tử Meta mask

3.2.2 Cài đặt môi trường và thiết lập nút blockchain cục bộ Để có thể viết một Smartcontract chúng ta có thể một ngôn ngữ lập trình có tên là Solidity Solidity là một ngôn ngữ cấp cao, hướng đối tượng để thực hiện các hợp đồng thông minh.[7]

Solidity là một ngôn ngữ ngoặc nhọn Nó bị ảnh hưởng bởi C ++, Python và JavaScript, và được thiết kế để nhắm mục tiêu Máy ảo Ethereum (EVM)

Solidity được định kiểu tĩnh, hỗ trợ kế thừa, thư viện và các kiểu phức tạp do người dùng xác định cùng với các tính năng khác

Với Solidity, bạn có thể tạo các smartcontract để sử dụng như bỏ phiếu, huy động vốn từ cộng đồng, đấu giá mù và ví nhiều chữ ký

Truffle Framework là công cụ lý tưởng để phát triển ứng dụng phi tập trung trên Blockchain Ethereum Nó cung cấp bộ công cụ mạnh mẽ cho phép lập trình viên viết hợp đồng thông minh bằng ngôn ngữ Solidity, đồng thời hỗ trợ kiểm tra và triển khai các hợp đồng này lên blockchain một cách hiệu quả.

Trước tiên, để phát triển ứng dụng, chúng ta cần cài đặt môi trường bao gồm Node.js và Truffle framework Để cài đặt Node.js, hãy truy cập trang chủ tại https://nodejs.org/, tải về phiên bản mới nhất và thực hiện cài đặt theo mặc định.

Chạy terminal bằng tổ hợp phím Windows + R Kiểm tra phiên bản npm bằng lệnh npm –v Để cài truffle framework ta chạy lệnh npm install –g truffle

Tải và cài đặt ứng dụng Ganache để tạo một mạng lưới Blockchain Ethereum Ganache là một ứng dụng giả lập Blockchain Ethereum chạy trên máy tính cá nhân, hoạt động như một node và chứa thông tin về Block, giao dịch, và hợp đồng thông minh Ứng dụng này cung cấp 10 tài khoản với public key là địa chỉ tài khoản và private key bảo mật Để nhận và kiểm tra giao dịch, người dùng có thể sử dụng public key, nhưng để gửi giao dịch và tương tác với smart contract, cần có private key Khi kết nối private key với ví điện tử, ví sẽ có quyền thực hiện tất cả các giao dịch.

Sau khi cài đặt chúng ta s có giao diện như hình dưới:

Thực nghiệm và đánh giá

3.3.1 Môi trường phát triển và công cụ

- Phần cứng: Hệ thống bầu cử trên BlockChain Ethereum được triển khai trên máy tính có cấu hình như sau:

STT Nội Dun Thôn số kỹ thuật

Win 10 Ứng dụng bên thứ 3

 Môi trường cài đặt và chạy hệ thống

 Công cụ tương tác smartcontract

 Thư viện dev front-end

 Công cụ tạo BlockChain local

 Ví điện tử để kết nối với ETH account

3.3.2 Kết quả thử nghiệm Ứng dụng được chạy trên server local với đường dẫn http://localhost:3000 Sau khi triển khai người dùng liên kết với ví và bầu chọn, kết quả được lưu trên blockchain nên không thể bị thay đổi hoặc xóa đi Quá trình bầu chọn cho ta thấy được sự thay đổi trên blockchain

Sau đây là một số hình ảnh khi sử dụng hệ thống Để đưa contract lên blockchain network ta dùng lệnh truffle migrate

Có thể thấy contract của chúng ta đang live trên BlockChain local với liên kết http://127.0.0.1:7545

Thông tin về Smartcontract được hiển thị trong hình ảnh dưới đây Address là địa chỉ công khai của smartcontract Các dữ liệu được lưu trong Storage

Khởi chạy web client bằng lệnh npm run dev để truy cập tại địa chỉ http://localhost:3000 Cử tri chưa cài đặt ví điện tử vẫn có thể xem kết quả bầu cử đang diễn ra, và việc đọc thông tin trên smart contract hoàn toàn miễn phí.

Hình 3.4: Chạy demo Hệ thống

Nếu cử tri chưa cài đặt ví, họ sẽ nhận được thông báo yêu cầu cài đặt Metamask và liên kết với ví của mình để thực hiện quyền bỏ phiếu.

Cài đặt tiện ích Metamask và liên kết ví điện tử là bước đầu tiên để sử dụng mạng blockchain cục bộ Bạn sẽ có 10 tài khoản và cần sử dụng private key của mỗi tài khoản để thêm vào ví điện tử Sau khi hoàn tất, giao diện sẽ hiển thị như hình dưới đây.

Click vào button connect your wallet để kết nối với ví điện tử Chọn tiếp theo và kết nối để hoàn thành việc kết nối

Sau khi hoàn thành việc kết nối với ví điện tử client s hiện ra phần phiếu bầu cho cử tri có thể thực hiện việc bỏ phiếu

Người dùng lựa chọn ứng cử viên sau đó bấm vào vote s được hỏi xác nhận phiếu bầu, nếu không kết quả bỏ phiếu s không được thực thi

Hình trên có thể thấy được giao dịch từ address của cử tri đến address của contract

Sau khi cử tri xác nhận s nhận được thông báo đã hoàn thành

Cử tri đã không thể bỏ phiếu trong lần thứ hai, do đó, phần phiếu bầu đã được đóng lại và cử tri nhận được lời cảm ơn từ ban bầu cử.

Các thao tác bỏ phiếu tạo ra các giao dịch, với thông tin được mã hóa thành các khối và liên kết vào mạng blockchain Hình ảnh minh họa cho các khối được tạo ra và kết nối với nhau trên blockchain được trình bày ở hình bên dưới.

Bên trong các block lưu trữ các thông tin sau:

Các transactions được công khai trên mạng BlockChain Ethereum và nằm bên trong các block

Thông tin lưu trong một transaction, các phương thức được gọi và giá trị được gửi đi

Hệ thống bầu cử công khai trên Blockchain Ethereum đã giải quyết hiệu quả các vấn đề của bầu cử điện tử, với mã nguồn và dữ liệu được lưu trữ an toàn trên nền tảng phi tập trung Kết quả bầu cử được đảm bảo không thể thay đổi hoặc xóa bỏ, mang lại độ chính xác vĩnh viễn cho quá trình bầu cử.

Hệ thống bầu cử sử dụng công nghệ Blockchain đảm bảo tính chính xác của phiếu bầu, giúp cử tri yên tâm rằng mỗi người chỉ được bầu một lần Độ an toàn trong quá trình bầu cử được củng cố thông qua việc sử dụng ví điện tử.

Chương 3 luận văn đã trình bày bài toán hệ thống bầu cử điện tử, giải pháp đưa ra là đưa mã nguồn và dữ liệu lên Blockchain Ethereum Sau khi triển khai đưa mã nguồn và dữ liệu lên Blockchain đã Live và cho phép cử tri bỏ phiếu bầu cho ứng cử viên Giải pháp ứng dụng blockchain hoàn toàn khả thi trong thực tế và có thể khắc phục được khó khăn cho ban bầu cử về việc kiểm soát phiếu bầu và cử tri cũng tin tưởng hơn về kết quả bầu cử Chương 3 cũng đã trình bày chi tiết về cách cài đặt Smartcontract và hệ thống BlockChain Ethereum

Công nghệ blockchain có tiềm năng lớn trong việc cải thiện quy trình bầu cử và bỏ phiếu Tuy nhiên, ứng dụng blockchain trong lĩnh vực này vẫn đang trong giai đoạn thử nghiệm và phát triển.

Hiện nay, nhiều tổ chức và cá nhân đang áp dụng công nghệ blockchain trong việc bầu chọn và bỏ phiếu ở nhiều lĩnh vực khác nhau Việc ứng dụng công nghệ blockchain vào mô hình bầu cử giúp nâng cao tính khách quan, minh bạch và tối ưu hóa hệ thống bầu cử.

Tuy nhiên việc ứng dụng blockchain vào bầu cử xa hơn là ứng dụng vào chính phủ điện vẫn là một thách thức vô cùng lớn như là:

Hiện tại, chưa có cơ quan chức năng nào được thành lập để quản lý các mạng blockchain, điều này dẫn đến việc khó kiểm soát các rủi ro trong quá trình vận hành Cần thiết phải có các quy định và chế tài cụ thể để hướng dẫn việc sử dụng các ứng dụng trên mạng blockchain một cách an toàn và hiệu quả.

 Các yêu cầu kiểm định chất lượng, đảm bảo an toàn thông tin cho các ứng dụng trên mạng blockchain

 Các khó khăn liên quan đến công nghệ blockchain như:

- Công nghệ blockchain còn mới mẻ, các tài liệu nghiên cứu còn hạn chế

- Các nguồn tài nguyên cần để vận hành một network là không nhỏ

- Đào tạo nghiệp vụ cho nhân sự các ban ngành cần nhiều thời gian

- Hệ thống pháp lý chưa hoàn thiện

Những thách thức trên cần được giải quyết khi xây dựng hệ thống bầu cử ứng dụng công nghệ blockchain

Những kiến nghị để thực hiện việc xây dựng hệ thống bầu cử:

- Xây dựng hệ thống blockchain network

- Phát hành đồng tiền điện tử quốc gia

- Đưa thông tin quản lý người dân lên hệ thống blockchain

- Tích hợp ví điện tử người dân vào thẻ căn cước công dân

- Xây dựng và phát triển các ứng dụng chính phủ điện tử trên mạng blockchain

[1] https://vi.wikipedia.org/wiki/Hàm_băm

[2] https://vi.wikipedia.org/wiki/Chữ_ký_số

[3] https://en.wikipedia.org/wiki/Voting

[4] https://en.wikipedia.org/wiki/Electronic_voting

[5] https://vi.wikipedia.org/wiki/Blockchain

[6] https://vi.wikipedia.org/wiki/Ethereum

[7] https://en.wikipedia.org/wiki/Smart_contract

[10] https://docs.metamask.io/guide/

C ẶT HỆ THỐNG BẦU CỬ TRÊN M NG BLOCKCHAIN ETHEREUM

Cấu trúc thư mục hệ thống như sau:

- Thư mục Build đóng vai trò như một document, s được tạo ra khi chúng ta migrate contract lên blockchain

- Thư mục contracts chứa file contract của chúng ta

- Thư mục migrations chứa file migrate giúp chúng ta đưa contract lên blockchain

- Thư mục node_modules chứa các thư viện chúng ta sử dụng để xây dựng hệ thống

- Thư mục src chữa mã nguồn client

Tạo một tệp có tên Election.sol, đây chính là smart contract của chúng ta, sử dụng ngôn ngữ lập trình Solidity với hậu tố sol Để triển khai contract lên blockchain Ethereum, chúng ta cần cài đặt chức năng migrate contract, được thực hiện thông qua hàm deploy trong tệp deploy_contracts.js.

Hợp đồng thông minh của chúng ta được lưu trữ trong file contract, và để có thể lưu trữ thông tin của ứng cử viên và cử tri, chúng ta cần khởi tạo các biến cho hợp đồng này.

Một ứng viên s có các thuộc tính sau: Id, tên ứng viên và số phiếu

Còn cử tri chỉ cần một biến để lưu địa chỉ ví điện tử

- Struct Candidate là một cấu trúc chúng ta định nghĩa nó như một kiểu dữ liệu

Mapping là quá trình tạo ra một mảng giá trị Để cử tri có thể tham gia bầu chọn, họ cần tương tác và ghi nhận vào smart contract Để thực hiện điều này, smart contract cần có một phương thức, và chúng ta sẽ xây dựng một hàm vote để thực hiện chức năng này.

Ngày đăng: 03/11/2023, 18:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w