C ƢƠN 2 MÔ ÌN BẦU Ử ỨNG DỤNG ÔNG NGHỆ
2.1.3. Mô hình bầu cử công khai ứng dụng công nghệ Blockchain
Như chúng ta đã phân tích về mô hình bỏ phiếu điện tử. Tất cả các mã nguồn và
cơ sở dữ liệu đều được lưu trữ trên server của ban bầu cử. Việc này thường dẫn đến những sai sót ngoài ý muốn khi nó có thể bị thay đổi hoặc bị xóa.
Để đảm bảo bất bất kỳ ai được kết nối với mạng đều có thể tham gia bầu cử và
đảm bảo rằng phiếu bầu của họ được đếm chỉ một lần, kết quả đó s không thể thay đổi hay bị xóa thì chúng ta cần xây dựng nó trên Blockchain.
Thay vì có một mạng, một máy chủ trung tâm và một cơ sở dữ liệu, thì
blockchain là một mạng và một cơ sở dữ liệu tất cả trong một. Blockchain là một mạng ngang hàng của các máy tính, được gọi là các nút, chia sẻ tất cả dữ liệu và mã trong mạng. Vì vậy, nếu bạn là một thiết bị được kết nối với blockchain, bạn là một nút trong mạng và bạn nói chuyện với tất cả các nút máy tính khác trong mạng. Bây giờ bạn có một bản sao của tất cả dữ liệu và mã trên blockchain. Không có máy chủ trung tâm nào nữa. Chỉ là một loạt các máy tính nói chuyện với nhau trên cùng một mạng.
Thay vì cơ sở dữ liệu tập trung, tất cả dữ liệu giao dịch được chia sẻ qua các nút
trong chuỗi khối được chứa trong các gói bản ghi được gọi là khối, được liên kết với nhau để tạo sổ cái công khai. Sổ cái công khai này đại diện cho tất cả dữ liệu trong blockchain. Tất cả dữ liệu trong sổ cái công khai được bảo mật bằng băm mật mã và được xác thực bằng thuật toán đồng thuận. Các nút trên mạng tham gia để đảm bảo rằng tất cả các bản sao của dữ liệu được phân phối trên mạng đều giống nhau.
Vậy giờ chúng ta chỉ cần server để chứa mã nguồn để tương tác với người
dùng, còn toàn bộ mã nguồn hệ thống để xử lý yêu cầu cũng như cơ sở dữ liệu của chúng ta giờ đây s được lưu trữ và chạy trên mạng lưới BlockChain. Sơ đồ của hệ thống được v lại 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 s được viết trong một tệp gọi là Smartcontract sau đó được đưa lên mạng lưới Blockchain sau đó chúng ta có thể tương tác với nó bằng những phương thức mà chúng ta đã tạo ra trong file contract đó. Và dữ liệu s không thể bị thay đổi bởi bất cứ điều gì khi nó đã năm trên Blockchain.
Người dùng ứng dụng bầu cử bỏ phiếu trên blockchain s thực hiện như thế
nào? Đối với người mới bắt đầu, người dùng cần một tài khoản có địa chỉ ví với một số Ether, tiền điện tử của Ethereum. Khi họ kết nối với mạng, họ bỏ phiếu và trả một khoản phí giao dịch nhỏ để ghi giao dịch này vào blockchain. Phí giao dịch này được gọi là “gas”. Bất cứ khi nào bỏ phiếu, một số nút trên mạng, được gọi là thợ đào, cạnh tranh để hoàn thành giao dịch này. Người khai thác hoàn thành giao dịch này s được trao Ether mà họ đã trả để bỏ phiếu.
Mặc dù khi bỏ phiếu, cử tri phải trả một khoản tiền để bỏ phiếu nhưng khi
phiếu bầu của họ được ghi lại chắc chắn phiếu bầu của cử tri đã được ghi lại chính xác mãi mãi.
Quan trọng cần lưu ý là bỏ phiếu trên blockchain s tốn Ether, nhưng khi xem danh sách các ứng cử viên thì không. Đó là bởi vì việc đọc dữ liệu từ blockchain là miễn phí, nhưng việc ghi vào nó thì không.
Để xây dựng hệ thống bầu cử công khai trên Blockchain, chúng ta phải sử dụng SmartContract (Hợp đồng thông minh). SmartContract là nơi tất cả logic điều khoản tồn tại. Đây là nơi chứa mã nguồn phi tập trung cho ứng dụng của chúng ta. SmartContract chịu trách nhiệm đọc và ghi dữ liệu vào blockchain, cũng như thực thi các điều khoản. SmartContract được viết bằng ngôn ngữ lập trình có tên là Solidity. Đây là một ngôn ngữ lập trình hoàn chỉnh s cho phép chúng ta thực hiện giao tiếp với SmartContract để có thể đưa ứng dụng lên Blockchain.
Chức năng của SmartContract trên blockchain rất giống với một microservice
trên web. Nếu sổ cái công khai đại diện cho lớp cơ sở dữ liệu của blockchain, thì hợp đồng thông minh là nơi tất cả logic nghiệp vụ giao dịch với dữ liệu đó tồn tại.
Ngoài ra, SmartContract đại diện cho một giao ước hoặc thỏa thuận. Trong
trường hợp ứng dụng bầu cử của chúng ta là một thỏa thuận rằng phiếu bầu của tôi s được tính, các phiếu bầu khác chỉ được tính một lần và ứng cử viên có nhiều phiếu bầu nhất s thực sự thắng cuộc bầu cử.