Tải bản đầy đủ (.pdf) (80 trang)

Ứng dụng công nghệ blockchain trong xác minh thông tin quá trình học tập của du học sinh Lào: luận văn thạc sĩ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.58 MB, 80 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

ANOUSITH SAPHANGTHONG

ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG XÁC MINH
THÔNG TIN QUÁ TRÌNH HỌC TẬP CỦA DU HỌC SINH LÀO

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Đồng Nai - năm 2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

ANOUSITH SAPHANGTHONG

ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG XÁC MINH
THÔNG TIN QUÁ TRÌNH HỌC TẬP CỦA DU HỌC SINH LÀO

Chuyên ngành: Công nghệ thông tin
Mã số: 8480201

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. TRẦN VĂN HOÀI


Đồng Nai - năm 2019


LỜI CẢM ƠN
Được sự phân công của khoa Sau Đại học - Trường Đại học Lạc Hồng và sự đồng ý của
giảng viên hướng dẫn PGS.TS. Trần Văn Hoài tôi đã thực hiện đề tài “Ứng dụng công
nghệ blockchain trong xác minh thông tin quá trình học tập của du học sinh lào”.
Đầu tiên, tôi xin chân thành cảm ơn thầy PGS.TS. Trần Văn Hoài đã tận tình
hướng dẫn, chỉ bảo trong suốt thời gian thực hiện luận văn.
Kế đến tôi xin bày tỏ lòng biết ơn đến quí thầy cô trong Khoa sau đại học của
Đại Học Lạc Hồng đã tận tâm dạy bảo, cung cấp những kiến thức rất quí báu trong suốt
quá trình học tập; cũng như thầy cô trong văn phòng khoa hết lòng giúp đỡ, cung cấp
những tài liệu tham khảo, tạo điều kiện thuận lợi để tôi hoàn thành luận văn.
Tôi cũng xin gửi lời cảm ơn đến những người thân trong gia đình; cùng các anh
chị, các bạn trong lớp đã luôn quan tâm giúp đỡ trong suốt thời gian học tập cũng như
làm luận văn.
Do thời gian làm luận văn còn hạn chế, và kiến thức cũng có hạn; nên luận văn
không tránh khỏi những thiếu sót. Kính mong nhận được những ý kiến đóng góp của
quí thầy cô và các bạn để luận văn được hoàn chỉnh hơn.
Xin chân thành cảm ơn!
Đồng Nai, ngày 25 tháng 12 năm 2019
HỌC VIÊN

Anousith Saphangthong


LỜI CAM ĐOAN
Tôi cam đoan rằng kết quả đạt được trong luận văn này là sản phẩm của riêng cá
nhân, là kết quả đạt được trong quá trình học tập và nghiên cứu khoa học độc lập.
Trong toàn bộ nội dung của luận văn, những điều được trình bày là của cá nhân

hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất
xứ rõ ràng và được trích dẫn hợp pháp.
Không có sản phẩm hay nghiên cứu nào của người khác được sử dụng trong luận
văn mà không có trích dẫn theo đúng quy định.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỹ luật theo quy định
cho lời cam đoan của mình.
Đồng Nai, ngày 25 tháng 12 năm 2019
HỌC VIÊN

Anousith Saphangthong


TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA SAU ĐẠI HỌC
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
TÓM TẮT LUẬN VĂN
(Dùng cho học viên và người hướng dẫn)
Đề tài: Ứng dụng công nghệ Blockchain trong xác minh thông tin quá trình học tập của
du học sinh Lào.
Ngành: Công nghệ thông tin

Mã số: 8480201

Học viên: Anousith Saphangthong
Người hướng dẫn: PGS. TS. Trần Văn Hoài
NỘI DUNG TÓM TẮT
Khả năng chia sẻ thông tin dữ liệu minh bạch, tiết kiệm không gian lưu trữ và
bảo mật cao, công nghệ Blockchain là một trong những xu hướng công nghệ đột phá.
Đó cũng chính là công nghệ mà luận văn tìm hiểu và thực hiện thông qua việc “Xác
minh thông tin học tập của du học sinh Lào”. Hệ thống xác thực thông tin sinh viên sẽ

giúp sinh viên sở hữu thông tin có thể truy cập dữ liệu nguồn được xác nhận bất cứ lúc
nào, có thể sử dụng thông tin đã lưu trữ trên để mở ra các cơ hội nghề nghiệp mới, đồng
thời phụ huynh, công tắc quản lý sinh viên cho đến nhà tuyển dụng cũng có thể xem
thông tin lưu trữ trên hệ thống, không chỉ là dữ liệu bảng điểm mà còn cả quá trình đào
tạo, kinh nghiệm thực tế, lịch sử tuyển dụng của từng cá nhân.
-

Cập nhật dữ liệu mọi lúc: sinh viên có thể truy cập dữ liệu nguồn được xác
nhận bất cứ lúc nào.

-

Giảm khối lượng công việc của nhân viên quản lý sinh viên: trình độ và kết
quả học tập sẽ được số hóa với một nền tảng cho thấy các chi tiết đáng tin cậy
để giảm khối lượng công việc của nhân sự và loại bỏ các thủ tục phức tạp.

-

Đáng tin cậy: một điều khác làm cho Blockchain nổi bật so với các nền tảng
kỹ thuật số khác là độ tin cậy của dữ liệu. Ngoài khả năng mã hóa tiên tiến và
dữ liệu phi tập trung, nếu có sự giả mạo hệ thống sẽ khiến thông tin giả mạo
không khớp với thông tin mà mọi người trong hệ thống có, coi như thông tin
đó là ngầm thiếu uy tín.
Ngày 10 tháng 10 năm 2019

NGƯỜI HƯỚNG DẪN

PGS. TS. Trần Văn Hoài

HỌC VIÊN


Anousith Saphangthong


MỤC LỤC
Mục lục
Danh mục hình
Danh mục bảng
Mở đầu ............................................................................................................................ 1
1 Lý do thực hiện đề tài ............................................................................................. 1
2 Tình hình nghiên cứu .............................................................................................. 2
3 Mục tiêu nghiên cứu................................................................................................ 3
4 Đối tượng .................................................................................................................. 3
5 Phạm vi nghiên cứu ................................................................................................. 3
6 Phương pháp nghiên cứu ........................................................................................ 3
7 Dự kiến kết quả đạt được ....................................................................................... 3
CHƯƠNG 1 Tổng quan về công nghệ blockchain ..................................................... 5
1.1 Giới thiệu về blockchain ...................................................................................... 5
1.1.1 Đặc điểm .......................................................................................................... 5
1.1.2 Nguyên lý hoạt động ........................................................................................ 5
1.1.3 Phân loại .......................................................................................................... 6
1.2 Tổng quan về Ethereum ...................................................................................... 7
1.2.1 Giới thiệu về Ethereum .................................................................................... 7
1.2.2 Kiến trúc .......................................................................................................... 7
1.2.3 Ứng dụng ......................................................................................................... 8
1.3 Tổng quan về smart contract .............................................................................. 8
1.3.1 Giới thiệu về smart contract............................................................................. 8
1.3.2 Nguyên lý hoạt động ........................................................................................ 9
1.3.3 Các thành phần của smart contract .................................................................. 9
1.3.4 Lợi ích của smart contract ............................................................................. 10

1.4 Các ứng dụng phi tập trung .............................................................................. 10
1.4.1 Giới thiệu ứng dụng phi tập trung ................................................................. 10
1.4.2 Làm sao để xây dựng một DApp? ................................................................. 11
1.5 Một số phần mềm, thư viện và framework được sử dụng trong đề tài ........ 11
1.5.1 Geth ................................................................................................................ 11
1.5.2 Remix ............................................................................................................. 11
1.5.3 Nodejs ............................................................................................................ 11
1.5.4 Truffle ............................................................................................................ 12
1.5.5 Lite-server ...................................................................................................... 12
1.5.6 Web3.js .......................................................................................................... 12


1.5.7 Bootstrap ........................................................................................................ 12
1.5.8 Metamask ....................................................................................................... 12
1.6 Tiểu kết ................................................................................................................ 12
CHƯƠNG 2 HỆ THỐNG XÁC MINH THÔNG TIN SINH VIÊN ....................... 13
2.1 Giới thiệu về hệ thống ........................................................................................ 13
2.1.1 Thiết kế hệ thống ........................................................................................... 14
2.1.2 Kiến trúc của hệ thống ................................................................................... 15
2.1.3 Đặc điểm của hệ thống .................................................................................. 17
2.1.4 Nhược điểm ................................................................................................... 18
2.2 Cài đặt phần mềm Geth..................................................................................... 18
2.2.1 Cài đặt từ kho mã nguồn (repository) của Ubuntu bằng công cụ quản lý gói
APT ......................................................................................................................... 19
2.2.2 Cài đặt từ binary package .............................................................................. 20
2.2.3 Kiểm tra geth ................................................................................................. 21
2.3 Thiết lập hệ thống private Ethereum ............................................................... 21
2.3.1 Thiết lập khối nguyên thủy ............................................................................ 21
2.3.2 Tạo miner và tài khoản .................................................................................. 23
2.3.3 Khởi động miner và bắt đầu đào (mining): ................................................... 24

2.4 Lập trình smart contract ................................................................................... 26
2.5 Lập trình RESTful API với nodejs ................................................................... 38
2.5.1 Cài đặt nodejs trên hệ điều hành Ubuntu. ...................................................... 38
2.5.2 Lập trình server nodejs .................................................................................. 41
2.6 Lập trình website................................................................................................ 49
CHƯƠNG 3 KẾT QUẢ VÀ THỬ NGHIỆM............................................................ 51
3.1 Tính toàn vẹn của dữ liệu trên hệ thống .......................................................... 51
3.1.1 Chuẩn bị ......................................................................................................... 52
3.1.2 Thực hiện ....................................................................................................... 52
3.2 Chứng minh tính xác thực của dữ liệu ............................................................. 60
CHƯƠNG 4 KẾT LUẬN ............................................................................................ 66
TÀI LIỆU THAM KHẢO


DANH MỤC HÌNH
Hình 1.1 – Nguyên lý hoạt động của smart contract ....................................................... 9
Hình 2.1 hệ thống Blockchain vào giáo dục. ................................................................ 13
Hình 2.2 Sơ đồ hoạt động của hệ thống. ....................................................................... 14
Hình 2.3 Sơ đồ kiến trúc hệ thống. ................................................................................ 15
Hình 2.2 Cài đặt geth từ trình quản lý Apt. ................................................................... 19
Hình 2.3 Cài đặt geth từ trình quản lý Apt. ................................................................... 19
Hình 2.4 Trang web tải geth. ......................................................................................... 20
Hình 2.5 Thư mục cài đặt geth. ..................................................................................... 20
Hình 2.6 Kiểm tra phiên bản của geth. .......................................................................... 21
Hình 2.7 Kết quả khởi tạo miner. .................................................................................. 23
Hình 2.8 Kết quả tạo tài khoản trên miner. ................................................................... 24
Hình 2.9 Thư mục sau khi cài đặt miner. ...................................................................... 24
Hình 2.10 Console điều khiển miner. ............................................................................ 25
Hình 2.11 Kết quả khi cho miner đào............................................................................ 26
Hình 2.12 Giao diện IDE remix. ................................................................................... 27

Hình 2.13 Menu cài đặt plugin. ..................................................................................... 27
Hình 2.14 Menu quản lý tệp tin. .................................................................................... 28
Hình 2.15 Menu compile. .............................................................................................. 35
Hình 2.16 Kết quả compile khi có code lỗi. .................................................................. 36
Hình 2.17 Menu triển khai smart contract. .................................................................... 36
Hình 2.18Nơi kiểm thử smart contract sau khi triển khai. ............................................ 37
Hình 2.19 Giao diện nhập địa chỉ Web3 provider. ........................................................ 38
Hình 2.20Trang web download nodejs. ......................................................................... 39
Hình 2.21 Thư mục cài đặt nodejs. ................................................................................ 40
Hình 2.22 Kết quả kiểm tra phiên bản nodejs. .............................................................. 41
Hình 2.23 Cấu trúc thư mục của dự án. ......................................................................... 42
Hình 2.24 Giao diện trang web tra cứu thông tin. ......................................................... 50
Hình 3.1 Lấy thông tin enode của miner. ...................................................................... 53
Hình 3.2 Kết quả lấy địa chỉ ip của máy chủ. ............................................................... 54
Hình 3.3 Kết quả của lệnh kết nối từ miner thứ hai đến miner thứ nhất. ...................... 55


Hình 3.4 Kết quả của lệnh kết nối hai miner với nhau.. ................................................ 55
Hình 3.5 Kết quả hiển thị số block hiện tại của cả hai miner. ....................................... 56
Hình 3.6 Kết quả của lệnh kiểm tra trạng thái đồng bộ dữ liệu. ................................... 56
Hình 3.7 Giao diện sau khi tắt miner thứ nhất. ............................................................. 59
Hình 3.8 Server nodejs chuyển kết nối sang miner thứ hai khi tắt miner thứ nhất. ...... 59
Hình 3.9 Dữ liệu được trả về từ miner thứ hai thông qua server nodejs. ...................... 60
Hình 3.10 Thông qua trang Quản lý thông tin sinh viên để thêm thông tin mới. ......... 61
Hình 3.11 Kiểm tra số khối hiện tại trong hệ thống. ..................................................... 62
Hình 3.12 Thông tin chi tiết của một block. .................................................................. 63
Hình 3.13 Thông tin dữ liệu của Smart contract đã được mã hoá. ................................ 64
Hình 3.14 Kết quả trả về là một chuỗi đã mã hoá và chứa thông tin của smart
contract. ......................................................................................................................... 65
Hình 4.1 Trang chủ website tra cứu thông tin du học sinh Lào tại Việt Nam (thử

nghiệm).. ........................................................................................................................74


DANH MỤC BẢNG
Bảng 2.1 Các id không được sử dụng trong hệ thống. .................................................. 22
Bảng 4.1 So sánh dữ hệ thống blockchain và một hệ thống dữ liệu thông thường. ...... 66


1
MỞ ĐẦU
1 Lý do thực hiện đề tài
Cùng với sự lên ngôi của Blockchain (chuỗi khối), với khả năng chia sẻ thông tin
dữ liệu minh bạch theo thời gian thực, tiết kiệm không gian lưu trữ và bảo mật cao, công
nghệ blockchain là một trong những xu hướng công nghệ đột phá, có khả năng ứng dụng
rộng rãi. Trên thực tế, việc ứng dụng Blockchain trong giáo dục có tiềm năng rất lớn,
nó không chỉ giải quyết những bất cập đang tồn tại mà còn bổ sung cho những thiếu sót
trong bộ máy quản lý truyền thống. Đảm bảo mỗi sinh viên khi ra trường hoặc đang
trong quá trình rèn luyện có thể theo dõi chính xác được quá trình học tập của sinh viên
trong suốt quá trình học ở các trường từ khi nhập học đến khi ra trường [4]. Thông tin
một khi đã được ghi vào khối thì không thể sửa đổi được. Do vậy, chuỗi khối có thể
được xem như một công cụ lưu trữ thông tin hiệu quả, minh bạch. Công nghệ chuỗi khối
blockchain lưu trữ bản sao thông tin tại mọi nút (máy tính tham gia vào hệ thống), và vì
vậy rất khó để bất cứ ai thay đổi, giả mạo thông tin được lưu trữ. Việc tìm kiếm, truy
xuất thông tin cũng được thuận tiện, dễ dàng hơn. Đối với giáo dục – đào tạo, nền tảng
công nghệ blockchain cũng đem lại tiềm năng ứng dụng như đối với các ngành nghề
khác.
Hiện nay, công tác quản lý sinh viên tại tổng lãnh sự quán dân nhân Lào tại TP.
Hồ Chí Minh; các công việc trước đây vẫn làm thủ công như lập danh sách sinh viên,
lập danh sách trường học tốn rất nhiều thời gian, công sức và giấy tờ, sổ sách lưu trữ.
Tin học hóa trong công tác quản lý nhằm bớt sức lao động của con người, tiết kiệm được

thời gian, độ chính xác cao và tiện lợi rất nhiều so với việc làm thủ công quản lý trên
giấy tờ như trước đây. Blockchain được thiết kế để chống lại sự thay đổi dữ liệu. Thông
tin trong blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng
thuận của tất cả các nút trong hệ thống. Ngay cả khi nếu một phần của hệ thống
blockchain sụp đổ, những máy tính và nút khác sẽ tiếp tục hoạt động để bảo vệ thông
tin. Đồng thời, nhu cầu của du học sinh Lào ở Việt Nam ngày càng tăng lên và hiện tại
có hơn 814 sinh viên đang học tại miền Nam, những băn khoăn, thắc mắc trong công
tác học tập, nghiên cứu khoa học đòi hỏi phải có một môi trường lưu trữ thông tin sinh
viên, truyền bá tin tức, cung cấp những thông tin mới nhất từ các nhà trường, những
thông tin liên quan đến sinh viên, đồng thời cũng là nơi để lưu dữ liệu sinh viên, báo


2
cáo dữ liệu về người học, báo cáo tổng quát quá trình học tập của sinh viên một cách
đầy đủ và rõ ràng. [4]Ứng dụng blockchain vào giáo dục có thể mang lại nhiều tác động.
Thông tin lưu trữ trên chuỗi khối không chỉ là dữ liệu bảng điểm mà còn cả quá trình
đào tạo, kinh nghiệm thực tế, dữ liệu cá nhân (bao gồm điểm, hoạt động đoàn thể, phong
trào, giải thưởng…) của từng học sinh sẽ được lưu trữ chi tiết và cụ thể trong Blockchain.
Trong thực tế, khi đăng ký tuyển dụng hoặc xin học bổng, thường xuyên xảy ra tình
huống ứng viên đã cung cấp thông tin của mình không chính xác, đa phần là kê khai
thông tin cao hơn so với năng lực, trình độ, kinh nghiệm thực tế bản thân nhằm đáp ứng
đủ điều kiện xét/thi tuyển.
Chính vì vậy, Blockchain là nơi lưu trữ an toàn, minh bạch, chính xác và vô thời
hạn tất cả các dữ liệu thông tin của các sinh viên.
2 Tình hình nghiên cứu
 Ngoài nước
Như đã nói trên, công nghệ blockchain đang dần được áp dụng vào nhiều lĩnh
vực trong cuộc sống. Ngày càng nhiều cá nhân, cơ quan và tổ chức quan tâm,
nghiên cứu và cho ra nhiều ứng dụng của blockchain được áp dụng vào cuộc sống.
Một số ví dụ như:

 Zug ở Thụy Sĩ, nơi được gọi là “Thung lũng Crypto” đã hợp tác với Uport
triển khai một dự án Blockchain để cư dân có thể đăng ký ID, cho phép
họ tham gia bỏ phiếu trực tuyến và chứng minh nơi cư trú.
 Các dự án chăm sóc sức khỏe như MedRec đang sử dụng Blockchain như
một phương tiện tạo điều kiện chia sẻ dữ liệu trong khi cung cấp xác thực
và duy trì tính bảo mật.
 IBM và Walmart đã hợp tác để khởi động Liên minh An toàn Thực phẩm
Blockchain tại Trung Quốc. Dự án, hợp tác cùng công ty thuộc Fortune
500 là JD.com, được thiết kế để cải thiện việc theo dõi độ an toàn thực
phẩm, giúp dễ dàng xác minh rằng thực phẩm có thực sự an toàn để tiêu
thụ hay không.
 Trong nước
Đối với Việt Nam, công nghệ này vẫn còn khá mới, chưa phổ biến và được
áp dụng rộng rãi. Nhưng đã có một có cá nhân và tổ chức tìm hiểu, nghiên cứu và


3
áp dụng vào thực tế như: truy xuất nguồn gốc xoài Cát Chu của hợp tác xã Mỹ
Xương dựa trên nền tảng blockchain của Infinity Blockchain Labs (IBL) - công ty
chuyên phát triển các giải pháp công nghệ trên nền tảng blockchain [6].
Tại diễn đàn Nông nghiệp Mùa Xuân 2018, chủ đề “Đổi mới chuỗi cung ứng
nhằm tăng cường hiệu quả nền nông nghiệp Việt Nam” ngày 24/4 đã đem lại nhiều
bất ngờ thú vị. Điều đặc biệt, 3 tập đoàn của Thái và Công ty Cổ phần Lina
Network đã chọn khuôn khổ Diễn đàn để thực hiện Lễ ký kết biên bản ghi nhớ
thỏa thuận hợp tác ứng dụng Lina Paltform vào chuỗi cung ứng (còn gọi là ứng
dụng Lina Supply Chain/LINA của Công ty Cổ phần Lina Network).
3 Mục tiêu nghiên cứu
Phân tích thực trạng thu nhận thông tin du học sinh Lào từ trưởng cụm trường
đến đại sứ quán Lào, đề xuất phương pháp xác thực thông tin với công nghệ Blockchain
nhằm tăng tính minh bạch.

4 Đối tượng
Đối tượng nghiên cứu của đề tài là dữ liệu du học sinh do Lãnh sự quán dân nhân
Lào tại TP.HCM quản lý.
5 Phạm vi nghiên cứu
 Xây dựng một hệ thống blockchain nội bộ.
 Lập trình một hợp đồng thông minh trong việc quản lý.
 Xây dựng một website dựa trên nền tảng blockchain.
6 Phương pháp nghiên cứu
 Nghiên cứu báo cáo, bài báo và tài liệu hướng dẫn về blockchain: [7], [8], [9].
 Phân tích và thiết kế cấu trúc cho hệ thống blockchain.
 Tìm hiểu cách thu thập dữ liệu của du học sinh lào từ các trường.
 Nghiên cứu báo cáo, bài báo và tài liệu hướng dẫn về DApp: [10], [11], [12].
 Phân tích dữ liệu để lập trình ra một smart contract trong quản lý sinh viên.
 Nghiên cứu cách để kết nối website với blockchain.
7 Dự kiến kết quả đạt được
- Hệ thống sử dụng được ở lãnh sự quán Nhân dân Lào tại TP.HCM để có thể
theo dõi quá trình học tập du học sinh, đánh giá kết quả học tập của sinh viên một cách


4
nhanh nhất và chính xác nhất. Hệ thống Blockchain với việc mô phỏng 2 Node với giao
diện web để xem và thao tác thông tin.
-Tên bài báo dự định công bố: Ứng dụng công nghệ blockchain trong xác minh
thông tin quá trình học tập của du học sinh lào.
Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận.
Phần mở đầu
Nêu lý do chọn đề tài, tổng quan tình hình phát triển, mục tiêu nghiên cứu đề tài,
đối tượng, phạm vi, phương pháp nghiên cứu cũng như những đóng góp mới của đề tài.
Bên cạnh đó cũng chỉ ra mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi người
có cái nhìn rõ hơn.

Phần nội dung chính: gồm 4 chương
Chương 1: Tổng quan lý thuyết về công nghệ Blockchain
Trong chương này, tác giả sẽ giới thiệu và trình bày những kiến thức cơ bản về
công nghệ blockchain, nền tảng ethereum, smart contract và các ứng dụng phi tập trung.
Đồng thời, tác giả cũng sẽ giới thiệu một số công cụ, thư viện và framework mà tác giả
đã dùng trong đề tài.
Chương 2: Hệ thống xác minh thông tin sinh viên
Trong chương này, tác giả miêu tả các bước chi tiết để dựng nên được một hệ
thống blockchain, các tạo các smart contract và tích hợp dữ liệu vào hệ thống. Tạo
website để kết nối với hệ thống blockchain để tạo ra một ứng dụng phi tập trung.
Chương 3: Kết quả và thử nghiệm
Mô tả một số kết quả đã làm được và chứng minh tính toàn vẹn của dữ liệu
Chương 4: Kết luận đưa ra những so sánh và kết luận.


5

CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ BLOCKCHAIN
1.1 Giới thiệu về blockchain
Blockchain là một hệ thống cơ sở dữ liệu phân tán phi tập trung, bao gồm nhiều
máy tính kết nối trong mạng ngang hàng (peer-to-peer) với nhau tạo thành. Hệ thống
này lưu trữ thông tin thành các khối dữ liệu liên kết với nhau, và được quản lý bởi mọi
người tham gia vào trong hệ thống[2].
Thông tin trong blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi
có sự đồng thuận của tất cả các nút trong hệ thống. Đây là một hệ thống bảo mật an toàn
cao trước khả năng bị sửa đổi dữ liệu. Ngay cả khi một phần của hệ thống blockchain
sụp đổ, những máy tính và các nút khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng
lưới tiếp tục hoạt động[2].
1.1.1 Đặc điểm
Các đặc điểm chính và nổi bật của công nghệ blockchain có thể kể đến như:

 Hệ thống được thiết kế phân tán nên mỗi người tham gia vào hệ thống sẽ lưu
giữ một bản sao dữ liệu, điều đó giúp cho dữ liệu không thể bị làm giả và tấn
công.
 Dữ liệu chỉ có thể sửa đổi khi đạt được sự đồng thuận của mọi người tham
gia trong hệ thống, và sẽ được lưu vết trên hệ thống.
 Mọi sự thay đổi dữ liệu sẽ được lưu vết trên hệ thống do đó có thể nói
blockchain là một hệ thống cơ sở dữ liệu có tính minh bạch.
1.1.2 Nguyên lý hoạt động
Ứng dụng được biết đến và thảo luận nhiều nhất về công nghệ blockchain chính
là đồng tiền điện tử Bitcoin. Hiện nay đồng tiền điện tử này có thể được sử dụng để trao
đổi các sản phẩm và dịch vụ, giống như đồng đô la Mỹ (USD), Euro (EUR), đồng nhân
dân tệ Trung Quốc (CNY) và các loại tiền tệ của các quốc gia khác. Do vậy chúng ta sẽ
tạm lấy đồng tiền này làm đại diện để nói về nguyên lý hoạt động của công nghệ
blockchain.


6
Bitcoin là một đơn vị tiền tệ kỹ thuật số với mã là BTC, cũng giống như đô la
Mỹ bản thân nó không mang giá trị, nó chỉ có giá trị bởi vì có một cộng đồng đồng ý
sử dụng nó làm đơn vị giao dịch hàng hóa và dịch vụ.
Để theo dõi số lượng Bitcoin mà mỗi người sở hữu trong các tài khoản nhất
định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến một cuốn sổ kế
toán, trong trường hợp này nó chính là blockchain và đây thực tế là một tệp kỹ thuật
số theo dõi tất cả các giao dịch Bitcoin.
Tệp sổ cái này không được lưu trữ trong một máy chủ trung tâm, như trong
một ngân hàng hoặc trong một trung tâm dữ liệu mà ngược lại nó được phân phối
trên toàn thế giới thông qua một mạng lưới các máy tính ngang hàng với vai trò lưu
trữ dữ liệu và thực thi các tính toán. Mỗi máy tính này đại diện cho một “nút” của
mạng lưới blockchain và mỗi nút đều có một bản sao của tệp sổ cái này.
Giả sử nếu A muốn gửi Bitcoin cho B, A sẽ phát một thông báo tới mạng lưới

và cho biết số lượng Bitcoin trong tài khoản của mình sẽ giảm 5 BTC và số lượng
Bitcoin trong tài khoản của B sẽ tăng lên tương ứng. Mỗi nút trong mạng sau đó sẽ
nhận được thông báo này và ánh xạ giao dịch được yêu cầu vào bản sao sổ cái kế toán
của họ, và theo đó số dư tài khoản của cả hai bên đều được cập nhật.
1.1.3 Phân loại
Public blockchain, đây là hệ thống blockchain mà bất kỳ ai cũng có thể đọc và
ghi dữ liệu trên blockchain. Quá trình xác thực giao dịch trên blockchain này đòi hỏi
phải có hàng nghìn hay thậm chí là hàng vạn nút tham gia. Do đó để tấn công vào hệ
thống blockchain này là điều bất khả thi. Ví dụ về public blockchain: Bitcoin,
Ethereum…
Private blockchain, đây là hệ thống blockchain mà người dùng chỉ có quyền
đọc dữ liệu, không có quyền ghi bởi vì điều này thuộc về một bên thứ ba tuyệt đối tin
cậy. Bên thứ ba này có thể hoặc không cho phép người dùng đọc dữ liệu trong một
số trường hợp. Bên thứ ba cũng toàn quyền quyết định mọi thay đổi trên blockchain.
Vì đây là một Private Blockchain, cho nên thời gian xác nhận giao dịch khá nhanh vì
chỉ cần một lượng nhỏ thiết bị tham gia xác thực giao dịch. Ví dụ: Ripple là một dạng


7
Private Blockchain, hệ thống này cho phép 20% các nút là gian dối và chỉ cần 80%
còn lại hoạt động ổn định là được.
Permissioned blockchain hay còn được gọi là consortium blockchain, là một
dạng của private blockchain nhưng bổ sung thêm một số tính năng nhất định, kết hợp
giữa “niềm tin” khi tham gia vào public blockchain và “niềm tin tuyệt đối” khi tham
gia vào private blockchain. Ví dụ: các ngân hàng hay tổ chức tài chính liên doanh sẽ
sử dụng Blockchain cho riêng mình.
1.2 Tổng quan về Ethereum
1.2.1 Giới thiệu về Ethereum
Ethereum là một nền tảng mã nguồn mở dựa trên công nghệ blockchain cho
phép các nhà phát triển xây dựng và triển khai các ứng dụng và hợp đồng thông minh

hoạt động trên nền tảng blockchain[3].
Mạng lưới Ethereum sử dụng đồng coin “Ether” hoạt động với tư cách tiền tệ
của mạng lưới. Ether được trao đổi như một cách thức chi trả cho việc vận hành các
ứng dụng phi tập trung trên mạng lưới. Đồng Ether cũng là tiền áo lớn thứ hai thế
giới vì giá trị vốn hóa thị trường đứng sau Bitcoin[3].
1.2.2 Kiến trúc
1.2.2.1 Ether
Ether, là một loại tiền mã hóa được giao dịch trong mạng lưới Ethereum
được gọi là Ether. Nó được liệt kê dưới mã ETH và giao dịch trên các sàn giao
dịch tiền mã hóa. Nó cũng được sử dụng để trả phí giao dịch và dịch vụ tính
toán trên mạng Ethereum.
1.2.2.2 Máy ảo Ethereum (Ethereum Virtual Machine)
Máy ảo Ethereum là một môi trường chạy các hợp đồng thông minh
Ethereum.
Nó được hoàn toàn cô lập từ mạng, hệ thống tập tin và các quá trình khác
của hệ thống máy chủ. Mỗi nút Ethereum trong mạng chạy một EVM và thực
hiện các hướng dẫn giống nhau. Ethereum Virtual Machines đã được lập trình
trong C++, Go, Haskell, Java, Python, Ruby, Rust và WebAssembly.


8
1.2.2.3 Hợp đồng thông minh
Hợp đồng thông minh là một cơ chế trao đổi xác định, được kiểm soát
bởi các phương tiện kỹ thuật số mà có thể giúp cho việc thực hiện giao dịch trực
tiếp giữa các thực thể mà không cần tin cậy nhau. Các hợp đồng này được định
nghĩa bằng cách lập trình và được chạy chính xác như mong muốn mà không bị
kiểm duyệt, lừa đảo hay sự can thiệp từ bên thứ ba trung gian.
Chúng có thể được sử dụng để tạo điều kiện, xác minh và thực thi việc
đàm phán hoặc thực hiện các hướng dẫn thủ tục kinh tế và có khả năng tránh
được sự kiểm duyệt, thông đồng và rủi ro từ phía đối tác. Trong Ethereum, các

hợp đồng thông minh được coi là các kịch bản tự trị hoặc các ứng dụng phân
cấp được lưu trữ trong chuỗi khối Ethereum để thực hiện sau đó bởi EVM. Các
hướng dẫn được nhúng trong các hợp đồng Ethereum được thanh toán bằng
ether và có thể được thực hiện bằng nhiều ngôn ngữ Turing-complete khác nhau.
1.2.3 Ứng dụng
Rất nhiều người nghĩ Ethereum tạo ra để cạnh tranh với đồng tiền ảo Bitcoin
nhưng thực chất tiền tệ không phải là mục đích mà Ethereum nhắm đến. Công nghệ
blockchain của Ethereum tập trung tạo ra các ứng dụng hoạt động dựa trên smart
contract nhằm giải quyết mọi giao dịch một cách dễ dàng, nhanh chóng, tiết kiệm, an
toàn và công khai.
1.3 Tổng quan về smart contract
1.3.1 Giới thiệu về smart contract
Smart contract là một bộ giao thức đặc biệt với mục tiêu là đóng góp xác nhận
hay tiến hành quá trình đàm phán và thực hiện hợp đồng. Smart contract cho phép ta
triển khai giao dịch mà không cần thông qua một bên thứ ba trung gian.
Những giao dịch này hoàn toàn dễ dàng truy dấu và không thể bị can thiệp
hoặc đảo chiều. Smart contract chứa trong mình toàn bộ những thông tin chi tiết về
các điều khoản và thực hiện chúng một cách tự động.


9
1.3.2 Nguyên lý hoạt động
Nguyên lý vận hành của smart contract có thể đem so sánh với một chiếc máy
bán hàng tự động.
Smart contract chỉ tự động thực hiện những lệnh mà đã được lập trình sẵn từ
trước. Đầu tiên, tài sản và điều khoản hợp đồng đều được mã hóa và chuyển vào một
block thuộc blockchain. Smart contract này tiếp đó sẽ được phân phối và sao chép lại
bởi các nút hoạt động trên nền tảng đó.
Sau khi có nhận lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng như
điều khoản định sẵn. Đồng thời, smart contract cũng sẽ tự động kiểm tra quá trình

thực hiện những cam kết nêu trong hợp đồng.

Hình 1.1 – Nguyên lý hoạt động của smart contract

1.3.3 Các thành phần của smart contract
Chủ thể hợp đồng, chương trình phải được cấp khả năng truy cập đến sản
phẩm/dịch vụ liệt kê trong hợp đồng để có thể tự động khóa hay mở khóa chúng.
Chữ ký điện tử, tất cả các bên tham gia đồng ý triển khai thỏa thuận bằng các
khóa cá nhân của họ.
Điều khoản hợp đồng, điều khoản của smart contract có dạng một chuỗi các
hoạt động. Các bên tham gia hợp đồng đều phải ký chấp nhận nó.


10
Nền tảng phân quyền, smart contract sau khi hoàn tất sẽ được tải lên
Blockchain của nền tảng phân quyền tương ứng và được phân phối về cho các node
của nền tảng ấy.
1.3.4 Lợi ích của smart contract
Smart contract được mã hóa và phân phối về cho các node. Cách thức này bảo
đảm nó sẽ không bị thất lạc hay sửa đổi mà không được bạn cho phép.
Hầu hết các công đoạn đều được tự động hoá, và gần như loại bỏ hoàn toàn
bên trung gian.
1.4 Các ứng dụng phi tập trung
1.4.1 Giới thiệu ứng dụng phi tập trung
Như tác giả đã trình bày trong phần giới thiệu về Ethereum ở trên, Ethereum
cung cấp một nền tảng để các nhà phát triển tạo ra các ứng dụng chạy trên blockchain,
các ứng dụng này được gọi là ứng dụng phi tập trung, thường được gọi là DApp
(Decentralized App).
Các ứng dụng phi tập trung là ứng dụng có mã nguồn mở, không chịu sự kiểm
soát của một cá nhân hoặc đối tượng nào, và chạy trên blockchain hoặc mạng lưới

máy tính phi tập trung. Các ứng dụng phi tập trung không có máy chủ trung tâm,
người dùng liên hệ với nhau thông qua các kết nối đồng cấp. Các ứng dụng thông
thường đều chịu sự kiểm soát của một đối tượng, chạy trên một máy chủ trung tâm
và dễ bị tấn công hoặc gặp thời gian chết do máy chủ rơi vào trạng thái ngoại tuyến.
Một ứng dụng phi tập trung không có máy tính chủ hoặc đối tượng đơn lẻ nào
kiểm soát, nó hoạt động trên một mạng máy tính và các thay đổi đều do người dùng
quyết định. Không có vấn đề nghiêm trọng rằng máy chủ có thể bị sập hoặc bị tấn
công. Nếu một máy tính trên mạng lưới thoát tuyến, ứng dụng không bị ảnh hưởng
vì còn hàng ngàn máy khác đang vận hành ứng dụng vào thời điểm đó.
Ngay cả khi một máy tính trong mạng lưới bị tấn công, cũng không thể thực
hiện các thay đổi trên ứng dụng vì cần phần lớn mạng lưới phải đồng thuận với thay
đổi đó.


11
1.4.2 Làm sao để xây dựng một DApp?
Để xây dựng ra một DApp ta cần phải:
Có một hệ thống blockchain đóng vai trò như một server để lưu trữ cơ sở dữ
liệu, trong luận văn này, tác giả sẽ tự tạo một hệ thống private blockchain và sử dụng
hệ thống này để xây dựng DApp.
Có tài khoản ví điện tử trên mạng blockchain đó.
Tạo ra smart contract quy định các điều khoản, chủ thể, giao dịch và triển khai
smart contract lên hệ thống blockchain.
Xây dựng ứng dụng hay website và kết nối chúng đến hệ thống blockchain.
1.5 Một số phần mềm, thư viện và framework được sử dụng trong đề tài
1.5.1 Geth
Geth hay còn gọi là Go Ethereum, là một chương trình giúp người dùng tương
tác với hệ thống blockchain của Ethereum như mining, thực hiện giao dịch… Đồng
thời, Geth cũng là chương trình hỗ trợ người dùng tự tạo ra hệ thống blockchain của
riêng mình.

1.5.2 Remix
Remix là một trình soạn thảo và biên dịch ngôn ngữ lập trình Solidity, remix
cũng hỗ trợ các công cụ để nhà phát triển gỡ lỗi và chạy thử smart contract. Điểm đặc
biệt của remix là không cần phải cài đặt mới sử dụng được, mà chỉ cần truy cập vào
đường link: là có thể sử dụng ngay.
1.5.3 Nodejs
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8
Engine. Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới. NodeJS
cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản
hóa việc lập trình và giảm thời gian ở mức thấp nhất.


12
1.5.4 Truffle
Truffle là một môi trường phát triển và là framework để kiểm thử dành cho
blockchain Ethereum, mục tiêu mà Truffle hướng đến chính là giúp cho nhà phát triển
dễ làm việc với Ethereum hơn trong việc tạo ra các ứng dụng phi tập trung (DApp).
1.5.5 Lite-server
Lite-server là một package của nodejs, giúp tạo ra một localhost để chạy và
kiểm thử ứng dụng web của mình. Ngoài ra lite-server còn tích hợp BrowserSync,
cho phép tự tải lại trang web đang chạy nếu như code của website được chỉnh sửa và
lưu lại.
1.5.6 Web3.js
Web3.js là một thư viện javascript, giúp các ứng dụng javascript chạy trên
trình duyệt web kết nối và tương tác với hệ thống blockchain. Web3.js có thể tải tại:
/>1.5.7 Bootstrap
Bootstrap là một framework giúp người dùng dễ dàng tạo ra giao diện website,
nó chứa các mẫu thiết kế có sẵn dựa trên HTML và CSS cho các kiểu chữ, biểu mẫu,
nút bấm, điều hướng và các thành phần giao diện khác.
1.5.8 Metamask

Metamask cho phép người dùng chạy các ứng dụng Ethereum DApps ngay
trong trình duyệt mà không cần khởi động toàn bộ node Ethereum dẫn đến trình duyệt
trở nên nặng nề và chậm chạp.
1.6 Tiểu kết
Qua chương này, tác giả đã nêu lên một số cơ sở lý thuyết và một số thư viện,
phần mềm được sử dụng trong đề tài. Trong chương tiếp theo, tác giả sẽ tiến hành xây
dựng một hệ thống private blockchain.


13

CHƯƠNG 2 HỆ THỐNG XÁC MINH THÔNG TIN SINH VIÊN
2.1 Giới thiệu về hệ thống
Như đã nói trên phần mở đầu, công nghệ blockchain đang dần được áp dụng vào
nhiều lĩnh vực trong cuộc sống. Ngày càng nhiều cá nhân, cơ quan và tổ chức quan
tâm, nghiên cứu và cho ra nhiều ứng dụng của blockchain được áp dụng vào cuộc sống.
Mục tiêu của hệ thống là ứng dụng tính minh bạch và độ tin cậy cao của công nghệ
blockchain để tăng cao độ an toàn khi lưu trữ thông tin sinh viên. Tất cả dữ liệu liên
quan đến công việc học tập (điểm, hoạt động ngoại khoá, kỹ năng, trải nghiệm,…) đều
sẽ được lưu trữ trên Blockchain một cách minh bạch, rõ ràng, bất biến. Quá trình này
sẽ hạn chế được tối đa các vấn đề về gian lận điểm, bằng cấp giả mạo trong giáo dục.

Hình 2.1 hệ thống Blockchain vào giáo dục.

Hiện tại, có một hệ thống được gọi là OpenBadger sử dụng Blockchain để thu
thập thông tin chứng chỉ do hơn 3.000 cơ quan đào tạo trên toàn thế giới, từ các tổ chức
phi lợi nhuận. Các tổ chức kinh doanh cung cấp đào tạo kiến thức, hoặc các tổ chức lớn
như IBM và Microsoft, cũng như các khóa đào tạo của các tổ chức giáo dục. Học viên
cũng có thể sử dụng các chứng chỉ được lưu trữ trên OpenBadger để mở ra các cơ hội
nghề nghiệp mới.



14
2.1.1 Thiết kế hệ thống
Quay về hệ thống xác minh thông tin sinh viên của mình, vì nhu cầu của du
học sinh Lào ở Việt Nam ngày càng tăng lên và hiện tại có hơn 800 sinh viên đang
học tại miền Nam. Làm sao để đảm bảo mỗi sinh viên khi ra trường có thể theo dõi
chính xác được quá trình học tập của sinh viên trong suốt quá trình học ở các trường
từ khi nhập học đến khi ra trường. Hiện trạng, công tác quản lý sinh viên tại tổng
lãnh sự quán dân nhân Lào tại TP. Hồ Chí Minh; các công việc trước đây vẫn làm
thủ công như lập danh sách sinh viên, lập danh sách trường học tốn rất nhiều thời
gian, công sức và giấy tờ, sổ sách lưu trữ (chưa có hệ thống quản lý sinh viên).
Chính vì vậy hệ thống xác thực thông tin sinh viên sẽ giúp sinh viên sở hữu
thông tin có thể truy cập dữ liệu nguồn được xác nhận bất cứ lúc nào, có thể sử dụng
thông tin đã lưu trữ trên, đồng thời phụ huynh, công tác quản lý sinh viên cho đến
nhà tuyển dụng cũng có thể xem thông tin lưu trữ trên hệ thống, không chỉ là dữ liệu
bảng điểm mà còn cả quá trình đào tạo, kinh nghiệm thực tế, dữ liệu cá nhân (bao
gồm điểm, hoạt động đoàn thể, phong trào, giải thưởng…) của từng học sinh sẽ
được lưu trữ chi tiết và cụ thể trong Blockchain. Học viên chia sẻ thông tin trong ID
cho các nhà tuyển dụng và doanh nghiệp, từ đó các nhà tuyển dụng dễ dàng tìm
kiếm các nhân tố tài năng phù hợp.

Hình 2.2 Sơ đồ hoạt động của hệ thống.


15
2.1.2 Kiến trúc của hệ thống
Hệ thống xác thực thông tin sinh viên gồm một server nodejs đóng vai trò điều
khiển mọi hoạt động trong hệ thống, đồng thời cũng tạo kết nối trung gian để người
dùng tương tác với blockchain. Ethereum đóng vai trò như một cơ sở dữ liệu chứa tất

cả thông tin sinh viên. Khi có yêu cầu từ client đến server, server sẽ thực hiện các yêu
cầu tương ứng đến hệ thống blockchain, rồi phản hồi kết quả nhận được từ blockchain
cho client.

Hình 2.3 Sơ đồ kiến trúc hệ thống.
 Nhân viên nhập liệu: có quyền nhập vào, chỉnh sửa và cập nhật. Làm
nhiệm vụ thu thập dữ liệu và nhập vào dữ liệu thông tin của mỗi sinh
viên, thông tin cá nhân, bảng điểm, quá trình đào tạo, kinh nghiệm thực
tế, lịch sử tuyển dụng của từng cá nhân.
 Client: có quyền chỉ được xem thông tin.


×