Tổng quan về bỏ phiếu điện tử
Khái niệm về bỏ phiếu
Bầu cử là 1 quá trình đưa ra biểu quyết của cử tri bầu ra hoặc cử ra một người hoặc
Bầu cử là quá trình mà một nhóm người lựa chọn đại diện cho mình trong các vị trí công hoặc tư, thông qua các hình thức như biểu quyết giơ tay hoặc bỏ phiếu Bỏ phiếu cho phép người tham gia thể hiện sự lựa chọn và ý kiến của mình Để đảm bảo thành công cho cuộc bỏ phiếu, cần tuân thủ các tiêu chí nhất định.
❖ Quyền bỏ phiếu: Chỉ người có quyển bỏ phiếu mới được thực hiện bỏ phiếu.
Người bỏ phiếu chỉ được bỏ phiếu một lần.
❖ Tính bí mật: Không biết được thông tin người gửi lá phiếu là ai, ngoại trừ người gửi lá phiếu.
Kiểm soát kết quả bầu cử giúp phát hiện sai sót trong quá trình bỏ phiếu truyền thống Mặc dù hiện nay vẫn sử dụng phương thức bỏ phiếu truyền thống, sự phát triển nhanh chóng của công nghệ thông tin và xu hướng “Chính phủ điện tử” đang thúc đẩy việc chuyển đổi sang “bỏ phiếu điện tử” trong tương lai gần.
Cử tri cần mang theo thẻ cử tri khi đến các địa điểm bỏ phiếu để đăng ký quyền bỏ phiếu Sau đó, họ sẽ ghi lựa chọn ứng cử viên hội đồng vào lá phiếu và gửi vào hòm phiếu.
Khái niệm về bỏ phiếu điện tử
Bỏ phiếu điện tử là phương thức bỏ phiếu từ xa qua internet, sử dụng máy tính và thiết bị di động Trong hệ thống này, người tham gia không biết danh tính của nhau, và các lá phiếu được gửi dưới dạng số đến hòm phiếu trực tuyến.
Yêu cầu của một hệ thống bỏ phiếu điện tử
Nguyễn Thị Ngọc Bích - K18HTTTB 1
Hệ thống bầu cử cần đảm bảo tính chính xác bằng cách ngăn chặn việc loại bỏ phiếu hợp lệ và đếm phiếu không hợp lệ, yêu cầu sự giám sát từ tổ chức đáng tin cậy Mặc dù bỏ phiếu điện tử có thể giảm thiểu một số lỗi của hệ thống truyền thống, nhưng rủi ro từ phần cứng và phần mềm mới vẫn tồn tại, do đó, cần có sự kiểm tra kỹ lưỡng bởi các chuyên gia để đảm bảo hệ thống hoạt động hoàn hảo.
Hệ thống bầu cử cần đảm bảo tính dân chủ bằng cách xác thực tư cách cử tri, cho phép mỗi cử tri đủ điều kiện chỉ được bỏ một lá phiếu Việc xác thực có thể thực hiện qua thẻ thông minh, chữ ký số hoặc cơ chế đăng nhập bằng username/password Đồng thời, hệ thống cần kiểm tra xem cử tri đã thực hiện quyền bầu cử hay chưa, đảm bảo rằng mỗi cử tri hợp lệ chỉ nhận được một lá phiếu duy nhất.
Đảm bảo tính riêng tư trong bầu cử là rất quan trọng, nhằm ngăn chặn việc tổ chức, cá nhân hay quản trị hệ thống biết được mối quan hệ giữa cử tri và lá phiếu của họ Điều này có nghĩa là không cử tri nào có thể chứng minh họ đã bầu cho ai Mặc dù việc thiết kế một hệ thống bảo mật tính riêng tư không quá khó, nhưng việc đảm bảo rằng không ai có thể theo dõi lá phiếu của cử tri lại là một thách thức lớn.
Để đảm bảo tính xác minh trong bầu cử, hệ thống cần cho phép người dân kiểm tra lại kết quả, đảm bảo rằng tất cả phiếu bầu được đếm chính xác Trong trường hợp có phản hồi về kết quả, hệ thống phải hỗ trợ việc kiểm tra lại bằng cách đếm phiếu thủ công Kỹ thuật VVAT có thể được áp dụng, cho phép in và lưu trữ phiếu bầu ngay sau khi cử tri bỏ phiếu, từ đó có thể dễ dàng truy xuất và kiểm tra khi cần thiết.
❖ Tính tiện dụng: Hệ thống phải cho phép và trợ giúp cử tri bỏ phiếu nhanh chóng
Nguyễn Thị Ngọc Bích - K18HTTTB 2
❖ Tính di động: hệ thống cần hỗ trợ bỏ phiếu ở nhiều nơi, có thể thông qua thiết bị di động, máy tính kết nối internet.
❖ Tính hiệu quả: thời gian bầu cử cần diễn ra trong khoảng thời gian chấp nhậnđược, không để cử tri chờ quá lâu.
❖ Tính mở rộng: quy mô của bầu cử không ảnh hưởng đến tính hiệu quả, chính xác của hệ thống.
Không phải hệ thống nào cũng có khả năng đáp ứng đầy đủ các yêu cầu, và đôi khi các yêu cầu này còn mâu thuẫn với nhau Ví dụ, yêu cầu về tính riêng tư đòi hỏi hệ thống lưu trữ ít thông tin về cử tri để bảo vệ mối quan hệ giữa cử tri và lá phiếu, trong khi yêu cầu về tính xác minh lại cần lưu trữ nhiều thông tin hơn Do đó, việc xây dựng hệ thống phù hợp sẽ phụ thuộc vào từng điều kiện cụ thể và nhóm yêu cầu cần thỏa mãn.
Thực trạng bỏ phiếu điện tử tại Việt Namvà trên thế giới
Bỏ phiếu điện tử ở nước ta hiện chỉ áp dụng cho mục đích bầu chọn và bình chọn, như bầu chọn Vịnh Hạ Long là di sản thiên nhiên thế giới hay bình chọn bài hát hay trên truyền hình Tuy nhiên, việc triển khai bỏ phiếu điện tử trong bầu cử Quốc hội vẫn gặp nhiều hạn chế, bao gồm vấn đề ngân sách, giáo dục ý thức cho người dân, cũng như quá trình phổ biến và huấn luyện phương thức thực hiện cho các cấp, các bộ phận liên quan Điều này tạo ra một khoảng trống lớn, đặc biệt là trong việc đầu tư kinh phí lắp đặt hệ thống máy bầu cử và các trở ngại về khoảng cách vùng miền.
Bỏ phiếu điện tử (e-voting) đã trở thành khái niệm quen thuộc ở các nước phát triển, đặc biệt là Bắc Mỹ và Châu Âu Tại Châu Á, chỉ có Hàn Quốc, Nhật Bản và Ấn Độ là ba quốc gia từng thử nghiệm hệ thống bầu cử điện tử, nhờ vào trình độ công nghệ cao Tuy nhiên, bầu cử điện tử ở những nước này vẫn chưa đạt được thành công thực sự, khi kết quả thu được từ các lá phiếu vẫn còn gây tranh cãi.
Nguyễn Thị Ngọc Bích - K18HTTTB 3 máy bầu cử hay chương trình bầu cử trên internet để làm thay đổi kết quả hay không.
Ưu điểm, hạn chế của bỏ phiếu điện tử
Bỏ phiếu từ xa mang lại nhiều lợi ích, bao gồm tiết kiệm thời gian, công sức và tiền bạc cho các cuộc bầu cử Phương thức này giúp giảm thiểu thời gian di chuyển, đơn giản hóa các thủ tục giấy tờ và rút ngắn thời gian bỏ phiếu cũng như kiểm phiếu.
❖ Kết quả kiểm phiếu dễ dàng, tiện lợi và chính xác.
Bỏ phiếu từ xa giúp giảm thiểu tối đa các vấn đề gian lận thường gặp trong bầu cử truyền thống, như thất lạc lá phiếu, thay đổi thông tin trên lá phiếu và mua chuộc phiếu bầu.
❖ Rủi ro bảo mật: Bỏ phiếu điện tử qua internet dễ bị đe dọa bởi các hacker.
❖ Khó khăn cho cử tri mới sử dụng internet.
Bỏ phiếu điện tử đòi hỏi một hệ thống cơ sở hạ tầng mạnh mẽ, bao gồm mạng Internet và phủ sóng điện thoại đến các vùng sâu, vùng xa, biên giới và hải đảo Để triển khai hiệu quả, cần có cơ sở dữ liệu toàn dân, quy trình bầu cử chuẩn và các kỹ thuật bầu cử phù hợp Tuy nhiên, việc thực hiện những điều này cần một khoản kinh phí và thời gian đáng kể, điều mà không phải quốc gia nào cũng có khả năng đáp ứng.
Tổng quan về công nghệ blockchain
Khái niệm
Blockchain, hay còn gọi là chuỗi khối, 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 với nhau thông qua mã hóa Mỗi khối không chỉ chứa thông tin về thời gian khởi tạo mà còn liên kết với khối trước đó, đồng thời bao gồm dữ liệu giao dịch Công nghệ này mở rộng theo thời gian, tạo ra một hệ thống an toàn và minh bạch cho việc lưu trữ thông tin.
Tất cả các bản sao trên blockchain được cập nhật khi có dữ liệu hoặc giao dịch mới, nhờ vào sự đồng thuận của tất cả người tham gia Người đào đảm nhiệm các khâu trung gian, góp phần tăng cường an ninh, minh bạch và ổn định, đồng thời giảm thiểu chi phí và lỗi do con người gây ra.
❖ Blockchain 1.0 : Tiền ảo và thanh toán
❖ Blockchain 2.0 : Ứng dụng tài chính và thị trường
❖ Blockchain 3.0: Thiết bị và giám sát tự động.
Đặc điểm của blockchain
Công nghệ blockchain đóng vai trò như một cuốn sổ cái ghi lại tất cả các giao dịch xảy ra trong hệ thống Đặc điểm chính của blockchain:
Công nghệ blockchain rất khó bị làm giả và phá hủy, và chỉ có máy tính lượng tử mới có khả năng giải mã sự phức tạp của nó Theo lý thuyết hiện tại, blockchain sẽ chỉ biến mất khi Internet toàn cầu không còn tồn tại.
Dữ liệu trong blockchain được lưu trữ vĩnh viễn và không thể chỉnh sửa, hoặc nếu có chỉnh sửa, sẽ để lại dấu vết truy xuất Điều này đảm bảo tính bất biến và minh bạch của thông tin trong hệ thống.
❖ Bảo mật: Chỉ có người nắm giữ khóa bí mật mới có thể truy xuất dữ liệu.
Minh bạch là một trong những đặc điểm nổi bật của công nghệ blockchain, cho phép mọi người dễ dàng theo dõi dữ liệu từ địa chỉ này sang địa chỉ khác Người dùng có thể thống kê toàn bộ lịch sử giao dịch trên từng địa chỉ, đảm bảo tính minh bạch và đáng tin cậy trong các hoạt động tài chính.
Công nghệ blockchain được hình thành trên cơ sở của 3 yếu tố: [3]
❖ Mật mã học: Sử dụng khóa công khai (public key) và hàm băm (hash function) để đảm bảo tính minh bạch, toàn vẹn và riêng tư.
❖ Mạng phân tán ngang hàng (P2P): Mỗi một nút trong mạng được xem nhưmột máy trạm (client) và cũng là máy chủ (server) để lưu trữ bản sao ứng dụng.
Cơ chế đồng thuận trong hệ thống yêu cầu tất cả các nút tham gia phải tuân thủ các quy tắc như PoW hoặc PoS, và sự tuân thủ này được thúc đẩy bởi các động lực kinh tế.
1.2.4 Các kĩ thuật chính dùng trong blockchain
1.2.4.1 Cấu trúc phi tập chung
Blockchain là công nghệ lưu trữ thông tin trong một mạng lưới rộng lớn, bao gồm hàng triệu máy tính cá nhân, tạo ra một cơ sở dữ liệu phân cấp và phân tán độc lập Điều này đồng nghĩa với việc không tồn tại một máy chủ trung tâm và không có ai quản lý hay sở hữu dữ liệu.
Nguyễn Thị Ngọc Bích - K18HTTTB 5 đã chứng minh rằng blockchain có khả năng bảo vệ tốt hơn so với các hệ thống lưu trữ thông tin truyền thống Khi một máy trong mạng lưới bị tấn công, chỉ máy đó bị ảnh hưởng, trong khi phần còn lại của hệ thống vẫn được bảo toàn Điều này cho thấy tính an toàn vượt trội của công nghệ blockchain nhờ vào cấu trúc phân tán độc lập của nó.
Mỗi nút trong mạng đều lưu trữ toàn bộ blockchain, với chất lượng dữ liệu phụ thuộc vào sự đồng bộ liên tục giữa các nút Tất cả các nút có độ tin cậy ngang nhau, không có nút nào đáng tin cậy hơn nút khác, và việc trao đổi dữ liệu không yêu cầu sự tin tưởng lẫn nhau Quy chế hoạt động của hệ thống cùng với tất cả dữ liệu đều công khai và minh bạch, đảm bảo rằng các nút không thể giả mạo quy tắc và thời gian do hệ thống quy định.
1.2.4.3 Cơ chế đồng thuận của blockchain
Cơ chế đồng thuận của blockchain đảm bảo sự thống nhất về trạng thái hiện tại giữa các người tham gia, quyết định ai có quyền thêm các block giao dịch mới và ngăn chặn việc ghi đè chuỗi Một trong những phương pháp phổ biến là Bằng chứng làm việc (PoW).
PoW, hay Proof of Work, là cơ chế đồng thuận đầu tiên do Satoshi Nakamoto phát triển cho Bitcoin, nơi các máy tính trong mạng lưới hợp tác để bảo mật blockchain thông qua việc giải quyết các bài toán toán học phức tạp Mặc dù nhiệm vụ này đơn giản cho máy tính, nhưng nó yêu cầu chi phí tính toán cao do tính chất lặp đi lặp lại Các máy tính cạnh tranh để tìm ra số nonce phù hợp, và máy tính nào tìm ra câu trả lời trước sẽ được phép thêm khối giao dịch mới vào blockchain, nhận phần thưởng là Bitcoin mới và phí giao dịch PoW dựa trên tính toán để xác thực giao dịch, giúp dễ dàng phát hiện gian lận, khi đó các giao dịch không hợp lệ sẽ bị loại bỏ Kẻ tấn công chỉ có thể gian lận nếu sở hữu một lượng lớn sức mạnh tính toán để liên tục đào khối và tạo ra bằng chứng công việc.
Do PoW tiêu tốn nhiều năng lượng và chi phí cao, ngành công nghiệp đã phát triển xung quanh việc sản xuất chip tùy chỉnh cho việc đào coin Trong khi đó, PoS đã trở thành một phương pháp thay thế phổ biến, không yêu cầu phần cứng chuyên dụng Trong PoS, cơ hội xác minh giao dịch trên mạng lưới phụ thuộc vào số lượng coin mà người tham gia nắm giữ.
Thuật toán bằng chứng cổ phần (Proof of Stake) cho phép các nút trong mạng lưới khai thác dựa trên tỷ lệ cổ phần mà họ sở hữu Nếu một nút nắm giữ 10% cổ phần, nó sẽ khai thác 10% trong hệ thống Đặc biệt, nút nào sở hữu 51% cổ phần sẽ có quyền kiểm soát toàn bộ mạng lưới.
Bằng chứng cổ phần (PoS) mang đến một hệ thống công bằng hơn so với bằng chứng làm việc (PoW), khi mà quy mô khai thác tỷ lệ thuận với số lượng cổ phần sở hữu, không phân biệt quy mô lớn hay nhỏ Điều này khuyến khích sự tham gia của cộng đồng vào giao dịch, đồng thời tăng cường tính phân cấp và dân chủ trong hệ thống.
Trong hệ thống PoS, người sở hữu nhiều cổ phần có khả năng xác minh giao dịch cao hơn và do đó nhận được nhiều phần thưởng hơn Ngược lại, trong PoI, cơ hội xác minh các giao dịch không phụ thuộc vào số lượng cổ phần mà người dùng nắm giữ.
Nguyễn Thị Ngọc Bích - K18HTTTB 7
Các kĩ thuật chính dùng trong blockchain
1.2.4.1 Cấu trúc phi tập chung
Blockchain là công nghệ lưu trữ thông tin trong một mạng lưới rộng lớn gồm hàng triệu máy tính cá nhân, tạo ra một cơ sở dữ liệu phân cấp và phân tán độc lập Điều này đồng nghĩa với việc không tồn tại một máy chủ trung tâm hay bất kỳ ai có quyền quản lý và kiểm soát dữ liệu.
Nguyễn Thị Ngọc Bích - K18HTTTB 5 đã chứng minh rằng blockchain có khả năng bảo vệ tốt hơn các hệ thống lưu trữ thông tin truyền thống Khi một máy trong mạng lưới bị tấn công, chỉ có máy đó bị ảnh hưởng, trong khi phần còn lại của hệ thống vẫn được bảo toàn Điều này cho thấy tính an toàn vượt trội của công nghệ blockchain nhờ vào cấu trúc phân tán độc lập của nó.
Mỗi nút trong mạng đều lưu trữ một bản sao toàn bộ blockchain, với chất lượng dữ liệu phụ thuộc vào sự đồng bộ liên tục giữa các nút Tất cả các nút có độ tin cậy như nhau, không có nút nào đáng tin cậy hơn nút khác, và việc trao đổi dữ liệu không yêu cầu sự tin tưởng lẫn nhau Hệ thống hoạt động công khai và minh bạch, đảm bảo rằng các nút không thể giả mạo các quy tắc và thời gian do hệ thống quy định.
1.2.4.3 Cơ chế đồng thuận của blockchain
Cơ chế đồng thuận của blockchain đảm bảo sự thống nhất về trạng thái hiện tại giữa các người tham gia, quyết định ai có quyền thêm các block giao dịch mới Một trong những mục đích chính của cơ chế này là ngăn chặn việc ghi đè lên chuỗi Trong số các cơ chế đồng thuận, Bằng chứng làm việc (PoW) là một phương pháp phổ biến.
PoW (Proof of Work) là cơ chế đồng thuận phân phối đầu tiên, được phát triển bởi Satoshi Nakamoto, người sáng lập Bitcoin Trong PoW, các máy tính trong mạng lưới cùng nhau duy trì an ninh cho blockchain bằng cách giải quyết các bài toán toán học thông qua hàm băm Mặc dù nhiệm vụ này đơn giản cho máy tính, nhưng nó yêu cầu chi phí tính toán cao do tính chất lặp đi lặp lại Các máy tính cạnh tranh để tìm ra số nonce cụ thể; máy tính nào tìm ra câu trả lời trước sẽ được phép thêm một khối giao dịch mới vào blockchain và nhận thưởng bằng Bitcoin mới cùng với phí giao dịch PoW hoạt động dựa trên tính toán để thêm giao dịch mới, đồng thời dễ dàng kiểm tra tính xác thực của các giao dịch, giúp ngăn chặn gian lận Kẻ tấn công chỉ có thể gian lận nếu sở hữu một lượng lớn sức mạnh tính toán để liên tục đào khối và đạt được bằng chứng công việc.
Do tính toán lượng điện cần thiết, PoW tiêu tốn nhiều năng lượng và chi phí Một ngành công nghiệp lớn đã hình thành xung quanh việc sản xuất các chip tùy chỉnh chuyên dụng cho việc đào coin Trong khi đó, PoS đã trở thành một phương pháp thay thế phổ biến trong những năm gần đây, không yêu cầu phần cứng chuyên dụng Trong PoS, cổ phần coin của người tham gia quyết định khả năng xác minh giao dịch trên mạng lưới.
Thuật toán bằng chứng cổ phần (PoS) đơn giản cho máy tính, yêu cầu người dùng chứng minh quyền sở hữu một tỷ lệ cổ phần của loại tiền tệ số Ví dụ, nếu một nút sở hữu 10% cổ phần, nó sẽ có khả năng khai thác 10% trong mạng lưới Đặc biệt, nút nào nắm giữ 51% cổ phần sẽ có quyền quyết định toàn bộ mạng lưới.
Bằng chứng cổ phần (PoS) được coi là một hệ thống công bằng hơn so với bằng chứng làm việc (PoW) vì nó không phân biệt quy mô lớn hay nhỏ, mà tỷ lệ khai thác sẽ tương ứng với số lượng cổ phần sở hữu Điều này khuyến khích cộng đồng tham gia vào giao dịch, từ đó tăng cường khả năng phân cấp và tính dân chủ trong hệ thống.
Trong hệ thống PoS, người sở hữu nhiều cổ phần có khả năng xác minh giao dịch cao hơn và do đó nhận được nhiều phần thưởng hơn Ngược lại, trong PoI, cơ hội xác minh giao dịch được phân phối khác, không chỉ dựa vào số lượng cổ phần mà còn vào các yếu tố khác.
Nguyễn Thị Ngọc Bích - K18HTTTB 7
CƠ SỞ KĨ THUẬT CỦA HỆ THỐNG BỎ PHIẾU ĐIÊNN TỬ DỰA TRÊN CÔNG NGHỆ BLOCKCHAIN
Chữ kí số trên hệ mật đường cong
2.1.1.1 Định nghĩa đường cong Elliptic theo công thức Weierstrass Đường cong elliptic E trên trường K là tập hợp các điểm (x, y) ∈ KxK thỏa mãnphươngtrình: y 2 + a ι xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 (a i ∈ K và 4a 4 3 +27a 6 2 ≠0)
Với một điểm O gọi là điểm tại vô cùng [5].
2.1.1.2 Đường cong Ellip trên trường số thực R a Định nghĩa Đường cong elliptic E trên trường số thực R là tập hợp các điểm (x, y) ∈ R 2 thỏa mãn phương trình: y 2 = x 3 + ax + b (a , b ∈ R và 4a 3 +27b 2 ≠0)
Với một điểm O gọi là điểm tại vô cùng. b Phép cộng
Để xác định điểm R = P + Q (với P ≠ O, Q ≠ O, P ≠ Q) trong hình học, ta nối hai điểm P và Q bằng một đường thẳng L Đường thẳng L sẽ cắt đường E tại ba điểm: P, Q và R(x, y) Điểm R(x, -y) có tung độ là giá trị đối của y.
Nguyễn Thị Ngọc Bích - K18HTTTB công nghệ blockchain
Hình 2.1 Phép cộng trên đường cong Elliptic
❖ về khía cạnh đại số, để xác định điểm R( X R , Ỵ R ) = P(x p , y p ) + Q ( X Q , y 3), đường cong elliptic E trên trường Z p là tập hợp các điểm (x,y) ∈ Zp x Zp thỏa mãn phương trình: y 2 mod p = (x 3 + ax +b) mod p (a,b ∈ Z P và 4a 3 + 27b 2 mod p ≠ 0)
Với một điểm O gọi là điểm tại vô cùng [5] b Phép cộng
❖ Để xác định điểm R( XR , y R ) = P(x p , y p ) + Q (x Q , y ọ ), ta tính X R và y R như sau: λ = y ^ - y ' p mod P
X Q - Xp χ R = (λ 2 -Xp- XQ) mod P yR = (λ( Xp - J⅛) - y p ) mod P
Ví dụ: xét đường cong Elliptic: y 2 mod 23 = (x 3 +x+1) mod 23 trên trường Z 23 với P (3, 10) ∈ E và Q (9, 7) ∈ E Tính theo công thức trên ta có: λ= [(7-10)/ (9-6)] mod 23 = (-1/2) mod 23 do 2*11= -1 (mod 23) xR = (121-12) mod 23 và yR = -164 mod 23
❖ Điểm tại vô cùng O là điểm cộng với bất kì điểm nào cũng sẽ ra chính điểm đó Nghĩa là V P ∈ E, P+O = O+P = P.
❖ Điểm đối xứng của P (x p , y p ) ∈ E là -P (x p , y p’ ) ∈ E thỏa mãn các điều kiện: y p’ ∈ ZP sao cho (y p’ + y p ) mod p =0; P + (-P) = O.
Ví dụ: xét đường cong Elliptic: y 2 mod 23 = (x 3 +x+1) mod 23 trên trường Z23, P(13, 7) ∈ E Điểm đối xứng của P là —P(13, 16) ∈ E vì 16∈ Z 23 và (16+7) mod 23 = 0.
Nguyễn Thị Ngọc Bích — K18HTTTB 11
_ 3jfp+fl J λ = 1 mod-P xR = (k 2 — 2 Xp) mod P yR = (λ( Xp - ắ) - yp) mod P
Ví dụ: xét đường cong Elliptic: y 2 mod 23 = (x 3 +x+1) mod 23 trên trường Z23 với P(3, 10) e E Tính theo công thức trên ta có: λ = (28/20) mod 23 = (5/20) mod 23 = (1/4) mod 23 = 6 do 6*4 ≡ 1 (mod 23)
XR = (36-6) mod 23 = 7 và yR = -34 mod 23 = 12 Vậy 2P = R(7,12) e E.
❖ Mở rộng ra, phép nhân kP nhận được bằng cách thực hiện k lần phép cộng.
2.1.2 Chữ kí số trên hệ mật đường cong Elliptic
2.1.2.1 Chuẩn bị tham số Để thiết lập sơ đồ chữ ký ECDSA, ta chọn đường cong elliptic E trên trường
Fq với O là điểm ở vô cùng, điểm cơ sở G e E và n là bậc của G (nG = O).
1 Chọn số ngẫu nhiên d e [2, n - 1] làm khóa bí mật.
2 Tính Q(X Q , y Q ) = dG làm khóa công khai.
2.1.2.3 Ký số trên bản rõ m
1 Chọn một số ngẫu nhiên k e [2, n - 1]
3 Tính r = X 1 mod n Nếu r = 0, quay lại bước 1.
5 Tính s = [k^ 1 (m + dr)] mod n Nếu s =0 quay lại bước 1.
6 Chữ ký trên thông điệp m là (r,s)
1 Kiểm tra r và s có là các số tự nhiên e [2, n -1] không.
3 Tính UI = mwmod n và u2 =rw mod n
Nguyễn Thị Ngọc Bích - K18HTTTB
5 Neu X = O thì phủ nhận chữ ký Ngược lại tính v = Xx mod n.
6 Chữ ký chỉ được chấp nhận nếu v = r.
Quá trình kiểm tra chữ kí được thực hiện như trên bởi:
Nếu chữ kí (r, s) trên m là đúng thì s = [k -1 (m + dr)] mod n.
K ≡s - 1 (m+dr) ≡ s - 1 m + s -1 rd ≡ wm + wrd ≡ UI + u 2 d (mod n).
Vì vậy, u 1 G + u 2 Q = (u 1 + u 2 d)G = kG, vì vậy v = r.
2.1.2.5 Ví dụ minh họa a Chuẩn bị tham số
Chọn đường cong elliptic E: y 2 = X 3 + x + 1 trên trường Z 23 , điểm ở vô cùng O, điểm cơ sở G (17, 3).
Suy ra n = 7 là bậc của G. b Tạo khóa
1 Chọn số ngẫu nhiên d= 6 làm khóa bí mật.
2 Tính Q (x Q , y Q ) = 6G = (17, 20) làm khóa công khai. c Ký số trên bản rõ m
1 Chọn một số ngẫu nhiên 2 e [2, 6]
6 Chữ ký trên thông điệp m là (6, 3) d Kiểm tra chữ ký
Nguyễn Thị Ngọc Bích - K18HTTTB 13
6 v =r nên chữ ký là đúng!
2.1.2.6 Độ an toàn của sơ đồ chữ ký số ECDSA Độ an toàn của sơ đồ chữ ký ECDSA tương ứng với độ phức tạp của bài toán logarit rời rạc trên đường cong elliptic: cho trước hai điểm Q và G nằm trên đường cong elliptic E, tìm số tự nhiên d sao cho Q = dG.
Sơ đồ chữ ký ECDSA đã chứng minh tính an toàn và hiệu quả cao Mặc dù có nhiều thuật toán để giải bài toán logarit rời rạc trên đường cong elliptic, nhưng hiện tại chưa có thuật toán nào đạt độ phức tạp tính toán trong thời gian đa thức.
Thuật toán Pollard’s Rho, phiên bản tối ưu cho tính toán song song, hiện đang được coi là giải pháp tốt nhất cho bài toán logarit rời rạc trên đường cong elliptic Với nhóm đường cong elliptic cấp n và r máy tính hoạt động đồng thời, số phép toán cần thiết để giải quyết bài toán này là Vrcn/2r.
Hệ mã hoá dựa trên bài toán logarit rời rạc đường cong elliptic có độ dài khoá ngắn hơn nhiều so với hệ mã hoá dựa trên phân tích số nguyên thành các thừa số nguyên tố, như RSA Cụ thể, với độ an toàn tương đương, hệ mã hoá RSA yêu cầu chiều dài khoá 1024 bit, trong khi hệ mật đường cong elliptic chỉ cần 163 bit.
Hàm băm SHA - 256
Hàm băm SHA-256 nhận đầu vào là một xâu bit bất kỳ với độ dài tối đa 2^64 - 1 bit, tạo ra mã băm 256 bit, thường được biểu diễn bằng 64 chữ số hệ thập lục phân Thuật toán băm SHA-256 được thực hiện qua các bước cụ thể.
❖ Bước 1: Thông điệp ban đầu được tiền xử lý thành thông điệp M rồi được chia nhỏ thành N khối 512 bits: M (1) , M (2) , , \T Ni
Nguyễn Thị Ngọc Bích - K18HTTTB 14 Λ Phép toán AND
V Phép OR Θ Phép toán XOR
R n Phép dịch chuỗi sang phải (Shift Right) n bit
S n Phép xoay vòng phải n bit
❖ Bước 2: Khởi tạo giá trị cho mỗi H j (0) (1≤j≤8) tính toán tuần tự các giá trị
H (i) = H (i-1) + CM (i) (H (i-1) ) với C là hàm nén SHA-256 và phép + là phép cộng theo modulo 23 2
H8 (N) ) là giá trị băm của M.
2.2.2.1 Các phép toán cơ bản
Bảng 2.1 Các phép toán cơ bản
2.2.2.2 Tiền xử lý dữ liệu
Bước 1: nhồi thêm dữ liệu
❖ Thông điệp ban đầu có độ dài l , thông điệp này được nhồi thêm k bit (k là số nguyên nhỏ nhất) sao cho ( l + k) = 448 mod 512 hay ( l + k) = n * 512 + 448
❖ Số bit k nằm trong khoảng [1, 512]
❖ Trong k bit nhồi thêm bao gồm: một bit 1 đầu tiên và theo sau là (k-1) bit 0
Nguyễn Thị Ngọc Bích - K18HTTTB 15
Độ dài của khối dữ liệu ban đầu l được chuyển đổi sang định dạng nhị phân 64-bit và được nối vào cuối chuỗi nhị phân kết quả từ bước 1, tạo thành thông điệp M.
❖ Thông điệp M có độ dài là bội số của 512
❖ Chia thông điệp M thành N khối 512 bits M( 1 ), M( 2 ), , M (N) Mỗi khối
2.2.2.3 Khởi tạo các giá trị
❖ Input: thông điệp M được chia thành N khối.
❖ Output: giá trị băm của thông điệp M có độ dài cố định 256 bits.
//Khởi tạo các thanh ghi a, b, c, d, e, f, g, h a ^ H1(i-1); b ^ H2(i-1); c ^ H3(i-1); d ^ H4(i-
1); // Cập nhật giá trị cho các thanh ghi trên
Nguyễn Thị Ngọc Bích - K18HTTTB 16
Kết quả: H(N) = (H1(N), ,H8(N)) là giá trị băm.Trong đó:
Wj ÷ σ 1(Wj-2) + Wj-7 + σ 0(Wj-15) + Wj-16;
Cây băm Merkle
2.3.1 Bài toán xác thực dữ liệu
Dữ liệu Y được chia thành n thành phần bí mật: Y1, Y2, , Yn A giao cho B thành phần Yp Để B xác thực Yp có thuộc Y hay không, cần thiết kế một thuật toán đảm bảo thời gian xác thực nhanh nhất và tối thiểu hóa dữ liệu trao đổi công khai giữa A và B.
2.3.2 Cây băm Merkle và xác thực dữ liệu trên cây băm Merkle
Dữ liệu đầu vào: dữ liệu Y được chia thành n thành phần Y1, Y2, , Yn (với n có dạng 2m) và phân phối cho n đối tượng khác nhau và hàm băm H cho trước.
Yêu cầu của bài toán là phát triển một cấu trúc dữ liệu có khả năng lưu trữ n thành phần, trong đó mỗi đối tượng có thể xác thực thành phần Yi mà mình sở hữu dựa trên cấu trúc dữ liệu này.
Nguyễn Thị Ngọc Bích - K18HTTTB 17
Giải pháp đề xuất là xây dựng cây nhị phân kết hợp với hàm băm H để lưu trữ n thành phần trên, đồng thời thiết lập cơ chế cho phép mỗi đối tượng xác thực thành phần Yi mà họ đang nắm giữ.
2.3.2.2 Xây dựng cây băm Merkle
Theo Ralph Charles Merkle xây dựng cây băm bao gồm các bước như sau: [6] a Xây dựng cây nhị phân với n node lá
Xây dựng cây nhị phân với cách đánh số thứ tự các node trong cây như các bước sau đây:
Bước 1: Node gốc của cây được ký hiệu (1,n,Y) Xét node (1,n,Y)
Bước 2: Với node đang xét (i,j,Y)
❖ Nếu i ≠ j thì ký hiệu hai node con của node là (i,k,Y) và (k+1,j,Y) trong đó k = (i+j)/2 Thực hiện bước 2 đối với hai node: (i,k,Y) và (k+1,j,Y).
❖ Nếu i = j thì dừng lại. b Cây băm Merkle
Xây dựng cây băm Merkle bằng cách gán giá trị cho các node (i,j,Y) của cây nhị phân trên sử dụng hàm F(i,j,Y) được định nghĩa như sau:
❖ Giá trị của hàm F(i,j,Y) được lưu trữ tại node (ij,Y) của cây nhị phân.
❖ Giá trị của F(1,n,Y) là công khai. c Ví dụ cây băm Merkle với 8 node lá Y1, Y2, , Y8.
Nguyễn Thị Ngọc Bích - K18HTTTB
2.3.2.3 Xác thực dữ liệu với cây băm Merkle
B biết node gốc F(1,n,Y) và giá trị Y p Để xác thực xem node lá Y p có thuộc cây băm Merkle hay không, B sẽ nhờ A xây dựng đường đi từ gốc cây xuống node lá Y p Quá trình xác thực sẽ diễn ra từng bước cho đến khi đến node cuối cùng là Y p Thuật toán này mô tả cách thức xác minh tính hợp lệ của node lá trong cây băm Merkle.
Bước 1: Xuất phát từ node gốc F(1,n,Y).
Bước 2: A sử dụng công thức (*) xác định hai node con của node đang xét
F(i,j,Y) là F(i,k,Y), F(k+1,j,Y) trong đó k = (i+j)/2 rồi gửi hai giá trị này cho B để B xác thực node đang xét bằng cách tính H(F(i,k,Y) || F(k+1,j,Y)) rồi so sánh với giá trị của node đang xét.
Bước 3: Lựa chọn node kế tiếp theo nguyên tắc
❖ Nếu p e [i,k] thì A xét tiếp node F(i,k,Y)
❖ Nếu p e [k+1,j] thì xét tiếp node F(k+1,j,Y)
Bước 4: Tiếp tục Bước 2 cho tới khi xét node F(p,p,Y) B sẽ xác thực node cuối cùng này bằng cách tính H(Yp) và so sánh giá trị này với F(p,p,Y).
Ví dụ minh họa xác thực thành phần Y 5 của cây băm Merkle 8 node lá:
❖ A gửi giá trị của F(1,8,Y) cho B Nếu giá trị của F(1,8,Y) bằng giá trị côngkhai mà B biết thì B tiếp tục xác thực.
❖ A gửi F(1,4,Y) và F(5,8,Y) cho B để B tính H(F(1,4,Y), F(5,8,Y)), nếu giá trị này bằng F(1,8,Y) thì B xét tiếp F(5,8,Y).
❖ A gửi F(5,6,Y) và F(7,8,Y) cho B để B tính H(F(5,6,Y), F(7,8,Y)), nếu giá trị này bằng F(5,8,Y) thì B xét tiếp F(5,6,Y).
❖ A gửi F(5,5,Y) và F(6,6,Y) cho B để B tính H(F(5,5,Y), F(6,6,Y)), nếu giá trị
Nguyễn Thị Ngọc Bích - K18HTTTB 19 công nghệ blockchain
Hình 2.4 Xác thực dữ liệu sử dụng cây băm Merkle 8 node lá
Hashcash
Hashcash, được đề xuất lần đầu tiên bởi Adam Back vào năm 1997, là một biện pháp hiệu quả nhằm ngăn chặn thư rác và các cuộc tấn công từ chối dịch vụ.
Nguyên lý hoạt động của Hashcash trong mô hình yêu cầu và cung cấp dịch vụ cho phép Provider chọn một bài toán khó để Requester thực hiện, từ đó dễ dàng kiểm tra kết quả Ví dụ, trong hệ thống email, người gửi phải tính toán một giá trị nhãn theo yêu cầu của người nhận và gắn nhãn đó vào thư trước khi gửi, nhằm chứng minh rằng họ không phải là kẻ gửi thư rác Người nhận sau đó sẽ kiểm tra nhãn để xác định tính hợp lệ của thư.
2.4.2 Hashcase ngăn chặn thư rác
Adam Back đề xuất phiên bản Hashcash đầu tiên sử dụng để ngăn chặn thư rác như sau [8]:
Trước khi gửi thư, người gửi chuẩn bị phần đầu của thư (header) có định dạng tương tự như ví dụ sau:
Nguyễn Thị Ngọc Bích - K18HTTTB
1:20:060408:adam@cypherspace.org::1QTjaYd7niiQA/sc:ePa
❖ X-Hashcash là phần mặc định.
❖ 1:20:060408 là mốc thời gian gửi.
❖ adam@cypherspace.org là địa chỉ hòm thư người nhận
Để tính toán giá trị ngẫu nhiên hợp lệ, người gửi tạo ra một giá trị ngẫu nhiên và sau đó tính giá trị băm của header (không bao gồm phần mặc định) bằng cách sử dụng hàm băm SHA-1, với độ dài băm là 160 bits Nếu 20 bits đầu tiên của giá trị băm là bit 0, header sẽ được chấp nhận; nếu không, người gửi sẽ tăng giá trị ngẫu nhiên và thử lại.
Máy tính của người nhận tính toán giá trị băm của header (ngoại trừ phần mặc định) sử dụng hàm băm SHA-1.
1:20:060408:adam@cypherspace.org::1QTjaYd7niiQA/sc:ePa
Thu được chuỗi: 00000a4a8bd07bddbdb0c4ea9ddb2d29b8d1cc5e (hệ 16)
Bước 1: Người nhận kiểm tra 20 bit đầu tiên của giá trị băm là bit 0 thì tiếp tục sang bước 2.
Người nhận cần kiểm tra xem ngày trên header có nằm trong khoảng hai ngày so với thời gian hiện tại hay không, vì hai ngày này là độ trễ cho phép để điều chỉnh lệch múi giờ và thời gian định tuyến gói tin trên mạng.
Bước 3: Người nhận kiểm tra địa chỉ thư có nằm trong danh sách thư mà người nhận chấp nhận hay không?
Bước 4: Người nhận tiếp tục kiểm tra chuỗi băm chưa hề tồn tại trong Cơ sở dữ liệu.
Nếu các điều kiện trên thỏa mãn thì người nhận chấp nhận thư Ngược lại, người nhận không chấp nhận thư.
Nguyễn Thị Ngọc Bích - K18HTTTB 21
2.4.3 Hashcase chống lại tấn công từ chối dịch vụ
Vào năm 2002, Adam Back phát triển giải pháp Hashcash nhằm bảo vệ hệ thống máy chủ khỏi các cuộc tấn công từ chối dịch vụ Hashcash bao gồm hai loại: Hashcash có tương tác và Hashcash không tương tác.
Hashcash) [9]. Đối với Interactive Hashcash:
Khi nhận được yêu cầu dịch vụ từ Requester, Provider sẽ chọn một chuỗi bit c Sau đó, Provider yêu cầu Requester sử dụng chuỗi c và hàm băm H (SHA-1) để tìm ra chuỗi bit x, sao cho w-bits đầu tiên của chuỗi H(s||c||x) khớp với w-bits đã cho.
0 Trong đó chuỗi bit s là chuỗi bit biểu diễn thông tin định danh duy nhất của dịch vụ mà Requester yêu cầu (có thể là tên miền, địa chỉ email )
Người yêu cầu nỗ lực giải bài toán bằng cách thử nghiệm nhiều lần cho đến khi tìm ra chuỗi bit x phù hợp với yêu cầu, sau đó gửi x cho nhà cung cấp.
Nhà cung cấp xác minh phương án của người yêu cầu bằng cách kiểm tra xem w-bits đầu tiên của H(s||c||x) có phải là w-bits 0 hay không Nếu đúng, phương án sẽ được chấp nhận và nhà cung cấp bắt đầu phản hồi yêu cầu dịch vụ cho người yêu cầu Ngược lại, nếu không, phương án sẽ bị từ chối.
Provider và Requester thống nhất các yêu cầu cho bài toán phức tạp, bao gồm hàm băm H (SHA-1), chuỗi bit s đại diện cho thông tin định danh duy nhất của dịch vụ mà Requester cần, như tên miền hoặc địa chỉ email, cùng với số nguyên dương w.
Requester tìm chuỗi bit x sao cho w-bits đầu tiên của chuỗi H(s||x) là w-bits
0, sau đó gửi phương án x tới Provider.
Provider xác minh phương án của Requester bằng cách tính toán H(s||x) và kiểm tra xem w-bits đầu tiên của H(s||x) có phải là w-bits 0 hay không Nếu điều kiện này được thỏa mãn, phương án sẽ được chấp nhận và Provider sẽ cung cấp dịch vụ cho Requester Ngược lại, nếu không thỏa mãn, phương án sẽ bị từ chối.
Nguyễn Thị Ngọc Bích - K18HTTTB 22
Vấn đề chính của Hashcash là tạo ra một chuỗi bit có giá trị băm bắt đầu bằng w-bits 0, trong đó w là một số nguyên dương Vì đặc tính của hàm băm, cách duy nhất để giải quyết vấn đề này là thử băm liên tiếp các chuỗi bit khác nhau cho đến khi tìm được chuỗi thỏa mãn yêu cầu.
Giả sử k (k ≥ w) là độ dài chuỗi bit đầu ra của hàm băm H Trong số tất cả
Giá trị băm có thể đạt được là 2^k, trong đó có 2^(k-w) giá trị thỏa mãn điều kiện bắt đầu bằng w-bits 0 Xác suất tìm được giá trị ngẫu nhiên hợp lệ trong một lần thử là 1/2^w, dẫn đến việc người dùng cần thử trung bình 2^w lần để tìm ra giá trị này Thời gian tìm kiếm giá trị ngẫu nhiên thỏa mãn điều kiện tỷ lệ với 2^w, do đó giá trị w sẽ được lựa chọn dựa trên mục đích sử dụng của Hashcash trong hệ thống Hơn nữa, giá trị w cũng sẽ tăng theo sự phát triển của tốc độ xử lý CPU để đảm bảo độ khó của bài toán trong Hashcash.
Hashcash được sử dụng để lọc thư rác và chống tấn công từ chối dịch vụ, với giá trị w thường là 20 Để tìm giá trị ngẫu nhiên hợp lệ, người gửi phải thực hiện trung bình 2^20 phép thử Đối với người dùng bình thường, quá trình này không tốn nhiều thời gian và tài nguyên, nhưng đối với kẻ tấn công, chi phí sẽ tăng đáng kể theo số lượng thư hoặc yêu cầu dịch vụ mà chúng gửi đi.
Chi phí về thời gian và tài nguyên hệ thống để kiểm tra lời giải cho bài toán khó trong Hashcash rất thấp và không phụ thuộc vào giá trị w Chỉ cần sử dụng một lần hàm băm để tính toán và kiểm tra điều kiện cho giá trị băm, điều này giúp tiết kiệm đáng kể thời gian và tài nguyên hệ thống.
TimeStamp
Nhãn thời gian (TimeStamp) là công cụ quan trọng dùng để ghi lại sự tồn tại của dữ liệu hoặc sự kiện tại một thời điểm cụ thể, hoặc theo một thứ tự nhất định Thuật ngữ này bắt nguồn từ khái niệm tem nhãn, thường được áp dụng trong các công việc văn phòng.
Hiện nay, thuật ngữ "nhãn thời gian" không chỉ đơn thuần là một khái niệm mà còn được mở rộng để chỉ việc gán thời gian dưới dạng số cho dữ liệu hoặc sự kiện Nhãn thời gian số thường phản ánh thời điểm mà một sự kiện hoặc dữ liệu được ghi nhận bởi máy tính hoặc hệ thống.
Nguyễn Thị Ngọc Bích - K18HTTTB 23 đã trình bày nhãn thời gian theo định dạng phù hợp, giúp dễ dàng so sánh thứ tự của hai sự kiện khác nhau được ghi nhận.
TimeStamp có nhiều dạng khác nhau tùy thuộc vào mục đích sử dụng và các điều kiện liên quan Đơn giản nhất, TimeStamp được sử dụng như một công cụ tem thư trong lĩnh vực bưu chính để ghi lại thời điểm bưu điện nhận thư từ người gửi Trong hệ thống quản lý tệp tin, TimeStamp ghi lại thông tin về thời điểm lưu trữ, tạo hoặc thay đổi một tệp tin.
Nguyễn Thị Ngọc Bích - K18HTTTB
GIẢI PHÁP BỎ PHIẾU ĐIỆN TỬ DỰA TRÊN CÔNG NGHỆ BLOCKCHAIN
Mô tả hoạt động của hệ thống bỏ phiếu điện tử dựa trên công nghệ blockchain
3.1.1 Định nghĩa các thành phần có trong hệ thống
❖ Cử tri: Là những người có quyền tham gia bỏ phiếu.
❖ Ban bầu cử: Là người tổ chức ra cuộc bầu cử.
Địa chỉ số là thông tin quan trọng của từng ứng cử viên, nơi mà cử tri sẽ gửi lá phiếu khi lựa chọn Khi cử tri quyết định chọn một ứng cử viên, phiếu bầu sẽ được chuyển đến địa chỉ tương ứng của ứng cử viên đó.
❖ Node mạng: là các máy tính trong hệ thống mạng ngang hàng, tham gia vào quá trình ghi nhận lịch sử dùng chung.
3.1.2 Quy trình thực hiện bỏ phiếu trong hệ thống bỏ phiếu điện tử
Bước 1: Cử tri có quyền bỏ phiếu đăng nhập vào hệ thống bỏ phiếu điện tử do ban bầu cử quy định.
Bước 2: Cử tri tiến hành bỏ phiếu, lựa chọn ứng cử viên mà mình mong muốn trên lá phiếu.
Ban bầu cử sẽ tạo địa chỉ số cho cử tri để thực hiện việc bỏ phiếu Khi cử tri chọn ứng cử viên, lá phiếu của họ sẽ được chuyển đến địa chỉ số tương ứng của ứng cử viên đó.
Bước 4: Node mạng sẽ tổng hợp các giao dịch bỏ phiếu của cử tri cùng với các giao dịch mới khác vào một block, được lưu trữ tại địa chỉ số của ứng cử viên.
Bước 5: Ban bầu cử nhận được các giao dịch bỏ phiếu của cử tri và xác nhận cử tri đã tiến hành bỏ phiếu thành công.
Bước 6: Ban bầu cử tiến hành kiểm phiếu tại các block trong các địa chỉ số của từng ứng cử viên
Bước 7: Thông báo kết quả ứng cử viên có số phiếu nhiều nhất.
Những giải pháp cho các vấn đề bỏ phiếu điện tử dựa trên công nghệ blokchain.25 1 Cơ chế bảo mật nội dung lá phiếu
Nguyễn Thị Ngọc Bích - K18HTTTB 25
Hướng giải quyết: Sử dụng chữ kí số trên hệ mật đường cong Elliptic.
Bước 1: Tạo cặp khóa công khai và khóa bí mật của ECDSA (trong hệ 16) Ví dụ:
XQ= 50863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 yQ= 2CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6.
Bước 2: Thực hiện tiến hành băm lá phiếu bằng hàm băm SHA-256.
Bước 3: Dùng khóa bí mật của cử tri để kí lên giá trị băm của lá phiếu.
3.2.2 Cơ chế ghi nhận giao dịch bỏ phiếu.
3.2.2.1 Công cụ ghi nhận lịch sử giao dịch bỏ phiếu
Quá trình ghi nhận lịch sử bỏ phiếu đóng vai trò quan trọng trong việc xác định cử tri thực hiện quyền bỏ phiếu một cách hợp lệ và ngăn chặn hiện tượng bỏ phiếu nhiều lần Hệ thống áp dụng TimeStamp để ghi lại toàn bộ các giao dịch liên quan đến việc bỏ phiếu.
TimeStamp có cấu trúc là chuỗi liên tiếp các khối (Block), mỗi Block chứa bản băm của Block trước và cây băm Merkle lưu trữ thông tin các giao dịch (Ti) cùng thời điểm Thứ tự các giao dịch được xác định theo nguyên tắc rằng giao dịch trong Block trước xảy ra trước giao dịch trong Block sau Khi một Block mới được tạo, các giao dịch trong Block đó sẽ được ghi nhận vào lịch sử giao dịch.
Nguyễn Thị Ngọc Bích - K18HTTTB 26 công nghệ blockchain
Hình 3.1 Cấu trúc cây băm Merkle lưu trữ thông tin n giao dịch mới
Hình 3.2 Cấu trúc của TimeStamp sử dụng kỹ thuật băm
Cấu trúc này yêu cầu việc thay đổi dữ liệu trong một Block sẽ ảnh hưởng đến toàn bộ các Block phía sau Do đó, một Block càng đứng trước nhiều khối khác thì dữ liệu trong Block đó càng khó thay đổi Sự kéo dài chuỗi nhãn thời gian TimeStamp càng nhanh sẽ gia tăng độ tin cậy của các giao dịch được lưu trữ trong đó.
TimeStamp được kết hợp với Hashcash, trong đó yêu cầu bài toán khó của Hashcash trở thành điều kiện để tạo Block tiếp theo trong chuỗi nhãn thời gian Mỗi Block chỉ được tạo ra khi một node mạng tìm thấy giá trị Nonce ngẫu nhiên thỏa mãn điều kiện chuỗi bit H(H(s||c||x)) bắt đầu bằng w-bits 0 Ở đây, s là giá trị băm của Block trước, c là giá trị node gốc của cây băm Merkle chứa thông tin giao dịch (Ti), và x là biểu diễn nhị phân của Nonce.
Nguyễn Thị Ngọc Bích - K18HTTTB 27 được giải quyết thì các giao dịch mới nằm trong khối Block tương ứng được ghi nhận vào chuỗi TimeStamp.
Hình 3.3 Cấu trúc một khối Block của TimeStamp
Cải tiến này nâng cao độ an toàn của TimeStamp, vì nếu kẻ xấu muốn thay đổi dữ liệu trong Block thứ n, họ không chỉ phải thay đổi dữ liệu trong các Block từ n+1 trở đi mà còn phải giải quyết tất cả các bài toán khó của Hashcash liên quan đến các Block này.
3.2.2.2 Cơ chế ghi nhận lịch sử giao dịch bỏ phiếu vào khối
Khi giao dịch bỏ phiếu mới được thực hiện, thông tin sẽ được công khai và truyền đến tất cả các node trong mạng Các node này sẽ tiến hành kiểm tra tính hợp lệ của giao dịch.
Các node mạng sẽ tìm kiếm lời giải cho bài toán khó của Hashcash, sử dụng giá trị băm của khối Block trước và thông tin giao dịch mới Khi một node tìm ra lời giải, nó sẽ truyền kết quả này đến tất cả các node khác trong hệ thống Các node sẽ chấp nhận kết quả bằng cách sử dụng chuỗi băm để giải quyết bài toán khó tiếp theo và ghi nhận các giao dịch mới, qua đó kéo dài chuỗi lịch sử giao dịch.
Nguyễn Thị Ngọc Bích - K18HTTTB
3.2.3 Cơ chế xác thực giao dịch bỏ phiếu Để xác thực giao dịch bỏ phiếu của cử tri có nằm trong Block của ứng cử viên hay không, cử tri truy vấn vào các Block của địa chỉ ứng cử viên Các node mạng cũng trả về Block chứa giao dịch bỏ phiếu của cử tri nhờ quy trình xác thực dữ liệu trên cây băm
Merkle Cử tri kiểm tra block chứa giao dịch của mình có thuộc trên chuỗi Block hay không?
3.2.4 Hoạt động kiểm phiếu của ban bầu cử
Sau khi kết thúc thời gian bỏ phiếu, ban bầu cử tiến hành kiểm tra kết quả bỏ phiếu.
Ban bầu cử thực hiện việc truy vấn địa chỉ của các ứng cử viên và kiểm đếm số lượng giao dịch tương ứng Mỗi giao dịch được xem như một phiếu bầu cho từng ứng cử viên Ứng cử viên nào có số lượng giao dịch cao nhất sẽ là người chiến thắng.
3.2.5 Vấn đề an toàn bảo mật của hệ thống bỏ phiếu điện tử dựa trên công nghệ blockchain
3.2.5.1 Cơ chế ẩn danh cử tri trên lá phiếu
Trong mô hình ngân hàng truyền thống, thông tin giao dịch được bảo vệ bằng cách hạn chế quyền truy cập của nhân viên vào cơ sở dữ liệu khách hàng Ngược lại, trong hệ thống bỏ phiếu điện tử dựa trên công nghệ blockchain, thông tin giao dịch được công khai, trong khi danh tính của cử tri được bảo mật thông qua việc ẩn danh các khóa công khai Điều này tương tự như trong giao dịch chứng khoán, nơi thời gian và số lượng cổ phiếu được công khai, nhưng thông tin về các bên tham gia vẫn được giữ bí mật.
3.2.5.2 Trường hợp kẻ tấn công thay đổi lịch sử giao dịch
Kẻ tấn công cần nhanh chóng tạo ra một chuỗi thay thế dài hơn chuỗi hợp lệ để thay đổi lịch sử giao dịch trong một khối Block cụ thể.
Nguyễn Thị Ngọc Bích - K18HTTTB 29
❖ q z là xác suất kẻ tấn công có thể bắt kịp từ khoảng cách z khối được cho bởi:
Trong trường hợp p > q, xác suất giảm theo cấp số nhân khi số lượng khối Block mà kẻ tấn công cần bắt kịp tăng lên Để tạo ra chuỗi thay thế và bắt kịp chuỗi hợp lệ trong thời gian nhất định, node tấn công cần phải nối thêm thành công hơn z khối so với node tin cậy Nếu node tin cậy nối thêm n khối, thì node tấn công phải nối thêm (n+z) khối Quá trình này phụ thuộc vào mức độ may mắn của kẻ tấn công và khoảng cách z.
Nguyễn Thị Ngọc Bích - K18HTTTB 30
Qua quá trình nghiên cứu về công nghệ blockchain và các lĩnh vực ứng dụng của nó, cùng với sự hỗ trợ nhiệt tình từ thầy cô và bạn bè, khóa luận đã đạt được những kết quả nhất định Chúng tôi đã hiểu rõ hơn về khái niệm blockchain và đề xuất giải pháp bỏ phiếu điện tử dựa trên công nghệ này.
Về mặt nội dụng, khóa luận đã đạt được một số kết quả sau đây:
Một là, nghiên cứu tổng quan về bỏ phiếu điện tử: tìm hiểu về bỏ phiếu điện tử, các yêu cầu của một hệ thống bỏ phiếu điện tử
Hai là, nghiên cứu tổng quan về công nghệ blockchain: khái niệm, đặc điểm của công nghệ và nền tảng lý thuyết.
Bài viết khám phá các cơ sở kỹ thuật của hệ thống bỏ phiếu điện tử sử dụng công nghệ blockchain, bao gồm hệ mật đường cong Elliptic, hàm băm SHA-256, và cây băm Merkle Ngoài ra, nó cũng đề cập đến các khái niệm Hashcash và TimeStamp, nhấn mạnh vai trò quan trọng của chúng trong việc đảm bảo tính bảo mật và minh bạch của quá trình bỏ phiếu.
Bốn là, đưa ra giải pháp bỏ phiếu điện tử dựa trên các cơ sở kĩ thuật của công nghệ blockchain.
Bỏ phiếu điện tử là một hình thức mới mẻ tại Việt Nam, ứng dụng công nghệ blockchain, tuy nhiên vẫn chưa được triển khai thực tế Trong quá trình nghiên cứu và thực hiện khóa luận này, không thể tránh khỏi những thiếu sót, vì vậy tôi rất mong nhận được sự góp ý từ quý thầy cô để hoàn thiện khóa luận.