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

Khóa luận tốt nghiệp Hệ thống thông tin: Ứng dụng công nghệ chuỗi khối trong việc xây dựng hệ thống bầu cử

102 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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ệ chuỗi khối trong việc xây dựng hệ thống bầu cử
Tác giả Nguyen Ngoc Khuong Duy, Vuong Thinh Loi
Người hướng dẫn THS. Nguyen Ho Duy Tri
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP HCM
Chuyên ngành Hệ thống thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 102
Dung lượng 54,14 MB

Nội dung

TÓM TẮT KHÓA LUẬNNội dung đề tài: Bài khóa luận này sẽ tập trung vào việc áp dụng công nghệ chuỗi khối vào việc phát triên một ứng dụng bâu cử trực tuyên trên nên tảng trình duyệt và yêu

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HE THONG THONG TIN

NGUYEN NGỌC KHƯƠNG DUY - 19521426

VUONG THỊNH LỢI - 19520691

KHÓA LUẬN TÓT NGHIỆP

UNG DỤNG CÔNG NGHỆ CHUOI KHOI TRONG VIỆC

XÂY DỰNG HỆ THÓNG BẦU CỬ

Applying blockchain technology in building voting system

KY SU NGANH HE THONG THONG TIN

GIANG VIEN HUONG DAN THS NGUYEN HO DUY TRI

TP HO CHi MINH, 2023

Trang 2

LỜI CẢM ƠN

Chúng em xin bày tỏ lòng biết ơn đối với ThS Nguyễn Hồ Duy Tri người đã tận tình

chỉ bảo giúp đỡ em trong học tập, nghiên cứu và ThS Hà Lê Hoài Trung đã góp ý phản biện giúp chúng em hoan thành luận văn này.

Chúng em xin chân thành cảm ơn các thầy cô, khoa Hệ thống thông tin trường Đạihọc Công nghệ thông tin — Dai học quốc gia TP HCM đã tạo điều kiện cho chúng em

trong thời gian học tập tại trường.

Mặc dù đã có nhiều cố gắng va nỗ lực dé hoàn thành tốt luận văn nhưng chắc chắn sẽ

không tránh khỏi những thiếu sót Kính mong nhận được sự chỉ bảo, đóng góp củacác thầy, cô giáo

Chúng em xin chân thành cảm ơn!

Trang 3

MỤC LỤCChương 1 TONG QUAN VE DE TÀII - 2-2 ©52££2£E+£E+£EtzEzEeerxerxeres 17

1.1 Lý do chon để tai c ceccecccccescsscssessessessessessesesecsessessessessessessssssessesseeseeseeeessees 171.2 Đối tượng nghiên cứu - 2 2 £+E+k£EE£EEEEEEEEEEE2E1211217171 2121 xe 17

1.3 Pham vi nghiÊn CỨU - 5 c1 11x HH ng vờ 17

“"h ẩn ` /(Ý£ đ ` vẻ h aa 28

2.6 Angpular đ ÁN nọ D / Lee 29

Chương3 HỆ THONG LƯU TRU SỬ DUNG CÔNG NGHỆ CHUOI KHOI31

3.1 Khảo sát một số nền tảng chuỗi khối - 2 + +22++x++zx+2zszẻz 313.2 Sơ đồ hệ thong ecceccceccccccsssesssesssesssssseessesssessssssessussssessesssecsusesussseessecseesessecs 31

BQ Kênh 2k t2 HT ererrre 32

3.2.2 — TỔ chức -c+ckc2E2ESEEEEE21211221 211121111 33

3.2.3 Chuỗi mã :©2: SE teEESESEEEEErrkerkerrerrerreree 33

3.2.4 Cơ quan cấp chứng chỉ - ¿5£ +k+Sk+EE+EEEEEEEEEEEEEEerkerkerkeree 33

3.2.5 Dot liệu bí mật ¿ :+-++cxtEE++ESEkerkerkrrrrerrerrrrvee 34

3.3 Các quy trÌnh sọ nà 34

3.3.1 Tạo cuộc bầu chọn - + +++++Ek+EE+EE£EESEEerkerErrrrkerkerree 353.3.2 — Bỏ phiếu 2c C22 TT TE101211111 2111 11 1e cre 37

Trang 4

3.3.3 Đóng cuộc bầu chọn -¿-©2¿2-++2c++2E+tEEteExrtrxerreerkeerxee 383.4 Phát triển chuỗi mã - 2 £++k+EE+EE£+EE£EEEEEEEEEEEEEEEEEEEEEEEEErkrrkerreee 40

3.4.1 _ Định nghĩa đối tượng CBC - :- 25<+E++E2EzEerEerkerxereeree 40

3.4.2 Các hàm trong chuỗi mã -¿ - 52 ©2+E+E££E+E+EEE£krEerrkrrerrrs 42

Chương 4 PHƯƠNG PHÁP BẢO MẬTT - + +2 +EE+EEeEEeEEErrkerkerrerex 52

AL Khao Sat nh 5A 5 52

4.1.2 Mã hóa đường cong €ÏI 5 SĂ + sirirrreerrerkrre 53

4.1.2.1 ECDSA cececccccccsessssssessessesssessessessussssssessessusssessessessusssessessessessseesecses 53 4.1.2.2 EdDSA JEZZZ ưất 54

4.1.2.3 ECDH@GZ/@£c À 54

413 KếtquếZ Ê đ ‹& )Ì / 55

4.2 Sử dụng EdDSA 220 2c 21 2 222 E21 EEEcrrrrerrrree 57

4.2.1 Dinh danh BTC -++cEcSESEEEEEEEErEErrrrrkerkerreee 57

4.2.2 Mã hóa phiếu bầu -2¿©-+++++2+++Ex++rxrrreerkesrxrrrrees 59

4.2.3 Định danh định trƯỚC - - ¿5 5S E222 1E E2 EE£++zeeezeeeszeeeesz 60

4.3 So sánh giữa các phương pháp bảo mật - -c Sc*Ssseseeseree 62

4.3.1 Thur viện “ellIptiC” SG n1 3S vn ng ng re 62

4.3.2 Công cụ nội bộ của NodeJS - - S1 vs ng ngư, 63

4.3.3 Phương pháp mã hóa - - -c S S3 ng ng 64

4.3.4 Đánh giá hiệu suất -22 2cccEcEE2 2 EEEEEEEEEEErkerkerreee 65

4.3.5 Tổng kết -2c 2S k2 22212111 67

Chương 5 XÂY DUNG UNG DUNG oeeeecesceccessessesssesseeseesesssesseesesseessessesseeseees 68

5.I TOng quit c.ccccecceccecccccssesscsscssesscsssseesessessessessesuesscssssessessessssscsussssessessesseseessees 68

Trang 5

5.3.5 Đóng CBC vieecccscsssesssesssessssssesssecssessusssssssecssecsusssscssecsusssssesecasecsseeseceses 88

5.3.6 _ Tổng kết CBC 22222 EEEE211211211271 1112112111 89

5.3.7 Kiểm tra lịch sử CBC -+-c+ckc2E2ESEEEEEEEErrrrrkerkerree 92

5.4 Chức năng g1ao dIỆn + 2c tt TT HH, 95

5.4.1 _ Thay đổi ngôn ngữ -+c tk E221 EEEEerkrrkrree 955.4.2 Chế độ sáng/tối cc©cccccccrkrrreerreerkeerxee 98

Chương 6 TỐNG KẾT -2E+EEEEEEEEEEEeEEerkerrerrkee 101

6.1 Kết quả đạt được ¿22c 25+22c22 2222212211271 .1cEkrrree 1016.2 Ưu và nhược điểm cceccccscccscsssesesesssessssssssssecsuessssssscasecssecsssssecssecsssesesesecaes 101

6.2.1 Ưuđiểm -.- 522222 1016.2.2 Nhược điểm -:- s22 E212 21tr 101

6.3 Hướng phat tridn.ecececccecccceccessessesssessessesssessessessesscssessessessesssessessessessseess 102

6.4 Tổng Ket eccecceccccccsesscsssssssssecsessessesscsussucsssessessessssessussessssessessesassneaneaneseess 102

Trang 6

DANH MỤC HÌNHHình 1.1 Polys

Hình 3.6 Tạo khóa bí mật cho CBC

Hình 3.7 Tạo các khóa bí mật cho CBC

Hình 3.8 Danh sách chữ ký mã hóa định danh được chỉ định

Hình 3.9 Xác thực danh tính phiếu bầu

Hình 3.10 ID của phiếu bầu

Hình 3.11 Lưu dữ liệu phiếu bầu lên số cái công khai

Hình 3.12 Đóng CBC

Hình 3.13 Lay đữ liệu phiếu bầu từ dữ liệu bí mật của tổ chức

Hình 3.14 Công khai đữ liệu bỏ phiếu sau khi đóng CBC

Hình 3.15 Lấy nội dung phiếu bầu

Hình 3.16 Lay lịch sử thay đổi của CBC

Hình 4.1 RSA

Hinh 4.2 ECDSA

Hinh 4.3 M6 ta ECDH [3]

19 20 21

22 23 25 26

29 29

32

35

37

39 43 43

44

44 45

46

47 48 49

50 51 51 52 53 55

Trang 7

Hình 4.4 Mã hóa định danh BTC 57

Hình 4.5 Kiểm tra định danh BTC khi tham gia CBC 58Hình 4.6 Mã hóa thông tin bầu chọn 60

Hình 4.7 Mã hóa định danh định trước 61

Hình 4.8 Kiểm tra định danh của phiếu bầu có phải định danh định trước 62

Hình 5.1 Sơ đồ tông quát 69Hình 5.2 Sơ dé use case 70Hình 5.3 Sơ đồ luồng sự kiện nghiệp vu “Tao CBC” 72Hình 5.4 Sơ đồ tuần tự nghiệp vụ “Tạo CBC” 72

Hình 5.5 Giao diện MainComponent 73

Hình 5.6 Giao diện CreateInfoComponent 74

Hình 5.7 Giao diện CreateOptionsComponent khi chọn ché độ don lựa chọn 75Hình 5.8 Giao diện CreateOptionsComponent khi chọn chế độ đa lựa chọn 75Hình 5.9 Giao diện CreateOptionsComponent khi chọn chế độ đa lựa chọn với giới

hạn lựa chọn 76

Hình 5.10 Lựa chon CBC “Công khai” 76

Hình 5.11 Lựa chon CBC “Riêng tư” 77

Hình 5.12 Lựa chọn CBC “Bí mật” 78

Hình 5.13 Kết quả tạo CBC 78Hình 5.14 Sơ đồ luồng sự kiện nghiệp vụ “Xác thực với CQCCC” 79Hình 5.15 Sơ đồ tuần tự nghiệp vụ xác thực với CQCCC 80Hình 5.16 Tham gia cuộc bầu chọn 80Hình 5.17 Kiểm tra CBC tôn tại 81

Hình 5.18 Xác thực danh tinh CBC 82

Hình 5.19 Điền định danh 82

Hình 5.20 Giao diện quản lý CBC 83

Hình 5.21 Sơ đồ luồng sự kiện của nghiệp vụ “Bỏ phiếu” 84Hình 5.22 Sơ đồ tuần tự của nghiệp vụ “Bỏ phiếu” 84Hình 5.23 Giao diện bỏ phiếu 85

Trang 8

Hình 5.24 Sơ đồ luồng sự kiện của nghiệp vụ “Kiểm tra phiếu bầu” 86Hình 5.25 Sơ đồ tuần tự của nghiệp vụ “Kiểm tra phiêu bầu” 86Hình 5.26 Giao điện kiểm tra ID phiếu bầu 87Hinh 5.27 Kiém tra phiéu bau 87

Hinh 5.28 Két qua kiém tra phiéu bau 88

Hình 5.29 So dé luéng sự kiện của nghiệp vu “Đóng CBC” 88Hình 5.30 So đồ tuần tự của nghiệp vụ “Đóng CBC” 89Hình 5.31 Sơ đồ luồng sự kiện của nghiệp vụ “Tổng kết CBC” 90Hình 5.32 Sơ đồ tuần tự của nghiệp vụ “Tổng kết CBC” 91Hinh 5.33 Téng két CBC 92

Hình 5.34 Sơ đồ luồng sự kiện của nghiệp vụ “Kiểm tra lịch sử CBC” 93

Hình 5.35 So đồ tuần tự của nghiệp vụ “Kiểm tra lịch sử CBC” 93Hình 5.36 Giao điện nhập CBC dé kiểm tra lich sử 94Hình 5.37 Giao diện kết quả lịch sử CBC 94Hình 5.38 Lấy dữ liệu danh sách giao dịch 95Hình 5.39 Nút đổi ngôn ngữ ứng dụng 96

Hình 5.40 Giao diện tạo CBC ở tiếng Việt 96

Hình 5.41 Giao diện tao CBC ở tiếng Anh 97Hinh 5.42 Giao dién quan ly 6 tiéng Viét 97Hình 5.43 Giao diện quản lý ở tiếng Anh 98Hình 5.44 Nút đổi chế độ sáng/ tối 98Hình 5.45 Giao diện kết quả tạo CBC ở chế độ sáng 99Hình 5.46 Giao diện kết quả tao CBC ở chế độ tối 99Hình 5.47 Giao diện quan lý ở chế độ sáng 100Hình 5.48 Giao điện quản lý ở chế độ tối 100

Trang 9

DANH MỤC BANG

Bang 3.1 Bảng thuộc tính của CBC - - 5 5 + kg HH gi rưệt 41

Bang 3.2 Các hàm trong chuỗi MA c.cecccccssessessessesseseseeseesecseeseesesuesueseseeseeseeseesease 42

Bang 4.1 Các nhóm phương pháp dé đánh giá 2-2 2+s2+s£+x+£xezxezszse2 65

Bang 4.2 Các hàm chuỗi mã dé đánh giá ¿2-2 22522 EE£+E+E££EerEerxerxersrree 66Bang 4.3 Kết qua do lường hiệu suất (đơn vị: mili-giây) 55-55 csccs s52 67

Bang 5.1 Danh sach tac nhan 0N ä 70 Bang 5.2 Danh sách nghi€p VU ceeccesceesseesnecesseeesceeeseeceseessaeceseeeeseeeesecesaeeneaeenaes 71

Trang 10

DANH MỤC TỪ VIET TAT

STT Ký hiệu chữ viết tắt Chữ viết đầy đủ

1 BTC Ban tổ chức

2 CBC Cuộc bầu chọn

3 CK Chuỗi khối

4 CQCCC Co quan cap chimg chi

5 NTG Nguoi tham gia

Trang 11

TÓM TẮT KHÓA LUẬN

Nội dung đề tài:

Bài khóa luận này sẽ tập trung vào việc áp dụng công nghệ chuỗi khối vào việc phát

triên một ứng dụng bâu cử trực tuyên trên nên tảng trình duyệt và yêu tô bảo mật của

công nghệ chuỗi khối trong việc lưu trữ thông tin dir liệu Do công nghệ chuỗi khối

là một công nghệ mới mẻ vả có tiêm năng trong ứng dụng các hệ thông bâu cử do tính bảo mật cao và lưu trữ dữ liệu an toàn Ngoài ra hiện tại trên thị trường chưa có

nhiêu các ứng dụng bâu cử đơn giản quy mô từ nhỏ đên vừa có áp dụng công nghệ

chuỗi khôi trực tuyến và dễ tiếp cận và sử dung.

Mục tiêu đề tài:

13

- Muc tiêu lý thuyết

le) Tìm hiểu và năm vững kiến thức về công nghệ chuỗi khối, hiểu được

cách làm/ xây dựng hệ thống với công nghệ chuỗi khối

Tìm hiểu cơ chế bảo mật được sử dụng khi ứng dụng công nghệ chuỗikhối trong phát triển ứng dụng có tính bảo mật cao

Tìm hiểu một số kỹ thuật/cách thức/phương pháp, so sánh, đánh giá vềkhả năng bảo mật của công nghệ chuỗi khối

Củng có kiến thức lập trình phát triển ứng dụng nền tảng trình duyệt

trực tuyến.

« Muc tiêu sản phầm

le) Xây dựng hệ thông bỏ phiếu dựa trên công nghệ chuỗi khối với các tinh

năng bảo mật, an toàn lưu trữ

Xây dựng được ứng dụng bầu cử bầu cử trên nền tảng trình duyệt trựctiếp với day đủ các chức năng, giao diện thân thiện, dé sử dụng

Áp dụng được các phương pháp bảo mật cho quá trình lưu trữ, truy xuất

dữ liệu bầu cử đã được lưu trên công nghệ chuỗi khối.

Trang 12

Tìm hiệu vê công nghệ chuỗi khôi

Khảo sát một sô nên tảng công nghệ chuỗi khôi

Đánh gia ưu điêm, nhược điêm của các nên tảng đó qua đó xác

Xây dựng được một hệ thống chuỗi khối đã được chọn

‹ Tim hiểu một số phương pháp bảo mật được sử dụng trong công nghệ chuỗi

khối và hệ thống bầu cử dé áp dụng vào hệ thống

o Phương pháp thực hiện

Tìm và đọc một số bài báo, công trình nghiên cứu khoa học cóliên quan đến bảo mật trong công nghệ chuỗi khối và hệ thốngbầu cử

Đánh giá, so sánh ưu & nhược điểm để sàng lọc các phương

pháp khả thi và hợp lý

Tìm hiểu các phương án mà nền tảng đã cho, các thư viện hỗ trợ,

dé xem xét phương án áp dụng các phương pháp bảo mật đã

tìm hiéu.

o_ Dự kiến kết quả

Năm được các yêu tô ưu, nhược diém của một vài phương pháp

bảo mật công nghệ chuỗi khối và hệ thống bầu cử đã chọn và

tìm hiêu

Ap dụng thành công những phương pháp được chon và tìm hiéu

Trang 13

‹ _ Xây dựng ứng dụng bau cử trực tuyến trên nền tảng trình duyệt

o Phương pháp thực hiện

« Tim hiểu các framework xây dựng ứng dụng trên nên tảng trình

duyệt hiện có trên thị trường

« Tìm hiểu các framework giao diện có thé sử dung dé tạo ra giao

diện thân thiện, dễ sử dụng,

« _ Đánh giáưu & nhược điểm các lựa chọn về framework xây dựng

ứng dung va giao diện dé đưa ra lựa chọn tối ưu nhất về mặt thời

gian và công sức.

o_ Dự kiến kết quả

« Chon được một framework xây dựng ứng dung và giao diện tối

ưu nhất

« Xây dựng ứng dung bau cử trực tuyến trên nền tảng trình duyệt

đáp ứng các nghiệp vụ cơ bản của một hệ thống bầu cử cơ bản

- _ So sánh, đánh giá kết quả đã đạt được của đề tài nghiên cứu

o Phương pháp thực hiện

« Tìm hiểu một vài tiêu chí của một hệ thống chuỗi khối về yêu tô

bảo mật, lưu trữ,

» Tim hiểu một vai tiêu chí của một hệ thống bầu cử

« Áp dụng các tiêu chí tìm được dé đánh giá, nhận xét hệ thống

bầu cử và chuỗi khối đã xây dựng

o_ Dự kiến kết quả

«= Xay dựng được một vài đồ thị/ bảng dé nhận xét các yếu tố về

bảo mật, hiệu suất, của hệ thống đã đạt được

Kết quả mong đợi:

- _ Hiểu rõ được kiến thức liên quan đến công nghệ chuỗi khối về hệ thống bầu

cử.

- Nam rõ, triển khai và đánh giá được các phương pháp bao mật đã được sử

dụng trong quá trình phát triển hệ thống bầu cử sử dụng công nghệ chuỗi khối

15

Trang 14

Xây dựng được ứng dụng bầu cử trực tuyến trên nền tảng trình duyệt có sửdụng công nghệ chuỗi khối thân thiện va dé sử dụng

Trang 15

Chương 1 TONG QUAN VE DE TÀI

Chương này giới thiệu tổng quát nội dung đề tài của bài khóa luận này, bao gồm lý

do chọn đề tài, đối tượng nghiên cứu, phạm vi nghiên cứu và các nghiên cứu liênquan đến hệ thống bầu cử sử dụng công nghệ chuỗi khối

1.1 Lý do chọn đề tài

Công nghệ chuỗi khối đã được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như

tài chính, chuỗi cung ứng và chăm sóc sức khỏe Tuy nhiên, một trong những ứng

dụng hứa hẹn nhất của công nghệ chuỗi khối là trong lĩnh vực hệ thống bỏ phiếu bầu

cử Các hệ thống bầu cử phải đối mặt với nhiều thách thức như minh bạch, hiệu quả

và đúng đắn Trong bài khóa luận này, nhóm tác giả mong muốn khám phá cách công

nghệ chuỗi khối có thể được áp dụng dé xây dựng một hệ thống bỏ phiếu có thé vượt

qua những thách thức và tăng cường sự tin tưởng của những phiếu bầu chọn củangười tham gia Nhóm tác giả sẽ xem xét tài liệu hiện có về các hệ thống bỏ phiếudựa trên chuỗi khối, xác định các nguyên tắc và yêu cầu thiết kế chính, đồng thời đềxuất một kiến trúc và giao thức mới cho hệ thống bỏ phiếu dựa trên chuỗi khối có thé

hỗ trợ nhiều loại bầu cử và kế hoạch bỏ phiếu khác nhau

1.2 Đối tượng nghiên cứu

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ếubầu cử

1.3 Pham vi nghiên cứu

Tập trung tìm hiểu tính bảo mật, an toàn của hệ thống bỏ phiếu sử dụng công nghệchuỗi khối Các phương pháp bảo mật cơ bản như mật mã băm, mã hóa đường cong,

Các chức năng hệ thống như API, mô hình ghép nối song tuyến tính giữa các nút trên

mạng chuỗi khối và cơ quan cấp chứng chỉ xác thực danh tính, làm cầu nối giữa

hệ thống và ứng dụng giao diện trên trình duyệt.

Ứng dụng giao diện trên nền tảng trình duyệt trực tuyến gồm các chức năng và giao

diện cơ bản đề hiện thực hóa các chức năng của hệ thông mà không yêu cầu quá nhiều

về các chức năng nâng cao ngoài hệ thông và giao diện phức tạp.

17

Trang 16

1.4 Nghiên cứu liên quan

e Bai báo khoa học:

o A Blockchain-Based Network Security Mechanism for Voting Systems

Nhom tac gia: Hsin-Te Wu va Chang-Yi Yang

Nội dung tom tat: Bai nghiên cứu đề xuất cơ chế bảo mật mạng cho các hệ thống bỏ

phiếu sử dụng công nghệ chuỗi khối và ghép nối song tuyến tính Các tác giả lập luận

rằng chuỗi khối có thê cung cấp một giải pháp phân tán, minh bạch và công bằng chocác hệ thống bỏ phiếu điện tử có thé chống lại các cuộc tan công mạng và đảm bảotính toàn vẹn cua dif liệu Các tác giả sử dụng ghép nối song tuyến tinh dé dat đượctính ân danh, tính xác thực, tính toàn vẹn và tính không thoái thác trong các giao dich

bỏ phiếu Bài nghiên cứu trình bày cách thức hợp đồng thông minh có thể được sử

dụng để thiết lập các quy định liên quan đến cử tri và cách thức thực hiện bỏ phiếu

kín và hệ thống bỏ phiếu mở bằng cách sử dụng cơ chế được đề xuất [14]

o Secure Electronic Voting System using Blockchain Technology

Nhóm tác gia: Kashif Mehboob Khan, Junaid Arshad va Muhammad Mubashir Khan

Nội dung tóm tắt: Bài nghiên cứu nay dé xuất một hệ thong bỏ phiếu kỹ thuật số antoàn dựa trên công nghệ chuỗi khối phi tập trung ghi lại các giao dịch và đảm bảotính toàn vẹn và minh bạch Trinh bày việc thiết kế và triển khai hệ thống sử dụngnền tảng Multichain, là một khung phát triển chuỗi khối mã nguồn mở Bài nghiên

cứu cũng đánh giá hệ thống về bảo mật, quyền riêng tư, khả năng kiểm chứng, khả

năng mở rộng và kha năng sử dụng Bài nghiên cứu kết luận rằng hệ thống có thékiểm chứng từ đầu đến cuối, có thé khắc phục những hạn chế và thách thức của các

hệ thống bỏ phiếu điện tử hiện có [10]

- Ung dụng trên thị trường

o Polys

18

Trang 17

Polys Use Casesv Solutions» Success Stories Blog Log In +

Blockchain-based online voting

Conduct remote elections and voting without

reputational or legal risks.

Hinh 1.1 PolysPolys là một hệ thống bỏ phiéu trực tuyến sử dung công nghệ chuỗi khối dé

đảm bảo tính bảo mật và minh bạch Cho phép người dùng tạo và quản lý các

cuộc bau cử, cũng như bỏ phiếu ân danh từ bat kỳ thiết bị nào Polys đã được

hàng trăm tô chức trên khắp thế giới sử dụng cho nhiều mục đích khác nhau, chăng hạn như giáo dục, kinh doanh và tác động xã hội Polys nham mục dich

làm cho việc bỏ phiếu trở nên dễ tiếp cận, thuận tiện và đáng tin cậy hơn với các công nghệ tiên tiến.

o Followmyvote

19

Trang 18

© followmyvote.com —cetinvoived ourennẽsv rêo He Knowledge Center Q | me |

//A Quantum Shift In App Development Is Coming

Hinh 1.2 Followmyvote

Follow My Vote là một trang web nhằm mang một hệ thong bỏ phiếu trực tuyến bangcông nghệ chuỗi khối đến cho hàng triệu người trên khắp thé giới Trang web cungcấp thông tin về những ưu và nhược điểm của bỏ phiếu trực tuyến, những thách thức

và giải pháp sử dụng chuỗi khối cũng như tầm nhìn và sứ mệnh của nhóm Follow My

Vote.

20

Trang 19

o Voatz

G Voatz How It Works Security & Technology v About Us v Resources v

Secure, accessible voting

at your fingertips.

The future of

Fast Company 2021 World Changing Webby Award Ideas 2021 Honoree

Multi-Category Apps and Software;

Finalist & Honoree Public Service & Activism

Hinh 1.3 Voatz

Voatz là công ty cung cấp các giải pháp bỏ phiếu di động an toàn va dé tiếp cận chocác cuộc bầu cử Sử dụng bảo mật điện thoại thông minh, xác minh danh tính từ xa,sinh trắc học và chuỗi khói dé bảo vệ thông tin và phiếu bầu của cử tri Voatz tạo ra

một dấu vét bằng giấy có thê kiểm chứng của cử tri dé kiểm toán và lập bảng kết quả

tức thì Voatz đã được các chính phủ và các đảng phái chính trị sử dụng trong các

cuộc bầu cử khác nhau trên khắp đất nước Voatz nhằm mục đích làm cho việc bỏ

phiêu trở nên thuận tiện va dé dang cho mọi người.

21

Trang 20

Chương 2 CƠ SỞ LÝ THUYÉT

Chương này dé cập đến những công nghệ, ứng dụng nén tảng được sử dung trong bàikhóa luận bao gồm chuỗi khối, Hyperledger Fabric, NestJS, ngôn ngữ Javascript và

công cụ lập trình giao diện Angular.

2.1 Chuỗi khối

TECHNOLOGY

Hình 2.1 Chuỗi khối

Chuỗi khối là một loại cơ sở dữ liệu dùng chung khác với cơ sở đữ liệu thông thường

ở cách lưu trữ thông tin; chuỗi khối lưu trữ đữ liệu trong các khối được liên kết với

nhau thông qua mật mã Các loại thông tin khác nhau có thể được lưu trữ trên một

chuỗi khối, nhưng cách sử dụng phổ biến nhất cho các giao dich là số cái Trongtrường hợp của Bitcoin, chuỗi khối được phân cấp đề không một cá nhân hoặc nhómnao có quyền kiêm soát—thay vào đó, tat cả người dùng cùng nhau giữ quyền kiêm

soát Các chuỗi khối phi tập trung là bất biến, có nghĩa là dữ liệu đã nhập là khôngthể đảo ngược Đối với Bitcoin, các giao dịch được ghi lại vĩnh viễn và bất kỳ ai cũng

có thê xem được.

Công nghệ chuỗi khối có nhiều ứng dụng tiềm năng ngoài tiền điện tử, chăng hạn

như ứng dụng tài chính phi tập trung (DeFi), mã thông báo không thé thay thé (NFT)

và hợp đồng thông minh Các ứng dụng này có thé tận dụng tính bảo mật, tính minh

22

Trang 21

bach và hiệu quả của các chuỗi khối dé tạo ra những cách mới dé trao đối giá trị và

tiễn hành kinh doanh Công nghệ chuỗi khối cũng có thé được sử dụng dé làm cho

dữ liệu trong bat kỳ ngành nao trở nên bat biên, giảm nhu câu về các bên thứ ba va bên trung gian dang tin cậy [5]

2.2 Hyperledger Fabric

<*, HYPERLEDGER

7 FABRIC

Hinh 2.2 Hyperledger Fabric

Hyperledger Fabric là một nền tang phô biến dé xây dựng các ứng dụng chuỗi khối

yêu cầu tính bảo mật, quyền riêng tư và khả năng mở rộng Nó được thiết kế theo

mô-đun và có thể mở rộng, cho phép các thành phần và giao thức khác nhau được thêmvào và tùy chỉnh Hyperledger Fabric hỗ trợ các hợp đồng thông minh được viết băng

nhiều ngôn ngữ khác nhau, chang hạn như Go, Java và Node.js Hyperledger Fabric

cũng cho phép nhiều tô chức cộng tác và chia sẻ dữ liệu một cách an toàn trên số cáiphân tán mà không cần dựa vào cơ quan trung ương Hyperledger Fabric là một trong

những dự án dưới sự bảo trợ của Hyperledger, được tô chức bởi Linux Foundation

Các hệ thống bỏ phiếu điện tử sử dụng Hyperledger Fabric có thé tận dụng các lợi ích

của công nghệ chuỗi khối, chăng hạn như tính minh bạch, tinh bat biến, bao mật và

khả năng mở rộng Trong hệ thống bỏ phiếu điện tử sử dụng Hyperledger Fabric, cửtri có thể bỏ phiếu bằng hợp đồng thông minh, sau đó được ghi lại trên số cái chuỗikhối theo cách bat biến Điều này đảm bảo rằng các phiếu bầu không thé bị giả mao

hoặc thao túng và danh tính của cử tri được bảo vệ bằng mã hóa Ngoài ra,

Hyperledger Fabric cho phép tạo các kênh và tổ chức khác nhau trong mạng, có thểcho phép các cấp độ truy cập và quyền riêng tư khác nhau cho các bên liên quan khácnhau trong quá trình bầu cử Ví dụ: cử tri có thể thuộc về một kênh, trong khi cơ quan

23

Trang 22

bâu cử có thê thuộc vê kênh khác và kiêm toán viên có thê thuộc vê kênh thứ ba.

Băng cách này, mỗi kênh có thể có số cái và hợp đồng thông minh riêng và chỉ các

bên được ủy quyền mới có thể truy cập chúng Hyperledger Fabric cũng cung cấp

hiệu suât cao và khả năng mở rộng cho các hệ thông bỏ phiêu điện tử, vì nó sử dụng

kiến trúc mô-đun tách biệt quá trình xử lý giao dịch khỏi cơ chế đồng thuận Điềunày cho phép thực hiện song song các giao dịch và xác thực các khối nhanh hơn Hơnnữa, Hyperledger Fabric hỗ trợ các loại thuật toán đồng thuận khác nhau, chăng hạnnhư Raft hoặc Kafka, có thé duoc chon theo nhu cầu va sở thích của những người

tham gia mang [8]

24

Uu diém

o Kiến trúc mô-đun: Hyperledger Fabric cho phép các nha phat triển thêm

vào các thành phần khác nhau, chăng hạn như thuật toán đồng thuận,

hệ thống quản lý danh tính và hợp đồng thông minh, theo nhu cầu và

sở thích của họ Điều này cho phép tùy chỉnh và tính linh hoạt cho cáctrường hợp và tình huống sử dụng khác nhau

Ủy quyền mạng: Hyperledger Fabric được thiết kế với ý tưởng phânquyền mạng, trong đó tất cả những người tham gia đều có danh tính vàvai trò đã biết Điều này giúp tăng cường bảo mật, quyền riêng tư vàtuân thủ, cũng như giảm chỉ phí tính toán của các giao dịch ân danh

Hỗ trợ kênh: Hyperledger Fabric hỗ trợ tạo các kênh, là các mạng con

riêng trong mạng chính Các kênh cho phép các nhóm người tham gia

khác nhau chia sẻ dữ liệu và thực hiện các giao dịch mà không dé lộchúng với phần còn lại của mạng Điều này cải thiện hiệu quả và tính

bảo mật cho sự cộng tác của nhiêu bên.

‹ Nhuoc điểm

o_ Độ phức tạp: Hyperledger Fabric có kiến trúc và thiết kế phức tạp, có

thé đặt ra thách thức cho các nhà phát triển và người dùng Ví dụ:

Hyperledger Fabric yêu cầu một dich vụ order riêng biệt dé phát cácgiao dịch tới mạng, dịch vụ này bô sung thêm một lớp trừu tượng và

Trang 23

điều phối Ngoài ra, Hyperledger Fabric có nhiều loại nút, chăng hạn

như peer, endorser, orderer va client, mỗi loại có chức năng và trách

nhiệm khác nhau, điều này có thé làm tăng độ khó hiểu và quản ly

mạng.

o_ Hiệu suất: Hiệu suất của Hyperledger Fabric có thể thay đổi tùy thuộc

vào cấu hình và khối lượng công việc của mạng Chăng hạn, thônglượng của Hyperledger Fabric có thể bị ảnh hưởng bởi các yếu tố như

sỐ lượng endorser, chính sách xác nhận, kích thước của các khối và cơ

chế đồng thuận Ngoài ra, độ trễ của Hyperledger Fabric có thê bị ảnh

hưởng bởi các yếu tố như số lượng kênh, số lượng giao dịch trên mỗi

kênh và cấu trúc liên kết mạng

dé thanh toán phí giao dịch va tai nguyên tính toán Ethereum liên tục được cải thiện

khám phá các khía cạnh khác nhau của giao thức như sự đồng thuận, thực thi, mật

mã, khả năng mở rộng và bảo mật nhờ cộng đông nghiên cứu tích cực và cởi mở.

25

Trang 24

Hệ thông bâu chọn chuối khôi là một cách mới đê tiên hành các cuộc bâu chọn tận

dụng lợi thé của công nghệ sô cái phi tập trung Ethereum là một trong những lựachọn phô biến nhất đề phát triển các hệ thống như vậy, vì nó cung cấp tính minh bạch,

bảo mật và khả năng tiêp cận Tuy nhiên nó cũng có một sô ưu và nhược điêm: [4]

‹«ồ Uudiém

26

Cộng đồng lớn và tích cực gồm các nhà phát triển và người dùng hỗ trợ

và cung cấp phản hồi cũng như sự đôi mới

Ngôn ngữ lập trình mạnh mẽ và linh hoạt cho phép các nhà phát triểnviết các hợp đồng thông minh phức tạp

Mức độ bảo mật và phân cấp cao, sử dụng cơ chế đồng thuận bằng

chứng công việc giúp chông lại kiêm duyệt và giả mạo.

« Nhược điểm

2.4.

o Hạn chê vê hiệu suât và khả năng mở rộng, Ethereum chỉ có thê xử lý

trung bình khoảng 15 giao dịch mỗi giây, điều này có thể dẫn đến tắc

Trang 25

Exonum là một framework dé tạo các ứng dụng chuỗi khối an toàn, hiệu quả và cóthể mở rộng Exonum cho phép các nhà phát triển xây dựng các hệ thống phi tập

trung có thể xử lý các vấn đề kinh doanh khác nhau, chăng hạn như quản lý tài sản,quản lý danh tính, quản lý chuỗi cung ứng, v.v Exonum cung cấp một thư viện lõi,

triển khai nút, CLI nút tạo điều kiện phát triển chuỗi khối Exonum được thiết kế để

tạo các chuỗi khối phân quyền, nơi những người tham gia mang được biết và tin cậy.Exonum sử dụng thuật toán đồng thuận tùy chỉnh có thê xử lý tới 5.000 giao dịch mỗigiây với độ trễ thấp Exonum cũng hỗ trợ ngôn ngữ lập trình Rust, cho phép các hợp

đồng thông minh linh hoạt và hiệu quả Exonum cung cấp khả năng xác minh, an

danh và mã hóa từ đầu đến cuối cho các quy trình bầu chọn điện tử Nó có thể tích

hợp với nhiều công cụ mật mã khác nhau, chăng hạn như quantum key distribution

và elliptic-curve cryptography, dé tăng cường tính bảo mật và độ tin cậy của bỏ phiếuđiện tử Exonum đã được sử dụng bởi Polys, một công cụ bỏ phiếu dựa trên chuỗikhối từ Kaspersky Innovation Hub, đề đi chuyên từ Ethereum và tăng năng suất cũngnhư khả năng mở rộng của nó Exonum là một framework phù hợp cho các hệ thống

bỏ phiếu điện tử đòi hỏi hiệu suất, tính minh bạch và khả năng tùy chỉnh cao [1]

‹e Uudiém

o_ Mã nguồn mở và có thể mở rộng, nghĩa là bất kỳ ai cũng có thể đóng

góp vào sự phát triển của nó hoặc sử dụng nó cho các dự án của riêng

họ.

o_ Sử dụng mô hình phân quyền, nghĩa là chỉ các nút được ủy quyền mới

có thê tham gia vào mạng chuỗi khối và xác thực các giao dịch

o Tận dụng Rust làm ngôn ngữ lập trình chính, mang lại hiệu suất cao,

độ tin cậy và an toàn bộ nhớ.

o Cung cấp một bộ công cụ và thư viện phong phú dé phát triển, thử

nghiệm va triển khai các dịch vụ chuỗi khối

‹ Nhược điểm

o_ Vẫn còn tương đối mới và đang được phát triển, nên có thê có một số

161 hoặc thiêu một sô tính năng.

27

Trang 26

o Doi hỏi trình độ chuyên môn kỹ thuật cao và kiến thức về các khái niệm

chuỗi khối, điều này có thé hạn chế những người không phải là nhà phat

triển hoặc người mới bắt đầu áp dụng

Có thé không phù hợp với một số trường hợp sử dụng yêu cầu một chuỗi khối công

khai hoặc phi tập trung hoản toan, chang hạn như các giao dịch an danh hoặc kha

năng chống kiêm duyệt

2.5 NestJS

NestJS là một khung tiến bộ dé xây dung các ứng dung phía máy chủ hiệu quả, cóthé mở rộng và đáng tin cậy với Node.js Nó tận dụng TypeScript, một siêu bộJavaScript có thêm các loại tĩnh và các tính năng khác, để nâng cao năng suất và chấtlượng mã của nhà phát triển NestJS cũng hỗ trợ phát triển JavaScript thuần túy chonhững người thích nó NestJS áp dụng kiến trúc mô-đun kết hợp các yếu tố của lậptrình hướng đối tượng, lập trình chức năng và lập trình phản ứng chức năng Nó cungcấp mức độ trừu tượng cao so với các khung công tac Node.js phô biến, chang hạnnhư Express hoặc Fastify, nhưng cũng hiển thị trực tiếp các API của họ cho nhà phát

triển, cho phép tùy chỉnh và linh hoạt NestJS cung cấp một bộ tinh năng và công cụ

phong phú, chăng hạn như tiêm phụ thuộc, bộ điều khiển, đường ống, bộ bảo vệ, bộ

chặn, bộ trang trí, bộ lọc ngoại lệ, tiện ích thử nghiệm, v.v Nó cũng tích hợp liềnmạch với các thư viện và mô-đun bên thứ ba khác nhau, chăng hạn như TypeORM,GraphQL, Swagger, Passport, v.v NestJS được lấy cảm hứng rất nhiều từ Angular,một trong những khung giao điện người dùng phố biến nhất Nó tuân theo một cau

trúc dự án tương tự và sử dụng các khái niệm và thuật ngữ tương tự Điều này giúp

các nhà phát triển đã quen thuộc voi Angular dé dàng bắt đầu với NestJS và ngượclại NestJS cũng chia sẻ triết lý của Angular về việc cung cấp cách xây dựng ứng dụngnhất quán và chuẩn hóa, trong khi vẫn cho phép tùy chỉnh và khả năng mở rộng.NestJS là một dự án nguồn mở được duy trì và phát triển tích cực bởi một cộng đồngnhững người đóng góp sôi nổi Nó có một tài liệu toàn diện bao gồm tat cả các khía

cạnh của khung, từ cài đặt và các bước đầu tiên đến các chủ đề nâng cao và các

phương pháp hay nhất Nó cũng có một cộng đồng thân thiện và hữu ích trên Discord,

28

Trang 27

GitHub, Stack Overflow và các nền tảng khác NestJS là một khung nhằm trao quyền

cho các nhà phát triển tạo ra các ứng dụng phía máy chủ hiện đại, có thể mở rộng và

có thé bảo trì băng Node.js Đó là một khuôn khổ mà bạn có thé tin tưởng dé xử lýcác nhu cầu về cơ sở hạ tầng và logic kinh doanh của mình, trong khi bạn tập trung

vào việc cung cap giá tri cho người dùng của mình [11]

29

Trang 28

tính năng cơ bản của Angular, chăng hạn như các thành phần, chỉ thị, dịch vụ, đường

ống, biểu mẫu, định tuyến và thử nghiệm [2]

30

Trang 29

Chương 3 HE THONG LƯU TRU SU DUNG CÔNG NGHỆ CHUOI

KHOI

Chương nay thé hiện chi tiết hệ thống chuỗi khối dé lưu trữ các cuộc bầu chon và

phiếu bầu của người tham gia Bắt đầu bằng việc khảo sát một số nền tảng chuỗi khối

trên thị trường và chọn ra nền tảng phù hợp nhất để xây dựng Sau khi đã chọn đượcnên tảng, tiễn hành xây dựng các đối tượng và các quy trình trong hệ thống

3.1 Khảo sát một số nền tảng chuỗi khối

Nhóm đã khảo sát qua ba nền tảng chuỗi khối:

Một trong những lý do nhóm tác giả quyết định không sử dụng Ethereum cho dự áncủa mình là nó có hiệu suất hạn chế và yêu cầu trả phí xác minh Ethereum sử dụngmột hệ thống gọi là gas để đo lường chỉ phí tính toán của mỗi giao dịch trên mạngcủa nó Phí gas được thanh toán bằng Ether, tiền điện tử gốc của Ethereum và chúng

dao động tùy thuộc vào nhu cầu và tắc nghẽn mạng Nhóm tác giả muốn tránh những

hạn chế và chi phí nay, vì vậy nhóm tác giả đã chọn một giải pháp khác

Nhóm tác giả không chọn Exonum cho hệ thống của mình vì nó vẫn còn mới và đangđược phát triển Dé tai cần một nền tảng hoàn thiện, ồn định hơn và đã được thửnghiệm và chứng minh trên thị trường Nhóm tác giả cũng muốn tránh các sự cố hoặclỗi tương thích tiềm ẩn có thé phát sinh khi sử dung một framework đang phát triển

3.2 Sơ đồ hệ thống

Hệ thống bao gồm:

31

Trang 30

Kênh của Hyperledger Fabric là một cách tạo mạng riêng giữa hai hoặc nhiều tổ chức

thành viên muôn thực hiện các giao dịch bí mật Một kênh có sô cái dùng chung, một

hoặc nhiêu ứng dụng chuỗi mã và nút orderer tạo va phân phôi các khôi cho các peer.

Mỗi thành viên có một anchor peer kết nối với kênh và giao tiếp với các peer khác.

Một kênh có thé được chia sẻ trên toàn bộ mạng hoặc được riêng tư hóa để chỉ bao

gồm những người tham gia cụ thê

Hệ thống của ứng dụng sẽ sử dụng một kênh duy nhất cho toàn bộ hệ thống Số cái

của kênh sẽ là danh sách các CBC được tạo Các peer sẽ là những NTG, BTC và quản

trị viên của các CQCCC Một chuỗi mã chính được triển khai lên kênh này

32

Trang 31

3.2.2 Tổ chứcMột tô chức trong Hyperledger Fabric là một thực thé logic đại điện cho một bên liênquan trong thế giới thực, chắng hạn như một công ty, cơ quan chính phủ hoặc một

tập đoàn Mỗi tô chức có danh tinh, tư cách thành viên và chính sách riêng chi phối

các tương tác của tổ chức đó với các tô chức khác và toàn bộ mạng

Một trong những chức năng chính trong Hyperledger Fabric là các tổ chức có théhình thành các nhóm được gọi là các kênh, là các mang con giao tiếp cho phép cách

ly và bảo mật dữ liệu Các kênh cho phép các tô chức chỉ chia sẻ thông tin và giaodịch với những người được ủy quyền và cần biết Ví dụ: một kênh có thể được tạo

cho mạng lưới chuỗi cung ứng liên quan đến nhiều tổ chức, chang hạn như nhà cung

cấp, nhà sản xuất, nhà phân phối và nhà bán lẻ

3.2.3 Chuỗi mã

Một khái niệm quan trọng khác trong Hyperledger Fabric là các tô chức có thé triểnkhai các hợp đồng thông minh được gọi là chuỗi mã (chaincode) trên các kênh mà họ

tham gia Chuỗi mã là logic nghiệp vụ xác định các quy tắc và hoạt động của mạng.

Chuỗi mã có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau, chăng hạn như

Go, Javascript, Typescript hoặc Java Chuỗi mã có thé truy cập dữ liệu số cái và thực

hiện các giao dịch theo logic đã thỏa thuận.

3.2.4 Cơ quan cấp chứng chỉHyperledger Fabric dựa trên các chứng chi dé dam bảo tinh bao mật và danh tính của

những người tham gia Cơ quan cấp chứng chỉ chịu trách nhiệm phát hành và quản lý

các chứng chỉ này, có thé được sử dụng cho các mục đích khác nhau như xác thực,

ủy quyền, mã hóa và ký

Hyperledger Fabric cung cap dịch vụ CQCCC tích hợp có tên là Fabric CA, dịch vụnày có thé được sử dụng dé thiết lập và định cấu hình CQCCC cho mạng CQCCC

hỗ trợ các tính năng như đăng ký danh tính, đăng ký chứng chỉ, thu hồi chứng chỉ và

tạo khối genesis và giao dịch cau hình kênh

33

Trang 32

3.2.5 Dữ liệu bí mật

Hyperledger Fabric cho phép đữ liệu được chia sẻ giữa các tổ chức khác nhau một

cách an toàn và phi tập trung Một trong những tính năng của Hyperledger Fabric là

thu thập dữ liệu riêng tư, cho phép bảo mật và bảo mật dữ liệu cho một số giao dịch

nhất định Dữ liệu riêng tư là một tập hợp con của số cái kênh mà chỉ một nhóm các

tổ chức được ủy quyền mới có thé truy cập được, trong khi các thành viên còn lại củakênh chỉ có thể xem hàm băm của dữ liệu riêng tư Bằng cách này, dữ liệu nhạy cảm

có thể được bảo vệ khỏi bị tiết lộ trái phép, trong khi vẫn duy trì tính nhất quán của

dữ liệu và khả năng kiểm tra trên kênh Dữ liệu riêng tư có thể được định cấu hình

bằng cách sử dụng các định nghĩa bộ sưu tập chỉ định tên, phạm vi, chính sách và các

yêu cầu chứng thực của dữ liệu riêng tư

3.3 Các quy trình

Dưới đây là các quy trình trừu tượng mà hệ thống chuỗi khối sử dụng HyperledgerFabric sẽ sử dụng đề lưu trữ CBC và các phiếu bầu của NTG bao gồm quy trình tạo

CBC, quy trình NTG bỏ phiếu bau và cuối cùng là đóng, tổng kết, thống kê phiếu bầu

của CBC Các quy trình sẽ là nền móng cho việc xây dựng các hàm chuỗi khối

34

Trang 34

Tác nhân chính của quy trình này sẽ là người dùng hệ thống Người dùng có thé tạomột CBC với các thông số tinh chỉnh được cho trước trên ứng dụng Sau đó hệ thống

sẽ tiếp nhận yêu cầu và xử lý tạo CBC theo các bước quy định Một CBC có thể có

các hình thức như là “công khai”, “riêng tư” hoặc “bí mật” tùy thuộc vào nhu câu sử

dụng của người dùng Nội dung mô tả của từng hình thức như sau:

« Công khai:

o_ Cuộc bầu chọn có thê được tham gia bời bất kỳ ai Danh tính và phiếu

bầu của họ sẽ được công khai và xem bởi tất cả mọi người

o Sau khi đóng cuộc bầu chọn, không ai có thể tham gia được nữa

e Riêng tư

o_ Cuộc bau chọn có thê được tham gia bời bat kỳ ai Danh tính và phiếu

bầu của họ sẽ được mã hóa và không thê bị tiết lộ công khai

o Sau khi đóng cuộc bầu chọn, không ai có thé tham gia được nữa Kết

quả và các khóa bí mật của cuộc bầu chọn sẽ được công khai dé truy

cập và kiểm định

„« Bí mật

o Cuộc bau chọn có thê được tham gia bời bat kỳ ai Danh tinh và phiếu

bầu của họ sẽ được mã hóa và không thể bị tiết lộ công khai

o Sau khi đóng cuộc bầu chọn, không ai có thể tham gia được nữa Kết

quả và các khóa bí mật của cuộc bầu chọn sẽ được công khai dé truy

cập và kiểm định

o_ Chỉ những người tham gia được chỉ định từ trước sẽ có phiếu bầu và

danh tính của họ được công khai Đối với những người tham gia khácnăm ngoài danh sách, phiếu bầu và danh tính của họ sẽ bị bỏ qua và

xóa.

36

Trang 35

3.3.2 Bó phiếu

Bỏ phiêu CBC

Ký mã hoa thông tin

bao gồm nội dung

Lưu thông tin bỏ

phiêu vảo số cái

Sử dụng chữ ký mới Sử dụng mã giao dich

lảm ID phiêu bầu lảm ID phiêu bầu

Hình 3.3 Quy trình bỏ phiếu

37

Trang 36

Tác nhân chính của quy trình sẽ là người tham gia CBC Mỗi người tham gia sẽ nhập

một chuỗi định danh dé xác minh phiếu bau đó là của họ Chuỗi định danh nay cùng

với nội dung phiếu bau sẽ được xác thực ở CQCCC tạo ra một mã định danh gắn liềnvới họ Mã định danh này sau đó được đưa vào số cái công khai và tùy thuộc vào hình

thức của CBC mà sẽ có quy trình xử lý riêng biệt như đã mô tả bên trên.

Một giải thuật mã hóa sẽ được sử dụng dé mã hóa dữ liệu phiếu bầu và danh tính

Khóa bí mật của CBC sẽ được giấu đi trong dit liệu bi mật của tô chức HyperledgerFabric Chỉ sau khi CBC đã được đồng thuận đóng, các khóa bí mật mới được côngkhai cho phép tất cả mọi người tham gia hệ thống kiểm tra và xác thực lại độ chínhxác của dữ liệu phiếu bầu

3.3.3 Đóng cuộc bầu chọn

Tác nhân chính của quy trình này sẽ là các BTC được quy định trước trong quá trình

tạo CBC Các BTC sẽ có quyền yêu cầu đóng CBC khi có nhu cầu Một khi số lượngBTC yêu cầu đóng thỏa tỷ lệ đồng thuận quy định trước, CBC sẽ chuyền sang trạng

thái “đóng” hoặc “tổng kết” tùy vào hình thức của CBC

Lúc này các dữ liệu bí mật như khóa bí mật, nội dung bau chọn, danh tính NTG sẽđược lần lượt công khai vào số cái bởi các tô chức Hyperledger Fabric Điều này giúpcho kết quả CBC được minh bạch, tránh gian lận trong quá trình xảy ra biểu quyết

38

Trang 37

chưa công khai

dữ liệu phiêu bầu?

Trang 38

3.4 Phát triển chuỗi mã

Chuỗi mã của hệ thống chuỗi khối được lựa chọn viết bằng ngôn ngữ Typescript

Chuỗi mã sẽ được triển khai lên lần lượt cả hai t6 chức dé người dùng của cả hai cóthé thao tác với dir liệu trong chuỗi khối Dé có thé lập trình được chuỗi mã, chúng

ta cần định nghĩa đối tượng chính trên số cái công khai, sau đó là các hàm có thé gọi

được để tạo các giao dịch trên các khối Các giao dịch này sẽ được xác thực bởi toàn

bộ peer trên mạng chuỗi khối, nếu hợp lệ, những thay đôi trong giao dịch sẽ được áp

dụng lên số cái công khai

3.4.1 Định nghĩa đối tượng CBCTrước khi viết chuỗi mã, chúng ta cần định nghĩa đối tượng chính được lưu trong sốcái công khai của hệ thống chuỗi khối Ở đây là các CBC mà người tạo và tham gia

bỏ phiếu Cụ thé CBC bao gồm các thuộc tính:

40

Trang 39

Orøanizers Bản ghi chuỗi mã hóa khóa chính của BTC với giá trị là

& nhãn thời gian ma BTC quyét định đóng CBC

MinimumConsent Số lượng BTC tối thiêu cần đồng thuận dé đóng một CBC

OptionType Loại lựa chon mà NTG có thé chon, có thé là don lựa chọn

P 3P hoặc đa lựa chọn

MultipleOptionLimit Nêu loại lựa chọn ở trên là đa lựa chọn thì đây sẽ là sô lượng

lựa chọn mà người dùng có thê chọn tôi đa

Trạng thái của CBC, có thể là “đang mở”, “đang tông kết”

VotesPublic Những phiếu bau đã được công khai

Votes Mang chuỗi ID đã được mã hóa của những phiếu bau

EndorsingOrgs Mang chuoi những tô chức của Hyperledger Fabric cân

chứng thực giao dịch

Ban ghi chuỗi những khóa bí mật của CBC với mỗi tô chức

PrivateKeys , ;

của Hyperledger Fabric

ClosedOn Nhãn thời gian khi CBC chuyền sang tráng thái “đã đóng”

41

Trang 40

2 Authenticate Vote Xác thực danh tinh va nội dung phiếu bau.

3 VoteBallot Lưu thông tin phiếu bau lên số cái công khai

4 EndBallot Đóng CBC.

5 EinalizeBallotAsOrg Tông ket di liệu các phiêu bau của tô chức

tham gia.

6 EinalizeBallot Lưu dữ liệu các phiêu bâu sau tông kêt vào sô

cái công khai.

7 GetBallot Lay thông tin của một CBC

8 GetVote Lay thông tin của một phiếu bau

9 GetBallotHistory Lay các giao dich lich sử cua CBC trên chuỗi

o ID của CBC được tạo ngẫu nhiên là một chuỗi dài 64 ký tự ID rút

gọn của CBC cũng được tạo ngẫu nhiên với điều kiện là không có

CBC nào đã sử dụng ID rút gọn này

42

Ngày đăng: 02/10/2024, 05:17